Comment by saulpw
1 day ago
> The build-time "yacc and lex"-based level compiler, the "yacc and lex"-based dungeon compiler, and the quest text file processing previously done by NetHack's "makedefs" utility, have been replaced with Lua text alternatives that are loaded and processed by the game during play.
This is very likely a good choice for multiple reasons, but it's truly the end of an era. (NetHack predates Lua, which has been around since 1993.) Lex and yacc are dead, long live lex and yacc!
Lua is not on base on most distros, that's sad. Also it stops being as portable.
By Amiga 68k platforms then. And maybe DOS.
Also, there no official Nethack i686 builds.
If I were them I'd try some micro-language from https://t3x.org as a pre-processor and bundle it. The T3X0 language itself can do wonders and even be ported to DOS with ease.
EDIT: ok, Lua can be portable and even they got DOS ports, this is great.
Nethack embeds Lua 5.4.8, so you don't need it installed from a distribution's package manager. As long as your system can build C99* it can build Lua. And given that Nethack 5.0.0 is C99, this dependency is not reducing portability any further.
* Lua has a LUA_USE_C89 flag so it may be more portable than Nethack 5.0.0 at this point.
> LUA_USE_C89
How much functionality/performance does one lose with this flag? Genuine question, I don't know.
If C89 and C99 were equally performant/functional, it would seem logical to just target C89 (since any C99 compiler should be able to compile C89 too). There must be some reason it's a flag.
1 reply →
There are also official Amiga binaries. :)
The Amiga port was resurrected just a few weeks ago.
https://mastodon.social/@ipaschke@cyberplace.social/11625728...
> By Amiga 68k platforms then.
https://nethack.org/v500/ports/download-amiga.html
> And maybe DOS.
https://nethack.org/v500/ports/download-msdos.html
The lua 5.4 sources are less than 1 megabyte in size and are MIT licensed. You can link against it but it's just as easy to directly compile it into your application directly.
> Lua is not on base on most distros, that's sad. Also it stops being as portable.
Huh? Usually programs just embed a Lua interpreter, I think. Famously light.