passing non-block to #do: freezes slate

Brian Rice water at tunes.org
Tue May 16 08:04:00 PDT 2006


On May 15, 2006, at 7:03 PM, Timmy Douglas wrote:
> Brian Rice <water at tunes.org> writes:
>> On May 15, 2006, at 4:49 PM, Brian T. Rice wrote:
>>
>> Okay, now that I've tested it, I see that it's a parser error, NOT a
>> VM error:
>>
>> Slate 1> #(1 2 3) do: {1. 2. 3}.
>> The method #applyTo: was not found for the following arguments:
>> {{...}. {...}}
>>
>> So basically the problem is that a block header in an unexpected
>> lexical context (specifically, a literal array, since I can't
>> reproduce it in a couple of other situations) is not handled right
>> and should be fixed. I'll see if I can fix this, but no guarantees.
>
> ok thanks for looking into it. The thing that's sort of stopping me
> from going further now is the #addDynamicSlot: thingy with the random
> -2.0002 values appearing out of no where.

I'll take a look.

> If there were two things that could be done to the manual to give me a
> better understanding of the language, it'd be making Section 2.1.3
> Inheritance describe how delegation slots work in a little more
> detail, and also a little more about the internals of traits and
> traits windows (sec. 3.4). I guess these are two features that are
> pretty exclusive to slate.

There are very /few/ internals. The gist is: lookup is done in depth- 
first style. Some objects have an "object-meta transition" flag set  
in their maps to prevent lookup from crossing them... those are the  
windows. The windows also have delegation slots to all supertypes of  
the given type in linear order (so that the supertypes may be re- 
ordered per subtype). This shows you the exact lookup order.

The point of the traitsWindow is to mark the object-meta transition  
and to allow a flattening of the inheritance graph per child. These  
are non-trivial features and fixed several bugs with delegation.

> I could help out with these things but I'm not sure where to start
> looking.

Inheritance source: src/lib/derivable.slate
Manual source: doc/progman.lyx

PS: addSlotAndReturnValue:valued: is obsolescent, as I stated  
earlier. Please replace those calls with define: #name -> value or  
just addSlot:valued: if you are feeling sloppy.

--
-Brian
http://tunes.org/~water/brice.vcf

-------------- next part --------------
A non-text attachment was scrubbed...
Name: PGP.sig
Type: application/pgp-signature
Size: 186 bytes
Desc: This is a digitally signed message part
Url : /archives/slate/attachments/20060516/049bb6b2/PGP.pgp


More information about the Slate mailing list