looks like it's using the new scheme. we should test it at least. Mike
On Monday, October 5, 2009, Stéphane Ducasse <[email protected]> wrote: > > > 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 > _______________________________________________ Pharo-project mailing list [email protected] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
