Daily Commit Log

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Daily Commit Log

commits-2
Changes to Trunk (http://source.squeak.org/trunk.html) in the last 24 hours:

http://lists.squeakfoundation.org/pipermail/packages/2010-August/003609.html

Name: Compiler-eem.163
Ancestors: Compiler-eem.159

Fix compilation after error correction.  If interactive then on correction
the entire text should be recompiled if the entire text was input (e.g.
compiling a method in a browser).  But if a selection was compiled
(e.g. doit in a workspace) then the current selection should be
recompiled.

Fix VariableScopeFinder for cascades.

=============================================

http://lists.squeakfoundation.org/pipermail/packages/2010-August/003610.html

Name: System-eem.357
Ancestors: System-eem.356

Call a spade a spade.  methodSymbol, bah humbug!

=============================================

http://lists.squeakfoundation.org/pipermail/packages/2010-August/003611.html

Name: Compiler-nice.164
Ancestors: Compiler-eem.163

Fix the case of special write binding.
Reminder: in case of special write binding, we must:
        1) load the VariableBinding
        2) push assigned value
        3) send value:
(see AssignmentNode>>emitCodeForEffect:encoder: )

#sizeCodeForLoad: read inst var writeNode
#sizeCodeForStore: write inst var writeNode
#sizeCodeForLoad: is sent before #sizeCodeForStore:
Therefore writeNode is read before written and the door is open for bugs.

Fortunately, #sizeCodeForStore: redo the job of #sizeCodeForLoad: and reserve space for pushing the VariableBinding on stack.

Unfortunately, it sometimes happens that the sizeCodeFor... is requested twice, the writeNode is then initialized and sizeCodeForLoad: reserve space for pushing VariableBinding a second time leading to a code size discrepancy...

Present fix implement following solution:
1) let sizeCodeForLoad: reserve size for emitCodeForLoad:encoder: operations, but don't trust writeNode isNil for this job.
2) let sizeCodeForStore: reserve size for - and only for - emitCodeForStore:encoder: operations.

=============================================

http://lists.squeakfoundation.org/pipermail/packages/2010-August/003612.html

Name: Tests-eem.90
Ancestors: Tests-eem.89

As of Compiler-eem.154 DecompilerTests>>testRemoteTemp
no longer fails.

=============================================

http://lists.squeakfoundation.org/pipermail/packages/2010-August/003613.html

Name: Compiler-eem.164
Ancestors: Compiler-eem.163

Stage one cleanup of the old parse node sizers & emitters

=============================================

http://lists.squeakfoundation.org/pipermail/packages/2010-August/003614.html

Name: Compiler-eem.165
Ancestors: Compiler-eem.164

Stage two cleanup of the old parse node sizers & emitters

Also:
Streamline Compiler>>#compile:in:classified:notifying:ifFail: .  requestor: send is unnecessary.
Fix comment typo inScanner>>scanAllTokenPositionsInto:

=============================================

http://lists.squeakfoundation.org/pipermail/packages/2010-August/003615.html

Name: Compiler-eem.166
Ancestors: Compiler-eem.165

Third and final stage of old parse node emitters and sizers cleanup.
Merges BytecodeAgnosticMethodNode into MethodNode and
deletes BytecodeAgnosticMethodNode.

=============================================