TinyMUX 2.14.0.10 ALPHA

2 views
Skip to first unread message

Brazil

unread,
Aug 2, 2026, 11:56:31 PMAug 2
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.

Windows
- -------

Binary (zip):
mux-2.14.0.10.win32.bin.zip
SHA256: 7b5ac10212548b5d9aa2701e130a1223453d965c95c7cb6687f6c00322e2b48a

Binary (7z):
mux-2.14.0.10.win32.bin.7z
SHA256: eed8bf15344eed86c524526f3af9e14e1b241afb91f7f5601c3ec1950e577075

Full source (zip):
mux-2.14.0.10.win32.src.zip
SHA256: 5f43a4b52ce525aa5aee363a5e41371de7af059c538c012892ca7541a8e310c1

Full source (7z):
mux-2.14.0.10.win32.src.7z
SHA256: 9eefd099cf4039161e8d305ede1082193ba5e1b7a009b4e4525618b77295e86d

All files are GPG-signed (.asc).

Report bugs to brazi...@gmail.com.

- -- Brazil

-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEE8GWFNwJrhRGk25uvF80K5PxQP7EFAmpwENAACgkQF80K5PxQ
P7EDPw/+Kpbrja7lKvj/vL95VSa3/d3Tui5nHb624L8aEqn3kdrl6KixPpgIbDw0
+E+60QR8ECjI0OIBpMWyaEKobsFqzCKpGp81wKSw/d2IGgwpKcG5KHdORc+6YzEb
isy6hSpELvaqgkb0KnXr9AXuV1c71brc0vKpCBihIHOzl6YpkeoGCCWj1JEzLXOs
kE6UE25iqKQS/T+EU20NcwIjavlZMNpofVjFI+rIwVpy0xiSgjUEtcuTVPUrgCpH
+6HJ4psP3BXJ4EN9vZl2vaWgOmVAIFePu1oXYQAyvXbAOQB7tHMvKmMiCiLnmkKf
MdvO+pyvPlZtEDlVtM4da1ayY50rMoRQwaqgmuWUXg/643/3QwUA4kY9ezxkJO8/
hiR7YILRU8vhprtPUdw7E90XOYjL645y1UYeRNH42nEQfq/mH7/mfstu6HV9pQd4
iWJxJW7JLJb/gXRqRfEcLCkf1I/80z/iFWO+0j1zvuRckWUG2PfVEnSe/wagyvoP
z9vlvA+qr1xtH5ZLBoSClMsK4ITE6S4y3WWUrGTsaRN3TfUg10HFE+TIe9CRJ49R
bzIB6X1M7K98eGhd7SAyccCyKvh+Z6CAwN5BXMhOoWA2f3VXsyfNfIGWM/CPUe0n
wnVRd06JFmemKbb/vjZI++S+i3tkcsK8rKATQRSAFzdEgzES1Ok=
=RwX7
-----END PGP SIGNATURE-----

Reply all
Reply to author
Forward
0 new messages