[squeak-dev] Daily Commit Log
commits at source.squeak.org
commits at source.squeak.org
Sun Feb 13 23:55:06 UTC 2011
Changes to Trunk (http://source.squeak.org/trunk.html) in the last 24 hours:
http://lists.squeakfoundation.org/pipermail/packages/2011-February/004267.html
Name: Compiler-nice.186
Ancestors: Compiler-nice.184
Add both Compiler and Decompiler support for inlined #repeat.
Implementation notes:
For compilation, the repeat is implemented with a simple backward jump if ever the receiver is a block.
For decompilation, things are a bit more tedious because conditonnal loops (whileTrue/False) must be differentiated from unconditional loops (repeat).
The signature of conditional loops is that they all have their backward jump hoping over their conditional jump.
If a backward jump does not cross any conditional jump on its way back, then it must be a repeat.
The idea is thus to register the program counter of the test instruction before the conditional jump (lastJumpIfPc), and verify if the bacward jump branch after or before this instruction.
Things are a bit more complex because there can be a conditional instruction inside the repeat body.
That's why those conditional jumps must be stacked (on lastJumpIfPcStack), and unstacked once decompiled.
=============================================
http://lists.squeakfoundation.org/pipermail/packages/2011-February/004268.html
Name: Compiler-nice.187
Ancestors: Compiler-nice.184
In case nil is the doItReceiver of an interactive evaluation, avoid proposing a menu that would add an inst var to UndefinedObject.
=============================================
http://lists.squeakfoundation.org/pipermail/packages/2011-February/004269.html
Name: Compiler-fbs.183
Ancestors: Compiler-ul.182
Fix for 7588: Decompiler>>interpretNextInstructionFor: bitrot:
If you change the first statement in the above-mentioned method to
false ifTrue: [^ super interpretNextInstructionFor: client].
you will print out debug information. Or you would if you didn't get an exception printing out the bytecode. "code copyFrom: 4 to: code size" fails because it tries to make a String of size -2. That's because code at this point is something like '70' if you're currently interpreting bytecode 112.
Changing the offending line to "nextPutAll: '<', code, '>' fixes things.
=============================================
http://lists.squeakfoundation.org/pipermail/packages/2011-February/004270.html
Name: Compiler-nice.188
Ancestors: Compiler-nice.187, Compiler-fbs.183, Compiler-nice.186
Merge fbs.183 nice.186 nice.187 coming from inbox
=============================================
http://lists.squeakfoundation.org/pipermail/packages/2011-February/004271.html
Name: Compiler-nice.189
Ancestors: Compiler-nice.188
Enable cascading of special messages by deoptimizing, thanks Eliot.
This is mostly useless, but it removes an arbitrary limitation of the language.
=============================================
http://lists.squeakfoundation.org/pipermail/packages/2011-February/004272.html
Name: Kernel-nice.533
Ancestors: Kernel-nice.532
1) Let Behavior>>deepCopy return self, senders of deepCopy generally have no reason to copy a Behavior.
Moreover, the old code did a shallowCopy which is a non sense.
2) Make it explicit that veryDeepCopy does not copy any Behavior.
This was explicit for Metaclass, but implicit for Class (see Object>>#veryDeepInner: ), and undefined for Traits (they are not used, but who knows...).
=============================================
http://lists.squeakfoundation.org/pipermail/packages/2011-February/004273.html
Name: Kernel-nice.543
Ancestors: Kernel-nice.542
Cherry pick some changes from Pharo:
avoid inlining #selectors #classVarNames
use #cull:cull: instead of #valueWithPossibleArgs:
patch needsFrameSize: for the case of perform:withArguments: (required by old VM, not Cog)
better comment for Fraction hash
=============================================
http://lists.squeakfoundation.org/pipermail/packages/2011-February/004274.html
Name: Kernel-nice.544
Ancestors: Kernel-nice.543, Kernel-nice.533
Merge nice.533 (deepCopy clean-up)
=============================================
http://lists.squeakfoundation.org/pipermail/packages/2011-February/004275.html
Name: Compiler-ul.190
Ancestors: Compiler-nice.189
- changed the postscript to recompile all methods which send #repeat
=============================================
http://lists.squeakfoundation.org/pipermail/packages/2011-February/004276.html
Name: Kernel-nice.545
Ancestors: Kernel-nice.544
Merge Kernel-spd.444 to allow shadowing of a global namespace variable by a local class variable or shared pool variable.
RATIONALE: forbiding this shadowing works against encapsulation. It prevents packages with a local class var from loading when a concurrent package defined a global. Forbiding is thus like reserving every class var name. Non sense.
Kernel-spd.444 did also remove some methods, but I did not replay those changes as they are unrelated and undocumented.
* fixed Class>>canFindWithoutEnvironment: (it was actually checking the environment, making the behavior like bindingOf:) and added test to KernelTests
* changed Class>>declare: and Class>>addClassVarName:
- no longer check the environment for conflicts
- conflict error message clarified
* made conflict error in #addClassVarName: resumable to match the behavior of #declare:
=============================================
http://lists.squeakfoundation.org/pipermail/packages/2011-February/004277.html
Name: Tests-nice.111
Ancestors: Tests-ul.110
Use := assignments rather than _ in class comment examples.
=============================================
http://lists.squeakfoundation.org/pipermail/packages/2011-February/004278.html
Name: Tests-nice.115
Ancestors: Tests-ul.114, Tests-nice.111
Merge Tests.nice.111
=============================================
http://lists.squeakfoundation.org/pipermail/packages/2011-February/004279.html
Name: Tools-fbs.286
Ancestors: Tools-laza.285
Remove the contextStackTop instvar, replacing its calls with an indirection through "self contextStackTop", which just calls the top/first element of contextStack.
=============================================
http://lists.squeakfoundation.org/pipermail/packages/2011-February/004280.html
Name: Tools-nice.296
Ancestors: Tools-mtf.295, Tools-fbs.286
Merge fbs.286
Remove the contextStackTop instvar in Debugger, replacing its calls with an indirection through "self contextStackTop", which just calls the top/first element of contextStack.
=============================================
More information about the Squeak-dev
mailing list
|