<div dir="ltr">Nice work. It's worth the extra length in order to buy correctness and portability<div>that you yourself don't have to maintain.</div><div><br></div><div>Lisp is the simplest language to bootstrap for sure. Would be nice to get everything</div><div>out of the bootstrapper that isn't the core Lisp language. Of course, it's probably worth</div><div>having handcrafted LLVM code for the primitives that greatly affect performance.</div><div><br></div><div>—S</div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Oct 5, 2020 at 7:40 AM Attila Lendvai <<a href="mailto:attila@lendvai.name">attila@lendvai.name</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div dir="auto">How hard would it be to do this in LLVM, I wonder?<br></div></blockquote></div><br><div>i've done that already, and with LLVM the self-hosting is about 3000 kLoC, although i'm looking into new features that would hopefully allow shrinking/simplifying the codebase back a little. mostly by separating the code that is strictly needed for the bootstrap process from the ever-growing set up libs and utils that get added for other tests and actual uses of the language.</div><div><br></div><div>most of the extra lines are needed because the LLVM IR has a strict type system that had to be accommodated when compiling e.g. FFI calls and such.</div><div><br></div></div>
</blockquote></div>