The NetBSD Project

CVS log for src/usr.bin/make/unit-tests/opt-debug-lint.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.23: download - view: text, markup, annotated - select for diffs
Sat Jan 11 20:54:45 2025 UTC (3 days, 19 hours ago) by rillig
Branches: MAIN
CVS tags: HEAD
Diff to: previous 1.22: preferred, colored
Changes since revision 1.22: +5 -7 lines
make: omit redundant follow-up message "Malformed conditional"

If there is a parse error or an evaluation error during the conditional,
the conditional is already mentioned in the "while evaluating condition"
line, so there's no reason to repeat it once again.

Same for the "Bad condition" message from the '?:' modifier.

Revision 1.22: download - view: text, markup, annotated - select for diffs
Thu Aug 29 20:20:36 2024 UTC (4 months, 2 weeks ago) by rillig
Branches: MAIN
Diff to: previous 1.21: preferred, colored
Changes since revision 1.21: +6 -3 lines
make: reduce line length in error messages

The error messages for deeply nested parse errors were hard to decipher,
due to the large amount of text.  Split these messages into individual
lines, just as in the backtrace for .include files and .for loops.  This
unified backtrace makes the output more uniform.

Revision 1.21: download - view: text, markup, annotated - select for diffs
Tue Aug 6 18:00:17 2024 UTC (5 months, 1 week ago) by rillig
Branches: MAIN
Diff to: previous 1.20: preferred, colored
Changes since revision 1.20: +2 -2 lines
make: in error message about conditionals, use single quotes

Single quotes are used less often in the conditionals themselves, which
leads to fewer confusions.

Revision 1.20: download - view: text, markup, annotated - select for diffs
Thu Jul 4 17:47:54 2024 UTC (6 months, 1 week ago) by rillig
Branches: MAIN
Diff to: previous 1.19: preferred, colored
Changes since revision 1.19: +3 -3 lines
make: add more context information to error messages

In case of a parse error or evaluation error, print the variable value
in addition to the variable name, to see the effects of previous
expression modifiers.

In nested make calls, print the current directory at the bottom of a
stack trace, as that information is otherwise hard to get in a parallel
build spanning multiple directories.

Revision 1.19: download - view: text, markup, annotated - select for diffs
Sat Apr 20 10:18:55 2024 UTC (8 months, 3 weeks ago) by rillig
Branches: MAIN
CVS tags: perseant-exfatfs-base-20240630, perseant-exfatfs-base, perseant-exfatfs
Diff to: previous 1.18: preferred, colored
Changes since revision 1.18: +3 -3 lines
make: provide more context information for parse/evaluate errors

Revision 1.18: download - view: text, markup, annotated - select for diffs
Thu Jun 1 20:56:35 2023 UTC (19 months, 2 weeks ago) by rillig
Branches: MAIN
Diff to: previous 1.17: preferred, colored
Changes since revision 1.17: +7 -7 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
Tue Feb 14 20:49:09 2023 UTC (23 months ago) by rillig
Branches: MAIN
Diff to: previous 1.16: preferred, colored
Changes since revision 1.16: +2 -0 lines
make: don't interpret the return value of Var_Parse

The return value of Var_Parse is largely redundant to the returned
string.  The idea behind the type VarParseResult was to migrate all call
sites to checking this return value instead of the returned string, but
that hasn't happened.  Instead, the additional type only added more
complexity.

There was a single place where that return value was actually used, when
parsing conditions.  And even in that case, ignoring the VarParseResult
added back an error message that previously hid bugs, in the test
cond-token-plain.mk.

Even though these error messages are redundant in the other tests, they
don't hurt as they don't happen often.

