Last Significant Update:

2025-09-14

Status:

Draft

Comments to:

elftoolchain@jkoshy.net

Many software utilities need to manage tasks that have predecessor/successor dependencies between themselves (e.g., where a ‘successor’ task should only run if its all of its ‘predecessors’ had succeeded).

Examples include:

  • make-like tools that build software.

  • Linkers (ld) that farm out their work to all of the available CPUs on the system.

  • Test-suite runners that need to execute the tests in a test suite.

This project provides an API and a well-tested library that such utilities could use to manage the execution of such tasks.

The library would allow the relationships between tasks to be a directed graph (in general), and would allow for ‘task results’ to be propagated onward to successor tasks.

The immediate use-case for this library would be to cleanup the implementation of various Elftoolchain tools.