You do not have permission to delete messages in this group
Copy link
Report message
Show original message
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to tinymux
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512
Subject: [ANNOUNCE] TinyMUX 2.14.0.10 (ALPHA) released
TinyMUX 2.14.0.10 is now available. By a wide margin this is the largest cycle in the 2.14 series: 534 pull requests merged over nineteen days, touching 567 files for roughly 93,000 added and 25,000 removed lines. For comparison, 2.14.0.9 collected 27 merged changes over a month.
That volume has a cost, and it is worth stating plainly. A TinyMUX alpha has historically been closer to a late beta in practice. 2.14 is not that. A great deal has been packed in, and the result carries the churn to match; it may take through 2.15 or 2.16 for the code to settle back into this project's usual register. The ALPHA on this build is meant literally -- run it where you can tolerate that.
Eight threads dominate the release.
Changes since 2.14.0.9 - ------------------------------
- - Internationalization. Server messages can now be translated. Optional gettext plumbing (opt-in at build time via --enable-nls), a `language` directive in netmux.conf, one catalogue reader used everywhere, %N$ positional arguments and proper plural forms -- and Spanish and Korean catalogues to prove the machinery on both a Romance and a non-Latin language. A tree built without --enable-nls behaves exactly as before.
- - Lua scripting gains a compiled execution path, and it is on by default.
- - The softcode JIT's eval-bracket guard is lifted, and the compiled route becomes the default for bracketed expressions. Along the way the parser work below fixed real compiled-vs-interpreter divergences.
- - Parser and expression evaluation. A 2.13/2.14 parity harness (163 probe shapes) was built and then used to find and fix genuine divergences: semicolons inside expressions were being dropped on the compiled route, and 2.13's one-call-per-region rule -- what keeps ordinary speech from evaluating -- was restored. Some of this is user-visible; see below.
- - Front-door defenses. A new set of limits bounds what an unauthenticated connection can cost the server before it has logged in.
- - Tabular output. Multi-column output moved onto a shared table layer that is safe for color and for non-Latin scripts.
- - Passwords and digests. Password storage moves to a standard, key-stretched format that is byte-for-byte identical on every platform, so a database written on one verifies on another. New passwords are written as sha-crypt $6$ with an explicit rounds= work factor (default 50000, ~50 ms per hash); every legacy format still verifies and nobody is locked out. The homegrown SHA-1 is deleted -- the non-OpenSSL backend is now Windows CNG -- so the tree ships no cryptographic source at all, and digest(sha256,...) and friends now work on Windows. A digest()/hmac() alias-resolution bug on some OpenSSL 3.0 builds is fixed (#1961).
- - A systematic audit sweep ran the codebase in numbered passes 1 through 15, closing several hundred filed defects across the parser, networking, the JIT/DBT engine, integer-overflow safety, comsys/@mail, and restart.
Configuration and behaviour changes - ------------------------------
Two configuration defaults change in this release: `jit_eval_brackets` and `lua_jit` are both on now. One user-visible parser behaviour is restored to 2.13's -- a later function call in the same region emits as literal text, so `[strcat(x add(1,2) y)]` now returns `x add(1,2) y` rather than `x 3 y`. Newly written passwords change format ($6$ sha-crypt); existing hashes of every legacy format still verify and are re-encoded on the next successful login.
Download - ------------------------------
Unix - ----
Full source (tar.gz): mux-2.14.0.10.unix.tar.gz SHA256: dc6dc39e254d64bcc092042aea7f6fc63ffa64a939f9f612523b53622f61e4d4
Full source (tar.bz2): mux-2.14.0.10.unix.tar.bz2 SHA256: b230857f15a744372d0677503780359c940939108e57d88b69a510d9b64ac0e7
Patch from 2.14.0.9: mux-2.14.0.9-2.14.0.10.unix.patch.gz SHA256: cd40e299ec8fb98cd1e51c089e0837ace2b396aa64ee47b4f23255bee0a6dffc
Companion binary blobs (required by the patch; see the .APPLY.txt): mux-2.14.0.9-2.14.0.10.unix.blobs.tar.gz SHA256: 7cee552e946f337ea63adbca6996c1a7fb6de5d6ada28799ed692b0b8c313f4c
Upgrading with the patch is two steps -- apply the text patch, then overlay the blob archive -- because one prebuilt file (rv64/softlib.rv64) cannot be carried in a text diff. The full tarballs need neither step.