chore(bngsim_expr): refresh vendored BNGsim expression evaluator (#42 Mratio) - #15
Merged
Merged
Conversation
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
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Re-syncs
third_party/bngsim_exprfrom BNGsimfeature/bngsim@330cfcc4viascripts/vendor_exprtk.py. BNGsim'sexpression.cppadvanced past RuleMonkey's pin (c3987d5b) when its #42 Mratio rewrite landed — the port to the modified-Lentz continued fraction for the ratio of contiguous Kummer1F1functions. This refresh pulls that in.third_party/bngsim_expr/src/expression.cpp— updated (the #42 Mratio change).expression.hppand the pinned stockexprtk.hpp— unchanged (#42 touched only the impl).VENDOR/VENDOR.json— re-pinned to BNGsim330cfcc4.Why
The vendored copy is compiled only in standalone RuleMonkey builds; inside a BNGsim build RuleMonkey links the host
bngsim::expressiontarget, so this does not change in-BNGsim behavior. It keeps the two evaluator copies in lockstep so BNGsim'svendor_rulemonkey.pydrift 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.