[squeak-dev] The Trunk: Compiler-eem.148.mcz
Eliot Miranda
eliot.miranda at gmail.com
Sat Jul 17 23:59:23 UTC 2010
Could an admin delete this version?
TIA
Eliot
On Sat, Jul 17, 2010 at 4:54 PM, <commits at source.squeak.org> wrote:
> Eliot Miranda uploaded a new version of Compiler to project The Trunk:
> http://source.squeak.org/trunk/Compiler-eem.148.mcz
>
> ==================== Summary ====================
>
> Name: Compiler-eem.148
> Author: eem
> Time: 17 July 2010, 4:54:07.87 pm
> UUID: 5f5463f2-9924-4c05-95c9-0badbf699034
> Ancestors: Compiler-jcg.147
>
> Collection>>fold: and SequenceableCollection>>copyUpThrough:, extensions
> used by Cog VMMaker.
> Change to older semantics of Character>>hex for Cog VMMaker.
>
> =============== Diff against Compiler-jcg.147 ===============
>
> Item was changed:
> ----- Method: Compiler>>evaluate:in:to:notifying:ifFail:logged: (in
> category 'public access') -----
> evaluate: textOrStream in: aContext to: receiver notifying: aRequestor
> ifFail: failBlock logged: logFlag
> + "Compiles the sourceStream into a parse tree, then generates code
> into
> + a method. If aContext is not nil, the text can refer to
> temporaries in that
> + context (the Debugger uses this). If aRequestor is not nil, then
> it will receive
> + a notify:at: message before the attempt to evaluate is aborted.
> Finally, the
> + compiled method is invoked from here via withArgs:executeMethod:,
> hence
> + the system no longer creates Doit method litter on errors."
> - "Compiles the sourceStream into a parse tree, then generates code
> into a
> - method. This method is then installed in the receiver's class so
> that it
> - can be invoked. In other words, if receiver is not nil, then the
> text can
> - refer to instance variables of that receiver (the Inspector uses
> this). If
> - aContext is not nil, the text can refer to temporaries in that
> context (the
> - Debugger uses this). If aRequestor is not nil, then it will receive
> a
> - notify:at: message before the attempt to evaluate is aborted.
> Finally, the
> - compiled method is invoked from here as DoIt or (in the case of
> - evaluation in aContext) DoItIn:. The method is subsequently removed
> - from the class, but this will not get done if the invocation causes
> an
> - error which is terminated. Such garbage can be removed by
> executing:
> - Smalltalk allBehaviorsDo: [:cl | cl removeSelector: #DoIt;
> removeSelector:
> - #DoItIn:]."
>
> | methodNode method value toLog itsSelection itsSelectionString |
> class := (aContext == nil ifTrue: [receiver] ifFalse: [aContext
> receiver]) class.
> self from: textOrStream class: class context: aContext notifying:
> aRequestor.
> + methodNode := self translate: sourceStream noPattern: true ifFail:
> [^failBlock value].
> - methodNode := self translate: sourceStream noPattern: true ifFail:
> - [^failBlock value].
>
> + method := self interactive
> + ifTrue: [methodNode generateWithTempNames]
> + ifFalse: [methodNode generate].
> +
> - method := self interactive ifTrue: [ methodNode
> generateWithTempNames ]
> - ifFalse: [methodNode generate].
> -
> value := receiver
> withArgs: (context ifNil: [#()] ifNotNil:
> [{context}])
> executeMethod: method.
>
> + logFlag ifTrue:
> + [toLog := ((requestor respondsTo: #selection)
> - logFlag ifTrue:[
> - toLog := ((requestor respondsTo: #selection)
> and:[(itsSelection := requestor selection) notNil
> and:[(itsSelectionString := itsSelection asString)
> isEmptyOrNil not]])
> ifTrue:[itsSelectionString]
> ifFalse:[sourceStream contents].
> SystemChangeNotifier uniqueInstance evaluated: toLog
> context: aContext].
> ^ value!
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20100717/710b3cb3/attachment.htm
More information about the Squeak-dev
mailing list
|