A standalone zero-dependency Lisp for Linux

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • lone

    The standalone Linux Lisp

  • termux-packages

    A package build system for Termux.

  • With this, I was able to cross compile lone for x86_64 from within the Termux environment of my aarch64 smartphone. All I had to do was obtain the Linux user space API headers for x86_64.

    I made a Termux package request for multiplatform Linux UAPI headers specifically so I could cross compile lone but unfortunately it was rejected.

    https://github.com/termux/termux-packages/issues/16069

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • cosmopolitan

    build-once run-anywhere c library

  • Just compile regular Lisp with cosmopolitan. Then the same binary will run on windows, linux, mac, and BIOS. /s

    This has been done with Lua, see: https://github.com/jart/cosmopolitan/issues/61

  • Mezzano

    An operating system written in Common Lisp

  • Have you made or plan to make any contributions to Mezzano (https://github.com/froggey/Mezzano) or are you mainly interested in seeing how far you can take this thing on your own?

  • liblinux

    Discontinued Linux system calls.

  • > libc isn't really getting in the way here.

    For the standard set of system calls, the libc is pretty great. For Linux-specific features, it could take years for glibc to gain support. Perhaps it's gotten better since then, perhaps it still takes years. I don't know.

    Years ago I read about the tale of the getrandom system call and the quest to get glibc to support it:

    https://lwn.net/Articles/711013/

    A kernel hacker wrote in an email:

    > maybe the kernel developers should support a libinux.a library that would allow us to bypass glibc when they are being non-helpful

    That made a lot of sense to me. I took that concept and kind of ran with it. Started a liblinux project, essentially a libc with nothing but the thinnest possible system call wrappers. Researched quite a bit about glibc's attitude towards Linux to justify it:

    https://github.com/matheusmoreira/liblinux#why

    Eventually I discovered Linux was already doing the same thing with their own nolibc.h file which they were already using in their own tools. It was a single file back then, by now it's become a sprawling directory full of code:

    https://github.com/torvalds/linux/tree/master/tools/include/...

    Even asked Greg Kroah-Hartman on reddit about it once:

    https://old.reddit.com/r/linux/comments/fx5e4v/im_greg_kroah...

    Since the kernel was developing their own awesome headers, I decided to drop liblinux and start lone instead. :)

  • linux

    Linux kernel source tree

  • > libc isn't really getting in the way here.

    For the standard set of system calls, the libc is pretty great. For Linux-specific features, it could take years for glibc to gain support. Perhaps it's gotten better since then, perhaps it still takes years. I don't know.

    Years ago I read about the tale of the getrandom system call and the quest to get glibc to support it:

    https://lwn.net/Articles/711013/

    A kernel hacker wrote in an email:

    > maybe the kernel developers should support a libinux.a library that would allow us to bypass glibc when they are being non-helpful

    That made a lot of sense to me. I took that concept and kind of ran with it. Started a liblinux project, essentially a libc with nothing but the thinnest possible system call wrappers. Researched quite a bit about glibc's attitude towards Linux to justify it:

    https://github.com/matheusmoreira/liblinux#why

    Eventually I discovered Linux was already doing the same thing with their own nolibc.h file which they were already using in their own tools. It was a single file back then, by now it's become a sprawling directory full of code:

    https://github.com/torvalds/linux/tree/master/tools/include/...

    Even asked Greg Kroah-Hartman on reddit about it once:

    https://old.reddit.com/r/linux/comments/fx5e4v/im_greg_kroah...

    Since the kernel was developing their own awesome headers, I decided to drop liblinux and start lone instead. :)

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts