18f2887eba
(zilch lang go): document
...
Change-Id: I6a6a6964558b4fe2f96d78120b2e899f91d48c22
2025-11-14 13:01:04 +00:00
f0ce185d5c
docs: Document core concepts
...
Change-Id: I6a6a6964d6bded229cd640463eaac70fd52df233
2025-11-14 13:01:04 +00:00
e76c57a388
(zilch nix daemon): Upgrade daemon version to 2.18-like
...
This is necessary for support with recent Lix.
Change-Id: I6a6a69648db16e23ee82a5107cec858ccc06fb42
2025-11-14 13:01:04 +00:00
a80266d9d8
(zilch): document most exported symbols
...
Change-Id: I6a6a6964d3be7b8c6306a21d810c639f30253d38
2025-11-14 13:01:04 +00:00
6a1efc6a92
(zilch zexpr): print zexpr stack when unquoting fails
2025-11-14 13:01:04 +00:00
933f46a385
(zilch zexpr): remove zexp-with-context
2025-11-14 13:01:04 +00:00
c7acae633f
(zilch nix drv): remove impure derivation support
2025-11-14 13:01:04 +00:00
c9e48ff1ba
(zilch nix drv): expose drv-is-fod
2025-11-14 13:01:04 +00:00
32673728f9
(zilch nix drv): deduplicate input sources
2025-11-14 13:01:04 +00:00
99bb2501e3
(zilch magic): fix off-by-one when replacing the end of the string
2025-11-14 13:01:04 +00:00
6e4d191145
(zilch magic): close the daemon connection when we're done with it
2025-11-14 13:01:04 +00:00
c7a92cb052
(zilch magic): store resolved paths for CA drvs in meta
...
The non-Ninja implementations have a lot more derivation-realising
churn; we don't need to realise every single "extract a file from a zip
file" helper again for each file.
2025-11-14 13:01:04 +00:00
78b41236ab
(zilch magic): handle FODs with CA dependencies properly
...
Whilst not CA themselves, they can safely depend on CA inputs. Thus,
they need rewrites.
2025-11-14 13:01:04 +00:00
c192be2cf8
(zilch magic): remove impure drv support
...
Change-Id: I6a6a6964785281e054f986bfc29909228b8e0e2d
2025-11-14 13:01:04 +00:00
324aa9696b
zilch-cli-go: fixup
...
Change-Id: I6a6a6964284b0d7d37cb9f659cc2bf1e057c3ca9
2025-11-14 13:01:04 +00:00
33cfccc4ae
docs: fix URL format
...
Change-Id: I6a6a6964f8b29ce0d1bc019894fb6662153dee45
2025-11-14 13:01:04 +00:00
d910ce30e8
zilch-cli-ninja: Temporarily disable statusbar
...
Change-Id: I6a6a69646c6ff4c4b70cb928dc1df06890144429
2025-11-14 13:01:04 +00:00
ff58095797
(zilch file): fix unneccessary double-serialization in zfile
...
Change-Id: I6a6a69640707ff155f425f05aa857f03bad2650d
2025-11-14 13:01:04 +00:00
b5529b2616
docs: autogenerate code part of table of contents
...
Change-Id: I6a6a6964ec580d2403029e21ce785da000830c3d
2025-11-14 13:01:04 +00:00
fd85edb582
docs: improve doc rendering
...
Change-Id: I6a6a6964b1def9e8e9109fbd9319fa32595f1b72
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
31bdc68f8c
(zilch magic): add post-build hook
...
..This is really starting to look like a build scheduler, huh?
Change-Id: I6a6a696433e0a13f8de759061d47e737d48f4342
2025-11-14 13:01:04 +00:00
9b61f4df0a
(zilch core magic): use bytevectors to calculate rewrites, use mapping
...
This massively improves performance. Turns out strings are slow!
Change-Id: I6a6a6964c48e10fe046298eaf29c4e86f7d30cf1
2025-11-14 13:01:04 +00:00
9382082702
(zilch magic): support fallback CA drvs
...
A derivation can now be tagged with a fallback, which is substituted in
place of the failed derivation.
Change-Id: I6a6a696418b5d9ced3ba16ce458f55f23813c32b
2025-11-14 13:01:04 +00:00
a2ec3ded0f
(zilch nix drv): add derivation metadata slot
...
This will be used to store information for CA derivation fallbacks,
for e.g. handling header dependencies.
Change-Id: I6a6a696467311fcfbb0f01fb13998153b0cc04a7
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
38d792ff04
zilch-cli-ninja: add subcommands for extracting source and running diff
...
Change-Id: I6a6a6964eb887c7a56b4a150196403fac5066bec
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
85895d2e2a
(zilch nix daemon): hide "0/1 builds, 0 running"
...
Change-Id: I6a6a696471170e79b255de57a14e90c48f6479fa
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
e08558456a
(zilch vfs): support symlinks
...
Change-Id: I6a6a69647b11d85f5440262c8e5e27cc220aefb8
2025-11-14 13:01:04 +00:00
db3b2316f0
(zilch magic): configurable CA build job count
...
Change-Id: I6a6a6964f157a33b35dae7245c344be7907c5221
2025-11-14 13:01:04 +00:00
dc7487b9e2
zilch-cli-ninja: initialize
...
Change-Id: I6a6a6964ba06a7bf26e46010d9d0920e28f63e50
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
9cd5bfb8dd
(zilch nixpkgs): fix reproducibility of environment-for-derivation
...
Change-Id: I6a6a6964095f727498ed30d06a7236c9b241fdd0
2025-11-14 13:01:04 +00:00
0c0c4b5d22
(zilch magic): support devirtualising zexpr without losing zexpr-ness
...
Change-Id: I6a6a6964787b3a1fcd3223df258e34a8daba5dc8
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
4008106946
(zilch nixpkgs): remove other load-bearing derivation attrs on drv-to-env
...
Change-Id: I6a6a6964cda47ecb852e71490412e6236398fe60
2025-11-14 13:01:04 +00:00
83c6d94de3
(zilch magic): re-raise the first CA error
...
Change-Id: I6a6a6964a748b10ec12aa5cbc1cd736bffe077ff
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
f3618358aa
(zilch magic): fix ca build error conditions more
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
55dd6a8483
(zilch magic): handle errors properly in CA builds
...
This properly stops the rest of the builders, instead of causing a
deadlock.
2025-11-14 13:01:04 +00:00
84748541c7
(zilch magic): purposely dangle self-references in IA->CA handling
...
This is to workaround an issue I don't know how to fix right now.
In effect: Some of the Nix code contains the placeholder for $out,
which then gets translated to $out for that store path. Converting that
fails, for obvious reasons. However, rewriting those to self-references
is more complicated than I want to get into right now, and as the
behavior of self-references is vaguely broken (and this only affects
one test and a comment), I'm going to take the easy way out and make
it generate a dangling reference.
2025-11-14 13:01:04 +00:00
8e2f0f3014
(zilch magic): refuse to handle self-references
2025-11-14 13:01:04 +00:00