Module Name:    src
Committed By:   rillig
Date:           Wed Dec 20 09:03:09 UTC 2023

Modified Files:
        src/usr.bin/make: var.c
        src/usr.bin/make/unit-tests: var-scope-local.exp var-scope-local.mk
            vardebug.exp varname-dot-shell.exp varname-dot-suffixes.exp
            varname-dot-suffixes.mk varname-empty.exp

Log Message:
make: use consistent debug messages style when ignoring variables

When a variable is not modified or not deleted, clearly say so and state
the reason.  Use the same style of debug messages everywhere, putting
the word 'ignoring' at the front.  Previously, that word sticked out to
the right, but only in some cases.


To generate a diff of this commit:
cvs rdiff -u -r1.1085 -r1.1086 src/usr.bin/make/var.c
cvs rdiff -u -r1.6 -r1.7 src/usr.bin/make/unit-tests/var-scope-local.exp \
    src/usr.bin/make/unit-tests/varname-dot-suffixes.exp
cvs rdiff -u -r1.8 -r1.9 src/usr.bin/make/unit-tests/var-scope-local.mk
cvs rdiff -u -r1.32 -r1.33 src/usr.bin/make/unit-tests/vardebug.exp
cvs rdiff -u -r1.19 -r1.20 src/usr.bin/make/unit-tests/varname-dot-shell.exp
cvs rdiff -u -r1.4 -r1.5 src/usr.bin/make/unit-tests/varname-dot-suffixes.mk
cvs rdiff -u -r1.21 -r1.22 src/usr.bin/make/unit-tests/varname-empty.exp

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/usr.bin/make/var.c
diff -u src/usr.bin/make/var.c:1.1085 src/usr.bin/make/var.c:1.1086
--- src/usr.bin/make/var.c:1.1085	Wed Dec 20 08:50:10 2023
+++ src/usr.bin/make/var.c	Wed Dec 20 09:03:08 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: var.c,v 1.1085 2023/12/20 08:50:10 rillig Exp $	*/
+/*	$NetBSD: var.c,v 1.1086 2023/12/20 09:03:08 rillig Exp $	*/
 
 /*
  * Copyright (c) 1988, 1989, 1990, 1993
@@ -139,7 +139,7 @@
 #include "metachar.h"
 
 /*	"@(#)var.c	8.3 (Berkeley) 3/19/94" */
-MAKE_RCSID("$NetBSD: var.c,v 1.1085 2023/12/20 08:50:10 rillig Exp $");
+MAKE_RCSID("$NetBSD: var.c,v 1.1086 2023/12/20 09:03:08 rillig Exp $");
 
 /*
  * Variables are defined using one of the VAR=value assignments.  Their
@@ -929,15 +929,17 @@ Var_SetWithFlags(GNode *scope, const cha
 
 	assert(val != NULL);
 	if (name[0] == '\0') {
-		DEBUG0(VAR, "SetVar: variable name is empty - ignored\n");
+		DEBUG3(VAR,
+		    "%s: ignoring '%s = %s' as the variable name is empty\n",
+		    scope->name, name, val);
 		return;
 	}
 
 	if (scope == SCOPE_GLOBAL && ExistsInCmdline(name)) {
 		DEBUG3(VAR,
-		    "%s: ignoring '%s' = '%s' "
+		    "%s: ignoring '%s = %s' "
 		    "due to a command line variable of the same name\n",
-		    SCOPE_GLOBAL->name, name, val);
+		    scope->name, name, val);
 		return;
 	}
 
@@ -960,14 +962,16 @@ Var_SetWithFlags(GNode *scope, const cha
 		}
 		if (strcmp(name, ".SUFFIXES") == 0) {
 			/* special: treat as read-only */
