Hacker News new | ask | show | jobs
Interview with Matheus Moreira about Lone Lisp and Linux Kernel (alexalejandre.com)
42 points by veqq 14 days ago
1 comments

Thank you for the interview!! I really enjoyed it!
G'day Mattheus, Was fun to see some of the things I find fascinating causing fascination in others. I'm a bit of a Common Lisp tragic and I also love the APE setup and using llava files to run local LLMs.... Even on tragically old servers! Hope things go well. Thanks for doing the interview. I'll look into Lone Lisp. Cheers
Thanks for reading and for your interest in lone!

> 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.

https://github.com/lone-lang/lone/issues/8

Really enjoyed the interview, and love the ideas behind Lone Lisp. I was curious, does it run on jart's Blink project, the tiny x86-64-linux emulator? https://github.com/jart/blink/
Just tried it!

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!!

Very cool! I'm learning a lot from studying how Lone Lisp works, and will be exploring how to run it on Blink, which is itself a lovely educational project. Someone managed to port the latter to WebAssembly, so eventually I'd like to experiment with that too, not only for running in the browser but as a cross-platform (or platform agnostic) layer maybe. https://github.com/robalb/x86-64-playground

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. (:

I did too! I'm sorry it didn't get any pick up here, though :(
Ditto. A fascinating read, even if I didn't understand all of it.

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.

Now this is a nice surprise!! Really happy to know I'm not alone out there! Looks like Dr. Kaiser is also a primary care physician, also a C programmer and also all about owning the computer. In addition to everything you've listed, he's also done serious work on POWER9 which is amazing!!

https://www.talospace.com/2018/11/roadgeeking-with-talos-ii-...

Really happy you liked it!