No subject

Urs Hoelzle Urs.Hoelzle at Eng.Sun.COM
Tue Aug 18 20:52:53 UTC 1992


   My question: Is anyone porting Self to some other platform, maybe even
   to the 386? I have Linux running on a 486/33 w/ 16 Meg RAM and 500 Meg
   HD, which should be a workable system for Self; I have gcc-2.2.2 and
   libg++-2.2, so it should be possible to compile the virtual machine
   (judging from the README's).

   BUT: I have the feeling that the compiler really generates native
   SPARC code and so one would have to write a completely new backend and
   assembler for the 386.  I guess that would be a *major* project!?? Is
   the compiler/assembler written in Self or C++? If Self is tied to the
   SPARC achitecure and inherently non=portable, then that would
   nagatively influence the impact that this exciting software could
   have.

To cite from a previous mail: We're certainly aware of that problem,
and there is no intention of restricting it to the Sparc architecture.
However, we currently do not have the manpower to port Self to other
platforms.

In principle, the effort required to port Self is reasonable (say, one
or two months).  Today, the required effort is probably larger (for
"outsiders") because our VM is not well documented, especially the
details of the run-time system that you need to know for porting.
Hopefully, future releases will include a porting guide or something
similar.

   How about using the gcc backend?

We have considered that, but it's not as easy as it seems.  One
problem is that gcc's backend needs to be taught about garbage
collection.  Some people at UMass (Eliot Mass' group) are doing this
for Modula-3, but as far as I know it's not working yet (and they have
put a lot of effort in it).  The other problem is that gcc might be
too slow - in Self, compilation happens at run-time, so you'd like to
keep compile pauses in the millisecond area, and I'm not sure if gcc
as a traditional batch compiler is up to that.

Hope that helps,

-Urs



More information about the Self-interest mailing list