Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

all: goal: zero C++/LLVM compilation builds by default #1100

Open
1 of 10 tasks
slimsag opened this issue Nov 4, 2023 · 0 comments
Open
1 of 10 tasks

all: goal: zero C++/LLVM compilation builds by default #1100

slimsag opened this issue Nov 4, 2023 · 0 comments
Labels
Milestone

Comments

@slimsag
Copy link
Member

slimsag commented Nov 4, 2023

Zig will have it's own x86 compilation backend (already nearly complete), and its own C compilation backend using Aro, for debug builds instead of using LLVM/Clang which will become separate packages available through the build system:

It is suspected that both will allow for blazingly fast incremental compilation & linking ultimately, but C++ code and ObjC/ObjC++ will be odd-ones-out in this picture.

Mach already compiles very little C++ code out of the box, but we could make this literally zero by default. We would then benefit from not requiring LLVM/clang/a C++ compiler for debug builds at all, and benefit from better compilation speeds out-of-the-box.

We have the following C++ code compiled using Zig as the C++/ObjC compiler today:

We can achieve this by ensuring that the above dependencies are either eliminated, or are using a prebuilt static library with a C ABI - like we do for Dawn today. The binaries may still be built using Zig, and there should still be a very clear path to building 100% from source if we go that route. This issue is just describing the 'out of the box Debug build' experience.

@slimsag slimsag added this to the Mach 0.4 milestone Nov 5, 2023
@slimsag slimsag added the all label Nov 5, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant