❯ pytest --chrome-trace parallel-baseline.json -n auto --dist=worksteal
664 passed, 24 warnings in 9.08s❯ pytest --chrome-trace parallel-reordered.json -n auto --dist=worksteal --expensive-tests-firstobservations:
//:your_target and then pull your repo into another bazel workspace as @foo and build @foo//:your_target:example_both)ctx.actions.run(_shell)'s inputs does influence path mapping and does appear to factor into how conflicts are detected but... if you try to add a path to the command line (i.e. via arguments) that you haven't listed in inputs it isn't an error — some path mapping heuristithe idea is to have testonly-esque checks
consider a project where we want to partition content (for an existing rule) into three categories:
ossprpdevsee https://www.gnu.org/software/make/manual/html_node/General-Search.html
from the perspective of a recipe (i.e. automatic variables), prerequisites are "rewritten"; if they're resolved to a directory in VPATH, the prereq is prefixed with that directory
see here for .section directive flags and _type_s
https://c.godbolt.org/z/T4j9GP91n https://assembly.godbolt.org/z/TGnGMWWWd
i.e.:
see:
semantics of order-only deps:
see comment in Makefile
tests the we can "project" particular files out of a TreeArtifact for consumption in downstream rules
the intent is that by doing this projection:
TreeArtifact aware) can consume our artifactTreeArtifact that are projected out| 0: [.] succ(a, ): add `1` to `a` | |
| 1: [+] add(a, b): ret = a; ret = succ(ret) `b` times | |
| 2: [*] mul(a, b): ret = 0; ret = add(ret, a) `b` times | |
| 3: [^] exp(a, b): ret = 1; ret = mul(ret, a) `b` times | |
| 4: [!] tetration(a, b): ret = a; ret = exp(ret, a) `b - 1` times (special case b = 0 -> 1) | |
| 5: [@] pentation(a, b): ret = a; ret = tetration(ret, a) `b - 1` times (special case b = 0 -> 1) | |
| 6: [#] hexation(a, b): ret = a; ret = pentation(ret, a) `b - 1` times (special case b = 0 -> 1) | |
| 3 . -> 4 | |
| 3 + 4 -> 7 { ((((3 . ) . ) . ) . ) } |
| use std::{ | |
| cell::UnsafeCell, | |
| marker::PhantomData, | |
| sync::{ | |
| OnceLock, | |
| mpsc::{Receiver, Sender, channel}, | |
| }, | |
| }; | |
| // initialized from thread that can call ui stuff |