2 Commits

Author SHA1 Message Date
leftibot
88d3124272 Address review: fix all compiler warnings across GCC, Clang, and MSVC
Requested by @lefticus in PR #687 review.

Fix warnings-as-errors failures on all three compiler families:

- GCC Release: replace strncpy with memcpy in mystrdup (stringop-truncation)
- GCC ASAN+UBSAN Release: add bounds check in Operator() before indexing
  m_operators array — the recursive call could exceed the array size of 12,
  which is an actual out-of-bounds bug, not just a warning
- GCC: downgrade maybe-uninitialized to warning (false positive in libstdc++
  std::regex under sanitizers + optimizations)
- AppleClang: add default cases to all switch statements on Common_Types in
  boxed_number.hpp (Wswitch-default)
- AppleClang: mark Dispatch_Engine move ctor/assignment as deleted since
  shared_mutex is non-movable (Wdefaulted-function-deleted)
- AppleClang on macOS: suppress Wpoison-system-directories for /usr/local/include
- MSVC Release: suppress C4702 (unreachable code) around if-constexpr in
  proxy_functions_detail.hpp
- Fix unused variable warnings in emscripten_eval_test.cpp when asserts are
  disabled in Release mode

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 12:06:25 -06:00
leftibot
340e7d4b16
Fix #472: Emscripten Frontend (#662)
* Fix #472: Add Emscripten/WebAssembly build for browser-based ChaiScript

Port Rob Loach's ChaiScript.js work (https://github.com/RobLoach/ChaiScript.js)
into the main repository as an Emscripten build target. Adds a GitHub Actions
workflow that builds ChaiScript to WebAssembly and publishes artifacts (JS, WASM,
HTML) for embedding in the official ChaiScript.com website. Includes an HTML
interactive playground frontend and a native test validating the eval API surface.

Co-Authored-By: Rob Loach <robloach@gmail.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Address review: publish WASM assets as release under wasm-latest tag

Add a publish job to the emscripten workflow that creates a prerelease
tagged wasm-latest with chaiscript.js, chaiscript.wasm, and
chaiscript.html as downloadable assets. Runs only on pushes to the
develop branch. The website repo can fetch these via the public
GitHub Releases API on a daily cron without any cross-repo auth.

Requested by @lefticus in PR #662 review.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: leftibot <leftibot@users.noreply.github.com>
Co-authored-by: Rob Loach <robloach@gmail.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 15:58:28 -06:00