4 ms·
> emacs that extends down through and out across more of userspace Making something like that has turned into a lifetime project for me. Implemented a freestan
by matheusmoreira 1y ago
> emacs that extends down through and out across more of userspace
Making something like that has turned into a lifetime project for me. Implemented a freestanding lisp on top of Linux's stable system call interface. It's gotten to the point it has delimited continuations.
- logicprog 1y agoOh my god, that's so cool? Could I see by any chance? (Edit: found links on your profile, will read more)
- matheusmoreira 1y agoI call it the lone programming language. https://github.com/lone-lang/lone/ https://github.com/lone-lang/lone/ It's a lisp interpreter with zero dependencies targeting Linux exclusively. I've written about a few of its development milestones: https://www.matheusmoreira.com/articles/self-contained-lone-lisp-applications https://www.matheusmoreira.com/articles/self-contained-lone-... https://www.matheusmoreira.com/articles/delimited-continuations-in-lone-lisp https://www.matheusmoreira.com/articles/delimited-continuati... I'm particularly proud of my ELF hack to allow the interpreter to introspect into a lisp code section at runtime without any /proc/self/exe shenanigans. Wish other languages would adopt it. Top comment and its replies talk about linking the lisp code into a self-contained, easily distributable application: https://news.ycombinator.com/item?id=45989721 https://news.ycombinator.com/item?id=45989721 I think I addressed that problem adequately. I can create applications by copying the interpreter and patching in some special ELF segments containing lisp modules. The mold linker even added features to make it easy and optimal. Since there is no libc nonsense, Linux compatibility depends only on the system calls used. Theoretically, applications could target kernels from the 90s. My Linux system call philosophy: https://www.matheusmoreira.com/articles/linux-system-calls https://www.matheusmoreira.com/articles/linux-system-calls At some point I even tried adding a linux_system_call builtin to GCC itself but unfortunately that effort didn't pan out.