[self-interest] Hi, Self for Linux compiling Self to LLVM ...

Jan-Paul Bultmann janpaulbultmann at me.com
Mon Sep 5 07:26:40 UTC 2011

On Sep 5, 2011, at 8:40 AM, Mildred Ki'Lya wrote:

> Hi again, thanks for replying ...
> On 5 September 2011 03:45, Russell Allen <mail at russell-allen.com> wrote:
> > I am working in my spare time in a compiler for the Lisaac language.
> > The Lisaac language tried to mimic Self (poorly in my very recent
> > opinion) using Eiffel concepts like static typing. You can find it at
> > https://github.com/mildred/Lysaac [1]
> Interesting. I haven't played much with Lisaac. It is still being 
> developed?
> I am the one who is re-developing the Lisaac compiler (hence the Lysaac name) but I also worked on the main Lisaac compiler with Benoît (the author) and few others. Currently, the project is very quiet, but don't be fearful, the project was always very quiet with Benoît doing almost all the work. Still, there is a thesis ongoing with the Lisaac language.
> The problem is that I might forget about Lisaac if I get to work with Self :)
> > I started reading out Self documentation because while implementing
> > inheritance in Lisaac, I find it poorly defined. I wanted to
> > understand the source of the prototype based inheritance. Doing so, I
> > discovered a completely new and interesting world. Since very
> > recently, my new goal is to create a very simple compiler for Self
> > (that I hope compatible with current Self code) that targets LLVM. I
> > don't plan on doing complicated optimization, just to have a compiler
> > to get started. Then bootstrap the compiler by rewriting it in Self,
> > and then, finally, improving on it. My dream is to get a system where
> > the Self VM could be written in the same dialect of Self. Not in
> > C/C++/Whatever, and not in  restricted dialect.
> If you haven't already, you should look at the (unfinished) Klein 
> system at https://github.com/AdamSpitz/klein and talk to Adam Spitz. It 
> has a very similar aim (Self written in Self) but without the use of 
> Over the last two days, I found out about Klein, but the project seems dead, isn't it? I just looked at the source tree on github and there are C source files, If it's supposed to be written in Self, then I don't understand their purpose.
The C code is there for the Debugger, Klein was designed to be able to Run on one Machine and Debug another, to do this it needs a little helper if anything goes wrong and you, for example break the JIT, in this case you need to fall back to a other native piece of code that is written in C, but I think if Klein was finished it would be easy to write that debug server in Self.
> As far as I can think, the VM itself can't be written in a language that requires a VM. Or else, we'd need to maintain that VM itself. The only way is to get a compiler for Self.
You underestimate the Self System a bit here, it was the one that developed the Java JIT Hotspot stuff, before it it became that.
Klein is basically a Self compiler, yes it is also a VM, but with JIT now supported by most other languages it's not so uncommon anymore ;)
What it does when bootstrapping the VM is basically emitting the JIT code and then deep freezing it by statical linking and exporting to a file.

> > So, right now, I'm lookinf for parsers for Self, but I might do it
> > myself. I don't think the syntax is that complicated.
> There are a couple of edge cases which might be tricky. There is 
> already a parser for Self written in Self, but it is a little tricky to 
> file in because it requires the parseKit module from Klein. Basically 
> you have to read in the applications/parseKit/parseKit.self file from 
> the Klein tree and then the applications/selfParser/selfParser.self file 
> from the main Self tree.
> Otherwise, a port of Alex Warth's OMeta to Self ( 
> http://www.tinlizzie.org/ometa/ ) would be a really useful addition.
> Thank you for the pointers, I already started my own compiler based on the syntax rules on the Self website, but these might be interesting.
Afaik there is also a Parser generator written in Self in the Klein bundle, I don't know if it is mango or yoda ^^, one of the two ;)
> I started coding at https://github.com/mildred/SelfC
> I am using Ruby, mainly because I know this language, and I can code fast.

Funny, seems like its the summer of reviving cool languages :D,
I'm currently bootstrapping Io for the LLVM using Ruby, with the goal of creating a Self succesor, with it's spirit. Putting back some cleanliness it lost during implementation imho and gaining features of Io like the Actor model, and Code as Data AST manipulation, while porting the cool stuff from Self, like the Image and Morphic.
Glad to see someone is putting some momentum on Self, poor Russel he was doing everything on his own :D

Cheers, Jan
> Thank you,
> Mildred 
> -- 
> Mildred Ki'Lya
> http://mildred.fr

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.selflanguage.org/pipermail/self-interest/attachments/20110905/6ed66f78/attachment.html>

More information about the Self-interest mailing list