Eliot Miranda uploaded a new version of Compiler to project The Trunk:
http://source.squeak.org/trunk/Compiler-eem.299.mcz
==================== Summary ====================
Name: Compiler-eem.299
Author: eem
Time: 29 May 2015, 3:25:41.119 pm
UUID: 04451481-d898-4b03-bc51-9e28546cfb82
Ancestors: Compiler-eem.298
Provide support for a specialized pushNClosureTemps:
bytecode, as included in the Sista bytecode set.
=============== Diff against Compiler-eem.298 ===============
Item was added:
+ ----- Method: BytecodeEncoder>>sizePushNClosureTemps: (in category 'opcode sizing') -----
+ sizePushNClosureTemps: numTemps
+ ^self sizeOpcodeSelector: #genPushNClosureTemps: withArguments: {numTemps}!
Item was added:
+ ----- Method: EncoderForV3PlusClosures>>genPushNClosureTemps: (in category 'bytecode generation') -----
+ genPushNClosureTemps: numTemps
+ numTemps timesRepeat: [self genPushSpecialLiteral: nil]!
Eliot Miranda uploaded a new version of Compiler to project The Trunk:
http://source.squeak.org/trunk/Compiler-eem.299.mcz
==================== Summary ====================
Name: Compiler-eem.299
Author: eem
Time: 29 May 2015, 3:25:41.119 pm
UUID: 04451481-d898-4b03-bc51-9e28546cfb82
Ancestors: Compiler-eem.298
Provide support for a specialized pushNClosureTemps:
bytecode, as included in the Sista bytecode set.
=============== Diff against Compiler-eem.298 ===============
Item was added:
+ ----- Method: BytecodeEncoder>>sizePushNClosureTemps: (in category 'opcode sizing') -----
+ sizePushNClosureTemps: numTemps
+ ^self sizeOpcodeSelector: #genPushNClosureTemps: withArguments: {numTemps}!
Item was added:
+ ----- Method: EncoderForV3PlusClosures>>genPushNClosureTemps: (in category 'bytecode generation') -----
+ genPushNClosureTemps: numTemps
+ numTemps timesRepeat: [self genPushSpecialLiteral: nil]!
Chris Muller uploaded a new version of Morphic to project The Trunk:
http://source.squeak.org/trunk/Morphic-cmm.984.mcz
==================== Summary ====================
Name: Morphic-cmm.984
Author: cmm
Time: 19 May 2015, 2:56:17.688 pm
UUID: e1b37491-efb5-4415-bf9f-6f44b577daa0
Ancestors: Morphic-mt.983
Fix the ability to let Morph users set up their own EventHandler to have proper filtering of MouseMoveEvents.
=============== Diff against Morphic-mt.983 ===============
Item was changed:
----- Method: Morph>>handlesMouseMove: (in category 'event handling') -----
handlesMouseMove: anEvent
"Do I want to receive mouseMove: when the hand passes over the receiver? Rules say that by default a morph gets #mouseMove iff
* the hand is not dragging anything,
+ and some button is down,
+ and the receiver is the current mouse focus."
+ self eventHandler ifNotNil: [^ self eventHandler handlesMouseMove: anEvent].
anEvent hand hasSubmorphs ifTrue: [ ^ false ].
(anEvent anyButtonPressed and: [ anEvent hand mouseFocus == self ]) ifFalse: [ ^ false ].
^ true!
Chris Muller uploaded a new version of Morphic to project The Trunk:
http://source.squeak.org/trunk/Morphic-cmm.984.mcz
==================== Summary ====================
Name: Morphic-cmm.984
Author: cmm
Time: 19 May 2015, 2:56:17.688 pm
UUID: e1b37491-efb5-4415-bf9f-6f44b577daa0
Ancestors: Morphic-mt.983
Fix the ability to let Morph users set up their own EventHandler to have proper filtering of MouseMoveEvents.
=============== Diff against Morphic-mt.983 ===============
Item was changed:
----- Method: Morph>>handlesMouseMove: (in category 'event handling') -----
handlesMouseMove: anEvent
"Do I want to receive mouseMove: when the hand passes over the receiver? Rules say that by default a morph gets #mouseMove iff
* the hand is not dragging anything,
+ and some button is down,
+ and the receiver is the current mouse focus."
+ self eventHandler ifNotNil: [^ self eventHandler handlesMouseMove: anEvent].
anEvent hand hasSubmorphs ifTrue: [ ^ false ].
(anEvent anyButtonPressed and: [ anEvent hand mouseFocus == self ]) ifFalse: [ ^ false ].
^ true!
Eliot Miranda uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-eem.926.mcz
==================== Summary ====================
Name: Kernel-eem.926
Author: eem
Time: 29 May 2015, 12:02:32.361 pm
UUID: b5d090c6-115c-427d-92ca-0e02afa2908d
Ancestors: Kernel-cmm.925
Make markerOrNil multiple-bytecode-sets aware
=============== Diff against Kernel-cmm.925 ===============
Item was changed:
----- Method: CompiledMethod>>markerOrNil (in category 'private') -----
markerOrNil
"If I am a marker method, answer the symbol used to mark me. Otherwise
+ answer nil. What is a marker method? It is method with body like
- answer nil.
-
- What is a marker method? It is method with body like
'self subclassResponsibility' or '^ self subclassResponsibility'
+ used to indicate ('mark') a special property."
- used to indicate ('mark') a special property.
+ ^self encoderClass markerOrNilFor: self!
- Marker methods compile to bytecode like:
-
- 9 <70> self
- 10 <D0> send: <literal 1>
- 11 <87> pop
- 12 <78> returnSelf
-
- for the first form, or
-
- 9 <70> self
- 10 <D0> send: <literal 1>
- 11 <7C> returnTop
-
- for the second form."
-
- | e |
- ((e := self endPC) = 19 or: [e = 20]) ifFalse: [^ nil].
- (self numLiterals = 3) ifFalse:[^ nil].
- (self at: 17) = 16r70 ifFalse:[^ nil]. "push self"
- (self at: 18) = 16rD0 ifFalse:[^ nil]. "send <literal 1>"
- "If we reach this point, we have a marker method that sends self <literal 1>"
- ^ self literalAt: 1
- !
Item was added:
+ ----- Method: InstructionPrinter>>callPrimitive: (in category 'instruction decoding') -----
+ callPrimitive: index
+ "Print the callPrimitive bytecode."
+
+ self print: 'callPrimitive: ' , index printString!
Eliot Miranda uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-eem.926.mcz
==================== Summary ====================
Name: Kernel-eem.926
Author: eem
Time: 29 May 2015, 12:02:32.361 pm
UUID: b5d090c6-115c-427d-92ca-0e02afa2908d
Ancestors: Kernel-cmm.925
Make markerOrNil multiple-bytecode-sets aware
=============== Diff against Kernel-cmm.925 ===============
Item was changed:
----- Method: CompiledMethod>>markerOrNil (in category 'private') -----
markerOrNil
"If I am a marker method, answer the symbol used to mark me. Otherwise
+ answer nil. What is a marker method? It is method with body like
- answer nil.
-
- What is a marker method? It is method with body like
'self subclassResponsibility' or '^ self subclassResponsibility'
+ used to indicate ('mark') a special property."
- used to indicate ('mark') a special property.
+ ^self encoderClass markerOrNilFor: self!
- Marker methods compile to bytecode like:
-
- 9 <70> self
- 10 <D0> send: <literal 1>
- 11 <87> pop
- 12 <78> returnSelf
-
- for the first form, or
-
- 9 <70> self
- 10 <D0> send: <literal 1>
- 11 <7C> returnTop
-
- for the second form."
-
- | e |
- ((e := self endPC) = 19 or: [e = 20]) ifFalse: [^ nil].
- (self numLiterals = 3) ifFalse:[^ nil].
- (self at: 17) = 16r70 ifFalse:[^ nil]. "push self"
- (self at: 18) = 16rD0 ifFalse:[^ nil]. "send <literal 1>"
- "If we reach this point, we have a marker method that sends self <literal 1>"
- ^ self literalAt: 1
- !
Item was added:
+ ----- Method: InstructionPrinter>>callPrimitive: (in category 'instruction decoding') -----
+ callPrimitive: index
+ "Print the callPrimitive bytecode."
+
+ self print: 'callPrimitive: ' , index printString!
Eliot Miranda uploaded a new version of Compiler to project The Trunk:
http://source.squeak.org/trunk/Compiler-eem.298.mcz
==================== Summary ====================
Name: Compiler-eem.298
Author: eem
Time: 29 May 2015, 11:59:13.77 am
UUID: b06cc000-4a40-45cd-a0b2-a2d1c0309e39
Ancestors: Compiler-cmm.297
Provide multiple-bytecode-sets aware support for markerOrNil
=============== Diff against Compiler-cmm.297 ===============
Item was added:
+ ----- Method: BytecodeEncoder class>>markerOrNilFor: (in category 'compiled method support') -----
+ markerOrNilFor: aMethod
+ "If aMethod is a marker method, answer the symbol used to mark it. Otherwise
+ answer nil. What is a marker method? It is method with body like
+ 'self subclassResponsibility' or '^ self subclassResponsibility'
+ used to indicate ('mark') a special property.
+
+ Marker methods compile to two bytecode forms, this:
+ self
+ send: <literal 1>
+ pop
+ returnSelf
+ or this:
+ self
+ send: <literal 1>
+ returnTop"
+ ^self subclassResponsibility!
Item was added:
+ ----- Method: EncoderForV3 class>>markerOrNilFor: (in category 'compiled method support') -----
+ markerOrNilFor: aMethod
+ "If aMethod is a marker method, answer the symbol used to mark it. Otherwise
+ answer nil. What is a marker method? It is method with body like
+ 'self subclassResponsibility' or '^ self subclassResponsibility'
+ used to indicate ('mark') a special property.
+
+ Marker methods compile to two bytecode forms, this:
+ self
+ send: <literal 1>
+ pop
+ returnSelf
+ or this:
+ self
+ send: <literal 1>
+ returnTop"
+ | e |
+ ^(((e := aMethod endPC) = 19 or: [e = 20])
+ and: [aMethod numLiterals = 3
+ and: [(aMethod at: 17) = 16r70 "push self"
+ and: [(aMethod at: 18) = 16rD0]]]) "send <literal 1>"
+ ifTrue: [aMethod literalAt: 1]!
Eliot Miranda uploaded a new version of Compiler to project The Trunk:
http://source.squeak.org/trunk/Compiler-eem.298.mcz
==================== Summary ====================
Name: Compiler-eem.298
Author: eem
Time: 29 May 2015, 11:59:13.77 am
UUID: b06cc000-4a40-45cd-a0b2-a2d1c0309e39
Ancestors: Compiler-cmm.297
Provide multiple-bytecode-sets aware support for markerOrNil
=============== Diff against Compiler-cmm.297 ===============
Item was added:
+ ----- Method: BytecodeEncoder class>>markerOrNilFor: (in category 'compiled method support') -----
+ markerOrNilFor: aMethod
+ "If aMethod is a marker method, answer the symbol used to mark it. Otherwise
+ answer nil. What is a marker method? It is method with body like
+ 'self subclassResponsibility' or '^ self subclassResponsibility'
+ used to indicate ('mark') a special property.
+
+ Marker methods compile to two bytecode forms, this:
+ self
+ send: <literal 1>
+ pop
+ returnSelf
+ or this:
+ self
+ send: <literal 1>
+ returnTop"
+ ^self subclassResponsibility!
Item was added:
+ ----- Method: EncoderForV3 class>>markerOrNilFor: (in category 'compiled method support') -----
+ markerOrNilFor: aMethod
+ "If aMethod is a marker method, answer the symbol used to mark it. Otherwise
+ answer nil. What is a marker method? It is method with body like
+ 'self subclassResponsibility' or '^ self subclassResponsibility'
+ used to indicate ('mark') a special property.
+
+ Marker methods compile to two bytecode forms, this:
+ self
+ send: <literal 1>
+ pop
+ returnSelf
+ or this:
+ self
+ send: <literal 1>
+ returnTop"
+ | e |
+ ^(((e := aMethod endPC) = 19 or: [e = 20])
+ and: [aMethod numLiterals = 3
+ and: [(aMethod at: 17) = 16r70 "push self"
+ and: [(aMethod at: 18) = 16rD0]]]) "send <literal 1>"
+ ifTrue: [aMethod literalAt: 1]!