all: goal: zero C++/LLVM compilation builds by default #1100
Labels
No labels
CI
all
basisu
blog
bug
build
contributor-friendly
core
correctness
deferred
dev
direct3d-headers
docs
driver-os-issue
duplicate
dxcompiler
editor
examples
experiment
feature-idea
feedback
flac
freetype
gamemode
gkurve
glfw
gpu
gpu-dawn
harfbuzz
help welcome
in-progress
infrastructure
invalid
libmach
linux-audio-headers
long-term
mach
mach.gfx
mach.math
mach.physics
mach.testing
model3d
needs-triage
object
opengl-headers
opus
os/linux
os/macos
os/wasm
os/windows
package-manager
priority
proposal
proposal-accepted
question
roadmap
slipped
stability
sysaudio
sysgpu
sysjs
validating-fix
vulkan-zig-generated
wayland-headers
website
wontfix
wrench
www
x11-headers
xcode-frameworks
zig-update
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
hexops/mach#1100
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
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:
.mfiles.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.