Change:
silc_server = callPackage ../servers/silc-server { }; <del> sile = callPackage ../tools/typesetting/sile { }; </del> <ins> sile = callPackage ../tools/typesetting/sile { lua = lua5_4; }; </ins> silver-searcher = callPackage ../tools/text/silver-searcher { };

Discussion:
Paging I'm extricating from that already over-worked thread: I've actually meant to ask about this. Frankly Lua 5.2 is an odd choice, and I would suggest the default should be Lua 5.4. SILE itself is painstakingly tested to function with any of Lua 5.1, 5.2, 5.3, or 5.4. We would love to use the feature set of 5.4 by default because it offers a lot more flexibility, but that would leave LuaJIT out of the picture. LuaJIT being shockingly faster it makes sense to keep that option open for people. One we cover 5.1-ish compatibility, 5.2 and 5.3 support kind of fall into place with no extra work required. This has been good because: 5.2 is the default on old Ubuntu LTS releases. 5.3 is the default baked into Pandoc. All that to say 5.2 is fine as far as SILE is concerned, but it may not be fine with end users. Any functions they write, libraries they use for their projects, etc. must match the interpreter SILE chose to use, not the one they happen to have setup their documents for. For example I have a private library of functions I use for some projects that is Lua 5.3/5.4 only. I mostly use Arch Linux for those projects, but it is worth noting that I could not render those projects at all using a Nix packaged SILE. I would suggest offering a 5.4 option (if such options are easy to provide) would be a nice touch. A LuaJIT offering would be interesting too. This does come with downsides (e.g. SILE's built in stack trace functionality to identify the exact location of errors is people's documents doesn't work) and hence it is not the default, but the speed is hard to turn up one's nose at. If Lua 5.2 is the default provided to Nix users when they ask for other Lua dependencies, then it does make sense to keep it as the default for SILE too.
Nix makes it easy for users to override the Lua version used in packages with a thing we call an .

So for NixOS users for example: The fact Nixpkgs' default is is a legacy issue. It is totally up to you whether you'd wish to make or LuaJIT sile's default. We can also make part of here: And when people will they will see: But that's a little bit overwhelming IMO. We can also do this: Which will keep the expression's argument the same. Since building is not that time consuming, I'd pick a default Lua you wish to use and go with that.
I marked this as stale due to inactivity. &rarr;
This is fresher than the activity makes it seem. We still should change the default Lua interpreter (probably to 5.4) and perhaps document how and end user can most easily get a LuaJIT variant for their own use.
Do you wish to make 's default Lua interpreter to 5.4? That's easy to be done with a patch as mentioned in my previous comment. Regarding the documentation, NixOS has general documentation regarding how to override packages, which require users to read the sources of Nixpkgs to do so.
Yes. Lets make this issue about getting 5.4 to be the default (defaulting to 5.2 is silly). I just opened a PR to that affect, did I do that right? Documenting how to use LuaJIT instead is probably something that will need to go in SILE's documentation.