<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On Sep 5, 2011, at 8:40 AM, Mildred Ki'Lya wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">













<div style="background-color: rgb(255, 255, 255); position: static; z-index: auto; ">
<span style="display:none"> </span>



    <div id="ygrp-text"><p>Hi again, thanks for replying ...<br><br></p><div class="gmail_quote">On 5 September 2011 03:45, Russell Allen <span dir="ltr"><<a href="mailto:mail@russell-allen.com">mail@russell-allen.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left:1px #ccc solid;">



<span></span><br><div style="background-color:#fff;"><div><div><div><div class="im">
<br>
> I am working in my spare time in a compiler for the Lisaac language.<br>
> The Lisaac language tried to mimic Self (poorly in my very recent<br>
> opinion) using Eiffel concepts like static typing. You can find it at<br></div>
> <a href="https://github.com/mildred/Lysaac" target="_blank">https://github.com/mildred/Lysaac</a> [1]<br>
<br>
Interesting. I haven't played much with Lisaac. It is still being <br>
developed?</div></div></div></div></blockquote><div><br>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.<br>
<br>The problem is that I might forget about Lisaac if I get to work with Self :)<br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204);"><div style="background-color: rgb(255, 255, 255); position: static; z-index: auto; ">
<div><div><div><div class="im"><br>
<br>
> I started reading out Self documentation because while implementing<br>
> inheritance in Lisaac, I find it poorly defined. I wanted to<br>
> understand the source of the prototype based inheritance. Doing so, I<br>
> discovered a completely new and interesting world. Since very<br>
> recently, my new goal is to create a very simple compiler for Self<br>
> (that I hope compatible with current Self code) that targets LLVM. I<br>
> don't plan on doing complicated optimization, just to have a compiler<br>
> to get started. Then bootstrap the compiler by rewriting it in Self,<br>
> and then, finally, improving on it. My dream is to get a system where<br>
> the Self VM could be written in the same dialect of Self. Not in<br>
> C/C++/Whatever, and not in  restricted dialect.<br>
<br></div>
If you haven't already, you should look at the (unfinished) Klein <br>
system at <a href="https://github.com/AdamSpitz/klein" target="_blank">https://github.com/AdamSpitz/klein</a> and talk to Adam Spitz. It <br>
has a very similar aim (Self written in Self) but without the use of <br>
LLVM.<br></div></div></div></div></blockquote><div><br>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.<br></div></div></div></div></div></div></blockquote>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.<br><blockquote type="cite"><div style="background-color: rgb(255, 255, 255); position: static; z-index: auto; "><div id="ygrp-mlmsg" style="position:relative;"><div id="ygrp-msg" style="z-index: 1;"><div id="ygrp-text"><div class="gmail_quote"><div>
<br>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.</div></div></div></div></div></div></blockquote><div>You underestimate the Self System a bit here, it was the one that developed the Java JIT Hotspot stuff, before it it became that.</div><div>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 ;)</div><div>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.</div><br><blockquote type="cite"><div style="background-color: rgb(255, 255, 255); position: static; z-index: auto; "><div id="ygrp-mlmsg" style="position:relative;"><div id="ygrp-msg" style="z-index: 1;"><div id="ygrp-text"><div class="gmail_quote"><div><div class="im"><br>
<br><blockquote style="border-left: 1px solid rgb(204, 204, 204);" class="gmail_quote">
> So, right now, I'm lookinf for parsers for Self, but I might do it<br>
> myself. I don't think the syntax is that complicated.<br><br></blockquote>
</div><blockquote style="border-left: 1px solid rgb(204, 204, 204);" class="gmail_quote">
There are a couple of edge cases which might be tricky. There is <br>
already a parser for Self written in Self, but it is a little tricky to <br>
file in because it requires the parseKit module from Klein. Basically <br>
you have to read in the applications/parseKit/parseKit.self file from <br>
the Klein tree and then the applications/selfParser/selfParser.self file <br>
from the main Self tree.<br></blockquote>
<br><blockquote style="border-left: 1px solid rgb(204, 204, 204);" class="gmail_quote">
Otherwise, a port of Alex Warth's OMeta to Self ( <br><a href="http://www.tinlizzie.org/ometa/" target="_blank">http://www.tinlizzie.org/ometa/</a> ) would be a really useful addition.<br></blockquote><div><br>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.<br></div></div></div></div></div></div></div></blockquote>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 ;)<br><blockquote type="cite"><div style="background-color: rgb(255, 255, 255); position: static; z-index: auto; "><div id="ygrp-mlmsg" style="position:relative;"><div id="ygrp-msg" style="z-index: 1;"><div id="ygrp-text"><div class="gmail_quote"><div><div>
<br>I started coding at <a href="https://github.com/mildred/SelfC">https://github.com/mildred/SelfC</a><br>I am using Ruby, mainly because I know this language, and I can code fast.<br></div></div></div></div></div></div></div></blockquote><div><br></div>Funny, seems like its the summer of reviving cool languages :D,</div><div>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.</div><div>Glad to see someone is putting some momentum on Self, poor Russel he was doing everything on his own :D</div><div><br></div><div>Cheers, Jan</div><div><blockquote type="cite"><div style="background-color: rgb(255, 255, 255); position: static; z-index: auto; "><div id="ygrp-mlmsg" style="position:relative;"><div id="ygrp-msg" style="z-index: 1;"><div id="ygrp-text"><div class="gmail_quote"><div><div><br>Thank you,<br><br>Mildred </div>
</div></div><br><br clear="all"><br>-- <br>Mildred Ki'Lya<br><a href="http://mildred.fr/" target="_blank">http://mildred.fr</a><br><div><br class="webkit-block-placeholder"></div>

    </div>
     

    

</div>



<!-- end group email -->

</blockquote></div><br></body></html>