Skip to content

chore(bngsim_expr): refresh vendored expression evaluator to PyBNF-Private 1a1d49da - #18

Merged
wshlavacek merged 1 commit into
mainfrom
chore/refresh-bngsim-expr-1a1d49da
Jun 20, 2026
Merged

chore(bngsim_expr): refresh vendored expression evaluator to PyBNF-Private 1a1d49da#18
wshlavacek merged 1 commit into
mainfrom
chore/refresh-bngsim-expr-1a1d49da

Conversation

@wshlavacek

Copy link
Copy Markdown
Collaborator

Closes #17.

Refreshes the standalone vendored BNGsim expression layer from PyBNF-Private feature/bngsim 330cfcc1a1d49da, unblocking bngsim's vendor_rulemonkey.py drift guard so #16 (v3.3.0) can be vendored.

Upstream changes pulled in (since 330cfcc, #15)

  • c7e1ee88 — ExprTk reserved-symbol parity (#64 follow-up)
  • 62a58c66 — SBML ExprTk identifier collisions, u_h constant (gh90)
  • 4de69ef7 — converge embedded NFsim ExprTk layer to a single source (GH #49)

Changes

  • Update third_party/bngsim_expr/src/expression.cpp — the mratio / remap_name / is_exprtk_reserved / compute_registration_name helpers move from file-static into the bngsim::expr_compat namespace (GH #49).
  • Add third_party/bngsim_expr/include/bngsim/expr_compat.hpp — new header from GH #49 declaring those free functions. Self-contained (<string> only); lands on the existing bngsim_expr/include path, so no CMake change is needed.
  • Track expr_compat.hpp in scripts/vendor_exprtk.py's FILES so future refreshes and --check guard it (and the refresh-count message now derives from len(FILES)). Also modernized the run() helper to capture_output=True to satisfy the repo's ruff UP022 gate.
  • Bump the VENDOR / VENDOR.json pin 330cfcc1a1d49da.

expression.hpp and exprtk.hpp are byte-identical to upstream HEAD (unchanged).

Verification

  • scripts/vendor_exprtk.py --bngsim-repo … --check → OK, no drift against the pinned commit (all 4 vendored files byte-match 1a1d49da).
  • Standalone cmake --build --preset release compiles rm_bngsim_expr (vendored expression.cpp + new header) cleanly.
  • ctest --preset release → 24/24 passed.

…ivate 1a1d49da

Refresh the standalone vendored BNGsim expression layer from PyBNF-Private
`feature/bngsim` 330cfcc -> 1a1d49da, unblocking the bngsim-side
vendor_rulemonkey.py drift guard (RuleMonkey #16 / v3.3.0 vendoring).

Upstream changes since 330cfcc (#15):
  - c7e1ee88  ExprTk reserved-symbol parity (#64 follow-up)
  - 62a58c66  SBML ExprTk identifier collisions, u_h constant (gh90)
  - 4de69ef7  converge embedded NFsim ExprTk layer to a single source (#49)

Changes:
  - Update third_party/bngsim_expr/src/expression.cpp. The mratio /
    remap_name / is_exprtk_reserved / compute_registration_name helpers
    move from file-static into the bngsim::expr_compat namespace.
  - Add third_party/bngsim_expr/include/bngsim/expr_compat.hpp (new from
    #49) declaring those free functions. Self-contained (<string> only);
    lands on the existing bngsim_expr/include path, so no CMake change.
  - Track expr_compat.hpp in scripts/vendor_exprtk.py FILES so future
    refreshes and --check guard it; make the refresh count message
    derive from len(FILES). Also modernize the run() helper to
    capture_output=True to satisfy ruff UP022.
  - Bump the VENDOR / VENDOR.json pin 330cfcc -> 1a1d49da.

expression.hpp and exprtk.hpp are byte-identical to upstream HEAD
(unchanged). Standalone build + ctest (24/24) green; vendor_exprtk.py
--check reports no drift against the pinned commit.
@wshlavacek
wshlavacek merged commit dd3539e into main Jun 20, 2026
6 checks passed
@wshlavacek
wshlavacek deleted the chore/refresh-bngsim-expr-1a1d49da branch June 20, 2026 02:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

chore(bngsim_expr): refresh vendored BNGsim expression evaluator to current PyBNF-Private HEAD (adds expr_compat.hpp)

1 participant