Commit Graph

37 Commits

Author SHA1 Message Date
Andrew Kelley 933ee0d63e maker: fix the has side effects logic in run step 2026-04-29 22:24:29 -07:00
Andrew Kelley 4fb95aebfc maker: add the --listen and --seed args back to run 2026-04-29 22:24:29 -07:00
Andrew Kelley c7dcc227a3 maker: finish porting over run step 2026-04-29 22:24:29 -07:00
Andrew Kelley d9f05b9ef0 maker: update more Run step logic 2026-04-29 22:24:29 -07:00
Andrew Kelley b3a9958555 maker: port Run step logic up to spawnChildAndCollect 2026-04-29 22:24:29 -07:00
Andrew Kelley 1de2a7e5dd maker: port more of Run step over 2026-04-29 22:24:29 -07:00
Andrew Kelley 7a69febc0b maker: restore Step.Run logic for adding artifact arg
When an artifact arg is added to a Run step, if the artifact is
installed, then the installation path is added rather than the cache
artifact path. This is probably something that should change in the
future, but the goal of this branch is to generally avoid breakage other
than that caused by phase separation.
2026-04-29 22:24:29 -07:00
Andrew Kelley d2fac7fa08 configurer: fix bad serialization of strings in run args 2026-04-29 22:24:29 -07:00
Andrew Kelley 6d485a663f fix compilation errors from rebase conflicts 2026-04-29 22:24:29 -07:00
Andrew Kelley 0a8728901d maker: upgrade some of the run step logic 2026-04-29 22:24:29 -07:00
Andrew Kelley d5a9c1b5e5 maker: implement TopLevel step 2026-04-29 22:24:29 -07:00
Andrew Kelley 95b180085f maker: implement InstallArtifact and InstallFile 2026-04-29 22:24:29 -07:00
Andrew Kelley 076945a6bf maker: finish migrating compile step make logic 2026-04-29 22:24:29 -07:00
Andrew Kelley 9423e1e882 maker: finish lowering compile step CLI args 2026-04-29 22:24:29 -07:00
Andrew Kelley 1ae6bae4a6 Configuration: fix bad serialization of PrefixedList and MultiList
Length zero is still serialized because there is no flag bit to hide the
length.
2026-04-29 22:24:29 -07:00
Andrew Kelley 43d5b1eb14 maker: finish migrating most of CLI lowering code 2026-04-29 22:24:29 -07:00
Andrew Kelley 90a8ec3e4a maker: progress towards lowering zig cli args 2026-04-29 22:24:29 -07:00
Andrew Kelley d5002aef6a zig build: add --debug-maker CLI flag
for changing the optimization mode of the maker executable
2026-04-29 22:24:29 -07:00
Andrew Kelley acef407629 build system: implement LazyPath
Number of generated files is recorded in serialized Configuration. Maker
preallocates array of generated files so that loads and stores can be
synchronization-free (protected by the dependency tree ordering).

More progress on Compile Step Zig CLI lowering.
2026-04-29 22:24:29 -07:00
Andrew Kelley 7e5e8a00c2 maker: progress towards lowering Compile Step CLI args
next thing to do is figure out how LazyPath is supposed to work now.
something like this:
* each Step that provides LazyPath objects has a setLazyPath and
  getLazyPath function which takes a tagged union identifying which one
  to access
* steps that fulfill LazyPath objects can freely call setLazyPath
  without obtaining a lock because the dependency graph prevents
  simultaneous access.
* similarly, steps that access LazyPath results can freely call
  getLazyPath without obtaining a lock, because after modification,
  there may be simultaneous reads from dependencies but they will all be
  read-only
* a fulfilled LazyPath object is a read-only std.Build.Cache.Path.
2026-04-29 22:24:29 -07:00
Andrew Kelley a563499fa3 Configuration: serialize remaining CSourceFiles information 2026-04-29 22:24:29 -07:00
Andrew Kelley 8ed02c622f maker: implement module printing 2026-04-29 22:24:29 -07:00
Andrew Kelley d06013186e Configuration: serialize remaining Module information
also handle properly Module circular references and introduce a general
deduplication mechanism.
2026-04-29 22:24:29 -07:00
Andrew Kelley 95530e7848 Configuration: complete serialization of Compile steps 2026-04-29 22:24:29 -07:00
Andrew Kelley 3649f03520 maker: progress towards updating zig CLI lowering 2026-04-29 22:24:29 -07:00
Andrew Kelley 4c09f4aa03 Configuration: implement UnionList storage 2026-04-29 22:24:29 -07:00
Andrew Kelley aa7d3853e6 Configuration: implement FlagLengthPrefixedList 2026-04-29 22:24:29 -07:00
Andrew Kelley 55bd421e2c Configuration: implement Storage.EnumOptional 2026-04-29 22:24:29 -07:00
Andrew Kelley 7c4cbd15ec ScannedConfig: more general zon printing
it's almost all automated now
2026-04-29 22:24:29 -07:00
Andrew Kelley 2098f2842f Configuration: type safety for extended pattern 2026-04-29 22:24:29 -07:00
Andrew Kelley 71a055c4d1 ScannedConfig: print Step.TopLevel 2026-04-29 22:24:29 -07:00
Andrew Kelley 7f06b99c82 ScannedConfig: print Step header data 2026-04-29 22:24:29 -07:00
Andrew Kelley 48ad9a7d8c Maker: move ScannedConfig to separate file 2026-04-29 22:24:28 -07:00
Andrew Kelley b149d49c80 zig build: make --error-limit globally configurable
still overridable by individual Compile steps
2026-04-29 22:24:28 -07:00
Andrew Kelley 20493aa539 Maker.Step.Compile: progress towards lowering zig args 2026-04-29 22:24:28 -07:00
Andrew Kelley f531cd9d03 massage Step code into compiling 2026-04-29 22:24:28 -07:00
Andrew Kelley 381607e880 build maker: rename files to match type 2026-04-29 22:24:28 -07:00