Settings

Theme

Interview with Matheus Moreira about Lone Lisp and Linux Kernel

alexalejandre.com

42 points by veqq 17 days ago · 11 comments

Reader

matheusmoreira 17 days ago

Thank you for the interview!! I really enjoyed it!

  • kreelman 11 days ago

    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

    • matheusmoreira 11 days ago

      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

      • lioeters 11 days ago

        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/

        • matheusmoreira 11 days ago

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

          • lioeters 10 days ago

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

            • matheusmoreira 10 days ago

              > Someone managed to port the latter to WebAssembly

              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!

  • veqqOP 17 days ago

    I did too! I'm sorry it didn't get any pick up here, though :(

    • lproven 17 days ago

      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.

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection