Initial core port of "Squeak Traits"
Brian Rice
water at tunes.org
Thu Nov 24 09:43:57 PST 2005
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
I have pushed some patches which fix the issues with #services. One
new method for TraitExclusion relies on mapReject:, defined in an
auxiliary patch.
On Nov 24, 2005, at 9:31 AM, Brian Rice wrote:
> On Nov 24, 2005, at 6:21 AM, Márton Sasvári (IJ/ETH) wrote:
>
>> I was reading through the new traits code the other day and got
>> stuck on the following lines:
>>
>> ---
>> ts@(TraitSum traits) services [Set new].
>>
>> ts@(TraitSum traits) services
>> [ts bases reduce: [| :b1 :b2 | b1 services union: b2 services]].
>> ---
>>
>> and later
>>
>> ---
>> to@(TraitOverride traits) services
>> "Act like the overlay itself."
>> [to overlay services].
>>
>> to@(TraitOverride traits) services
>> "Apply the overlay to the underlying Trait."
>> [to overlay services over: to base services].
>> ---
>>
>> isn't this a rebinding of the method loosing the first definition
>> immediately ? What's going on here if not ?
>
> Oh, that's just a mistake from my initially defining a #services
> vs. #fullServices (first-level vs. recursive tallying up of
> services). I changed the sense of #services to mean #fullServices,
> and merged the methods; obviously I forgot to clean that one up.
> The second method is the correct one.
>
>> Actually I was looking for the #services method definitions to
>> find out the purpose why they aren't defined as a slot on Trait
>> right away as it is implicitly assumed that the answer to
>> #services will undestand #keysDo:, #keysAndValuesDo: etc., but I
>> gave up at this point.
>
> Because TraitComponent plays that role of being a concrete holder
> of services. Everything else is an operation on those (+, -, over:,
> excluding:). And yes, Trait newFrom: Mapping, or Mapping as: Trait
> should make a new TraitComponent; at least, I need to make sure
> that's easy enough to do.
- --
- -Brian
http://tunes.org/~water/brice.vcf
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (Darwin)
iD8DBQFDhfvdPVkAvLW1zf4RAh42AJ9kTiUdVD0RXSNVS0AxG0dRaaLU3QCZAVbE
n17ONARBpiNEdZXk8RoUdU0=
=OkH8
-----END PGP SIGNATURE-----
More information about the Slate
mailing list