Interview with Matheus Moreira about Lone Lisp and Linux Kernel
alexalejandre.com
alexalejandre.com
Another brilliant techie who became a doctor instead is Dr Cameron Kaiser -- I think he might be @classichasclass here. He runs the last AMOS system on the internet, developed TenFourFox and Classzilla, the Overbite plugin that makes Firefox talk Gopher, and much more. He also compiled the amazing Secret Weapons of Commodore site.
https://www.talospace.com/2018/11/roadgeeking-with-talos-ii-...
> I also love the APE setup
Yeah, jart's cosmopolitan is awesome. I've even sent some floating point code her way!
I have my own take on the "embed data into the executable" problem too. It's the one thing I've made that I think is truly novel. I developed a tool to copy the data into the ELF in such a way that Linux mmaps it in automatically. Lone can just reach it at runtime via the auxiliary vector. No need to read /proc/self/exe.
You might enjoy this article:
https://www.matheusmoreira.com/articles/self-contained-lone-...
The ELF editor is written in C right now. I'm getting the language ready to host it as a lone application. That'll make it easy to redesign this feature and develop even more high level features on top of the code loading.
The lone interpreter itself runs flawlessly:
lone <<<'(import (lone print)) (print "Hello, world!")'
blink lone <<<'(import (lone print)) (print "Hello, world!")'
blink lone <<<'(import (lone print) (math +)) (print (+ 1 1))'
It failed to load an interpreter with a lone-embedded lisp program though. Rejected it as an invalid ELF because of a bug in my ELF editor.The embedded segments my tool generates are page aligned and end up extending past the end of the file. Linux doesn't care, it mmaps those non-existent file regions just fine as zero filled pages. Blink rejects the ELF as invalid instead.
I'd say blink's behavior is correct but divergent from the Linux it's supposed to be emulating. Created issue #215 about it:
https://github.com/jart/blink/issues/215
Nevertheless, I plan to push out a fix for this issue as soon as I'm done with the last rounds of code review.
Thanks for your interest in lone lisp!!
Anyway, looking forward to following Lone's progress. The technical details in the interview and in the articles on your site are so interesting, somewhat over my head but that's exactly the kind of material that I enjoy learning from. (:
So that means lone could theoretically run on the browser via Blink. Will make for a great demo someday.
Feel free to post here or email me if you have any questions!