From b43d75a987836ee192d62e5c970cc16a143f8efd Mon Sep 17 00:00:00 2001 From: zinc Date: Wed, 14 Oct 2026 16:02:22 +0330 Subject: make: keep the x86-64 jit by default (LLVM=1 opts in), record the llvm mode so switching rebuilds zy, check llvm with a test link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'README.md') diff --git a/README.md b/README.md index c89ff50..63b0630 100644 --- a/README.md +++ b/README.md @@ -72,7 +72,7 @@ windows needs clang or gcc and powershell for the tests. the batch file is the s ### native backends -on arm64, `src/core/core.c` uses its arm64 jit by default, and on x86-64 linux its x86-64 jit. other hosts use the interpreter. `-DZYINTERP` forces interpretation (`make build/bin/zyi` builds that core beside `zy`); `-DZYLLVM` enables the llvm backend when its headers and libraries are available. `make` builds `zy` with it whenever it finds an llvm with headers (`LLVM_CONFIG` if given, else `llvm-config`, else `llvm-config-19` on `PATH`; the gate is `llvm-c/Core.h`), prints a one-line note and builds without it otherwise, and `make NOLLVM=1` leaves it out. since `-DZYLLVM` replaces the x86-64 jit, use `NOLLVM=1` to keep that jit in `zy` on x86-64 linux. rebuild `zy` after changing either setting (`rm build/bin/zy` or `make clean`). direct builds from the root are: +on arm64, `src/core/core.c` uses its arm64 jit by default, and on x86-64 linux its x86-64 jit. other hosts use the interpreter. `-DZYINTERP` forces interpretation (`make build/bin/zyi` builds that core beside `zy`); `-DZYLLVM` enables the llvm backend when its headers and libraries are available. on x86_64 hosts (`uname -m`) `make` keeps the x86-64 jit in `zy` and adds the llvm backend only with `make LLVM=1`, since `-DZYLLVM` replaces that jit; on other hosts `make` adds it whenever it finds a usable llvm, and `make NOLLVM=1` leaves it out. the llvm is `LLVM_CONFIG` if given, else `llvm-config`, else `llvm-config-19` on `PATH`, and it counts only when `llvm-c/Core.h` exists, `--libs` is not empty and a tiny test program links; otherwise the build prints a one-line note and goes on without it. the chosen mode is kept in `build/llvm.mode`, so switching rebuilds `zy` without `make clean`. direct builds from the root are: ```sh make genome -- cgit v1.2.3