Fwd: [squeak-dev] The Trunk: Compiler-jcg.87.mcz

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

Fwd: [squeak-dev] The Trunk: Compiler-jcg.87.mcz

Stéphane Ducasse


Begin forwarded message:

> From: [hidden email]
> Date: October 1, 2009 8:21:58 AM GMT+02:00
> To: [hidden email]
> Subject: [squeak-dev] The Trunk: Compiler-jcg.87.mcz
> Reply-To: [hidden email]
>
> 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
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Fwd: [squeak-dev] The Trunk: Compiler-jcg.87.mcz

Michael Roberts-2
looks like it's using the new scheme. we should test it at least.

Mike

On Monday, October 5, 2009, Stéphane Ducasse <[hidden email]> wrote:

>
>
> Begin forwarded message:
>
>> From: [hidden email]
>> Date: October 1, 2009 8:21:58 AM GMT+02:00
>> To: [hidden email]
>> Subject: [squeak-dev] The Trunk: Compiler-jcg.87.mcz
>> Reply-To: [hidden email]
>>
>> 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
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>

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