[squeak-dev] The Trunk: Compiler-eem.217.mcz

commits at source.squeak.org commits at source.squeak.org
Tue Sep 27 22:52:03 UTC 2011


Eliot Miranda uploaded a new version of Compiler to project The Trunk:
http://source.squeak.org/trunk/Compiler-eem.217.mcz

==================== Summary ====================

Name: Compiler-eem.217
Author: eem
Time: 27 September 2011, 3:51:31.614 pm
UUID: 4b06bdff-bc34-4a41-b59d-8de0dc9bf16c
Ancestors: Compiler-eem.216

Add MethodNode>>ensureNotQuick to allow forcing generating
non-quick versions of quick methods (^self, ^inst var, et al).
This is used by MwbreakpointWrapper.
Yes this could arguably be a set of extensions in
MethodWrappers, but it feels too intimate for that, and
other compilers may want to implement the same API.

=============== Diff against Compiler-eem.216 ===============

Item was added:
+ ----- Method: BlockNode>>ensureNotQuick: (in category 'converting') -----
+ ensureNotQuick: encoder
+ 	"If the receiver is quick (can be generated as a Quick method, ^self,^inst var or ^ special constant)
+ 	 make it not so.  This is used to create break-pointable versions of quick methods.   Answer if the
+ 	 receiver was quick."
+ 	self isQuick ifFalse:
+ 		[^false].
+ 	"Making statements size > 1 is sufficient to cause isQuick to answer false (see BlockNode>>isQuick).
+ 	 N.B. This is a no-op since statements generate via emitCodeForEffect: and VariableNodes have no effect."
+ 	statements addFirst: (encoder encodeVariable: 'self').
+ 	^true!

Item was added:
+ ----- Method: MethodNode>>ensureNotQuick (in category 'converting') -----
+ ensureNotQuick
+ 	"If the receiver is quick (can be generated as a Quick method, ^self,^inst var or ^ special constant)
+ 	 make it not so.  This is used to create break-pointable versions of quick methods.   Answer if the
+ 	 receiver was quick."
+ 	^block ensureNotQuick: encoder!




More information about the Squeak-dev mailing list