<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.2900.2180" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face=Arial size=2>Hello everybody.<BR>First of all, my apologies if
some of the comments were reported already.<BR>This week I started to play a
little with the Seaside port for Dolphin, and a few comments came to
mind:</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>1) When the current Seaside.pac is loaded, it
creates a circular dependency between Seaside and Dolphin, making it impossible
to save modifications or unload almost every package in the image. This is
because the package loose methods are no loaded as such. I've made 2 small
modifications to the class DolphinPackageExporter to (hopefully) solve this:
</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial
size=2>---<BR>DolphinPackageExporter>>fileOut<BR> self
fileOutPackageInformation.<BR> self fileOutClassNames.<BR> self
fileOutLooseMethodsNames. "added by me"<BR> self
fileOutPrerequisites.<BR> super
fileOut<BR>---<BR>DolphinPackageExporter>>fileOutLooseMethodsNames</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2> stream cr; cr; nextPutAll: 'package
methodNames'.</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2> self sortedMethods <BR> select: [:ref |
ref category first = $*]<BR> thenDo: [:ref |<BR> stream
<BR> cr; <BR> nextPutAll: 'add: ',
<BR> ref classSymbol printString,
<BR> ' -> ',
<BR> ref methodSymbol printString,
<BR> ';'].</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2> stream cr; nextPutAll:
'yourself.'.<BR>---</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>2) I have also added the
method<BR>---<BR>DolphinPackageExporter>>fileOutInitializerForClass:
aClass<BR> "do nothing"<BR>---</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>because the initialization was happening twice.
This, however, does not happen in the current Seaside.pac available from the
web, so maybe my Squeak image is a mess.</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>3) The package Seaside-Dolphin.pac contains the
method<BR>---<BR>Symbol>>isUnary<BR>^self argumentCount = 1<BR>---<BR>I
think it should say<BR>---<BR>Symbol>>isUnary<BR>^self argumentCount =
0<BR>---</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>I saw a manifestation of this possible error when I
tried to use scriptaculous in Dolphin.</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>4) While using scriptaculous, I detected what could
be a possible semantic difference in the class MessageSend. For instance, in the
method</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>SUAjax>>on: aSelector of:
anObject<BR> self<BR>
callback:<BR>
(MessageSend<BR>
receiver:
anObject<BR>
selector: aSelector)</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>aMessageSend is created, and then it's evaluated
with 1 argument. However, Dolphin seems to need the MessageSend to be created
with (at least) one argument in order to be correctly evaluated later, so I
changed it to </FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>SUAjax>>on: aSelector of:
anObject<BR> self<BR>
callback:<BR>
(MessageSend<BR>
receiver:
anObject<BR>
selector:
aSelector<BR>
argument: nil)</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>This was only a problem for scriptaculous, I didn't
see an error in Seaside due to this, but it seems to be something to be aware
of.</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>5) Finally, I exported scriptaculous using the
DolphinPackageExporter, and with minor (and trivial) fixes could make the
examples work. I added a class </FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>ScriptaculousVWInfo subclass:
#ScriptaculousDolphinInfo<BR> instanceVariableNames:
''<BR> classVariableNames: ''<BR> poolDictionaries:
''<BR> category: 'Scriptaculous-Platform'</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>which is pretty much c&p from
SeasideDolphinInfo, beeing the #packageName the only modification I made.
Although it worked, I guess my c&p is not the best approach, and perhaps
there are details to be considered when writting such a class.</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>Well, that's all. Seaside and Scriptaculous looks
like a lot of fun, by the way.</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>best regards<BR>martin</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV></BODY></HTML>