Commit graph

74 commits

Author SHA1 Message Date
Stephen Dennis
b05539f86a fix(#2212): PCRE2 comes from vcpkg, like grpc
The Windows build took PCRE2 from a hand-built out-of-tree directory
reached through $(Pcre2Dir).  engine.vcxproj honoured that property for
its headers but hardcoded ..\..\src\pcre2\{Release,Debug} for its
libraries, so -p:Pcre2Dir= applied to one half and not the other and the
link failed with LNK1104 in any tree where PCRE2 was not at the default.

Declare pcre2 in mux/vcpkg.json instead, alongside grpc and
nlohmann-json, and point netmux, libmux and engine at $(VcpkgDir).  All
three now read include and library paths from the same place.  Note
vcpkg's layout is lib/ for release and debug/lib/ for debug, not
Release/ and Debug/.

PCRE2's JIT is required -- funceval2.cpp calls pcre2_jit_compile -- and
comes automatically: the port's platform-default-features pulls in jit
everywhere except emscripten and iOS.

Ship mux/vcpkg.json in both source TOCs.  It was in neither, so the
source distribution carried no statement of its own dependencies; with
PCRE2 moving to vcpkg, the file that declares it has to travel with the
source or an unpacking reader is worse off than before.

Unix is unaffected -- configure finds system PCRE2 via pkg-config.

Verified on hatsuhara: Release and Debug both build clean with no
hand-built PCRE2 present anywhere on the box.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-10 20:39:31 -06:00
Stephen Dennis
c2b9db3659 build: ship five headers the TOCs never listed — a 2.14 cut today would not build
The TOCs are allowlists.  dounix.sh/dowin32.sh start from the previous
release tree and overlay only the paths named by unix/TOC.patchable and
win32/TOC.src.patchable, so a file added since the last release that
nobody lists never reaches the distribution.  Five have accumulated
since Build-2.14.0.10:

  ganl/include/ganl_debug.h
  include/dbt_reloc.h
  modules/engine/jit_tier1_stamp.h
  modules/engine/list_scratch.h
  modules/engine/word_scratch.h

All five are #included by shipped sources -- list_scratch.h by
functions.cpp and funceval.cpp, jit_tier1_stamp.h by six files -- and
ganl_debug.h is additionally named in ganl/Makefile.am's noinst_HEADERS,
so make stops before compiling anything:

  make[1]: *** No rule to make target 'include/ganl_debug.h',
           needed by 'all-am'.  Stop.

This is the same defect that shipped in 2.13.0.16 and had to be re-cut
(#2190).  Same file, same cause, other line.

Verified by reproducing a cut rather than by inspection: the real
2.14.0.10 reference tarball plus dounix.sh's overlay logic, built with
--enable-jit --enable-realitylvls --enable-wodrealms.

  TOCs as on master:  422 files, 0 of 5 headers, build FAILS above
  with this change:   427 files, 5 of 5 headers, build CLEAN
                      (netmux, libmux.so, engine.so all produced)

Also checked and clean, both platforms: removed intersect (patchable
union unpatched) is empty, and every TOC entry resolves to a file in
the repo.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-07 02:32:17 -06:00
Stephen Dennis
ac6c24fef5 build(release): ship the sources the build system requires
The 2.14.0.10 source distributions do not build.  mux2.14/lib/Makefile.am
names 24 sources; three are absent from the tarball:

    mux_nls.cpp     LIBMUX_SRC
    mux_table.c     LIBMUX_C_SRC
    shacrypt.cpp    LIBMUX_SRC

Their headers are missing too, and mux_table.h is #included by eleven
shipped files, so the build fails at the first compile rather than the
link.  Both platforms are affected: unix .tar.gz/.bz2 and win32
.src.zip/.7z.

Cause is the packaging model.  dounix.sh and dowin32.sh start from the
PREVIOUS release tree and overlay only what the TOC lists name, so the
lists are an allowlist: a file added to the repo since 2.14.0.9 that
nobody adds to a TOC simply never ships, silently, and every integrity
check still passes.  Checksums and all 13 GPG signatures verify on the
current artifacts -- they prove the tarball is intact, not complete.

Adds the seven to unix/TOC.patchable and win32/TOC.src.patchable:
include/mux_format.h, include/mux_nls.h, include/mux_table.h,
include/shacrypt.h, lib/mux_nls.cpp, lib/mux_table.c, lib/shacrypt.cpp.
That is the internationalization, table-formatting and sha-crypt work --
three of this cycle's headline features, named in the build and not
shipped.

The removal lists have the mirror defect.  TOC.removed:172 lists
src/timeparser.cpp, but the file sits at lib/timeparser.cpp in the
distribution: it was deleted from the repo in 4884ba3db and the entry
kept the pre-move path, so it has never matched and 56 KB of orphaned
source has propagated forward since.  src/modules/Makefile is the same
shape -- the .am and .in are removed, the generated artifact is not.
Both are dead weight rather than build breaks; the stale
src/timeparser.cpp entry is left in place because it costs nothing and
records the pre-move path.

Verified: every build-referenced file that exists now resolves to a TOC
entry, and every TOC entry resolves to a real file.  The one remaining
unlisted subsystem is proxy/, which is consistently absent -- no proxy
file ships, none is in any list, and proxy/Makefile.am is not shipped
either, so nothing dangles.  Whether that exclusion is intended is a
separate question.

Not verified by rebuilding: producing a corrected tarball needs the
2.14.0.9 reference tree.  The lists are correct by construction; the
proof is re-running the audit against freshly built artifacts.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-02 20:29:46 -06:00
Stephen Dennis
ff8aad0029 build: finish the telnet_protocol_handler removal (#793 follow-up)
Commit 537b155a2 deleted the dead Hydra-client parser sources but left
references behind: ganl.vcxproj/.filters still compiled the missing
.cpp (hard MSBuild error on Windows), and unix/TOC.patchable +
win32/TOC.src.patchable still listed both files, which aborts
dounix.sh/dowin32.sh (set -e cp of a nonexistent file) at the next
release.  Drop the stale references and register the deletions in
TOC.removed/TOC.src.removed so upgraded trees clean up their copies.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-12 02:29:22 -05:00
Stephen Dennis
17c545d883 Update help text, build configs, and docs for unified date parser
- help.txt: Rewrite convtime() help to document all supported formats
  (legacy, ISO 8601, European order) with clear grammar descriptions.
  Update examples with verified epoch values.
- libmux.vcxproj, .filters: Replace timeparser.cpp with date_scan.cpp
- TOC.patchable (unix, win32): Replace timeparser.cpp with date_scan
- design-date-parser.md: Mark as Implemented, update file layout
- design-libmux-modules.md: timeparser → date_scan in module tables
- functions.cpp: Update fun_convtime comment to describe unified parser

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 00:24:10 -06:00
Stephen Dennis
eb32b30fd4 Prepare 2.14.0.7 ALPHA release
Bump version to 2.14.0.7, update release date to 2026-APR-03,
add new DBT backend files to distribution TOCs, and write CHANGES.md
covering all distributed changes since 2.14.0.6.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 14:01:35 -06:00
Stephen Dennis
03d017fc20 Implement Phase 4 routing: @walk and @patrol NPC primitives
Add server-side @walk <npc>=<destination> that moves an object one hop
per second along the routed path until arrival, and @patrol <npc>=<rooms>
for continuous waypoint loop movement. Both use the system scheduler
(DeferTask self-rescheduling, same pattern as @cron) and call move_exit()
for full movement side effects.

New route_next_exit() C-level API returns the next-hop exit dbref
directly, avoiding text format/parse overhead for the walk subsystem.

Switches: /stop cancels, /quiet suppresses notifications, /locked
validates exit locks during movement.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 08:54:51 -06:00
Stephen Dennis
a348e27f33 Implement Phase 1 routing: static unconditional next-hop tables
Add route() softcode function with BFS-based shortest-path routing
over rooms marked NAVIGABLE. The routing table stores only the next-hop
exit for each (source, dest) pair, compressed via diagonal elimination,
adjacent marking, and row redundancy. Lazy rebuild on generation-counter
mismatch triggered by topology changes (@dig, @destroy, @link, @open,
@unlink) and NAVIGABLE flag changes. SQLite schema v10 adds route_nodes,
route_table, route_meta tables for future persistence phases.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 03:18:37 -06:00
Stephen Dennis
e59d13ed09 Add muxscript to win32 TOCs and dosign.bat, add connect_help to bin TOC
- win32/TOC.src.patchable: Add script/muxscript.vcxproj
- win32/TOC.bin.patchable: Add game/bin/muxscript.exe and
  game/text/connect_help.txt (was in src TOC but missing from bin)
- dosign.bat: Add muxscript.exe to copy and code-signing loop

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 22:59:51 -06:00
Stephen Dennis
1e788f217a Add missing vcxproj.filters to Win32 source TOC
comsys, engine, exp3, and mail module filter files were present
in the repo and used by the Visual Studio build but missing from
the Win32 source distribution manifest.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 09:28:16 -06:00
Stephen Dennis
bc4d534275 Replace configurable article_rule with Ragel -G2 scanner for art()
The English article rules were never changed by anyone, so hardcode
them into a Ragel-generated DFA (art_scan.rl) instead of parsing
PCRE regexps from netmux.conf at startup.  Removes ArtRuleset,
cf_art_rule, and the article_rule config directive.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 14:57:59 -06:00
Stephen Dennis
6e02726e0f Integrate muxscript into autotools build system
Replace the naked mux/script/Makefile with a proper Makefile.am so
muxscript builds through the same autotools pipeline as netmux,
stubslave, and muxescape. This ensures it picks up configure-detected
flags (SSL, REALITY_LVLS, etc.) and installs to game/bin automatically.

- Add script/ to SUBDIRS in mux/Makefile.am
- Add script/Makefile to AC_CONFIG_FILES in configure.ac
- Remove mux/script targets from root Makefile (autotools handles it)
- Add script files to unix and win32 source distribution TOCs
- Regenerate autotools files

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 13:39:07 -06:00
Stephen Dennis
4440f33865 Add rv64 blob files to unix and win32 source distribution TOCs
The rv64blob.h header and softlib.rv64 pre-compiled blob are needed
to build with --enable-jit.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 10:29:04 -06:00
Stephen Dennis
09fc44289e Add muxescape files to unix and win32 source distribution TOCs
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 10:20:23 -06:00
Stephen Dennis
e9455e8aa2 Add missing files to unix and win32 source distribution TOCs
lua54/ (61/63 files), JIT/DBT engine sources (12 .cpp, 3 .h),
new include/ headers (10 files), and new lib/ sources (3 files)
were all missing from the distribution file lists.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 09:24:05 -06:00
Stephen Dennis
2cda85353c Add Startmux.bat to win32 distribution TOCs
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 06:09:20 -06:00
Stephen Dennis
f876bdbe1c Update win32 TOC files for new module vcxproj and DLL changes
Add engine.vcxproj, comsys.vcxproj, mail.vcxproj, exp3.vcxproj to
TOC.src.patchable. Update TOC.bin.patchable to ship engine.dll,
comsys.dll, mail.dll, exp3.dll and drop removed funcs/sample/sum DLLs.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 09:46:48 -06:00
Stephen Dennis
16260ed06e Add docs/HISTORY.md tracing TinyMUX genealogy from MUD1 (1978)
Comprehensive history document covering the full lineage: MUD1
(Trubshaw/Bartle 1978), AberMUD (Cox 1987), TinyMUD (Aspnes 1989),
TinyMUSH 1.0 (Foard 1990), TinyMUSH 2.0 (1991), PennMUSH (1991+),
TinyMUX 1.x (Passmore 1994), TinyMUSH 3.0 (1999), and TinyMUX 2.x
(Dennis 1998-present). Includes ASCII family tree and references.
Sources: wiki.tinymux.org, Wikipedia MUD/AberMUD/MUSH articles.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 07:10:50 -06:00
Stephen Dennis
fc08c4aa49 Update TOC file lists and CHANGES.md for 2.14 directory restructuring
Reflect source tree reorganization (include/, lib/, modules/engine/,
ganl/, sqlite/, announce/) in all 8 unix/ and win32/ TOC files.
Update CHANGES.md with driver/engine split, AST evaluator, PCG64,
@cron, new functions, WebSocket, COM interfaces, and module extraction.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 06:52:49 -06:00
Stephen Dennis
9eda57a96e Merge CONVERSION.md into UPGRADING.md and delete the former
UPGRADING.md now covers compatible flatfile formats (2.0-2.12),
pre-2.0 conf migration tip, and cross-server conversion via omega.
Remove docs/CONVERSION.md from TOC patchable lists and add to
TOC removed lists.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 15:19:53 -07:00
Stephen Dennis
a8cec3d24f Add UPGRADING.md for flatfile-to-SQLite migration guide
Step-by-step walkthrough for upgrading from TinyMUX 2.12 or earlier:
backup, export flatfiles, build 2.13, import via db_load, verify,
and start.  Covers conf changes, troubleshooting, and ongoing
differences.  Referenced from README.md and all TOC files.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 15:16:48 -07:00
Stephen Dennis
adc2475de4 Update win32 TOC files for Markdown doc renames
Rename doc entries to .md in TOC.src.patchable and TOC.bin.patchable.
Add old extensionless names to TOC.src.removed and TOC.bin.removed.
Fix Startmux.wsf capitalization in both TOCs.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 14:47:17 -07:00
Stephen Dennis
6c5b3dfc06 Remove dead CHashFile config (game_dir_file, game_pag_file, cache_pages)
SQLite is the only storage backend now — the CHashFile .dir/.pag path
config options and hash page cache size are unused. Simplify cache_init()
and init_dbfile() to derive the .sqlite path directly from input_database.

Also update TOC manifests for 2.13.0.8 release: add 13 new source files
(SQLite backend, Unicode normalization/grapheme/collation, connect help)
and clear the removed-files lists.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 12:53:30 -07:00
Stephen Dennis
796bf11c96 Update release files for 2.13.0.7: CHANGES.md, TOC lists, and version bump.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 07:15:39 -07:00
Stephen Dennis
2c5d4c61d7 Enable GANL build on Windows with Visual Studio.
Add ganl.vcxproj static library project, integrate into netmux.vcxproj
with include paths, linker libs (ws2_32, secur32, crypt32), and project
reference. Update netmux.sln with ganl build configurations. Define
USE_GANL in autoconf-win32.h. Fix context_ typo in telnet_protocol_handler
and clear negotiation debris in connection.cpp. Retarget all vcxproj files
to v145 toolset. Update both unix and win32 TOC distribution files.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 13:57:03 -07:00
Stephen Dennis
9b1b24b6ed Remove unused slave.h header file 2025-04-06 19:32:47 -06:00
Stephen Dennis
46a354cd91 Include unchanged dtoa.c in the distribution. 2025-03-27 07:49:47 -06:00
Stephen Dennis
8b3f6e248b Convert SGP to markdown. 2022-03-10 13:20:43 -07:00
Stephen Dennis
046db14b5b Remove more PCRE tendrils. 2021-03-30 13:32:46 -06:00
Stephen Dennis
2f7266719c Convert README to README.md 2020-08-11 07:38:33 -06:00
Stephen Dennis
9313b15d2b NOTES into markdown. 2020-08-11 07:38:33 -06:00
Stephen Dennis
374a29a56c MODULES into markdown. 2020-08-11 07:38:33 -06:00
Stephen Dennis
b1fe13f62c Freshen LOCAL to use markdown. 2020-08-11 07:38:33 -06:00
Stephen Dennis
212c7a9cc7 Freshen INSTALL.md 2020-08-11 07:38:33 -06:00
Stephen Dennis
bf73423754 Convert ATTACK to ATTACK.md 2020-08-11 07:38:33 -06:00
Stephen Dennis
639a122bac Bump version from 2.12.0.9 to 2.13.0.0. 2020-08-11 07:38:33 -06:00
Stephen Dennis
b4226f40ee Bump version and remove Beta tag. 2020-08-08 18:02:38 -06:00
Stephen Dennis
d91de48575 Stage the BETA changes. 2020-06-30 10:36:33 -06:00
Stephen Dennis
2df14f0bb6 Update CHANGES.md. 2020-03-27 10:27:32 +00:00
sdennis
b17b93c44e Update Windows distribution files.
git-svn-id: svn+ssh://localhost/tinymux/branches/dev_brazil@5987 d1b986fa-651c-0410-a323-35a8662cf44d
2018-06-01 21:44:04 +00:00
sdennis
5cdb2b0008 Remove support for x86 build with and without Intel compiler. 2017-06-11 18:22:17 +00:00
brazilofmux
308a183548 Remove Doxygen. 2017-06-11 06:22:39 +00:00
brazilofmux
405dbc59d2 Add funcs module to the distribution. 2017-02-04 07:24:39 -07:00
brazilofmux
016b05138e Starting TinyMUX 2.12. 2012-07-12 09:57:40 -07:00
brazilofmux
f18822979a Bump version and release. 2012-07-06 11:08:09 -07:00
brazilofmux
2c88b49db3 Include BETA file and remove ALPHA file.
git-svn-id: https://tinymux.googlecode.com/svn/branches/dev_brazil@5341 d1b986fa-651c-0410-a323-35a8662cf44d
2011-05-29 20:17:17 -07:00
brazilofmux
d7ef543b1e Include utf8tables.h in the releases. 2009-02-07 09:41:13 -08:00
brazilofmux
a31b4bd498 Move UTF-8 tables from stringutil.cpp to utf8tables.cpp. 2009-01-18 00:36:36 -08:00
brazilofmux
31bf83fe2e Move math helper functions from funmath.cpp and stringutil.cpp to mathutil.cpp. 2009-01-12 20:34:05 -08:00
brazilofmux
18bb2ef57c Remove .dsp and .dsw from the distribution in favor of .vcproj and .sln. 2008-09-05 23:19:03 -07:00