Building modern Zig from the original C++ implementation -------------------------------------------------------- This repository explores building Zig from the C++ implementation without using binary blobs. [Forum post goes with this][1]. Clone zig and prune binary files from history: ``` $ git clone --reference zig --dissociate https://github.com/ziglang/zig zig-nobinaries $ cd zig-nobinaries $ git filter-repo --prune-empty=never --prune-degenerate never --invert-paths --path-glob 'stage1/zig1.wasm*' --path stage1/zig1.c ``` Now build an isolated container with a bunch of zig historic dependencies: ``` $ docker build -t zig-repro . $ docker run -ti --rm \ -v ~/code:/x \ -v /home/$USER/.cache/zig:/home/$USER/.cache/zig \ -w /x/zig \ zig-repro \ sh -c "useradd -s /bin/bash -u $UID $USER && su $USER; bash" ``` And run the thing in the container: ``` $ ../zig-repro/run ``` [1]: https://ziggit.dev/t/building-self-hosted-from-the-original-c-implementation/6607/11