The NetBSD Project

CVS log for src/usr.bin/make/unit-tests/varname.exp

[BACK] Up to [cvs.NetBSD.org] / src / usr.bin / make / unit-tests

Request diff between arbitrary revisions


Keyword substitution: kv
Default branch: MAIN


Revision 1.25: download - view: text, markup, annotated - select for diffs
Sun Mar 30 09:51:51 2025 UTC (3 weeks, 5 days ago) by rillig
Branches: MAIN
CVS tags: HEAD
Diff to: previous 1.24: preferred, colored
Changes since revision 1.24: +3 -3 lines
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.

Revision 1.24: download - view: text, markup, annotated - select for diffs
Tue Jan 14 21:23:17 2025 UTC (3 months, 1 week ago) by rillig
Branches: MAIN
Diff to: previous 1.23: preferred, colored
Changes since revision 1.23: +1 -1 lines
make: simplify parsing of dependency lines

The evaluation modes that allow or deny undefined variables have the same
effect in this case, as Var_Subst does not return an error marker.

Revision 1.23: download - view: text, markup, annotated - select for diffs
Sat Jan 11 21:21:34 2025 UTC (3 months, 1 week ago) by rillig
Branches: MAIN
Diff to: previous 1.22: preferred, colored
Changes since revision 1.22: +2 -2 lines
make: replace "Malformed conditional" with "Variable is undefined"

Evaluating a conditional such as ".if ${UNDEF}" produced a "Malformed
conditional" error, even though the form of the conditional was correct,
it was the content of the variable that was wrong.

Replace this message with the more accurate "Variable is undefined",
revealing which of the possibly many variables is actually undefined.

Revision 1.22: download - view: text, markup, annotated - select for diffs
Tue Aug 6 17:46:01 2024 UTC (8 months, 2 weeks ago) by rillig
Branches: MAIN
Diff to: previous 1.21: preferred, colored
Changes since revision 1.21: +1 -1 lines
make: add details to error messages about missing ')'

Revision 1.21: download - view: text, markup, annotated - select for diffs
Thu Jul 4 20:18:40 2024 UTC (9 months, 3 weeks ago) by rillig
Branches: MAIN
Diff to: previous 1.20: preferred, colored
Changes since revision 1.20: +1 -1 lines
make: on error, print the targets to be made

This helps to understand situations with several nested sub-makes in
varying directories.

Revision 1.20: download - view: text, markup, annotated - select for diffs
Sat Aug 19 11:09:02 2023 UTC (20 months, 1 week ago) by rillig
Branches: MAIN
CVS tags: perseant-exfatfs-base-20240630, perseant-exfatfs-base, perseant-exfatfs
Diff to: previous 1.19: preferred, colored
Changes since revision 1.19: +1 -1 lines
make: show realistic invalid line in error message

Previously, the error message 'Invalid line' showed only the expanded
line, which might or might not show the actual problem.  To be more
helpful, add the unexpanded line to the error message in case they
differ.

Remove the special handling of invalid lines that result from merge
conflicts.  RCS is not commonly used anymore, and mentioning CVS was too
specific.  By echoing the whole line, the patterns '<<<<<<' and '>>>>>>'
are clear enough to hint at the problem.

Revision 1.19: download - view: text, markup, annotated - select for diffs
Sat Aug 19 10:52:14 2023 UTC (20 months, 1 week ago) by rillig
Branches: MAIN
Diff to: previous 1.18: preferred, colored
Changes since revision 1.18: +1 -1 lines
make: add more details to error message about invalid lines

Revision 1.18: download - view: text, markup, annotated - select for diffs
Thu Jun 1 20:56:35 2023 UTC (22 months, 3 weeks ago) by rillig
Branches: MAIN
Diff to: previous 1.17: preferred, colored
Changes since revision 1.17: +3 -3 lines
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.

