[pypy-commit] lang-smalltalk default: Reviewed all method in a squeak 4.3 which contain 'Essential' in it's source.
lwassermann
noreply at buildbot.pypy.org
Thu Feb 28 22:50:23 CET 2013
Author: Lars Wassermann <lars.wassermann at gmail.com>
Branch:
Changeset: r110:20ee370e3cca
Date: 2013-02-28 22:49 +0100
http://bitbucket.org/pypy/lang-smalltalk/changeset/20ee370e3cca/
Log: Reviewed all method in a squeak 4.3 which contain 'Essential' in
it's source. Updated todo.txt to include the information I gathered
diff --git a/spyvm/primitives.py b/spyvm/primitives.py
--- a/spyvm/primitives.py
+++ b/spyvm/primitives.py
@@ -181,7 +181,7 @@
raise PrimitiveFailedError()
return interp.space.wrap_int(receiver % argument)
-# #// -- return the result of a division, rounded towards negative zero
+# #// -- return the result of a division, rounded towards negative infinity
@expose_primitive(DIV, unwrap_spec=[int, int])
def func(interp, s_frame, receiver, argument):
if argument == 0:
@@ -220,6 +220,7 @@
# Float Primitives
_FLOAT_OFFSET = 40
+SMALLINT_AS_FLOAT = 40
FLOAT_ADD = 41
FLOAT_SUBTRACT = 42
# NB: 43 ... 48 are implemented above
@@ -1049,6 +1050,13 @@
return activateClosure(interp, s_frame, w_block_closure, [w_a0], mayContextSwitch=False)
# ___________________________________________________________________________
+# Override the default primitive to give latitude to the VM in context management.
+
+CTXT_AT = 210
+CTXT_AT_PUT = 211
+CTXT_SIZE = 212
+
+# ___________________________________________________________________________
# PrimitiveLoadInstVar
#
# These are some wacky bytecodes in squeak. They are defined to do
diff --git a/spyvm/todo.txt b/spyvm/todo.txt
--- a/spyvm/todo.txt
+++ b/spyvm/todo.txt
@@ -5,10 +5,32 @@
[ ] SPECIAL_OBJECTS_ARRAY = 129
[ ] LOW_SPACE_SEMAPHORE = 124
[ ] INTERRUPT_SEMAPHORE = 134
+[ ] SIGNAL_AT_MILLISECONDS = 136
[ ] SIGNAL_AT_BYTES_LEFT = 125
[ ] IMAGE_NAME = 121
-[ ] BE_CURSOR = 101
+[ ] EXIT_TO_DEBUGGER = 114 # essential
+[ ] QUIT = 113 # essential
+[ ] PERFORM_IN_SUPERCLASS = 100 # essential, for the debugger
+[ ] SNAPSHOT = 97 # essential, see also comment in only sender (as of Squeak 4.3)
+[ ] SMALLINT_AS_FLOAT = 40 # essential
+# the following are for graphics
+[ ] BE_CURSOR = 101 # this primitive has two different implementations, dependent on the argument count
[ ] BE_DISPLAY = 102
+[ ] GET_NEXT_EVENT = 94
+
+ReValidate primitives
+[ ] FLUSH_CACHE = 89 # ignored at the moment
+[ ] VALUE_NO_CONTEXT_SWITCH = 221/222 # no context switch flag is ignored
+[ ] STRING_AT = 63 # see comment there
+[ ] OBJECT_AT_PUT = 69 # uncomment assert?
+[ ] AT_PUT, SIZE 61/62 # because of its use in LargePositiveInteger>>#digitAt:put: and WideSymbol
+
+Primitives in Question
+[ ] FLOAT_AT = 38
+[ ] FLOAT_AT_PUT = 39
+
+Plugins
+[ ] BitBlt
Interpreter:
[ ] Replace hardcoded fallback selectors with selectors from SpecialSelectorsArray
More information about the pypy-commit
mailing list