Are we going to use the committed WASM code for bootstrapping?

Out of curiosity, are we on track regarding the plan of bootstrapping the compiler via the committed WASM code?

If so, are we going to remove the zig-bootstrap repository too?

Sorry if I am totally misunderstood.

Kyung

Yup, zig has been relying on the WASM blob for bootstrapping since November last year. Andrew posted an article about it here: Goodbye to the C++ Implementation of Zig ⚡ Zig Programming Language

The WASM blob is able to bootstrap the Zig compiler, but, doesn’t use LLVM. The WASM blob can only translate Zig code to C code, which is then compiled by your system C compiler. Then there’s zig-bootstrap, which, is a set of scripts/tools that can compile LLVM and Zig, a much bigger task than what the WASM blob does. Both will continue to exist as far as I’m aware.

1 Like

Yeah, I read the article and remember watching Andrew’s video on Vimeo.
But I couldn’t find any documentation how I can do it.
I can see WASM blob is there in stage1 directory of zig/zig-bootstrap repo.

My system have only 8G memory, one of the issues I’m facing compiling zig from source is the huge memory required (more than 8G) to build zig2 binary. Is there any improvement on that?

Yes, according to that article that @marler8997 linked, the peak memory usage of compiling from source went from 11.3 GiB to 3.8 GiB.

3 Likes

the peak memory usage of compiling from source went from 11.3 GiB to 3.8 GiB

I assume this is on the main, unfortunately I cannot compile main locally (stuck in llvm 15.x in Arch), But when I switched to 0.10.x, oom-killer still get invoked during zig2 creation.

The improvements were done in the 0.11.x release cycle. 0.11.0 is not released yet.

1 Like

Hello, I just updated my version from 0.10 to 0.11…

Testing : processing on a project of several thousand lines

Some not sad edits @prtCast and @intFromPtr
I took a short time once it works, yes it seems logical…

As for enum enumfromInt etc. it is not famous as a solution, before, it was much simpler
to modify to have more complexity seems to not me very judicious

I ended up making my own functions based on version 0.10.1

the indices with “instruction for” there too, it’s less simple, but it is true that we can advance 2 indices at the same time, I have not used it yet, now we are obliged to have a external index

For me, these are the biggest changes.

The build file, but which seems more obvious to him when reading.

being a computer veteran I don’t worry too much…

Spoke too soon :slight_smile: make the main zig executable no longer depend on LLVM, LLD, and Clang libraries · Issue #16270 · ziglang/zig · GitHub

1 Like