Commit graph

79 commits

Author SHA1 Message Date
3e70d61052 (zilch lang rust resolver): improve build script compatibility
Change-Id: I3d87ecde581407d818a7610aca2a7b826a6a6964
2025-11-25 16:12:22 +00:00
f9336ab1ad (zilch lang ninja build): More compatibility fixes
Change-Id: Ic56e71d13e8f897c165b7d8379840ac16a6a6964
2025-11-25 16:11:50 +00:00
48e8cd9455 (zilch lang ninja nixpkgs): don't choke on non-UTF-8 files
Change-Id: I7d3472c0492104574cc4b7264ab1ceaf6a6a6964
2025-11-25 16:11:32 +00:00
5bf80a463e (zilch lang rust): Print crate name of failed buildscript
Change-Id: Ib3511b7cd8cdeb72528e5a0de9b9ff2b6a6a6964
2025-11-24 20:12:08 +00:00
de26625157 (zilch lang go): bump Go version
Also explicitly disable Cgo, as that is necessary for newer versions of
Go.

Change-Id: I24af36efbe5e2e4b873553c11798bbfa6a6a6964
2025-11-24 13:16:35 +00:00
02045177dd (zilch lang go): pin Go version
Newer Go versions need a different bootstrap.

Change-Id: I8545d53d1a0c32dca75c8d150415724d6a6a6964
2025-11-21 14:32:31 +00:00
1247097de2 core, (zilch lang rust): fix egg definitions
This is enough to make them all compile under native `chicken-install',
as opposed to Nix-only.

Change-Id: I40e480f0b98be40aaf6cc0fe6f0eedc26a6a6964
2025-11-19 12:39:12 +00:00
56b114ef2c support building with chicken-install too
Change-Id: I47510ca9d5892f1def55ab14f610ba796a6a6964
2025-11-19 12:25:55 +00:00
933b942a62 (zilch planner): drop
Turns out this idea was kind of a dead end.

Change-Id: Id90b2249191ad66b0691471aa1721d726a6a6964
2025-11-14 13:13:33 +00:00
edbdf48a5a (zilch lang rust): call yj inside nix
Change-Id: I3bc75045534ef524ca2a8a2df290e2876a6a6964
2025-11-14 13:01:04 +00:00
0036f464ac (zilch lang ninja nixpkgs): Properly handle .so SHSYM
Change-Id: I6a6a696428c5bfcee09a65d45939a3aa145afdad
2025-11-14 13:01:04 +00:00
86e07faa8a (zilch lang ninja nixpkgs): misc fixes
Change-Id: I6a6a6964260d2be34c1b70aad431018ce37dca26
2025-11-14 13:01:04 +00:00
a57b991013 (zilch lang ninja build): add "may fail" to edge-ref
Change-Id: I6a6a69642d0f1daf57c0dee4a0291595f1c13cb2
2025-11-14 13:01:04 +00:00
5485b0f4ce zilch-cli-ninja: make source' and diff' operate on rewrites
Change-Id: I6a6a69644e8984ec8400e13928c8ac0e14526ad1
2025-11-14 13:01:04 +00:00
3a6e716a5e (zilch ninja): resolve depfile and source overrides relative to zilch file
Change-Id: I6a6a6964b712289cfd408a02f3b6951e1de53e97
2025-11-14 13:01:04 +00:00
0023f3def8 (zilch lang ninja): Support rewriting derivation inputs
This lets incremental Ninja builds depend on other incremental Ninja
builds.

Change-Id: I6a6a6964ef300cae2e180970048c8a4881c88e19
2025-11-14 13:01:04 +00:00
c1c606ee0b (zilch lang ninja): consider .hpp to be headers
Change-Id: I6a6a6964feb764a70916d87bc8a4029b4ae92e80
2025-11-14 13:01:04 +00:00
8e711a4b0b (zilch lang ninja build): add support for secondary VFS roots
These are used for implementing cross-project incremental builds.
2025-11-14 13:01:04 +00:00
7acb3005f8 (zilch lang ninja build): Remove base-path logic
This replaces it by just using the existing copy logic.
Removing the base-path logic makes it easier to add
non-build-dir-rooted files.

Change-Id: I6a6a6964ef300cae2e180970048c8a4881c88e19
2025-11-14 13:01:04 +00:00
feeb14eed5 (zilch nixpkgs): add dataflow tracking support
Dataflow tracking runs the installPhase of a derivation, and then
does its best to track build input -> store path output pathways.
This allows for substituting the installPhase of a derivation as much
as possible with relatively quick store path logic, allowing for cross-
project build input tracking. 

Change-Id: I6a6a69642530b32edbc2c521a3f584703731b6e1
2025-11-14 13:01:04 +00:00
93a1ebba00 (zilch lang ninja): document
Change-Id: I6a6a6964dcc713504ec57f40981a601696a573af
2025-11-14 13:01:04 +00:00
154ba9be1c (zilch lang rust): Enforce that required parameters are set
Change-Id: I6a6a6964dcc713504ec57f40981a601696a573af
2025-11-14 13:01:04 +00:00
0340f6e830 (zilch lang rust): document
Change-Id: I6a6a6964c8aaff8d5f3e18bc5c7486746b5a2952
2025-11-14 13:01:04 +00:00
18f2887eba (zilch lang go): document
Change-Id: I6a6a6964558b4fe2f96d78120b2e899f91d48c22
2025-11-14 13:01:04 +00:00
781e2b5534 (zilch lang ninja): process depfile, elide .h files where posssible
Incremental builds now take depfiles in account! Using a file that
contains a mapping of depfile to its cached contents, Zilch now
rebuilds less targets unnecessarily! If a build fails because an
include is added, it transparently rebuilds it with all possible header
dependencies, using the custom build scheduler built into Zilch. If an
include is removed, the target will be rebuilt with the new set of
headers the next time the CLI is invoked.

Change-Id: I6a6a6964c2fb191af4a474c45fd0f29623c588b0
2025-11-14 13:01:04 +00:00
895fb39c76 (zilch lang ninja depfile): add depfile parser
Change-Id: I6a6a6964591c9cc4cd32dd15ab930d1675d9ca5d
2025-11-14 13:01:04 +00:00
275b56622d (zilch lang ninja): Support overriding source used for build
Change-Id: I6a6a696488f85192dbd911df3d2d28fee01f7b5b
2025-11-14 13:01:04 +00:00
5d4fb382a8 (zilch lang ninja build): use more descriptive drv names
If the description isn't set, it will use the command to execute instead.

Change-Id: I6a6a6964105e2ad7532a601a8d7509bddea845ba
2025-11-14 13:01:04 +00:00
3f841baa1a (zilch lang ninja build): properly elide meson-private
Change-Id: I6a6a69647cac0ffa083525236e6b23b7e418ebd6
2025-11-14 13:01:04 +00:00
268b6fb8c2 (zilch lang ninja): support CMake
Change-Id: I6a6a696445c5513215b7e1df512514586a1dfd3a
2025-11-14 13:01:04 +00:00
48692fc50d (zilch lang ninja): support include
Change-Id: I6a6a69643a4a1d2b96386851a26d13237737f645
2025-11-14 13:01:04 +00:00
a6757baf0e (zilch lang ninja): fix off-by-one on end of file
Change-Id: I6a6a69645dd013d565efccfd634ed0744e5a688c
2025-11-14 13:01:04 +00:00
23ce8304f5 (zilch lang ninja): support swapping out the build phase of nixpkgs-style drv
Change-Id: I6a6a69649c5c37c67dbe05a0795356b78caff528
2025-11-14 13:01:04 +00:00
c6504571e8 (zilch ninja build): elide vfs per-build as much as possible
This should limit the amount of spurious rebuilds.

Change-Id: I6a6a6964b8ba2672c376d848f362f18a599c45d9
2025-11-14 13:01:04 +00:00
c685ff31df (zilch lang ninja build): add shared object stubs for linked libraries
This adds a second derivation containing a .so (stubbed) to all `.so.symbols`
edges, which represents a shared object stub. This stub is then used for all
linking afterwards, rather than the bubbled-up .so file, which was used as
workaround.

Change-Id: I6a6a69649ff04f8efe329c59e4d0172532aa7adb
2025-11-14 13:01:04 +00:00
c94279fcb2 (zilch lang ninja build): expose phony build edges better 2025-11-14 13:01:04 +00:00
11709a3eed (zilch lang ninja build): support per-project patches 2025-11-14 13:01:04 +00:00
7cdf45ef96 (zilch lang ninja build): support phony rules 2025-11-14 13:01:04 +00:00
ca920c0ae3 (zilch lang ninja build): fix relative-to normalisation for empty paths 2025-11-14 13:01:04 +00:00
ec05d19a1e (zilch lang ninja build): don't print missing errors for nix store paths 2025-11-14 13:01:04 +00:00
40638ad666 (zilch lang ninja build): workaround Meson .so linking
Meson implements early-cutoff for shared library linking by having each .so
generate a .symbols file, and only relinking when that changes. The issue is
that this loses the direct dependency to the .so, and I'm unwilling to commit
to putting every transitive dependency in the environment's VFS. Instead,
work around it specifically for Meson.
2025-11-14 13:01:04 +00:00
be1b4c3792 (zilch lang ninja build): improve build environment + setup times
Turns out generating one full VFS for every single build step is really
expensive.
2025-11-14 13:01:04 +00:00
95e7ca1277 (zilch lang ninja build): don't generate empty derivation names 2025-11-14 13:01:04 +00:00
559350369c (zilch lang ninja): parse (then throw away) pool information 2025-11-14 13:01:04 +00:00
0cf6d7a9af (zilch lang ninja): improve parser performance 2025-11-14 13:01:04 +00:00
499bacd9c8 (zilch lang ninja): support processing simple build scripts 2025-11-14 13:01:04 +00:00
40d213520a (zilch lang ninja): add ninja build file parser 2025-11-14 13:01:04 +00:00
f610d937b3 (zilch lang rust resolver): fix feature detection for some proc-macros 2025-03-02 22:14:12 +00:00
c6364fa6aa (zilch lang rust cargo): find target-specific build dependencies 2025-03-02 22:13:55 +00:00
307b1c7218 (ziclh lang rust): use compile-time path for yj
This will have to be replaced with a small Rust program, but I don't
want to resolve the chicken-egg problem right now.
2025-03-02 22:13:05 +00:00