Home | History | Annotate | Download | only in unit-tests
History log of /src/usr.bin/make/unit-tests/include-main.exp
RevisionDateAuthorComments
 1.15  30-Mar-2025  rillig make: use '"filename" line 123' for locations instead of 'filename:123'

The format 'filename:123' is commonly used for identifying a location in
a file. Text editors recognize it and allow quick navigation through it.
The previous format was specific to make and would have required custom
support in editors.

The new format was already used in stack traces, except for the first
line. Now all lines use the same format.
 1.14  31-Oct-2024  rillig make: in the debug log, always qualify line number with filename

Previously, to find out the filename corresponding to a line number from
a 'Parsing' line, it was necessary to find the preceding
'SetFilenameVars' line, which was unnecessarily time-consuming and
distracting.

The 'filename:line' format matches the one used in PrintStackTrace, and
it differs from the one used in PrintLocation, as the former format is
more common in other tools.

Most of the affected unit tests only use the 'Parsing' lines to give
additional context to their debug log, so no structural changes there.
 1.13  01-Jun-2023  rillig branches: 1.13.2;
tests/make: force line-based diagnostics to be listed in the tests

This way, contradictions between the intended output and the actual
output are closer together and have a better chance of being spotted.
 1.12  19-Jan-2023  rillig tests/make: rename files that are not test cases
 1.11  09-Jan-2022  rillig make: remove redundant lines from stack traces

These lines repeated the information from the .for loop line above them.
 1.10  08-Jan-2022  rillig make: add details about .for loop variables to stack traces

The stack traces are enabled with the debug logging option '-dp'.
 1.9  08-Jan-2022  rillig make: fix stack traces in -dp mode (since 2021-01-26)

Previously, the stack traces omitted some lines that seemed to be
redundant. As a result, the stack traces contained confusing line
numbers.
 1.8  28-Dec-2021  rillig make: make debug logging a bit more human-friendly

The previous log format "ParseReadLine (%d): '%s'" focused on the
implementation, it was not immediately obvious to a casual reader that
the number in parentheses was the line number. Additionally, having
both a colon and quotes in a log message is uncommon. The quotes have
been added in parse.c 1.127 from 2007-01-01.

The new log format "Parsing line %d: %s" is meant to be easier readable
by humans. The quotes are not needed since ParseReadLine always strips
trailing whitespace, leaving no room for ambiguities. The other log
messages follow common punctuation rules, which makes the beginning of
the line equally unambiguous. Before var.c 1.911 from 2021-04-05,
variable assignments were logged with the format "%s:%s = %s", without a
space after the colon.
 1.7  04-Apr-2021  rillig make: remove filler word 'Do' from function names for parsing

No functional change, except for debug logging.
 1.6  26-Jan-2021  rillig make(1): in -dp mode, print stack trace with each diagnostic

This makes it easier to track down where a warning or an error
originated from. This information could be further enriched for .for
loops, to also include the variable names and their values. For now,
it's good enough to replace the large comment describing how a stack
trace _could_ be generated with actual code that implements that idea.

The syntax of the locations is <filename>:<lineno>, which intentionally
differs from the traditional "<filename>" line <lineno>, since the
former is more widely supported by editors and IDEs.

Having this stacktrace information is especially intended for
complicated systems built upon make, such as pkgsrc.
 1.5  14-Sep-2020  rillig make(1): describe how Parse_Error might print stack traces

In deeply nested include chains and .for loops this may be a useful
feature. It's a little tricky to generate an intuitive stack trace,
though not impossible. This explanation also serves as a detailed
documentation about how the .include and .for directives are
implemented.
 1.4  05-Sep-2020  rillig make(1): fix .INCLUDEDFROMDIR/.INCLUDEDFROMFILE
 1.3  05-Sep-2020  rillig make(1): add test for .INCLUDEDFILE combined with .for loops

The .for loops are implemented as a special kind of .include, therefore
they affect the .INCLUDEDFROM variable.
 1.2  05-Sep-2020  rillig make(1): make test for .INCLUDEDFROMDIR simpler

The .info and .warning directives provide exactly the early expansion
that this test needs. No more .for for getting a snapshot of a
variable.
 1.1  17-May-2020  rillig usr.bin/make: demonstrate actual behavior of .INCLUDEDFROMFILE
 1.13.2.1  02-Aug-2025  perseant Sync with HEAD

RSS XML Feed