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 |
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 |
Free forum by Nabble | Edit this page |