4 ms·
Fast compile times in Zig? Last time I tried it was super slow. Has anything changed in recent years?
by petabyt 2y ago
Fast compile times in Zig? Last time I tried it was super slow. Has anything changed in recent years?
- pverghese 2y agoCompared to Rust its blazingly fast. Compared to Go compilation its slower.
- metaltyphoon 2y agoNon it’s not. I known its not a benchmark but just try a zig init and build their hello world. It takes significantly longer
- sweeter 2y ago```sh sweet@nadeko ~ $ mkcd test sweet@nadeko ~/test $ zig init info: created build.zig info: created build.zig.zon info: created src/main.zig info: created src/root.zig info: see `zig build --help` for a menu of options sweet@nadeko ~/test $ time zig build zig build 5.08s user 0.58s system 119% cpu 4.745 total # cached sweet@nadeko ~/test $ time zig build zig build 0.01s user 0.03s system 132% cpu 0.026 total # after rewriting the main function to call a function that takes a pointer to another function sweet@nadeko ~/test $ time zig build zig build 0.02s user 0.03s system 136% cpu 0.032 total ```
- baazaa 2y agothink this has something to do with zig building part of the std which other languages ship as binaries. incremental compilation will remove this small overhead.
- jedisct1 2y agoThe first time you run the toolchain for a given target, it compiles stuff that is then stored in a global cache.
- rererereferred 2y agoTheir x86 backend seems to be more complete, bypassing LLVM and allowing for fast debug builds.
- zozbot234 2y agoRust has a Cranelift-based backend that you can use for that.
- bhansconnect 2y agoIt sadly helps a lot less than you would hope. A true dev backend can be many times faster than llvm to compile code. Crane lift is more like a 1.5x or 2x. Not to mention a lot of time is spent in the rust frontend.
- modernerd 2y agoLast time I tried it was missing both speed and incremental compilation. That still looks to be the case due to no linker support. https://github.com/ziglang/zig/issues/21165 https://github.com/ziglang/zig/issues/21165
- sweeter 2y agoIts honestly pretty dang good now. I can bootstrap Zig from C in about 3-5 minutes, and then use the self-hosted stage3 compiler to compile Zig very quickly (under 1 minute iirc) Once the cache kicks in, its even faster. I guess my overall gauge on this is the impression I get. Zig build times never annoy me and I never think about it... especially compared to clang, gcc and Rust.