[Seaside] VW Port

Pennell, David DPennell at quallaby.com
Mon May 12 09:54:38 CEST 2003


>> I have ported Seaside 2.3b to VisualWorks 7.

> Wonderful news.  It would be great if we could coordinate a cross-dialect
2.3 release.

>> I'm looking for suggestions on the most straightforward way to track 
>> changes to the Squeak version of Seaside.

> What changes did you need to make to the Squeak source to get it to work?
The things I know would be issues:


> - the use of {} syntax (I've tried to eliminate this in recent commits)

Yes.

> - the use of _ instead of := (fixable with a simple search and replace)

You can't safely fix this with search and replace because '_' is a
legitimate string (and IIRC, there are some)

> - the Seaside/Session-Backtracking and Seaside/Base-Connections categories
would need new implementations

I would have to double-check, but I believe that the
Seaside/Session-Backtracking changes are minimal.
Seaside/Base-Connections has essentially been replaced with a mapping to the
recently introduced VW Web Toolkit.
Most of this is pretty close to Cees's original port.

> - no doubt WABrowser, at least, doesn't work, and some of the other tools
as well - profiling, etc.

I haven't attempted to port any of the tools.  The "New Session" and
"Configure" toolbar links work, but none of the others do.   

> What else did you come across?  Depending on how much needed to change for
the port, we may be able to come up with a semi-automated process for
> generating a VW parcel from the Squeak source... I would love to have the
VW port kept as much in sync as possible.

VW Namespaces.  The class creation message is sent to the namespace:

Smalltalk.Seaside defineClass: #Continuation
	superclass: #{Core.Object}
	indexedType: #none
	private: false
	instanceVariableNames: 'stack '
	classInstanceVariableNames: ''
	imports: ''
	category: 'Seaside/Session-Backtracking'

I added a Squeak style class creation method to aid filing in code.  If you
ever start using class comments, that further breaks file in and would need
some more work.  Somebody mentioned Monticello - perhaps a port of this to
VW might simplify this.

Lots and lots of dependencies on Squeak core class extensions.  I started a
Squeak-Compatibility package for these, but I need to move some of the
Squeak compatibility code that has crept into my companies class library
into this package before I can publish something.

Some Squeak classes:
CharacterSet
LimitedWriteStream
PackageInfo
UUID (I subclassed DST.NCSuuid, but that means that anybody that needs
Seaside on VW will have to include one or more DST (CORBA) parcels).
WeakSet (I did a very fast hack by subclassing VW's WeakDictionary)


I'm sure there were more, but this gives you some flavor.

-david







More information about the Seaside mailing list