Revision 1.17: download - view: text, markup, annotated - select for diffs
Sat Apr 10 22:09:54 2021 UTC (4 years ago) by rillig
Branches: MAIN
CVS tags: netbsd-10-base, netbsd-10-1-RELEASE, netbsd-10-0-RELEASE, netbsd-10-0-RC6, netbsd-10-0-RC5, netbsd-10-0-RC4, netbsd-10-0-RC3, netbsd-10-0-RC2, netbsd-10-0-RC1, netbsd-10, cjep_sun2x-base1, cjep_sun2x-base, cjep_sun2x, cjep_staticlib_x-base1, cjep_staticlib_x-base, cjep_staticlib_x
Diff to: previous 1.16: preferred, colored
Changes since revision 1.16: +0 -3 lines
make: reduce debug logging and memory allocation for ${:U...}

Expressions of the form ${:U...} are often generated by .for loops.
Since these expressions are not generated knowingly by the make user, do
not fill the debug log with them since that would interrupt the normal
reading flow of the -dv log for nested expressions.

Revision 1.16: download - view: text, markup, annotated - select for diffs
Mon Apr 5 13:35:41 2021 UTC (4 years ago) by rillig
Branches: MAIN
Diff to: previous 1.15: preferred, colored
Changes since revision 1.15: +8 -8 lines
make: in debug log, add space between scope and variable name

Without this space, the debug log looked more like line noise, even
though the only punctuation was a single innocent ':'.  From a make
user's perspective, the variable name is a word of its own and should
not be visually glued to its namespace.

Revision 1.15: download - view: text, markup, annotated - select for diffs
Mon Apr 5 13:14:55 2021 UTC (4 years ago) by rillig
Branches: MAIN
Diff to: previous 1.14: preferred, colored
Changes since revision 1.14: +2 -2 lines
make: be more verbose in -dv debug logging

The previous log output was too brief to be understandable.  Give more
hints by describing each part of the expression when evaluating a
modifier.  Distinguish between parse-only mode and eval mode since in
parse-only mode most of the details are irrelevant.

Revision 1.14: download - view: text, markup, annotated - select for diffs
Sat Apr 3 22:02:59 2021 UTC (4 years ago) by rillig
Branches: MAIN
Diff to: previous 1.13: preferred, colored
Changes since revision 1.13: +4 -4 lines
make: remove VarFlags from debug logging

Before the introduction of ExprDefined, VarFlags contained whether the
expression was defined or not, which was useful to know since the final
value of the expression depends on this information.  The other VarFlags
do not influence the evaluation, so there is no point logging them.

Revision 1.13: download - view: text, markup, annotated - select for diffs
Mon Mar 15 15:39:13 2021 UTC (4 years, 1 month ago) by rillig
Branches: MAIN
Diff to: previous 1.12: preferred, colored
Changes since revision 1.12: +10 -10 lines
make: change debug log for variable evaluation flags to lowercase

This makes them easier distinguishable from variable names since the
latter are usually uppercase.

No functional change outside debug mode.

Revision 1.12: download - view: text, markup, annotated - select for diffs
Mon Feb 15 18:23:32 2021 UTC (4 years, 2 months ago) by rillig
Branches: MAIN
Diff to: previous 1.11: preferred, colored
Changes since revision 1.11: +4 -4 lines
make: rename ExprDefined constants for debug logging

Revision 1.11: download - view: text, markup, annotated - select for diffs
Tue Feb 2 16:18:16 2021 UTC (4 years, 2 months ago) by rillig
Branches: MAIN
Diff to: previous 1.10: preferred, colored
Changes since revision 1.10: +4 -4 lines
make: replace VarExprFlags with VarExprStatus

The combination of !VEF_UNDEF && VEF_DEF was not possible, which made it
rather strange to model this state as a bit set.

The only functional change is the renamed constants in the debug output.

Using ENUM_VALUE_RTTI_2 felt like overengineering since it's harder to
understand than a simple array of names.

Revision 1.10: download - view: text, markup, annotated - select for diffs
Mon Feb 1 21:56:03 2021 UTC (4 years, 2 months ago) by rillig
Branches: MAIN
Diff to: previous 1.9: preferred, colored
Changes since revision 1.9: +1 -1 lines
make: replace parse error "Need an operator" with better message

The previous error message is not easily understandable since it is
missing a crucial detail, the column where the operator is needed.
Without this information, the author of the makefile gets no useful
hint.  Furthermore, there are several types of operators in makefiles:

	the dependency operators ':', '!', '::',
	the variable assignment operators '=', '!=', '+=', '?=', ':=',
	the conditional operators '&&', '||', '!',
	the comparison operators '==', '!=', '>', '>=', '<', '<='.

