Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
This is an essential step in the debugging process that was missing
in the tutorial.
|
|
Originally, the expression lanuage only contained a function to
deduplicate a list, keeping only the right-most occurence. The
reason was that this is the order needed for linking: a library
providing an open symbol has to come on the command line after the
library using that symbol (and hence making it an open symbol).
However, by now use cases have emerged that require a topological
sorting where definition comes before use; also, when composing
the value of PATH from fragments, we usually want to keep the first
occurrence in order for it to take precedence. Therefore, also
add "nub_left" as built-in function, allowing a more condense (and
slightly more efficient) description in rules instead of the
revserse-nub_right-reverse pattern.
|
|
... allowing to select only the keys in a specific subdir,
and move the them to top-level.
|
|
... and drop the corresponding design document as implemented.
|
|
|
|
|
|
directory
... instead of always having to execute actions in the top-level directory.
|
|
|
|
|
|
|
|
... as they will be used in newer versions of rules-cc to set the
path for the test-summary action.
|
|
... and mention the fix in CHANGELOG.
|
|
|
|
This showcases that also generated proto headers will be staged for
debugging.
|
|
|
|
This is good practice and it makes it easier to later demonstrate
debugging, as the flag value is honored.
Also renames the final repos.json example, in order to ensure that
any chapters depending on the output of this chapter receives the
correct repository description.
|
|
|
|
...to version fully supporting debugging.
|
|
Most built-in rules are just described by their name, assuming they
are known to the user anyway. One exception, however, are "export"
targets, as those serve as interfaces to (logical) repositories and
hence is supposed to have a documentation of the target itself. Over
time, however, "configure" targets have evolved to become internal
interfaces (maybe even for an external target), e.g., to provide
default values and hence make better use of the actual export target.
Therefore it is desirable to provide a bit more information when
asked to describe a "configure" target.
- As "configure" targets have a fixed set of keys, adding a "doc"
field is a conservative extension; this can be useful to give an
overview what the target is about.
- An important information of a "configure" target is the target
that is configured. While this, in general, is an expression, in
the typical cases, the description is very short (a literal target
name, or a variable). So we can afford to show the definition.
|
|
|
|
|
|
|
|
|
|
... so that the tutorial also works with the latest version of our rules.
|
|
|
|
... and document the implementation in the concepts documentation.
|
|
|
|
Also updates the tests and all relevant documentation accordingly.
|
|
While this can already be expressed by an "if" statement, having
a dedicated function for logical negation makes some expressions
more readable.
|
|
... using, also for the "then" branch, the empty list as default.
In this way, this statement not only more symmetric, but also
allows shorter representations of some typical expressions.
|
|
Lists are somtimes used in configurations as replacement for tuples.
Providing length gives an easy way to detect usage errors.
|
|
|
|
|
|
When tutorial docs were changed to showcase running commands with
just-mr instead of just, the outputs were not changed. This is now
fixed to showcase the results run with current master just-mr (and
just), together with other small improvements and fixes.
|
|
|
|
|
|
|
|
|
|
... and set quadratic bounding box.
|
|
|
|
|
|
Numerical values are used at some places in justbuild: as value for
timeout scaling, as well as by the "range" expression that is used,
e.g., to define repreated test runs. Therefore, improve support
for numerical values by adding basic operations.
|
|
The base functionality is already implemented. Also, the default has
changed with respect to the design to make reading symlinks the default
and only follow symlinks if the optin --follow-symlinks is given.
|
|
... to clean up what can be done without losing cache information.
|
|
|
|
|