A new version of Monticello was added to project The Inbox:
http://source.squeak.org/inbox/Monticello-cmm.579.mcz ==================== Summary ==================== Name: Monticello-cmm.579 Author: cmm Time: 18 December 2013, 10:54:24.31 am UUID: 0d53b5d5-4955-4746-ab5d-9fab8fad410b Ancestors: Monticello-nice.578 - When installing classes, ask EnvironmentRequest for the Environment to create in. This lets MCEnvironmentLoadTest>>#testLoadIntoEnvironment pass. =============== Diff against Monticello-nice.578 =============== Item was changed: ----- Method: MCClassDefinition>>createClass (in category 'installing') ----- createClass | superClass class composition | superClass := superclassName == #nil ifFalse: [Smalltalk at: superclassName]. [class := (ClassBuilder new) name: name + inEnvironment: (EnvironmentRequest signal ifNil: [superClass environment]) - inEnvironment: superClass environment subclassOf: superClass type: type instanceVariableNames: self instanceVariablesString classVariableNames: self classVariablesString poolDictionaries: self sharedPoolsString category: category. ] on: Warning, DuplicateVariableError do:[:ex| ex resume]. "The following is written to support traits unloading" composition := self traitComposition ifNil: [Array new] ifNotNil: [:traitComposition | Compiler evaluate: traitComposition]. (composition isCollection and:[composition isEmpty and:[class traitComposition isEmpty]]) ifFalse:[ class setTraitComposition: composition asTraitComposition. ]. composition := self classTraitComposition ifNil: [Array new] ifNotNil: [:traitComposition | Compiler evaluate: traitComposition]. (composition isCollection and:[composition isEmpty and:[class class traitComposition isEmpty]]) ifFalse:[ class class setTraitComposition: composition asTraitComposition. ]. ^class! |
On 18 December 2013 16:54, <[hidden email]> wrote:
> A new version of Monticello was added to project The Inbox: > http://source.squeak.org/inbox/Monticello-cmm.579.mcz > > ==================== Summary ==================== > > Name: Monticello-cmm.579 > Author: cmm > Time: 18 December 2013, 10:54:24.31 am > UUID: 0d53b5d5-4955-4746-ab5d-9fab8fad410b > Ancestors: Monticello-nice.578 > > - When installing classes, ask EnvironmentRequest for the Environment to create in. > This lets MCEnvironmentLoadTest>>#testLoadIntoEnvironment pass. > > =============== Diff against Monticello-nice.578 =============== > > Item was changed: > ----- Method: MCClassDefinition>>createClass (in category 'installing') ----- > createClass > | superClass class composition | > superClass := superclassName == #nil ifFalse: > [Smalltalk at: superclassName]. > [class := (ClassBuilder new) > name: name > + inEnvironment: (EnvironmentRequest signal ifNil: [superClass environment]) > - inEnvironment: superClass environment > subclassOf: superClass > type: type > instanceVariableNames: self instanceVariablesString > classVariableNames: self classVariablesString > poolDictionaries: self sharedPoolsString > category: category. > ] on: Warning, DuplicateVariableError do:[:ex| ex resume]. Clearly when I took a run at implementing this, I went on a serious wild goose chase or something. Because this looks like the obvious (in hindsight) way to implement loading. frank |
In reply to this post by commits-2
This establishes a new dependency from Monticello on Environments, but
it allows one of the Environments tests to pass. I do not wish to create any new problems or crash trunk update. Colin and all, could you please review? On Wed, Dec 18, 2013 at 10:54 AM, <[hidden email]> wrote: > A new version of Monticello was added to project The Inbox: > http://source.squeak.org/inbox/Monticello-cmm.579.mcz > > ==================== Summary ==================== > > Name: Monticello-cmm.579 > Author: cmm > Time: 18 December 2013, 10:54:24.31 am > UUID: 0d53b5d5-4955-4746-ab5d-9fab8fad410b > Ancestors: Monticello-nice.578 > > - When installing classes, ask EnvironmentRequest for the Environment to create in. > This lets MCEnvironmentLoadTest>>#testLoadIntoEnvironment pass. > > =============== Diff against Monticello-nice.578 =============== > > Item was changed: > ----- Method: MCClassDefinition>>createClass (in category 'installing') ----- > createClass > | superClass class composition | > superClass := superclassName == #nil ifFalse: > [Smalltalk at: superclassName]. > [class := (ClassBuilder new) > name: name > + inEnvironment: (EnvironmentRequest signal ifNil: [superClass environment]) > - inEnvironment: superClass environment > subclassOf: superClass > type: type > instanceVariableNames: self instanceVariablesString > classVariableNames: self classVariablesString > poolDictionaries: self sharedPoolsString > category: category. > ] on: Warning, DuplicateVariableError do:[:ex| ex resume]. > > "The following is written to support traits unloading" > composition := self traitComposition ifNil: [Array new] ifNotNil: [:traitComposition | Compiler evaluate: traitComposition]. > (composition isCollection and:[composition isEmpty and:[class traitComposition isEmpty]]) ifFalse:[ > class setTraitComposition: composition asTraitComposition. > ]. > > composition := self classTraitComposition ifNil: [Array new] ifNotNil: [:traitComposition | Compiler evaluate: traitComposition]. > (composition isCollection and:[composition isEmpty and:[class class traitComposition isEmpty]]) ifFalse:[ > class class setTraitComposition: composition asTraitComposition. > ]. > > ^class! > > |
On 18 December 2013 16:58, Chris Muller <[hidden email]> wrote:
> This establishes a new dependency from Monticello on Environments, but > it allows one of the Environments tests to pass. (I'm OK with Monticello depending on Environments, just for the record. Just update the relevant PackageDependencyTest, please.) > I do not wish to create any new problems or crash trunk update. Colin > and all, could you please review? Levente and Colin understand Environments much more deeply than I do, but as I said earlier, it seems to be obviously correct. frank > On Wed, Dec 18, 2013 at 10:54 AM, <[hidden email]> wrote: >> A new version of Monticello was added to project The Inbox: >> http://source.squeak.org/inbox/Monticello-cmm.579.mcz >> >> ==================== Summary ==================== >> >> Name: Monticello-cmm.579 >> Author: cmm >> Time: 18 December 2013, 10:54:24.31 am >> UUID: 0d53b5d5-4955-4746-ab5d-9fab8fad410b >> Ancestors: Monticello-nice.578 >> >> - When installing classes, ask EnvironmentRequest for the Environment to create in. >> This lets MCEnvironmentLoadTest>>#testLoadIntoEnvironment pass. >> >> =============== Diff against Monticello-nice.578 =============== >> >> Item was changed: >> ----- Method: MCClassDefinition>>createClass (in category 'installing') ----- >> createClass >> | superClass class composition | >> superClass := superclassName == #nil ifFalse: >> [Smalltalk at: superclassName]. >> [class := (ClassBuilder new) >> name: name >> + inEnvironment: (EnvironmentRequest signal ifNil: [superClass environment]) >> - inEnvironment: superClass environment >> subclassOf: superClass >> type: type >> instanceVariableNames: self instanceVariablesString >> classVariableNames: self classVariablesString >> poolDictionaries: self sharedPoolsString >> category: category. >> ] on: Warning, DuplicateVariableError do:[:ex| ex resume]. >> >> "The following is written to support traits unloading" >> composition := self traitComposition ifNil: [Array new] ifNotNil: [:traitComposition | Compiler evaluate: traitComposition]. >> (composition isCollection and:[composition isEmpty and:[class traitComposition isEmpty]]) ifFalse:[ >> class setTraitComposition: composition asTraitComposition. >> ]. >> >> composition := self classTraitComposition ifNil: [Array new] ifNotNil: [:traitComposition | Compiler evaluate: traitComposition]. >> (composition isCollection and:[composition isEmpty and:[class class traitComposition isEmpty]]) ifFalse:[ >> class class setTraitComposition: composition asTraitComposition. >> ]. >> >> ^class! >> >> > |
Free forum by Nabble | Edit this page |