+1 Keeping things uniform is a plus in this case, even though we might lose some flexibility.
Doru On Sun, Jun 30, 2013 at 9:01 AM, Stéphane Ducasse <stephane.duca...@inria.fr > wrote: > Ok I slept and now my brain is working. > I think that having classTrait and trait together is important because > else it would be the mess when > you have a class method that uses an instance methods (both define in a > trait). > So conceptually this is one trait like in smalltalk you have one class and > its metaclass. > > The model is similar and to represent class trait we have a ClassTrait > class. > > Stef > > > On Jun 30, 2013, at 1:04 AM, Camillo Bruni <camillobr...@gmail.com> wrote: > > > so let's discuss that on monday with the trait specialists Damien et > Sebastian :) > > > > On 2013-06-29, at 23:34, Igor Stasenko <siguc...@gmail.com> wrote: > >> yes, i don't know if it good or bad, but i'd rather prefer that traits > >> applied to Behavior, > >> but not to Class (which has two entangled behaviors). But maybe for > >> human comprehension it is better.. > >> but not for implementing, because it certainly makes model more complex. > >> > >> On 29 June 2013 22:52, Camillo Bruni <camillobr...@gmail.com> wrote: > >>> > >>> On 2013-06-29, at 22:32, Igor Stasenko <siguc...@gmail.com> wrote: > >>> > >>>> On 29 June 2013 21:21, Stéphane Ducasse <stephane.duca...@inria.fr> > wrote: > >>>>> > >>>>> On Jun 29, 2013, at 8:19 PM, Igor Stasenko <siguc...@gmail.com> > wrote: > >>>>> > >>>>>> On 29 June 2013 20:12, Camillo Bruni <camillobr...@gmail.com> > wrote: > >>>>>>> Working on the new class builder I have a hard time figuring out > the full trait > >>>>>>> semantics. > >>>>>>> > >>>>>>> If I use a trait on instance side, does that imply that its > classTrait on the > >>>>>>> metaclass? > >>>>> > >>>>> No. I do not think so (I will have to think). > >>>>> Normally Trait and ClassTrait are two different classes. NOw I do > not remember if a trait is composed > >>>>> of a classTrait too. > >>>>> > >>>> Trait has 'classTrait' > >>> > >>> yes, but the strange part is, that if you use a Trait on the > instance-side it > >>> will automatically install the class trait as well. > >>> > >>> ClassDescription subclass: #Class > >>> uses: TClass > >>> ... > >>> > >>> and the users > >>> > >>> TClass users => an IdentitySet(Class) > >>> TClass classTrait users => an IdentitySet(Class class) > >>> > >>> so in this case it implies that when you use a Trait on the instance > side it will > >>> apply also it's classTrait to the class side. So is it ok then to > enforce that in > >>> the new class builder? > >>> > >>> Currently you can do the following in the new class builder: > >>> > >>> PharoClassInstaller make: [:builder| > >>> builder > >>> superclass: Object; > >>> name: 'Foo'; > >>> traitComposition: TClass ] > >>> > >>> which will explicitely NOT install `TClass classTrait` in `Foo class`. > >>> Does this behavior make sense? > >> > >> > >> > >> -- > >> Best regards, > >> Igor Stasenko. > >> > > > > > > > -- www.tudorgirba.com "Every thing has its own flow"