(tracking issue) Most important Zig issues affecting Mach #999

Open
opened 2023-09-13 17:59:54 +00:00 by emidoots · 2 comments
emidoots commented 2023-09-13 17:59:54 +00:00 (Migrated from github.com)

Major issues affecting Mach

None currently!

Minor annoyances / things we have workarounds for

None currently!

Past issues

Resolved issues

  1. https://github.com/ziglang/zig/issues/17095)
    • Why: Right now we have one contributor who can't develop Mach due to mismatched package hashes. Instead they are pushing commits to a pull request rapidly to have CI run tests for them (lol.)
  2. https://github.com/ziglang/zig/issues/17135
    • Why: This harms the first-time user experience of someone trying Mach, it's very hard to communicate this to people and we get 1-3 people per week asking about this saying they can't get a Mach project working.
  3. https://github.com/ziglang/zig/issues/16354
    • Why: We have a lot of hacks in place to workaround this issue. Specifically, no pub fn build can call b.dependency if we want to use our packages transitively. In practice this means most of our projects CI pipelines are disabled right now because we have to comment out zig build test entirely.
  • Linux/Windows->macOS cross compilation broken: https://github.com/ziglang/zig/issues/18571
  • Optional & target-specific dependencies: https://github.com/ziglang/zig/issues/14597
    • Right now we have handfuls of packages in build.zig.zon that feel strange to download/fetch. You're building for Windows, and it's downloading a big xcode-frameworks package for example.
    • We also have some prebuilt binary dependencies; that we cannot fetch using build.zig.zon because it is the difference between a 10MB download vs. over 2GB (10MB for every OS+arch+build mode.)
    • This is harming our ability to ship our pure-Zig GPU backend, because it complicates how much we need to do in build.zig ourselves to get optional dependencies. Not totally blocked, but it would be very very nice to have optional dependencies!
  • We must link all transitive dependencies of macOS frameworks' explicitly, due to a linker regression: https://github.com/ziglang/zig/issues/17130
## Major issues affecting Mach None currently! ## Minor annoyances / things we have workarounds for None currently! <details> <summary>Past issues</summary> ## Resolved issues 1. https://github.com/ziglang/zig/issues/17095) * Why: Right now we have one contributor who can't develop Mach due to mismatched package hashes. Instead they are pushing commits to a pull request rapidly to have CI run tests for them (lol.) 1. https://github.com/ziglang/zig/issues/17135 * Why: This harms the first-time user experience of someone trying Mach, it's very hard to communicate this to people and we get 1-3 people per week asking about this saying they can't get a Mach project working. 1. https://github.com/ziglang/zig/issues/16354 * Why: We have a lot of hacks in place to workaround this issue. Specifically, no `pub fn build` can call `b.dependency` if we want to use our packages transitively. In practice this means most of our projects CI pipelines are disabled right now because we have to comment out `zig build test` entirely. - **Linux/Windows->macOS cross compilation broken**: https://github.com/ziglang/zig/issues/18571 - **Optional & target-specific dependencies**: https://github.com/ziglang/zig/issues/14597 - Right now we have handfuls of packages in build.zig.zon that feel strange to download/fetch. You're building for Windows, and it's downloading a big xcode-frameworks package for example. - We also have some prebuilt binary dependencies; that we cannot fetch using build.zig.zon because it is the difference between a 10MB download vs. over 2GB (10MB for every OS+arch+build mode.) - This is harming our ability to ship our pure-Zig GPU backend, because it complicates how much we need to do in build.zig ourselves to get optional dependencies. Not totally blocked, but it would be very very nice to have optional dependencies! - We must link all transitive dependencies of macOS frameworks' explicitly, due to a linker regression: https://github.com/ziglang/zig/issues/17130 </details>
kubkon commented 2024-01-25 11:09:57 +00:00 (Migrated from github.com)

Potential fix for ziglang/zig#17130 incoming in ziglang/zig#18677.

EDIT: confirmed locally, it fixes the issue.

Potential fix for ziglang/zig#17130 incoming in ziglang/zig#18677. EDIT: confirmed locally, it fixes the issue.
kchilton commented 2024-08-11 13:36:51 +00:00 (Migrated from github.com)

Another item here is the inclusion of libX11 when compiling core on darwin. Newer macos installs do not include X11 libraries or includes by default, so building is not the standalone you-only-need-zig that it wants to be. Just like Mac uses metal instead of the standards, it also has CoreGraphics (aka Quartz) to implement the 2D framework and provide the Aqua window. This might be a better route forward for mach on Apple products that includes the Mac, iPad, and iPhone.

Another item here is the inclusion of libX11 when compiling core on darwin. Newer macos installs do not include X11 libraries or includes by default, so building is not the standalone you-only-need-zig that it wants to be. Just like Mac uses metal instead of the standards, it also has CoreGraphics (aka Quartz) to implement the 2D framework and provide the Aqua window. This might be a better route forward for mach on Apple products that includes the Mac, iPad, and iPhone.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
hexops/mach#999
No description provided.