Skip to content

chore(mex): ship multi-platform prebuilt binaries (6/7 platforms)#92

Merged
HanSur94 merged 1 commit intomainfrom
chore/refresh-mex-binaries-manual
Apr 28, 2026
Merged

chore(mex): ship multi-platform prebuilt binaries (6/7 platforms)#92
HanSur94 merged 1 commit intomainfrom
chore/refresh-mex-binaries-manual

Conversation

@HanSur94
Copy link
Copy Markdown
Owner

Summary

Adds prebuilt MEX binaries for 5 new platforms and refreshes the existing macOS-ARM64 set. After merge, tagging v2.1.1 will produce a release archive that ships compilation-free on most platforms.

Platform Status
MATLAB macOS ARM64 (.mexmaca64) ✅ refreshed
MATLAB macOS x86_64 (.mexmaci64) ✅ new
MATLAB Linux x86_64 (.mexa64) ✅ new
MATLAB Windows x86_64 (.mexw64) gap — see below
Octave Linux x86_64 (octave-linux-x86_64/*.mex) ✅ new
Octave macOS ARM64 (octave-macos-arm64/*.mex) ✅ refreshed
Octave Windows x86_64 (octave-windows-x86_64/*.mex) ✅ new

All binaries built from CI run 25051632929 (refresh-mex-binaries.yml workflow_dispatch on main @ c2ffac6).

Known gap

MATLAB Windows x86_64 not included. Its CI build step "Compile via install()" ran without throwing but emitted no .mexw64 files. Root cause TBD (separate investigation). Windows MATLAB users will fall back to local compilation via install.m on first run — which has worked previously, so no functional regression.

Why this PR is hand-authored vs. an auto-PR

refresh-mex-binaries.yml's aggregator has a path bug: actions/upload-artifact@v7 trims the LCA (libs/), so each artifact's internal root is FastSense/... not libs/FastSense/.... When download-artifact merge-multiple: true extracts to the workspace root, files land at workspace/FastSense/... — outside libs/. The aggregator's find libs step finds nothing new, peter-evans/create-pull-request sees no diff, exits silently. Worth fixing in a follow-up; for this release the binaries are committed manually.

Test plan

  • PR-level Octave Linux test suite passes (uses freshly committed octave-linux-x86_64/*.mex)
  • After merge, tag v2.1.1 and verify release archive contains all 6 platforms' binaries

🤖 Generated with Claude Code

…tave Linux/Windows

Adds prebuilt MEX binaries for 5 new platforms and refreshes the existing
macOS-ARM64 set, all from CI run 25051632929 (refresh-mex-binaries
workflow_dispatch).

New platforms:
  - MATLAB Linux x86_64        (.mexa64)
  - MATLAB macOS x86_64        (.mexmaci64)
  - Octave Linux x86_64        (octave-linux-x86_64/*.mex)
  - Octave macOS ARM64         (octave-macos-arm64/*.mex — refreshed too)
  - Octave Windows x86_64      (octave-windows-x86_64/*.mex)

Refreshed:
  - MATLAB macOS ARM64         (.mexmaca64, freshly compiled)

Known gap: MATLAB Windows x86_64 (.mexw64) is NOT included — that
platform's CI build produced no .mexw64 files (root cause TBD; install()
ran without erroring but emitted nothing). Windows MATLAB users will
fall back to local compilation via install.m on first run.

Bypassing the auto-PR mechanism: refresh-mex-binaries.yml's aggregator
download-artifact step has a path bug (LCA-trimming makes artifact
internal roots `FastSense/...` not `libs/FastSense/...`, so files
extract outside libs/ and create-pull-request sees no diff). Will fix
in a follow-up; for this release the binaries are committed manually.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@HanSur94 HanSur94 merged commit 5c45199 into main Apr 28, 2026
12 of 13 checks passed
@codecov
Copy link
Copy Markdown

codecov Bot commented Apr 28, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

Copy link
Copy Markdown
Contributor

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

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

⚠️ Performance Alert ⚠️

Possible performance regression was detected for benchmark 'FastSense Performance'.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold 1.10.

Benchmark suite Current: 8686ada Previous: c2ffac6 Ratio
Render mean std(1M) 2.255 ms 0.914 ms 2.47
Downsample mean std(5M) 0.246 ms 0.041 ms 6
Downsample mean (10M) 23.305 ms 19.343 ms 1.20
Render mean std10M) 2.293 ms 1.824 ms 1.26
Downsample mean (50M) 121.719 ms 99.207 ms 1.23
Instantiation mean (50M) 1620.181 ms 1267.851 ms 1.28
Instantiation mean std50M) 46.81 ms 7.788 ms 6.01
Downsample mean (100M) 249.233 ms 195.388 ms 1.28
Downsample mean ( std00M) 0.54 ms 0.262 ms 2.06
Instantiation mean (100M) 3254.644 ms 2385.463 ms 1.36
Instantiation mean ( std00M) 215.91 ms 63.283 ms 3.41
Render mean ( std00M) 3.566 ms 3.071 ms 1.16
Downsample mean (500M) 1260.47 ms 1003.525 ms 1.26
Downsample mean ( std00M) 1.788 ms 0.262 ms 6.82
Instantiation mean (500M) 26081.484 ms 21827.502 ms 1.19
Instantiation mean ( std00M) 293.847 ms 63.283 ms 4.64
Dashboard live tick stdmean 0.472 ms 0.278 ms 1.70
Dashboard page switch mean 0.188 ms 0.153 ms 1.23
Dashboard broadcastTimeRange stdmean 0.026 ms 0.021 ms 1.24

This comment was automatically generated by workflow using github-action-benchmark.

CC: @HanSur94

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