You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Due to Ekam's build model, it doesn't know whether a task will succeed later when more dependencies have finished building. As a result, it waits until all tasks have failed before outputting any errors. This is frustrating when the tasks take a long time to run (e.g. when one test out of several dozen fails), especially if the tasks are in fact independent.
I don't know if this can be solved in the general case, but #24 might help with the case where the tasks are independent since Ekam will know it doesn't need to wait for the other tests to fail.
The text was updated successfully, but these errors were encountered:
This is tough, because it's hard for Ekam to know if rules that run later might produce a new artifact which changes the result of a previous rule.
We could maybe output the error if all dependencies were successfully resolved... but even that can theoretically be premature, as it's possible that an artifact generated later will be a more-exact resolution. For example, say someone has Cap'n Proto installed on their system, but is trying to build a new version from source... an include for <capnp/compan/byte-stream.capnp.h> might resolve to the system-installed copy early on, but the in-tree copy may be generated later, requiring the dependent to be rebuilt.
We could perhaps use knowledge of the dependency tree from a previous build to decide when we think all dependencies are done, but this could lead to incorrect results whenever the dependency tree has changed between builds (e.g. the developer added a new include).
Due to Ekam's build model, it doesn't know whether a task will succeed later when more dependencies have finished building. As a result, it waits until all tasks have failed before outputting any errors. This is frustrating when the tasks take a long time to run (e.g. when one test out of several dozen fails), especially if the tasks are in fact independent.
I don't know if this can be solved in the general case, but #24 might help with the case where the tasks are independent since Ekam will know it doesn't need to wait for the other tests to fail.
The text was updated successfully, but these errors were encountered: