No description
Find a file
Stephen Dennis 6cccafd1d0 fix(win32): no module could load under muxscript, for two reasons (#1594)
The module preflight added with #1572 turned master red on Windows because
none of the three modules smoke.conf configures could load there.  Two
independent causes; fixing either alone left the run red.

1. comsys and mail built as comsys.dll / mail.dll, while modules/Makefile.am
   builds comsys_mod.so / mail_mod.so.  `cf_module` resolves `module <name>`
   to `.\bin\<name>.dll` or `./bin/<name>.so`, so no single config line could
   name those two modules on both platforms.  The vcxproj files were taking
   their default TargetName; they now set it explicitly.  Renaming the
   Windows side rather than the Unix side because those two DLLs had no
   DCL_EXPORT until #1569 and so were never loadable on Windows at all --
   nothing can depend on the old names, whereas Unix installs use _mod today.

2. exp3 -- whose name already matched on both platforms -- still did not
   load, silently, and only under muxscript.  LoadLibrary() does not treat a
   relative path as relative to the current directory: it appends the whole
   relative path to every entry in the DLL search order.  The current
   directory is one of those entries until something calls SetDllDirectory(),
   which removes it.  muxscript calls it in init_com() so engine.dll can find
   libmux.dll, and cf_module hands LoadLibrary ".\bin\<name>.dll" -- so under
   muxscript that resolved nowhere.  netmux never calls SetDllDirectory(),
   which is why the identical config worked there and the divergence looked
   inexplicable.  ModuleLoad now resolves the path against the current
   directory itself, which is what every caller already assumed.

Both smoke gates go back to unconditional.  They were made advisory on
Windows only because the platform could not comply; it can now.

Verified on Windows Server 2022, MSVC 14.51, Release x64: all three modules
report (loaded) under muxscript from a clean environment, netmux logs
"Comsys module loaded" / "Mail module loaded" with the new names, and the
preflight passes silently in the smoke run.

Measured, and worth recording for #1589/#1614: with the modules finally live
on Windows, the suite returns exactly what it returns without them --
1555 succeeded, 5 failed, same five, same one-verdict deficit.  The five are
a pre-existing configuration gap (autoconf-win32.h has no HAVE_LIBSSL and no
reality levels), not a regression, and they are identical with
SMOKE_OMIT_MODULES set.  The corpus still cannot tell the two
implementations apart.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-27 18:46:23 -06:00
client build(win32): add /utf-8 to the three vcxproj #1506 does not cover (#1499) 2026-07-26 21:31:55 -06:00
color Color: Add CIELAB nearest-neighbor tool and YUV comparison 2026-03-16 11:20:08 -06:00
debian Retire ISSUES.md trackers; migrate open items to GitHub issues 2026-06-04 20:14:00 -05:00
docker Retire ISSUES.md trackers; migrate open items to GitHub issues 2026-06-04 20:14:00 -05:00
docs docs: product enablement plan for Lua JIT (nesting gate) 2026-07-27 14:57:56 +00:00
hooks Make pre-commit hook bash 3.2 compatible 2026-04-25 19:51:41 -06:00
mux fix(win32): no module could load under muxscript, for two reasons (#1594) 2026-07-27 18:46:23 -06:00
parser Retire ISSUES.md trackers; migrate open items to GitHub issues 2026-06-04 20:14:00 -05:00
ragel Unify Ragel color_ops build with production source 2026-03-18 06:32:39 -06:00
sgp Remove hardtabs. 2012-05-18 13:29:49 -07:00
specs Add clean target to specs Makefile. 2010-06-02 20:34:17 -07:00
testcases fix(win32): no module could load under muxscript, for two reasons (#1594) 2026-07-27 18:46:23 -06:00
tests fix(comsys): the module honours all five MOGRIFY hooks and CHATFORMAT (#1572) 2026-07-27 17:53:36 -06:00
tools/worldbuilder Retire ISSUES.md trackers; migrate open items to GitHub issues 2026-06-04 20:14:00 -05:00
unix build: finish the telnet_protocol_handler removal (#793 follow-up) 2026-06-12 02:29:22 -05:00
utf Regenerate UTF-8 DFA tables; fix table-gen toolchain on macOS 2026-06-04 12:32:08 -05:00
win32 fix(win32): no module could load under muxscript, for two reasons (#1594) 2026-07-27 18:46:23 -06:00
.editorconfig build: remove the 11 UTF-8 BOMs, and stop editors re-adding them (#1499) 2026-07-26 21:20:02 -06:00
.gitattributes Add .gitattributes to enforce LF endings for shell scripts and TOC files. 2026-03-04 08:05:14 -07:00
.gitignore build: ignore the tests/dbt/test_alarm binary (#1571) 2026-07-27 09:15:36 -06:00
AGENTS.md docs: correct AGENTS.md build to the 2.14 workflow 2026-07-12 16:27:54 -06:00
CLAUDE.md build: find PCRE2 and OpenSSL via pkg-config, and probe OpenSSL before using it 2026-07-26 21:15:24 -06:00
CONTRIBUTING.md docs: add CONTRIBUTING.md — contribution workflow and standards 2026-07-12 16:26:54 -06:00
dounix.sh harden: deliver binary blobs out-of-band in the Unix distribution 2026-07-14 17:40:08 -06:00
dowin32.sh Prepare 2.14.0.9 ALPHA release 2026-07-14 13:43:24 -06:00
GEMINI.md Add AGENTS.md, GEMINI.md and clean up .gitignore 2026-03-08 20:33:27 -06:00
LICENSE Add top-level LICENSE file (Artistic-1.0 + revised TinyMUD notice) 2026-06-30 07:26:10 -08:00
Makefile fix(comsys): the module honours all five MOGRIFY hooks and CHATFORMAT (#1572) 2026-07-27 17:53:36 -06:00