[squeak-dev] Re: Cuis-Squeak portability.

Juan Vuletich juan at jvuletich.org
Thu Jun 11 12:16:23 UTC 2009


Klaus D. Witzel wrote:
> On Wed, 10 Jun 2009 23:45:09 +0200, Juan Vuletich wrote:
>
>> Hi.
>>
>> R. Clayton wrote:
>>> If I file out Collections-SkipLists from Cuis (1.0) and try to file 
>>> in the
>>> result to Squeak (3.10 beta), I get an error:
>>>
>>>   Nothing more expected ->classDefinition: #SkipList category: 
>>> #'Collections-SkipLists'
>>>
>>> Skip lists is just an example; filing in to Squeak from Cuis doesn't 
>>> work for
>>> anything I tried.  This is broken, right?
>>>
>>
>> Squeak change sets do class definitions via doits. In addition to the 
>> doIt, Cuis supports a new type of change, ClassDefinition.
>
> How do you mean that? It is just a line with invalid syntax in a file 
> that pretends to be part of the Smalltalk world (ya know: receiver and 
> message selector and things). Example generated by Cuis:
>
> !classDefinition: #Imports category: #'System-Support'!
>
> Wouldn't it be easier to stick with the Smalltalk way of formulating 
> messages, like
>
> !nil classDefinition: #Imports category: #'System-Support'!
>
> and then supply an implementor of #classDefinition:category: which is 
> also good documentation (ya know: alt-m and alt-W and things).
>
> ?

In Squeak, change sets support several types: #method, #classComment, 
#doit, #preamble. I don't like #doIts because a ChangeList can't do 
'remove up-to-date versions' with them. So I just added 
#classDefinition. Some day I'd also add #methodRemove and #classRemove 
for the same reasons.
>
>> But the doIt is also generated.
>> So what you need to do is to remove those changes that start 
>> 'preamble: classDefinition'. After that, everything should work ok. 
Cheers,
Juan Vuletich



More information about the Squeak-dev mailing list