You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Status update — the library now builds and passes its full test suite on macOS in CI, which is more than before but not the real-hardware check this issue asks for.
Since the last activity on this issue, the following macOS coverage landed on main (all via PRs #13–#17, merged):
test-platforms (macos-latest) in .github/workflows/make_test.yml runs the CMake build and the whole ctest suite on macOS — 11/11 tests.
A genuine macOS/Windows ABI bug was fixed on the way: mnet_jsonfv() used to mix manual va_arg() with vsnprintf(va_list) on the same va_list, which corrupts the list on those platforms and crashed the next conversion (issue Fix stack over-read in mnet_jsonf() integer conversions #15). Every argument is now consumed exactly once.
Hardening flags are applied correctly per platform: -fstack-protector-strong and -D_FORTIFY_SOURCE=2 (optimized builds) on Clang, while -Wl,-z,relro,-z,now is correctly restricted to ELF and skipped on Mach-O.
The macOS release workflow (release.yml) builds libmnet-macos.dylib.
What is still NOT covered, and why this stays open: CI proves the code compiles and the self-tests pass under AppleClang on a GitHub runner. It does not cover a real Mac install — running the examples by hand, linking the dylib from an external consumer project (including code signing / Gatekeeper behaviour), or Apple silicon vs Intel differences beyond the runner's arch. Anyone with a Mac: git clone https://github.com/mnet-web/mnet && cd mnet && mkdir build && cd build && cmake .. && cmake --build . && ctest — then run example_http_server and browse to the port it prints. Please report what you find here.
Activity
mattsva commentedon Oct 11, 2026
Status update — the library now builds and passes its full test suite on macOS in CI, which is more than before but not the real-hardware check this issue asks for.
Since the last activity on this issue, the following macOS coverage landed on main (all via PRs #13–#17, merged):
test-platforms (macos-latest)in.github/workflows/make_test.ymlruns the CMake build and the whole ctest suite on macOS — 11/11 tests.mnet_jsonfv()used to mix manualva_arg()withvsnprintf(va_list)on the same va_list, which corrupts the list on those platforms and crashed the next conversion (issue Fix stack over-read in mnet_jsonf() integer conversions #15). Every argument is now consumed exactly once.-fstack-protector-strongand-D_FORTIFY_SOURCE=2(optimized builds) on Clang, while-Wl,-z,relro,-z,nowis correctly restricted to ELF and skipped on Mach-O.release.yml) buildslibmnet-macos.dylib.What is still NOT covered, and why this stays open: CI proves the code compiles and the self-tests pass under AppleClang on a GitHub runner. It does not cover a real Mac install — running the examples by hand, linking the dylib from an external consumer project (including code signing / Gatekeeper behaviour), or Apple silicon vs Intel differences beyond the runner's arch. Anyone with a Mac:
git clone https://github.com/mnet-web/mnet && cd mnet && mkdir build && cd build && cmake .. && cmake --build . && ctest— then runexample_http_serverand browse to the port it prints. Please report what you find here.