LuaJIT uses rolling releases
freelists.org
freelists.org
LuaJIT is truly an engineering marvel that more folks should adopt.
If it's actively being maintained again, hopefully that will happen.
What I don't quite get is the follow:
"Please note: The main LuaJIT author (Mike Pall) is working on unrelated projects and cannot accept bigger sponsorships at this time. But other community members may be open to sponsorship offers — please ask on the LuaJIT mailing list for any takers."
That's some good news I needed but didn't deserve!
It's a little concerning that their build process relies on a .git directory being present. That's going to make it quite tough for packagers to actually package this.
Here is a description of what it does:
If the attribute export-subst is set for a file then Git will expand several placeholders when adding this file to an archive. The expansion depends on the availability of a commit ID, i.e., if git-archive[1] has been given a tree instead of a commit or a tag then no replacement will be done. The placeholders are the same as those for the option --pretty=format: of git-log[1], except that they need to be wrapped like this: $Format:PLACEHOLDERS$ in the file. E.g. the string $Format:%H$ will be replaced by the commit hash. However, only one %(describe) placeholder is expanded per archive to avoid denial-of-service attacks.
And if they can’t wait for official releases, they’d be working off of the git repo?
There are no official releases. To quote from the linked email:
> No release tarballs or binaries are made available. Please do not use obsolete versions from older tarballs or zip files. Please remove any outdated links to these downloads -- they will cease to work soon.
The only way to get a release version of LuaJIT is to compile it from the git repo.
It will be interesting to see how this is packaged in, say, Ubuntu. Will they assign their own version numbers? Dates?
If upstream can't commit to compatibility across release versions then I don't see it happening in distros either.
# git clone -b v2.1.ROLLING --depth 1 git@github.com:LuaJIT/LuaJIT.git
The git log looks like this:
commit 2090842410e0ba6f81fad310a77bf5432488249a (grafted, HEAD, tag: v2.1.ROLLING)
Author: Mike Pall <mike>
Date: Mon Aug 21 03:18:35 2023 +0200
Merge branch 'master' into v2.1edit: I have a few scripts with #!/usr/bin/luajit as the shebang line.
similarly if you are writing programs in lua rather than in c you can run them in luajit if you just apt install luajit
if you want to release your programs as free software so other people can compile and link them, it's important for them to be able to get the version of luajit you were using so they can debug why your program doesn't work in the current version of luajit
Am I missing something?
I'm also glad that they're using rolling releases, as I felt "bad" for using something named LuaJIT 2.1 beta3 in a project since the target was ARM64.
because to me this sounds like hoping linux can support newer versions of minix
or that openbsd can support newer versions of freebsd
So this policy was basically where we were anyway. I'm glad the project hasn't died, and in my practical usage it's been very stable, so I haven't had trouble grabbing random development commits off the Git repo. My impression was the release process was very high overhead, and I'd rather that the main developer stick around to work on the code rather than leave due to burning out.
In case anyone is wondering how highly performant / scalable LuaJIT is - Cloudflare was built on top of LuaJIT for the first ~10 years of it's existence and it's only been in the last couples of years they have begun to use Rust.
Posted only 11 months ago by Cloudflare CTO
https://news.ycombinator.com/item?id=32869567
Cloudflare was already operating a scale and as public company, when they were running LuaJIT.
Chances that you'll operate at Cloudflare scale is like 1:Billion.
Sounds like Cloudflare was quite happy with LuaJIT.
They got lucky, choosing a niche language and a massive amount of tech debt as their primary technology stack.
But in the end, Cloudflare is one company. Who gives a what they did?
Add on top the fact that one of the performance problems was interfacing nginx with luajit, aka there are two unnecessary memory copies.
When I think about these things, I'm thinking cloudflare was lucky enough to outgrow lua rather than being lucky to have gotten away with luajit.
In particular, https://github.com/lua/lua/blob/master/ldo.h
Or its implementation details (written in C)?
If the later, how does that make Lua, the language, bad?
I have no complaints about the language (other than arrays starting at 1). I'm just salty because other people have said the implementation was really clean C, so I decided to spend a week porting it to C#, and I gave up. I could not figure out how closures were actually implemented, and I spent a day trying to understand it.
Luajit has a really complicated build process. I'm more nervous about changing that codebase.