Re: Progress on Darwin/Linux port?

talksmall <[email protected]> Wed, 24 Jun 2009 14:12:11 -0700 (PDT)
Newsgroups gmane.comp.lang.smalltalk.strongtalk
Message-ID <718c8c98-5211-4d1c-822e-20bcf886925a@y38g2000vbl.googlegroups.com>
Hi Dave,
On Jun 24, 6:35=A0pm, Dave Mason <[email protected]> wrote:
> On Jun 23, 6:34=A0pm, talksmall <[email protected]> wrote:
>
> That's great! =A0The reason I haven't responded in the past couple weeks
> is that I've been cleaning stuff up before "vacation". =A0Which will end
> with ESUG in France in September, maybe see some of you there.



>
> > As with the Linux port this will be a script-only
> > version until someone (possibly me) ports UI support for OSX and
> > Linux.
>
> One of my projects over the summer is to make a minimal GUI that runs
> through Firefox, i.e. that uses only the network interface, and none
> of the OS-specific screen handling. =A0I'm working to get this working
> first on Pharo/Squeak, and then will move it to Strongtalk. =A0If that
> is running on OSX by then, so much the better. =A0To the extent
> possible, moving the primitives interface of Strongtalk to mirror that
> of Squeak would make some porting much easier.

A pre-req for this is some kind of socket support which Strongtalk
doesn't have at the moment.

It shouldn't really be necessary to rewrite the Strongtalk primitive
interface in order to port over Squeak code, provided that the code
you are porting is not tightly coupled to the low-level details of the
Squeak implementation (and that would be a bad idea ... right?).

Appropriately layered code is much easier to port than poorly designed
code. That is one of the reasons that porting Strongtalk to other x86
platforms has been reasonably easy - few parts of the VM directly
depend on the OS, they are well-encapsulated and the rest of the VM
depends, in the main, on an abstraction to the OS-layer.

The same cannot be said of the dependency on the instruction set
architecture. Porting Strongtalk over to another ISA - say ARM, or
PowerPC - would be much harder. Similarly, porting to 64-bit will
involve a fair amount of work. There are lots of places with implicit
assumptions about the size of a pointer and its equivalence to the
size of an integer, and the built-in macro assembler is not 64-bit
aware.

Once the core porting work is out of the way, I have a few competing
projects to pick between - a UI port for OSX and Linux (probably GTK+
based), porting Eliot Miranda's Aliens FFI interface from Squeak,
porting some NewSpeak stuff, enhancing the still very basic UI-level
debugger, investigating the "new backend" - a more sophisticated code
generator for the recompiler that generates code that is about twice
as fast as the current "old" code generator, GC finalization
support, ... &c. So much to do, so little time, oh, and a day job too
- they tend not to want to pay me if I don't do anything for them!

> As for my expertise, I have taught C++ in an OO course, but have
> little experience actually building programs.

C++ knowledge is only really required if you want to poke around in
the VM, in particular the recompiler from which Strongtalk gains its
performance. Now that the bulk of the VM side of the OSX porting work
is done, there should be little need to use C++ unless you need to
debug, or you just want to see what makes the VM tick. Even then, the
VM spends more time in assembly code than in C++ - either in the
interpreter or in compiled nmethod versions of Smalltalk methods. The
most important remaining pieces of the OSX port are Smalltalk coding
to fix up the DLL calls for OSX so that they conform with the
libraries under OSX.

Once I have tidied up the port so that all of the tests past (both ST
and VM-level tests) then I will upload binary versions of the VM,
image and sources for each of the platforms. Hopefully that will
enable people to get involved without having to build the VM first.
For the time being that will mean command line scripting for those on
OSX and Linux, but you can do quite a lot that way. Ruby, Perl and
Python hackers got along without IDE support for years. A nice project
for someone might be to build an OSProcess class in Smalltalk to allow
execution of external commands. The Squeak version would be a good
place to start.

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 strongtalk-general+unsubscrib=
[email protected]
For more options, visit this group at http://groups.google.com/group/strong=
talk-general?hl=3Den
-~----------~----~----~----~------~----~------~--~---