Skip to content

release: v0.0.17 — macOS ARM64 support#47

Closed
Sunrisepeak wants to merge 8 commits into
mainfrom
release/v0.0.17
Closed

release: v0.0.17 — macOS ARM64 support#47
Sunrisepeak wants to merge 8 commits into
mainfrom
release/v0.0.17

Conversation

@Sunrisepeak
Copy link
Copy Markdown
Member

Summary

  • Bump version from 0.0.16 to 0.0.17
  • Add CHANGELOG section for 0.0.17 with macOS ARM64 as the headline feature
  • Fix release.yml macOS job: replace broken self-host steps (libc++ linking issues) with the proven xmake direct-build approach from bootstrap-macos.yml
  • Use macosx-arm64 naming convention for release tarballs (xlings convention)
  • Remove broken self-host step from ci-macos.yml, keep working xmake bootstrap and LLVM validation tests

Key changes

release.yml build-macos job: Instead of bootstrap → self-host (which failed due to libc++ linking), we now use xmake directly:

xmake f -y -m release --toolchain=llvm --sdk="$LLVM_ROOT"
xmake build -y mcpp

Tarball naming: Changed from darwin-arm64 to macosx-arm64 to match xlings convention.

Test plan

  • Verify CI passes on this PR (ci-macos.yml should succeed without self-host step)
  • After merge, trigger release.yml via workflow_dispatch to validate the macOS build job produces the tarball
  • Smoke-test the produced mcpp-0.0.17-macosx-arm64.tar.gz on an Apple Silicon Mac

- Bump version to 0.0.17 in mcpp.toml
- Add CHANGELOG entry for 0.0.17 (macOS ARM64 headline feature)
- Fix release.yml macOS job: replace broken self-host approach with
  proven xmake direct build (matching bootstrap-macos.yml)
- Use macosx-arm64 naming convention for tarball artifacts
- Remove broken self-host step from ci-macos.yml
Since v0.0.16 macOS binary is available, both release and CI can now
self-host: download v0.0.16 → mcpp build → produce new binary.
No xmake needed.
xlings LLVM's clang++.cfg uses -nostdinc++ which suppresses the
implicit -lc++ that clang++ normally adds during linking. This
causes undefined symbol errors for C++ stdlib types. Fix by
explicitly adding -lc++ to link flags on macOS.
v0.0.16 mcpp lacks the -lc++ fix needed for macOS self-host.
Use xmake (proven working) for this release. Once v0.0.17 ships
with the libc++ link fix, subsequent releases can self-host.
- .xlings.json: bump mcpp to 0.0.16
- CI/release: use `xlings install mcpp` with fallback to direct download
- Removes xmake dependency from main build path
v0.0.16 mcpp lacks -lc++ for macOS linking. Use xmake in CI/release
workflows as a transitional builder. xmake.lua is NOT committed to
the repo — generated at build time and removed after.

Once v0.0.17 binary (with the fix) is in xlings-res, future versions
can self-host via `xlings install mcpp`.
Now that mcpp@0.0.16 is in xlings-res with the libc++ fix,
CI and release workflows can simply:
  xlings install mcpp → mcpp build

No xmake needed — mcpp self-hosts on macOS via xlings ecosystem.
- Add `xlings update` before install to refresh pkgindex
- Bump cache key to invalidate stale xlings data
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