mirror of
https://codeberg.org/ziglang/zig.git
synced 2026-03-13 21:26:16 +01:00
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.
This commit is contained in:
parent
0d64a0ff55
commit
70ea17b91d
6 changed files with 437 additions and 310 deletions
|
|
@ -668,11 +668,9 @@ pub const Graph = struct {
|
|||
names: []const []const u8,
|
||||
};
|
||||
|
||||
/// Intended to be used during the make phase only.
|
||||
///
|
||||
/// Given that `root` is the root `Module` of a compilation, return all `Module`s
|
||||
/// in the module graph, including `root` itself. `root` is guaranteed to be the
|
||||
/// first module in the returned slice.
|
||||
/// Given that `root` is the root `Module` of a compilation, return all
|
||||
/// `Module` in the module graph, including `root` itself. `root` is guaranteed
|
||||
/// to be the first module in the returned slice.
|
||||
pub fn getGraph(root: *Module) Graph {
|
||||
if (root.cached_graph.modules.len != 0) {
|
||||
return root.cached_graph;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue