On Thu, Apr 19, 2012 at 6:08 AM, Eliot Miranda
<eliot.miranda@gmail.com> wrote:
http://www.mirandabanda.org/files/Cog/VM/VM.r2550/
CogVM binaries as per VMMaker.oscog-eem.157/r2550.
Stack/CoInterpreter/Cogit:
Implement proper bounds checking for byte access to compiled
methods. Raise errors for accesses outside initialPC to size.
CoInterpreter:
Provide a thorough flush primitive for CompiledMethods that discards all
machine code and makes sure that any contexts using the method have bytecode
pcs. Primitive #215 (same as 116 in the Stack VM). This is much slower than
116 (flushCache) since it has to enumerate over all heap contexts.
Excellent. Does it mean we should implement something like this:
CompiledMethod >> flushCache
��� "Tell the interpreter to remove all references to this method from its method lookup cache, if it has one. In addition, it provides a thorough flush primitive for CompiledMethods that discards all machine code and makes sure that any contexts using the method have bytecode
pcs.
��� This primitive must be called whenever a method is redefined or removed."
��� <primitive: 215>
��� self simpleFlushCache
CompiledMethod >> simpleFlushCache
��� "Tell the interpreter to remove all references to this method from its method lookup cache, if it has one. This primitive must be called whenever a method is redefined or removed."
��� <primitive: 116>
�
If you have a better name for #simpleFlushCache please let me know.
if you agree, I will open an issue for this.
Cheers
Provide an xray primitive for CompiledMethod that answers if a method has
machine code, and if so if it's machine code is frameless, and/or refers
to a young object. No primitive number. Used to test the above.
Make printOopShort: print Association keys. Useful for
longPrintOop:, and hence printReferencesTo: etc.
Mac OS: add fflush to debug printing in sqMacUIEventsUniversal.c so output
appears promptly.
Fix the annoying bogus error messages from the mprotect calls by getting the
length arg to mprotect right.
Add version infor for the Cross/plugins tree. Add a -version switch to win32
--�
best,
Eliot