| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
This will allow reliable cleanup.
|
|\
| |
| |
| |
| | |
node.pyx: rm trailing whitespace
See merge request BuildStream/buildstream!1478
|
|/ |
|
|\
| |
| |
| |
| | |
Remove __update_state_recursively()
See merge request BuildStream/buildstream!1449
|
| |
| |
| |
| |
| |
| |
| |
| | |
Currently Element._cached_success() will call two functions
to determine whether an Element is already cached. Now, we
set __cached_successfully to True once we determine that the
Element is cached for the first time. This will then short-circuit
upon (very frequent) future calls.
|
| | |
|
| |
| |
| |
| |
| | |
It's not required with strict build plans. Skip it to improve
performance.
|
| | |
|
| |
| |
| |
| |
| |
| | |
Now that __update_ready_for_runtime() and
__update_strict_cache_key_of_rdeps() have been introduced,
we no longer need to recursively update the state of elements
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
An element becomes ready for runtime once it has a
cache key and all of its transitive runtime dependencies
have cache keys.
This patch introduces the method __update_ready_for_runtime()
which is called once the cache key of an Element is calculated.
When called, we immediately notify reverse dependencies and,
if appropriate, try to calculate their cache keys.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Once an Element's strict cache key is determined, we should
attempt to update the strict cache key of it's reverse
dependencies. The state of a reverse dependency will be
updated once all of its dependencies have strict cache keys
This patch introduces the potential for a RecursionError because
_update_state() can now trigger further _update_state calls (on
reverse dependencies). Therefore, the maximum recursion limit
for our "test_max_recursion_depth" test has been lowered.
If this becomes a problem, we can always consider setting a
larger recursion limit, for now, this change has been tested
with the Debian stack and works as expected.
|
| |
| |
| |
| |
| |
| |
| |
| | |
This patch inlines the
__on_{build,runtime}_dependency_ready_for_runtime_and_cached()
functions. Their logic now exists within
_update_ready_for_runtime_and_cached, thus the overhead of the
extra functions have been removed.
|
| |
| |
| |
| |
| |
| |
| | |
The __remaining_runtime_deps_uncached and
__remaining_build_deps_uncached variables are rather verbose and
do not really need to specify that they are "remaining", this is
implicit. This patch renames these variables
|
| |
| |
| |
| | |
These comments should have been removed/fixed in 176a3057
|
| |
| |
| |
| |
| |
| |
| |
| | |
This patch marks the cache keys of workspaced elements as
initially unstable. If the cache keys are considered unstable,
we don't recursively update reverse dependencies. Only when a
workspaced element is confirmed to be cached do we mark the
cache keys as stable.
|
|/
|
|
|
|
|
| |
It's essential to call preflight() when loading/resolving the Elements.
This patch moves the preflight call to new_from_meta, so that it is
called as soon as the Element is created. This avoids the need for
having multiple callsites.
|
|\
| |
| |
| |
| |
| |
| | |
Add max-jobs configuration and command line option
Closes #1033
See merge request BuildStream/buildstream!1473
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| | |
This tests that the resolution of the `max-jobs` automatic variable
is properly controlled by the new user configuration and command
line option, including the default automatic '0' value.
Regression test for #1033
|
| |
| |
| |
| |
| |
| |
| | |
Only use automatic max-jobs by default if the user has not
requested a specific value for max-jobs.
This is a part of #1033
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
While this is currently only relevant for `bst build`, it is
a current implementation detail that user configuration which
gets overridden by command line options must use toplevel
options.
This patch allows invocations such as the following to override
the max-jobs:
bst --max-jobs 16 build target.bst
This also updates the completions test to expect the new toplevel option.
This is a part of #1033
|
|/
|
|
|
|
|
|
| |
This loads the configuration of the max-jobs variable
from the user configuration, where the default is 0
(meaning use the maximum number of cores with a limit of 8).
This is a part of #1033
|
|\
| |
| |
| |
| | |
Rewrite of the Node API
See merge request BuildStream/buildstream!1472
|
| | |
|
| |
| |
| |
| |
| | |
We need to update every place where we were passing a yaml 'dict' to
now pass a 'MappingNode'
|
| |
| |
| |
| |
| | |
_create_new_file did not use the 'toplevel' parameter, we can therefore
remove it.
|
| | |
|
| |
| |
| |
| |
| | |
Users should not have to know anything about nodes, and should be
greeted by commonly defined yaml types.
|
| |
| |
| |
| |
| |
| |
| |
| | |
A 'clone' operation has an implicit understanding that it is expensive,
which is not the case of a 'copy' operation, which is more usually
a shallow copy.
Therefore renaming to 'clone'
|
| |
| |
| |
| |
| | |
This reduces slightly the amount of C code needed and makes the run
marginally faster
|
| |
| |
| |
| |
| | |
This way, it is easier to know what is BuildStream-private from
what is module-private
|
| | |
|
| |
| |
| |
| | |
This is not needed for plugins and should therefore not be public
|
| |
| |
| |
| |
| | |
This makes the 'Node' API public, and available for use directly for
plugins.
|
| | |
|
| | |
|
| | |
|