Skip to content

Update mrbind: table-driven Python bindings registration - #6544

Closed
Fedr wants to merge 5 commits into
masterfrom
bindings-table-driven
Closed

Update mrbind: table-driven Python bindings registration#6544
Fedr wants to merge 5 commits into
masterfrom
bindings-table-driven

Conversation

@Fedr

@Fedr Fedr commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Bumps thirdparty/mrbind to pick up MeshInspector/mrbind#42 (table-driven Python bindings registration). Originally stacked on #6535's bindings-icf; that PR has merged, so this now targets master and the combined numbers below reflect both changes together.

Note: the gitlink currently points at the mrbind PR branch head (8f8b1b6f); it will be re-pointed at the merged mrbind master commit once mrbind#42 lands, before this PR merges.

Measured effect (same-commit A/B vs pre-ICF master)

Manylinux dry runs 31128567300 (this mrbind commit) vs 31126757168 (master baseline):

x86_64 aarch64
mrmeshpy.so compressed in wheel 19.32 → 14.80 MB (−23.4%) 17.79 → 14.53 MB (−18.3%)
mrmeshpy.so .text −23.6% −19.1%
whole wheel −5.6% −4.2%

mrmeshpy.pyi is byte-identical to master's on x86_64; behavior is unchanged (the Python test suite passed on all 14 manylinux legs, and a full-platform dry run 31129376919 incl. Windows and macOS was green).

Combined with ICF (#6535)

Stacked measurement (this PR on top of #6535's ICF), dry run 31156684018: x86_64 mrmeshpy.so 12.39 MB zip / 51.5 MB raw — vs 19.32 MB master and 14.80 MB table-driven-alone. The two changes compose almost perfectly (−35.8% zip combined); ICF retains its full ~2.4 MB on top of the table rework.

🤖 Generated with Claude Code

Fedr added 4 commits August 6, 2026 18:19
Folds byte-identical template instantiations: mrmeshpy.so -11% unpacked, -2.3 MB compressed per wheel; full distro test matrix passed on an ICF build.
Points thirdparty/mrbind at MeshInspector/mrbind#42 (branch
table-driven-py-registration); to be re-pointed at the merged master commit
once that PR lands.
Base automatically changed from bindings-icf to master August 7, 2026 08:55

@adalisk-emikhaylov adalisk-emikhaylov left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Too much copypaste from pybind internals into mrbind, I'm not a fan. If Pybind updates something internally, this could break. Also it's quite hard to read. Can discuss further when Fedor is back from vacation.

@Fedr

Fedr commented Aug 11, 2026

Copy link
Copy Markdown
Contributor Author

Superseded by #6574, which picks up mrbind#44 instead of the withdrawn mrbind#42.

mrbind#42 was rejected for replicating pybind11 internals; mrbind#44 achieves nearly the same size reduction while reimplementing nothing from pybind11, so this branch is obsolete.

@Fedr Fedr closed this Aug 11, 2026
@Fedr
Fedr deleted the bindings-table-driven branch August 11, 2026 06:23
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.

2 participants