[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