The Inbox: Monticello-cmm.579.mcz

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

The Inbox: Monticello-cmm.579.mcz

commits-2
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!


Reply | Threaded
Open this post in threaded view
|

Re: The Inbox: Monticello-cmm.579.mcz

Frank Shearar-3
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

Reply | Threaded
Open this post in threaded view
|

Re: The Inbox: Monticello-cmm.579.mcz

Chris Muller-3
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!
>
>

Reply | Threaded
Open this post in threaded view
|

Re: The Inbox: Monticello-cmm.579.mcz

Frank Shearar-3
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!
>>
>>
>