Re: Porting to Darwin

talksmall <[email protected]> Tue, 1 Jul 2008 01:24:31 -0700 (PDT)
Newsgroups gmane.comp.lang.smalltalk.strongtalk
Message-ID <85d8adec-5afa-4bf3-8f2b-04c7759810c4@z66g2000hsc.googlegroups.com>
On Jul 1, 7:10 am, Colin Putney <[email protected]> wrote:
> On 30-Jun-08, at 10:52 PM, Brian de Alwis wrote:
> > On Jun 30, 7:42 pm, Colin Putney <[email protected]> wrote:
> >> Shouldn't be too difficult. I'm not a VM hacker, but if you guys get
> >> Strongtalk running on Darwin, I can port Monticello.
>
> > That would be cool.  I took a quick gander at the Monticello2 package
> > on source.wiresong.ca/mc, and the fileins make reference to Squeak
> > classes like Notification.
>
> Yes, there are bound to be quite a few Squeakisms in the code. I'm
> currently working on a port to Gemstone, which is helping to identify
> and isolate them, but Gemstone has quite a bit of the Squeak
> environment present, since several packages of Squeak origin have
> already been ported.
>
> Usually, porting Squeak code to another Smalltalk involves porting
> parts of the Squeak libraries as well. With Strongtalk we have an
> opportunity to go the other way as well, since the Strongtalk license
> is compatible with the licenses of Monticello and Squeak.
>
> Colin

The SUnit code I ported over from CampSmalltalk was the Squeak
version. There were a number of issues (not least the differences in
filein formats), but non was insurmountable. The biggest obstacle was
the TestRunner. Obviously none of the Squeak UI framework classes was
present so this had to be largely rewritten.

Of course SUnit is a much smaller codebase, and I would expect more
issues from a Monticello port. The Strongtalk Smalltalk code is
relatively sparse in the protocol that it supports. I haven't done a
comprehensive comparison against ANSI, but you can expect quite a few
methods that you think should be there to be missing. Not a major
problem most of the time, 'cos we can just implement them. Just
something to be aware of. Any reflection stuff in particular is highly
likely to differ. Strongtalk uses Mirrors to perform reflection
(geddit?). This means no instVarAt: (for one thing), which is a
violation of encapsulation anyway, and a number of other capabilities
are embedded in the Mirror hierarchy somewhere. Performs are supported
though.

Getting a usable environment on Darwin might be tricky though. The
critical step will be the UI implementation. I've tried developing
without a UI via a text editor and fileins, and it's no fun. For the
time being I would recommend holding one's nose and doing Smalltalk
development in Windows.

Regards, Steve
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Strongtalk-general" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [email protected]
For more options, visit this group at http://groups.google.com/group/strongtalk-general?hl=en
-~----------~----~----~----~------~----~------~--~---