This leaves too much ambiguity.

Replace this error message with "Invalid line type", which is more
generic, more accurate and thus less misleading.

Revision 1.9: download - view: text, markup, annotated - select for diffs
Sat Nov 7 13:09:13 2020 UTC (4 years, 5 months ago) by rillig
Branches: MAIN
Diff to: previous 1.8: preferred, colored
Changes since revision 1.8: +1 -1 lines
make(1): properly handle errors for malformed archive target names

Error messages don't belong on stdout.

Revision 1.8: download - view: text, markup, annotated - select for diffs
Mon Nov 2 22:59:48 2020 UTC (4 years, 5 months ago) by rillig
Branches: MAIN
Diff to: previous 1.7: preferred, colored
Changes since revision 1.7: +3 -5 lines
make(1): document test for parsing of variable assignments

Revision 1.7: download - view: text, markup, annotated - select for diffs
Mon Nov 2 22:46:52 2020 UTC (4 years, 5 months ago) by rillig
Branches: MAIN
Diff to: previous 1.6: preferred, colored
Changes since revision 1.6: +3 -3 lines
make(1): fix line numbers in test output of varname.mk

Revision 1.6: download - view: text, markup, annotated - select for diffs
Mon Nov 2 22:44:29 2020 UTC (4 years, 5 months ago) by rillig
Branches: MAIN
Diff to: previous 1.5: preferred, colored
Changes since revision 1.5: +3 -3 lines
make(1): document undefined behavior in Parse_IsVar

Sigh.  If only C could be compiled in strict mode that detects these
out-of-bounds memory accesses.

Revision 1.5: download - view: text, markup, annotated - select for diffs
Mon Nov 2 22:29:48 2020 UTC (4 years, 5 months ago) by rillig
Branches: MAIN
Diff to: previous 1.4: preferred, colored
Changes since revision 1.4: +13 -8 lines
make(1): fix test for parsing obscure variable names

I had forgotten the :U modifier.  Without that modifier, there's no
chance that the variable names would come out correctly.

Revision 1.4: download - view: text, markup, annotated - select for diffs
Mon Nov 2 22:16:24 2020 UTC (4 years, 5 months ago) by rillig
Branches: MAIN
Diff to: previous 1.3: preferred, colored
Changes since revision 1.3: +21 -1 lines
make(1): add tests for parsing ob obscure variable names

Revision 1.3: download - view: text, markup, annotated - select for diffs
Sun Oct 18 08:47:54 2020 UTC (4 years, 6 months ago) by rillig
Branches: MAIN
Diff to: previous 1.2: preferred, colored
Changes since revision 1.2: +0 -18 lines
make(1): sort variables in debug output

This way it's easier to see whether an expected variable is missing, or
to compare the values of related variables, since they usually share a
common prefix.  Any sorting criterion is better than the hash code.

Sorting the variables by name changed the order of the output in
varname.mk.  That test didn't test anything meaningful, it was just a
playground to understand and demonstrate the current implementation of
how the variables are stored, therefore it has been removed.

Revision 1.2: download - view: text, markup, annotated - select for diffs
Sat Sep 5 13:34:19 2020 UTC (4 years, 7 months ago) by rillig
Branches: MAIN
Diff to: previous 1.1: preferred, colored
Changes since revision 1.1: +18 -0 lines
make(1): add expected test result for hashing variable names

Revision 1.1: download - view: text, markup, annotated - select for diffs
Sun Aug 16 12:07:52 2020 UTC (4 years, 8 months ago) by rillig
Branches: MAIN
make(1): add dummies for fine-grained tests, one per single feature

The test names have been derived from the current manual page.

All these tests are dummies right now, and the code from the existing
tests will be moved into the new tests step by step.

This is done to prevent modmisc, escape, varmod-edge and varmisc from
growing without any bounds, and to reduce the side-effects of one test
to the others.

Diff request

This form allows you to request diffs between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.

Log view options

CVSweb <webmaster@jp.NetBSD.org>