Skip to content

chore(bngsim_expr): refresh vendored BNGsim expression evaluator (#42 Mratio) - #15

Merged
wshlavacek merged 1 commit into
mainfrom
chore/sync-bngsim-expr-mratio
May 23, 2026
Merged

chore(bngsim_expr): refresh vendored BNGsim expression evaluator (#42 Mratio)#15
wshlavacek merged 1 commit into
mainfrom
chore/sync-bngsim-expr-mratio

Conversation

@wshlavacek

Copy link
Copy Markdown
Collaborator

Summary

Re-syncs third_party/bngsim_expr from BNGsim feature/bngsim @330cfcc4 via scripts/vendor_exprtk.py. BNGsim's expression.cpp advanced past RuleMonkey's pin (c3987d5b) when its #42 Mratio rewrite landed — the port to the modified-Lentz continued fraction for the ratio of contiguous Kummer 1F1 functions. This refresh pulls that in.

  • third_party/bngsim_expr/src/expression.cpp — updated (the #42 Mratio change).
  • expression.hpp and the pinned stock exprtk.hppunchanged (#42 touched only the impl).
  • VENDOR / VENDOR.json — re-pinned to BNGsim 330cfcc4.

Why

The vendored copy is compiled only in standalone RuleMonkey builds; inside a BNGsim build RuleMonkey links the host bngsim::expression target, so this does not change in-BNGsim behavior. It keeps the two evaluator copies in lockstep so BNGsim's vendor_rulemonkey.py drift guard passes — which currently blocks vendoring RuleMonkey 3.2.1 (the #13 component-order fix) into BNGsim.

Generated by scripts/vendor_exprtk.py; no hand edits.

Re-sync third_party/bngsim_expr from BNGsim feature/bngsim @330cfcc4 via
scripts/vendor_exprtk.py. Picks up BNGsim's #42 Mratio rewrite (port to
the modified-Lentz continued fraction) in expression.cpp; the wrapper
header and the pinned stock ExprTk header are unchanged.

This only affects standalone RuleMonkey builds (which compile the
vendored copy); inside a BNGsim build RuleMonkey links the host
bngsim::expression target. Keeps the two evaluator copies in lockstep so
BNGsim's vendor_rulemonkey.py drift guard passes.
@wshlavacek
wshlavacek merged commit 0f70112 into main May 23, 2026
6 checks passed
@wshlavacek
wshlavacek deleted the chore/sync-bngsim-expr-mratio branch May 23, 2026 19:22
wshlavacek added a commit that referenced this pull request Jun 20, 2026
…ivate 1a1d49da (#18)

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.
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.

1 participant