-			DEBUG3(VAR, "%s: %s = %s ignored (read-only)\n",
+			DEBUG3(VAR,
+			    "%s: ignoring '%s = %s' as it is read-only\n",
 			    scope->name, name, val);
 			return;
 		}
 		v = VarAdd(name, val, scope, flags);
 	} else {
 		if (v->readOnly && !(flags & VAR_SET_READONLY)) {
-			DEBUG3(VAR, "%s: %s = %s ignored (read-only)\n",
+			DEBUG3(VAR,
+			    "%s: ignoring '%s = %s' as it is read-only\n",
 			    scope->name, name, val);
 			return;
 		}
@@ -1036,10 +1040,10 @@ Var_SetExpand(GNode *scope, const char *
 	Var_Expand(&varname, scope, VARE_WANTRES);
 
 	if (varname.str[0] == '\0') {
-		DEBUG2(VAR,
-		    "Var_SetExpand: variable name \"%s\" expands "
-		    "to empty string, with value \"%s\" - ignored\n",
-		    unexpanded_name, val);
+		DEBUG4(VAR,
+		    "%s: ignoring '%s = %s' "
+		    "as the variable name '%s' expands to empty\n",
+		    scope->name, varname.str, val, unexpanded_name);
 	} else
 		Var_SetWithFlags(scope, varname.str, val, VAR_SET_NONE);
 
@@ -1080,8 +1084,8 @@ Var_Append(GNode *scope, const char *nam
 	if (v == NULL) {
 		Var_SetWithFlags(scope, name, val, VAR_SET_NONE);
 	} else if (v->readOnly) {
-		DEBUG1(VAR, "Ignoring append to %s since it is read-only\n",
-		    name);
+		DEBUG3(VAR, "%s: ignoring '%s += %s' as it is read-only\n",
+		    scope->name, name, val);
 	} else if (scope == SCOPE_CMDLINE || !v->fromCmd) {
 		Buf_AddByte(&v->val, ' ');
 		Buf_AddStr(&v->val, val);
@@ -1130,10 +1134,10 @@ Var_AppendExpand(GNode *scope, const cha
 
 	Var_Expand(&xname, scope, VARE_WANTRES);
 	if (xname.str != name && xname.str[0] == '\0')
-		DEBUG2(VAR,
-		    "Var_AppendExpand: variable name \"%s\" expands "
-		    "to empty string, with value \"%s\" - ignored\n",
-		    name, val);
+		DEBUG4(VAR,
+		    "%s: ignoring '%s += %s' "
+		    "as the variable name '%s' expands to empty\n",
+		    scope->name, xname.str, val, name);
 	else
 		Var_Append(scope, xname.str, val);
 

Index: src/usr.bin/make/unit-tests/var-scope-local.exp
diff -u src/usr.bin/make/unit-tests/var-scope-local.exp:1.6 src/usr.bin/make/unit-tests/var-scope-local.exp:1.7
--- src/usr.bin/make/unit-tests/var-scope-local.exp:1.6	Sat Apr 29 10:16:24 2023
+++ src/usr.bin/make/unit-tests/var-scope-local.exp	Wed Dec 20 09:03:09 2023
@@ -1,8 +1,8 @@
 Global: .ALLTARGETS =  all target-rule.ext dir/subdir/target-rule.ext target-rule.ir-gen-from dir/subdir/target-rule-dir.ir-gen-from inference-rule.ir-to dir/subdir/inference-rule.ir-to inference-rule.ir-from dir/subdir/inference-rule.ir-from inference-rule-chain.ir-to dir/subdir/inference-rule-chain.ir-to inference-rule-chain.ir-gen-from dir/subdir/inference-rule-chain.ir-gen-from one
 Global: .ALLTARGETS =  all target-rule.ext dir/subdir/target-rule.ext target-rule.ir-gen-from dir/subdir/target-rule-dir.ir-gen-from inference-rule.ir-to dir/subdir/inference-rule.ir-to inference-rule.ir-from dir/subdir/inference-rule.ir-from inference-rule-chain.ir-to dir/subdir/inference-rule-chain.ir-to inference-rule-chain.ir-gen-from dir/subdir/inference-rule-chain.ir-gen-from one two
 Var_Parse: ${.MAKE.TARGET_LOCAL_VARIABLES} (eval)
-Var_SetExpand: variable name "" expands to empty string, with value "three" - ignored
-Var_SetExpand: variable name "" expands to empty string, with value "three" - ignored
+one: ignoring ' = three' as the variable name '' expands to empty
+two: ignoring ' = three' as the variable name '' expands to empty
 Global: one two = # (empty)
 Global: one two = three
 Global: .MAKEFLAGS =  -r -k -d v -d
Index: src/usr.bin/make/unit-tests/varname-dot-suffixes.exp
diff -u src/usr.bin/make/unit-tests/varname-dot-suffixes.exp:1.6 src/usr.bin/make/unit-tests/varname-dot-suffixes.exp:1.7
--- src/usr.bin/make/unit-tests/varname-dot-suffixes.exp:1.6	Wed Dec 20 08:50:10 2023
+++ src/usr.bin/make/unit-tests/varname-dot-suffixes.exp	Wed Dec 20 09:03:09 2023
@@ -1,20 +1,20 @@
 Global: ignoring delete '.SUFFIXES' as it is not found
 Global: .MAKEFLAGS =  -r -k -d v -d
 Global: .MAKEFLAGS =  -r -k -d v -d 0
-Global: .SUFFIXES = set ignored (read-only)
-Global: .SUFFIXES = append ignored (read-only)
+Global: ignoring '.SUFFIXES = set' as it is read-only
+Global: ignoring '.SUFFIXES = append' as it is read-only
 Global: _ = # (empty)
 Var_Parse: ${.SUFFIXES::=assign} (eval-keep-dollar-and-undefined)
 Evaluating modifier ${.SUFFIXES::...} on value ".c .o .1 .err .tar.gz" (eval-keep-dollar-and-undefined, regular)
 Modifier part: "assign"
-Global: .SUFFIXES = assign ignored (read-only)
+Global: ignoring '.SUFFIXES = assign' as it is read-only
 Result of ${.SUFFIXES::=assign} is "" (eval-keep-dollar-and-undefined, regular)
 Global: _ = # (empty)
 Var_Parse: ${preserve:L:_=.SUFFIXES} (eval-keep-dollar-and-undefined)
 Evaluating modifier ${preserve:L} on value "" (eval-keep-dollar-and-undefined, undefined)
 Result of ${preserve:L} is "preserve" (eval-keep-dollar-and-undefined, defined)
 Evaluating modifier ${preserve:_...} on value "preserve" (eval-keep-dollar-and-undefined, defined)
-Global: .SUFFIXES = preserve ignored (read-only)
+Global: ignoring '.SUFFIXES = preserve' as it is read-only
 Result of ${preserve:_=.SUFFIXES} is "preserve" (eval-keep-dollar-and-undefined, defined)
 Global: _ = preserve
 Global: .MAKEFLAGS =  -r -k -d v -d 0 -d v -d
@@ -26,10 +26,10 @@ Evaluating modifier ${1 2:@...} on value
 Modifier part: ".SUFFIXES"
 Modifier part: "${.SUFFIXES}"
 ModifyWords: split "1 2" into 2 words
-Command: .SUFFIXES = 1 ignored (read-only)
+Command: ignoring '.SUFFIXES = 1' as it is read-only
 Var_Parse: ${.SUFFIXES} (eval-defined)
 ModifyWord_Loop: in "1", replace ".SUFFIXES" with "${.SUFFIXES}" to ".c .o .1 .err .tar.gz"
-Command: .SUFFIXES = 2 ignored (read-only)
+Command: ignoring '.SUFFIXES = 2' as it is read-only
 Var_Parse: ${.SUFFIXES} (eval-defined)
 ModifyWord_Loop: in "2", replace ".SUFFIXES" with "${.SUFFIXES}" to ".c .o .1 .err .tar.gz"
 Command: ignoring delete '.SUFFIXES' as it is not found

Index: src/usr.bin/make/unit-tests/var-scope-local.mk
diff -u src/usr.bin/make/unit-tests/var-scope-local.mk:1.8 src/usr.bin/make/unit-tests/var-scope-local.mk:1.9
--- src/usr.bin/make/unit-tests/var-scope-local.mk:1.8	Sun Nov 19 21:47:52 2023
+++ src/usr.bin/make/unit-tests/var-scope-local.mk	Wed Dec 20 09:03:09 2023
@@ -1,4 +1,4 @@
-# $NetBSD: var-scope-local.mk,v 1.8 2023/11/19 21:47:52 rillig Exp $
+# $NetBSD: var-scope-local.mk,v 1.9 2023/12/20 09:03:09 rillig Exp $
 #
 # Tests for target-local variables, such as ${.TARGET} or $@.  These variables
 # are relatively short-lived as they are created just before making the
@@ -146,8 +146,8 @@ dir/subdir/inference-rule-chain.ir-gen-f
 #
 # The empty variable name is expanded twice, once for 'one' and once for
 # 'two'.
-# expect: Var_SetExpand: variable name "" expands to empty string, with value "three" - ignored
-# expect: Var_SetExpand: variable name "" expands to empty string, with value "three" - ignored
+# expect: one: ignoring ' = three' as the variable name '' expands to empty
+# expect: two: ignoring ' = three' as the variable name '' expands to empty
 one two:=three
 # If the two targets to the left are generated by an expression, the
 # line is parsed as a variable assignment since its left-hand side is a single

Index: src/usr.bin/make/unit-tests/vardebug.exp
diff -u src/usr.bin/make/unit-tests/vardebug.exp:1.32 src/usr.bin/make/unit-tests/vardebug.exp:1.33
--- src/usr.bin/make/unit-tests/vardebug.exp:1.32	Wed Dec 20 08:50:10 2023
+++ src/usr.bin/make/unit-tests/vardebug.exp	Wed Dec 20 09:03:09 2023
@@ -5,9 +5,9 @@ Global: VAR = added
 Global: VAR = overwritten
 Global: delete VAR
 Global: ignoring delete 'VAR' as it is not found
-Var_SetExpand: variable name "${:U}" expands to empty string, with value "empty name" - ignored
-Var_AppendExpand: variable name "${:U}" expands to empty string, with value "empty name" - ignored
-Global: ignoring 'FROM_CMDLINE' = 'overwritten' due to a command line variable of the same name
+Global: ignoring ' = empty name' as the variable name '${:U}' expands to empty
+Global: ignoring ' += empty name' as the variable name '${:U}' expands to empty
+Global: ignoring 'FROM_CMDLINE = overwritten' due to a command line variable of the same name
 Global: VAR = 1
 Global: VAR = 1 2
 Global: VAR = 1 2 3
@@ -61,7 +61,7 @@ Var_Parse: ${UNDEFINED} (eval-defined)
 make: "vardebug.mk" line 56: Malformed conditional (${UNDEFINED})
 Global: ignoring delete '.SHELL' as it is not found
 Command: .SHELL = </path/to/shell>
-Command: .SHELL = overwritten ignored (read-only)
+Command: ignoring '.SHELL = overwritten' as it is read-only
 Global: .MAKEFLAGS =  -r -k -d v -d
 Global: .MAKEFLAGS =  -r -k -d v -d 0
 make: Fatal errors encountered -- cannot continue

Index: src/usr.bin/make/unit-tests/varname-dot-shell.exp
diff -u src/usr.bin/make/unit-tests/varname-dot-shell.exp:1.19 src/usr.bin/make/unit-tests/varname-dot-shell.exp:1.20
--- src/usr.bin/make/unit-tests/varname-dot-shell.exp:1.19	Wed Dec 20 08:50:10 2023
+++ src/usr.bin/make/unit-tests/varname-dot-shell.exp	Wed Dec 20 09:03:09 2023
@@ -5,14 +5,14 @@ Global: ignoring delete '.SHELL' as it i
 Command: .SHELL = (details omitted)
 Global: ORIG_SHELL = (details omitted)
 Parsing line 12: .SHELL=		overwritten
-Global: ignoring '.SHELL' = 'overwritten' due to a command line variable of the same name
+Global: ignoring '.SHELL = overwritten' due to a command line variable of the same name
 CondParser_Eval: ${.SHELL} != ${ORIG_SHELL}
 Var_Parse: ${.SHELL} != ${ORIG_SHELL} (eval-defined)
 Var_Parse: ${ORIG_SHELL} (eval-defined)
 Comparing "(details omitted)" != "(details omitted)"
 Parsing line 19: .MAKEFLAGS: .SHELL+=appended
 ParseDependency(.MAKEFLAGS: .SHELL+=appended)
-Ignoring append to .SHELL since it is read-only
+Command: ignoring '.SHELL += appended' as it is read-only
 CondParser_Eval: ${.SHELL} != ${ORIG_SHELL}
 Var_Parse: ${.SHELL} != ${ORIG_SHELL} (eval-defined)
 Var_Parse: ${ORIG_SHELL} (eval-defined)
@@ -20,7 +20,7 @@ Comparing "(details omitted)" != "(detai
 Parsing line 27: .undef .SHELL
 Global: ignoring delete '.SHELL' as it is not found
 Parsing line 28: .SHELL=		newly overwritten
-Global: ignoring '.SHELL' = 'newly overwritten' due to a command line variable of the same name
+Global: ignoring '.SHELL = newly overwritten' due to a command line variable of the same name
 CondParser_Eval: ${.SHELL} != ${ORIG_SHELL}
 Var_Parse: ${.SHELL} != ${ORIG_SHELL} (eval-defined)
 Var_Parse: ${ORIG_SHELL} (eval-defined)

Index: src/usr.bin/make/unit-tests/varname-dot-suffixes.mk
diff -u src/usr.bin/make/unit-tests/varname-dot-suffixes.mk:1.4 src/usr.bin/make/unit-tests/varname-dot-suffixes.mk:1.5
--- src/usr.bin/make/unit-tests/varname-dot-suffixes.mk:1.4	Wed Dec 20 08:50:10 2023
+++ src/usr.bin/make/unit-tests/varname-dot-suffixes.mk	Wed Dec 20 09:03:09 2023
@@ -1,4 +1,4 @@
-# $NetBSD: varname-dot-suffixes.mk,v 1.4 2023/12/20 08:50:10 rillig Exp $
+# $NetBSD: varname-dot-suffixes.mk,v 1.5 2023/12/20 09:03:09 rillig Exp $
 #
 # Tests for the special "variable" .SUFFIXES, which lists the suffixes that
 # have been registered for use in suffix transformation rules.  Suffixes are
@@ -61,13 +61,13 @@
 # The list of suffixes can only be modified using dependency declarations, any
 # attempt at setting the variable named '.SUFFIXES' is rejected.
 .MAKEFLAGS: -dv
-# expect: Global: .SUFFIXES = set ignored (read-only)
+# expect: Global: ignoring '.SUFFIXES = set' as it is read-only
 .SUFFIXES=	set
-# expect: Global: .SUFFIXES = append ignored (read-only)
+# expect: Global: ignoring '.SUFFIXES = append' as it is read-only
 .SUFFIXES+=	append
-# expect: Global: .SUFFIXES = assign ignored (read-only)
+# expect: Global: ignoring '.SUFFIXES = assign' as it is read-only
 _:=		${.SUFFIXES::=assign}
-# expect: Global: .SUFFIXES = preserve ignored (read-only)
+# expect: Global: ignoring '.SUFFIXES = preserve' as it is read-only
 _:=		${preserve:L:_=.SUFFIXES}
 .MAKEFLAGS: -d0
 
@@ -94,8 +94,8 @@ _:=		${preserve:L:_=.SUFFIXES}
 # the name would be '.SUFFIXES.', furthermore the name of the iteration
 # variable is typically in singular form.
 .MAKEFLAGS: -dv
-# expect: Command: .SUFFIXES = 1 ignored (read-only)
-# expect: Command: .SUFFIXES = 2 ignored (read-only)
+# expect: Command: ignoring '.SUFFIXES = 1' as it is read-only
+# expect: Command: ignoring '.SUFFIXES = 2' as it is read-only
 # expect: Command: ignoring delete '.SUFFIXES' as it is not found
 .if ${1 2:L:@.SUFFIXES@${.SUFFIXES}@} != ".c .o .1 .err .tar.gz .c .o .1 .err .tar.gz"
 .  error

Index: src/usr.bin/make/unit-tests/varname-empty.exp
diff -u src/usr.bin/make/unit-tests/varname-empty.exp:1.21 src/usr.bin/make/unit-tests/varname-empty.exp:1.22
--- src/usr.bin/make/unit-tests/varname-empty.exp:1.21	Wed Dec 20 08:50:10 2023
+++ src/usr.bin/make/unit-tests/varname-empty.exp	Wed Dec 20 09:03:09 2023
@@ -1,5 +1,5 @@
-Var_SetExpand: variable name "${:U}" expands to empty string, with value "cmdline-u" - ignored
-Var_SetExpand: variable name "" expands to empty string, with value "cmdline-plain" - ignored
+Command: ignoring ' = cmdline-u' as the variable name '${:U}' expands to empty
+Command: ignoring ' = cmdline-plain' as the variable name '' expands to empty
 Global: .CURDIR = <curdir>
 Var_Parse: ${MAKE_OBJDIR_CHECK_WRITABLE} (eval)
 Global: .TARGETS = # (empty)
@@ -8,15 +8,15 @@ Global: .MAKE.MAKEFILES = varname-empty.
 Global: .PARSEFILE = varname-empty.mk
 Global: ignoring delete '.INCLUDEDFROMDIR' as it is not found
 Global: ignoring delete '.INCLUDEDFROMFILE' as it is not found
-Var_SetExpand: variable name "" expands to empty string, with value "default" - ignored
-Var_SetExpand: variable name "" expands to empty string, with value "assigned" - ignored
-SetVar: variable name is empty - ignored
-Var_SetExpand: variable name "" expands to empty string, with value "" - ignored
-Var_SetExpand: variable name "" expands to empty string, with value "subst" - ignored
+Global: ignoring ' = default' as the variable name '' expands to empty
+Global: ignoring ' = assigned' as the variable name '' expands to empty
+Global: ignoring ' = appended' as the variable name is empty
+Global: ignoring ' = ' as the variable name '' expands to empty
+Global: ignoring ' = subst' as the variable name '' expands to empty
 Capturing the output of command "echo 'shell-output'"
-Var_SetExpand: variable name "" expands to empty string, with value "shell-output" - ignored
-Var_SetExpand: variable name "${:U}" expands to empty string, with value "assigned indirectly" - ignored
-Var_AppendExpand: variable name "${:U}" expands to empty string, with value "appended indirectly" - ignored
+Global: ignoring ' = shell-output' as the variable name '' expands to empty
+Global: ignoring ' = assigned indirectly' as the variable name '${:U}' expands to empty
+Global: ignoring ' += appended indirectly' as the variable name '${:U}' expands to empty
 Global: .MAKEFLAGS =  -r -d v -d
 Global: .MAKEFLAGS =  -r -d v -d 0
 out: fallback

Reply via email to