Revision 1.16: download - view: text, markup, annotated - select for diffs
Sun Mar 14 10:57:12 2021 UTC (3 years, 10 months 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.15: preferred, colored
Changes since revision 1.15: +0 -1 lines
make: fix wrong expression evaluation in -dL mode

The modifier ':C' now only compiles the regular expression if the result
of the expression is actually needed.

Several other modifiers have the same bug of evaluating the expression
in cases where this is not needed.  It just doesn't show up because they
don't have any noticeable side effects, other than wasting CPU time.
This affects irrelevant conditions as well.

Revision 1.15: download - view: text, markup, annotated - select for diffs
Sun Mar 14 10:45:51 2021 UTC (3 years, 10 months ago) by rillig
Branches: MAIN
Diff to: previous 1.14: preferred, colored
Changes since revision 1.14: +1 -0 lines
make: demonstrate wrong expression evaluation in -dL mode

Revision 1.14: download - view: text, markup, annotated - select for diffs
Tue Feb 23 15:19:41 2021 UTC (3 years, 10 months ago) by rillig
Branches: MAIN
Diff to: previous 1.13: preferred, colored
Changes since revision 1.13: +1 -1 lines
make: improve error message for unknown modifier

Back in 1995, the modifiers were all single-character, and it made sense
to print only the first character.  Nowadays, with ':S', ':@var@...@',
'::=' and several others, a little more context is useful to see where
the exact error is.  The actual modifier is still guessed, and the guess
may be wrong as soon as backslashes get involved, but it is still better
than before.

Revision 1.13: download - view: text, markup, annotated - select for diffs
Sun Dec 20 19:47:34 2020 UTC (4 years ago) by rillig
Branches: MAIN
Diff to: previous 1.12: preferred, colored
Changes since revision 1.12: +1 -1 lines
make(1): error out on unknown variable modifiers at parse time

Before, make printed an "error message" that did not include the word
error and thus was not easily identified as such.  This "error message"
also did not influence the exit status in the default mode but only in
-dL mode.  The error message also didn't include any line number
information and was thus rude.

Revision 1.12: download - view: text, markup, annotated - select for diffs
Sun Dec 20 19:10:53 2020 UTC (4 years ago) by rillig
Branches: MAIN
Diff to: previous 1.11: preferred, colored
Changes since revision 1.11: +0 -1 lines
make(1): remove wrong error message for indirect modifier in lint mode

Revision 1.11: download - view: text, markup, annotated - select for diffs
Mon Oct 5 19:27:48 2020 UTC (4 years, 3 months ago) by rillig
Branches: MAIN
Diff to: previous 1.10: preferred, colored
Changes since revision 1.10: +4 -0 lines
make(1): revert previous commit

It had accidentally reverted all the work from the past few days.

Revision 1.10: download - view: text, markup, annotated - select for diffs
Mon Oct 5 19:24:29 2020 UTC (4 years, 3 months ago) by rillig
Branches: MAIN
Diff to: previous 1.9: preferred, colored
Changes since revision 1.9: +0 -4 lines
make(1): fix double-free bug in -DCLEANUP mode (since 2020-10-02)

The bug had been introduced with dir.c 1.155 on 2020-10-02 22:20:25.  In
that commit, openDirectories was replaced with a combination of a list
with a hash table, for more efficient lookup by name.

Upon cleanup, OpenDirs_Done is called, which in turn called
Dir_ClearPath.  Dir_ClearPath takes full ownership of the given list and
empties it.  This was no problem before since afterwards the list was
empty and calling Lst_Free just frees the remaining list pointer.

With OpenDirs, this list was combined with a hash table, and the hash
table contains the list nodes, assuming that the OpenDirs functions have
full ownership of both the list and the hash table.  This assumption was
generally correct, except for the one moment during cleanup where full
ownership of the list was passed to Dir_ClearPath, while the hash table
still contained pointers to the (now freed) list nodes.  This by itself
was not a problem since the hash table would be freed afterwards.  But
as part of Dir_ClearPath, OpenDirs_Remove was called, which looked up
the freed directory by name and now found the freed list node, trying to
free it again.  Boom.

Fixed by replacing the call to Dir_ClearPath with code that only frees
the directories, without giving up control over the list.

Revision 1.9: download - view: text, markup, annotated - select for diffs
Sat Oct 3 12:30:17 2020 UTC (4 years, 3 months ago) by rillig
Branches: MAIN
Diff to: previous 1.8: preferred, colored
Changes since revision 1.8: +3 -0 lines
make(1): in lint mode, reject modifiers without delimiter

The expression ${VAR:LPL} must now be written as ${VAR:L:P:L}.  The
manual page has never documented that some modifiers don't need to be
delimited by ':' and others need to.  That would have been unnecessarily
confusing anyway.

Revision 1.8: download - view: text, markup, annotated - select for diffs
Sat Oct 3 12:26:11 2020 UTC (4 years, 3 months ago) by rillig
Branches: MAIN
Diff to: previous 1.7: preferred, colored
Changes since revision 1.7: +1 -0 lines
make(1): add test for variable modifiers without delimiter

Revision 1.7: download - view: text, markup, annotated - select for diffs
Mon Sep 14 21:55:53 2020 UTC (4 years, 4 months ago) by rillig
Branches: MAIN
Diff to: previous 1.6: preferred, colored
Changes since revision 1.6: +0 -1 lines
make(1): fix wrong error for undefined variables in lint mode

Revision 1.6: download - view: text, markup, annotated - select for diffs
Mon Sep 14 21:52:49 2020 UTC (4 years, 4 months ago) by rillig
Branches: MAIN
Diff to: previous 1.5: preferred, colored
Changes since revision 1.5: +1 -0 lines
make(1): add test for wrong error in lint mode for undefined variable

Revision 1.5: download - view: text, markup, annotated - select for diffs
Mon Sep 14 07:13:29 2020 UTC (4 years, 4 months ago) by rillig
Branches: MAIN
Diff to: previous 1.4: preferred, colored
Changes since revision 1.4: +2 -2 lines
make(1): remove obsolete comments from tests

Revision 1.4: download - view: text, markup, annotated - select for diffs
Sun Sep 13 20:21:24 2020 UTC (4 years, 4 months ago) by rillig
Branches: MAIN
Diff to: previous 1.3: preferred, colored
Changes since revision 1.3: +1 -0 lines
make(1): in lint mode, report undefined variables in conditions

Revision 1.3: download - view: text, markup, annotated - select for diffs
Sun Sep 13 19:46:23 2020 UTC (4 years, 4 months ago) by rillig
Branches: MAIN
Diff to: previous 1.2: preferred, colored
Changes since revision 1.2: +0 -1 lines
make(1): suppress wrong "Malformed conditional" for undefined variables

This only has an effect in lint mode right now.

Revision 1.2: download - view: text, markup, annotated - select for diffs
Sun Sep 13 19:28:46 2020 UTC (4 years, 4 months ago) by rillig
Branches: MAIN
Diff to: previous 1.1: preferred, colored
Changes since revision 1.1: +5 -1 lines
make(1): in lint mode, improve error handling for undefined variables

It's a first step for improving the error message that make prints.

Revision 1.1: download - view: text, markup, annotated - select for diffs
Sat Sep 5 06:20:51 2020 UTC (4 years, 4 months ago) by rillig
Branches: MAIN
make(1): add tests for each debug option

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>