Begin forwarded message:

> From: [email protected]
> Date: October 1, 2009 8:21:58 AM GMT+02:00
> To: [email protected]
> Subject: [squeak-dev] The Trunk: Compiler-jcg.87.mcz
> Reply-To: [email protected]
>
> Joshua Gargus uploaded a new version of Compiler to project The Trunk:
> http://source.squeak.org/trunk/Compiler-jcg.87.mcz
>
> ==================== Summary ====================
>
> Name: Compiler-jcg.87
> Author: jcg
> Time: 30 September 2009, 11:21:53 am
> UUID: 71bf4e8d-f9f3-4371-a218-ad31a985cfd8
> Ancestors: Compiler-ul.86
>
> Revert to lazy-initialization of method properties, which is used by  
> the externally-maintained Prolog package (which loads cleanly into  
> 3.10.2, but not trunk).
>
> Part 2 of 2... need to load -jcg.85 first (this is taken care of by  
> the Monticello Configuration update-jcg.32.mcm)
>
> =============== Diff against Compiler-ul.86 ===============
>
> Item was changed:
>  ----- Method: Parser>>addPragma: (in category 'pragmas') -----
>  addPragma: aPragma
> +     properties := self properties copyWith: aPragma!
> -     properties := properties copyWith: aPragma!
>
> Item was changed:
>  ----- Method: Parser>>method:context:encoder: (in category  
> 'expression types') -----
>  method: doit context: ctxt encoder: encoderToUse
>       " pattern [ | temporaries ] block => MethodNode."
>
>       | sap blk prim temps messageComment methodNode |
> -     properties := AdditionalMethodState new.
>       encoder := encoderToUse.
>       sap := self pattern: doit inContext: ctxt.
>       "sap={selector, arguments, precedence}"
> +     self properties selector: (sap at: 1).
> -     properties selector: (sap at: 1).
>       encoder selector: (sap at: 1).
>       (sap at: 2) do: [:argNode | argNode beMethodArg].
>       doit ifFalse: [self pragmaSequence].
>       temps := self temporaries.
>       messageComment := currentComment.
>       currentComment := nil.
>       doit ifFalse: [self pragmaSequence].
>       prim := self pragmaPrimitives.
>       self statements: #() innerBlock: doit.
>       blk := parseNode.
>       doit ifTrue: [blk returnLast]
>               ifFalse: [blk returnSelfIfNoOther: encoder].
>       hereType == #doIt ifFalse: [^self expected: 'Nothing more'].
>       self interactive ifTrue: [self removeUnusedTemps].
>       methodNode := self newMethodNode comment: messageComment.
>       ^methodNode
>               selector: (sap at: 1)
>               arguments: (sap at: 2)
>               precedence: (sap at: 3)
>               temporaries: temps
>               block: blk
>               encoder: encoder
>               primitive: prim
>               properties: properties!
>
> Item was changed:
>  ----- Method:  
> MethodNode 
> >>selector:arguments:precedence:temporaries:block:encoder:primitive:  
> (in category 'initialize-release') -----
>  selector: selOrFalse arguments: args precedence: p temporaries:  
> temps block: blk encoder: anEncoder primitive: prim
> +     
> +     self
> +             selector: selOrFalse
> +             arguments: args
> +             precedence: p
> +             temporaries: temps
> +             block: blk encoder:
> +             anEncoder
> +             primitive: prim
> +             properties: AdditionalMethodState new.!
> -     "Initialize the receiver with respect to the arguments given."
> -
> -     encoder := anEncoder.
> -     selectorOrFalse := selOrFalse.
> -     precedence := p.
> -     arguments := args.
> -     temporaries := temps.
> -     block := blk.
> -     primitive := prim!
>
> Item was changed:
>  ----- Method: Parser>>pragmaPrimitives (in category 'pragmas') -----
>  pragmaPrimitives
>       | primitives |
> +     self properties isEmpty ifTrue:
> -     properties isEmpty ifTrue:
>               [^0].
>       primitives := properties pragmas select:
>                                       [:pragma|
>                                       self class primitivePragmaSelectors 
> includes: pragma keyword].
>       primitives isEmpty ifTrue:
>               [^0].
>       primitives size > 1 ifTrue:
>               [^self notify: 'Ambigous primitives'].
>       ^self perform: primitives first keyword withArguments: primitives  
> first arguments!
>
>


_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to