From e64c0dee35a6da1f9e538cc822f52e800a4cef99 Mon Sep 17 00:00:00 2001 From: Ryan Liptak Date: Sun, 21 Apr 2019 15:14:42 -0700 Subject: [PATCH] readme: Add instructions for making changes to the standard library Closes #2324 --- README.md | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/README.md b/README.md index 197c80fb18..520efb221f 100644 --- a/README.md +++ b/README.md @@ -223,3 +223,43 @@ use stage 1. ``` ./stage2/bin/zig build --build-file ../build.zig install -Drelease-fast ``` + +## Developing Zig + +### Standard Library + +First, build the Stage 1 compiler as described in [the Building section](#building). + +Then, make your changes to the standard library files in `std`. After every change, +(from the build directory you used to build the compiler) run either `make install` +(on POSIX) or `msbuild -p:Configuration=Release INSTALL.vcxproj` (on Windows) as +well as the relevant tests using `bin/zig test `. + +Once your changes are finished, run all the zig tests (while skipping the longer +test process for all possible platforms) by running the following (also from the +build directory you used to build the compiler): + +``` +bin/zig build --build-file ../build.zig test -Dskip-release +``` + +For example, when making changes to `std/heap.zig` on POSIX: + +```sh +# build and install compiler in 'build' directory +mkdir build +cd build +... +# make changes to std/heap.zig +nano ../std/heap.zig +# install and test changes +make install +bin/zig test std/heap.zig +# more changes to std/heap.zig +nano ../std/heap.zig +# install and test changes +make install +bin/zig test std/heap.zig +# run all the tests +bin/zig build --build-file ../build.zig test -Dskip-release +```