Autoconf makes me think we stopped evolving too soon

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
  • oil

    Oils is our upgrade path from bash to a better language and runtime. It's also for Python and JavaScript users who avoid shell!

  • Yup, I call that the Perlis-Thompson Principle -- because Ken Thompson made a very similar combinatorial argument about software composition: you should design it around one thing.

    https://www.oilshell.org/blog/2021/07/blog-backlog-1.html#co...

    Files had structure on pre-Unix OSes, but they don't on Unix, because it doesn't compose.

    ---

    The reason that shell is universal is a mathematical property of software. How do you make a Zig program talk to a Mojo program?

    Probably with a byte stream.

    What about a Clojure program and a Common Lisp program? Probably a byte stream. (Ironically, S-expressions have no commonly used "exterior" interchange format)

    Every time a new language is introduced, I think "well there's another reason you're going to need a shell script".

    The larger the system, the more heterogeneous it is. And software is larger now, which is why MORE GLUE is needed.

    This is why shell was the #6 fastest growing language on Github in 2022: https://octoverse.github.com/2022/top-programming-languages

    And the #1 fastest growing language is HCL, which is a very closely related form of glue.

    ---

    https://www.oilshell.org/ has JSON as of a few months ago, and is now pure native code (no more Python)

    All the normal shell stuff works:

        osh$ ls */*.py | wc -l; whoami

  • QEMU

    Official QEMU mirror. Please see https://www.qemu.org/contribute/ for how to submit changes to QEMU. Pull Requests are ignored. Please only use release tarballs from the QEMU website.

  • A better solution is just to write a plain ass shell script that tests if various C snippets compile.

    https://github.com/oilshell/oil/blob/master/configure

    https://github.com/oilshell/oil/blob/master/build/detect-pwe...

    Not an unholy mix of m4, shell, and C, all in the same file.

    ---

    These are the same style as a the configure scripts that Fabrice Bellard wrote for tcc and QEMU.

    They are plain ass shell scripts, because he actually understands the code he writes.

    https://github.com/qemu/qemu/blob/master/configure

    https://github.com/TinyCC/tinycc/blob/mob/configure

    OCaml’s configure script is also “normal”.

    You don’t have to copy and paste thousands of lines of GNU stuff that you don’t understand.

    (copy of lobste.rs comment)

  • 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
  • tinycc

    Unofficial mirror of mob development branch

  • A better solution is just to write a plain ass shell script that tests if various C snippets compile.

    https://github.com/oilshell/oil/blob/master/configure

    https://github.com/oilshell/oil/blob/master/build/detect-pwe...

    Not an unholy mix of m4, shell, and C, all in the same file.

    ---

    These are the same style as a the configure scripts that Fabrice Bellard wrote for tcc and QEMU.

    They are plain ass shell scripts, because he actually understands the code he writes.

    https://github.com/qemu/qemu/blob/master/configure

    https://github.com/TinyCC/tinycc/blob/mob/configure

    OCaml’s configure script is also “normal”.

    You don’t have to copy and paste thousands of lines of GNU stuff that you don’t understand.

    (copy of lobste.rs comment)

  • ocaml

    OCaml "reentrant runtime" experimental branch (by lucasaiu)

  • Anything that has to run on a BSD or a Mac needs these tools

    Do QEMU, tcc, and OCaml run on BSD and Mac? Pretty sure they do

    https://news.ycombinator.com/item?id=39925033

    https://github.com/lucasaiu/ocaml/blob/master/configure

    They have hand-written configure scripts, and don't use autoconf.

  • mrbuild

    Simple build system

  • I think Make is exactly what you want, and I do recommend it to everybody, since the default alternative is usually something heinous like CMake which isn't really an improvement. You want the bit of logic to create a "build system" out of Make abstracted into a library, and then it's perfect. I use this: https://github.com/dkogan/mrbuild/ but there're many other ways to do it

  • ocaml

    The core OCaml system: compilers, runtime system, base libraries

  • > OCaml’s configure script is also “normal”

    If that’s this OCaml, it has a configure.ac file in the root directory, which looks suspicious for an Autotools-free package: https://github.com/ocaml/ocaml

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