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.1 ALPHA released
This is the first ALPHA of TinyMUX 2.14 — the largest release in the project's history. Everything below is new since 2.12.
Architecture - ------------
The server has been split into three shared objects:
- libmux.so — core types and utilities - engine.so — game engine, loaded as a COM module - netmux — network driver
The engine communicates with the driver exclusively through 12 COM interfaces. This is the foundation for future process isolation and scaling.
The source tree has been restructured: headers in include/, library sources in lib/, engine sources in modules/engine/, driver sources in src/.
AST Evaluator - -------------
The classic softcode parser has been replaced with an AST-based evaluator. Expressions are tokenized by a Ragel-generated scanner, parsed into an abstract syntax tree, and cached in an LRU cache (1024 entries). All %-substitutions, ##/#@/#$ tokens, and NOEVAL constructs (iter, switch, if/ifelse, cand/cor) are handled natively. The classic parser has been deleted.
A Tier 2 blob provides 50+ pre-compiled native intrinsics for common string and math operations.
Lua 5.4 Embedding - ------------------
Server-side Lua scripting with sandboxed execution, bytecode cache, and mux.* bridge API. @lua command, lua() and luacall() softcode functions. Lua bytecode can also be compiled through the JIT pipeline (83 opcodes supported).
SQLite Storage Backend - ----------------------
SQLite is the always-on storage backend. All object metadata, attributes, comsys channels, and @mail are stored in a single SQLite database with write-through on every mutation. @dump performs a WAL checkpoint only — no flatfile serialization, no fork. Crash durability is immediate.
@search for simple cases routes to indexed SQL queries — O(log n) instead of linear scan.
Networking - ----------
- GANL event-driven networking is mandatory (epoll/kqueue/IOCP). - SSL is always enabled (OpenSSL on Unix, Schannel on Windows). - MSSP (telnet 70) for MU* directory crawlers. - GMCP (telnet 201) with full protocol negotiation, A_GMCP attribute, and gmcp() softcode function. - WebSocket support (RFC 6455) with same-port auto-detection. - Connection logging to SQLite connlog table.
Unicode - -------
- Updated from Unicode 10.0 to 16.0. - NFC normalization at storage time. - Grapheme cluster indexing (UAX #29). - UCA/DUCET collation as default sort order. - CJK width-aware string operations. - @listen %0 retains typographic quotes.
New Commands - ------------
- @protect — player name reservation system. - @cron/@crondel/@crontab — scheduled triggers (Vixie cron syntax). - @include — include attribute contents in command stream. - @lua — execute Lua scripts. - @chatformat — per-player channel message formatting.
#lambda anonymous inline attributes for filter/map operations.
Module Extraction (in progress) - -------------------------------
- Comsys: channel management as a loadable COM module. - Mail: @mail read/flag/purge/folder/malias as a loadable COM module.
Modernization - -------------
- C++17 standard throughout. - PCG random number generator (replaces Mersenne Twister). - PCRE2 regex engine with JIT. - std::unordered_map replaces all CHashTable instances. - constexpr replaces ~317 #defines. - Standard <cstdint> types replace custom INT8..UINT64. - Reproducible builds. - 537 smoke test cases.
Bug Fixes - ---------
Too many to list individually — see CHANGES.md. Highlights include GANL crash fixes, IPv6 subnet comparison, objeval() privilege leak, Reality Levels corrections, and dozens of long-standing issues from the bug tracker.
Download:
Full source (tar.gz): mux-2.14.0.1.unix.tar.gz SHA256: f53ffc97c9d5e7e7311687eb4590c67ec64eb3bf9dca497e99f9e2034a2e04d7
Full source (tar.bz2): mux-2.14.0.1.unix.tar.bz2 SHA256: ddcd76f331f73433f5fb46370c72d810b862f27a276468b0943a9f0922baf622
Windows binary and source distributions also available.
All files are GPG-signed (.asc).
This is ALPHA software. Make backups. Report bugs to brazi...@gmail.com.