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.
This commit is contained in:
parent
567911c217
commit
c71fbc370e
@ -5,46 +5,46 @@ Global:.MAKE.EXPORTED = UT_VAR
|
||||
ParseReadLine (32): ': ${UT_VAR:N*}'
|
||||
Var_Parse: ${UT_VAR:N*} (eval-defined)
|
||||
Var_Parse: ${REF}> (eval-defined)
|
||||
Applying ${UT_VAR:N...} to "<>" (eval-defined, VFL_EXPORTED|VFL_REEXPORT, regular)
|
||||
Applying ${UT_VAR:N...} to "<>" (eval-defined, regular)
|
||||
Pattern[UT_VAR] for [<>] is [*]
|
||||
ModifyWords: split "<>" into 1 words
|
||||
Result of ${UT_VAR:N*} is "" (eval-defined, VFL_EXPORTED|VFL_REEXPORT, regular)
|
||||
Result of ${UT_VAR:N*} is "" (eval-defined, regular)
|
||||
ParseDoDependency(: )
|
||||
CondParser_Eval: ${:!echo "\$UT_VAR"!} != "<>"
|
||||
Var_Parse: ${:!echo "\$UT_VAR"!} != "<>" (eval-defined)
|
||||
Applying ${:!...} to "" (eval-defined, none, undefined)
|
||||
Applying ${:!...} to "" (eval-defined, undefined)
|
||||
Modifier part: "echo "$UT_VAR""
|
||||
Var_Parse: ${.MAKE.EXPORTED:O:u} (eval)
|
||||
Applying ${.MAKE.EXPORTED:O} to "UT_VAR" (eval, none, regular)
|
||||
Result of ${.MAKE.EXPORTED:O} is "UT_VAR" (eval, none, regular)
|
||||
Applying ${.MAKE.EXPORTED:u} to "UT_VAR" (eval, none, regular)
|
||||
Result of ${.MAKE.EXPORTED:u} is "UT_VAR" (eval, none, regular)
|
||||
Applying ${.MAKE.EXPORTED:O} to "UT_VAR" (eval, regular)
|
||||
Result of ${.MAKE.EXPORTED:O} is "UT_VAR" (eval, regular)
|
||||
Applying ${.MAKE.EXPORTED:u} to "UT_VAR" (eval, regular)
|
||||
Result of ${.MAKE.EXPORTED:u} is "UT_VAR" (eval, regular)
|
||||
Var_Parse: ${UT_VAR} (eval)
|
||||
Var_Parse: ${REF}> (eval)
|
||||
Result of ${:!echo "\$UT_VAR"!} is "<>" (eval-defined, none, defined)
|
||||
Result of ${:!echo "\$UT_VAR"!} is "<>" (eval-defined, defined)
|
||||
lhs = "<>", rhs = "<>", op = !=
|
||||
ParseReadLine (49): ': ${UT_VAR:N*}'
|
||||
Var_Parse: ${UT_VAR:N*} (eval-defined)
|
||||
Var_Parse: ${REF}> (eval-defined)
|
||||
Applying ${UT_VAR:N...} to "<>" (eval-defined, VFL_EXPORTED|VFL_REEXPORT, regular)
|
||||
Applying ${UT_VAR:N...} to "<>" (eval-defined, regular)
|
||||
Pattern[UT_VAR] for [<>] is [*]
|
||||
ModifyWords: split "<>" into 1 words
|
||||
Result of ${UT_VAR:N*} is "" (eval-defined, VFL_EXPORTED|VFL_REEXPORT, regular)
|
||||
Result of ${UT_VAR:N*} is "" (eval-defined, regular)
|
||||
ParseDoDependency(: )
|
||||
ParseReadLine (53): 'REF= defined'
|
||||
Global:REF = defined
|
||||
CondParser_Eval: ${:!echo "\$UT_VAR"!} != "<defined>"
|
||||
Var_Parse: ${:!echo "\$UT_VAR"!} != "<defined>" (eval-defined)
|
||||
Applying ${:!...} to "" (eval-defined, none, undefined)
|
||||
Applying ${:!...} to "" (eval-defined, undefined)
|
||||
Modifier part: "echo "$UT_VAR""
|
||||
Var_Parse: ${.MAKE.EXPORTED:O:u} (eval)
|
||||
Applying ${.MAKE.EXPORTED:O} to "UT_VAR" (eval, none, regular)
|
||||
Result of ${.MAKE.EXPORTED:O} is "UT_VAR" (eval, none, regular)
|
||||
Applying ${.MAKE.EXPORTED:u} to "UT_VAR" (eval, none, regular)
|
||||
Result of ${.MAKE.EXPORTED:u} is "UT_VAR" (eval, none, regular)
|
||||
Applying ${.MAKE.EXPORTED:O} to "UT_VAR" (eval, regular)
|
||||
Result of ${.MAKE.EXPORTED:O} is "UT_VAR" (eval, regular)
|
||||
Applying ${.MAKE.EXPORTED:u} to "UT_VAR" (eval, regular)
|
||||
Result of ${.MAKE.EXPORTED:u} is "UT_VAR" (eval, regular)
|
||||
Var_Parse: ${UT_VAR} (eval)
|
||||
Var_Parse: ${REF}> (eval)
|
||||
Result of ${:!echo "\$UT_VAR"!} is "<defined>" (eval-defined, none, defined)
|
||||
Result of ${:!echo "\$UT_VAR"!} is "<defined>" (eval-defined, defined)
|
||||
lhs = "<defined>", rhs = "<defined>", op = !=
|
||||
ParseReadLine (61): 'all:'
|
||||
ParseDoDependency(all:)
|
||||
|
@ -5,10 +5,10 @@ Global:UT_UNEXPORTED = value
|
||||
Global:.MAKE.EXPORTED = UT_EXPORTED
|
||||
make: "directive-unexport-env.mk" line 21: The directive .unexport-env does not take arguments
|
||||
Var_Parse: ${.MAKE.EXPORTED:O:u} (eval)
|
||||
Applying ${.MAKE.EXPORTED:O} to "UT_EXPORTED" (eval, none, regular)
|
||||
Result of ${.MAKE.EXPORTED:O} is "UT_EXPORTED" (eval, none, regular)
|
||||
Applying ${.MAKE.EXPORTED:u} to "UT_EXPORTED" (eval, none, regular)
|
||||
Result of ${.MAKE.EXPORTED:u} is "UT_EXPORTED" (eval, none, regular)
|
||||
Applying ${.MAKE.EXPORTED:O} to "UT_EXPORTED" (eval, regular)
|
||||
Result of ${.MAKE.EXPORTED:O} is "UT_EXPORTED" (eval, regular)
|
||||
Applying ${.MAKE.EXPORTED:u} to "UT_EXPORTED" (eval, regular)
|
||||
Result of ${.MAKE.EXPORTED:u} is "UT_EXPORTED" (eval, regular)
|
||||
Unexporting "UT_EXPORTED"
|
||||
Global:delete .MAKE.EXPORTED
|
||||
Global:.MAKEFLAGS = -r -k -d v -d
|
||||
|
@ -4,20 +4,20 @@ make: "var-eval-short.mk" line 91: Invalid time value: ${FAIL}}
|
||||
make: "var-eval-short.mk" line 91: Malformed conditional (0 && ${:Uword:localtime=${FAIL}})
|
||||
CondParser_Eval: 0 && ${0:?${FAIL}then:${FAIL}else}
|
||||
Var_Parse: ${0:?${FAIL}then:${FAIL}else} (parse-only)
|
||||
Applying ${0:?...} to "" (parse-only, none, undefined)
|
||||
Applying ${0:?...} to "" (parse-only, undefined)
|
||||
Modifier part: "${FAIL}then"
|
||||
Modifier part: "${FAIL}else"
|
||||
Result of ${0:?${FAIL}then:${FAIL}else} is "" (parse-only, none, defined)
|
||||
Result of ${0:?${FAIL}then:${FAIL}else} is "" (parse-only, defined)
|
||||
ParseReadLine (156): 'DEFINED= defined'
|
||||
Global:DEFINED = defined
|
||||
CondParser_Eval: 0 && ${DEFINED:L:?${FAIL}then:${FAIL}else}
|
||||
Var_Parse: ${DEFINED:L:?${FAIL}then:${FAIL}else} (parse-only)
|
||||
Applying ${DEFINED:L} to "defined" (parse-only, none, regular)
|
||||
Result of ${DEFINED:L} is "defined" (parse-only, none, regular)
|
||||
Applying ${DEFINED:?...} to "defined" (parse-only, none, regular)
|
||||
Applying ${DEFINED:L} to "defined" (parse-only, regular)
|
||||
Result of ${DEFINED:L} is "defined" (parse-only, regular)
|
||||
Applying ${DEFINED:?...} to "defined" (parse-only, regular)
|
||||
Modifier part: "${FAIL}then"
|
||||
Modifier part: "${FAIL}else"
|
||||
Result of ${DEFINED:?${FAIL}then:${FAIL}else} is "defined" (parse-only, none, regular)
|
||||
Result of ${DEFINED:?${FAIL}then:${FAIL}else} is "defined" (parse-only, regular)
|
||||
ParseReadLine (159): '.MAKEFLAGS: -d0'
|
||||
ParseDoDependency(.MAKEFLAGS: -d0)
|
||||
Global:.MAKEFLAGS = -r -k -d cpv -d
|
||||
|
@ -1,6 +1,6 @@
|
||||
Var_Parse: ${:U\$\$\$\$\$\$\$\$} (eval)
|
||||
Applying ${:U...} to "" (eval, none, undefined)
|
||||
Result of ${:U\$\$\$\$\$\$\$\$} is "$$$$$$$$" (eval, none, defined)
|
||||
Applying ${:U...} to "" (eval, undefined)
|
||||
Result of ${:U\$\$\$\$\$\$\$\$} is "$$$$$$$$" (eval, defined)
|
||||
Global:VAR.$$$$$$$$ = dollars
|
||||
Global:.MAKEFLAGS = -r -k -d v -d
|
||||
Global:.MAKEFLAGS = -r -k -d v -d 0
|
||||
|
@ -6,73 +6,73 @@ Global:VAR = overwritten
|
||||
Global:delete VAR
|
||||
Global:delete VAR (not found)
|
||||
Var_Parse: ${:U} (eval)
|
||||
Applying ${:U} to "" (eval, none, undefined)
|
||||
Result of ${:U} is "" (eval, none, defined)
|
||||
Applying ${:U} to "" (eval, undefined)
|
||||
Result of ${:U} is "" (eval, defined)
|
||||
Var_Set("${:U}", "empty name", ...) name expands to empty string - ignored
|
||||
Var_Parse: ${:U} (eval)
|
||||
Applying ${:U} to "" (eval, none, undefined)
|
||||
Result of ${:U} is "" (eval, none, defined)
|
||||
Applying ${:U} to "" (eval, undefined)
|
||||
Result of ${:U} is "" (eval, defined)
|
||||
Var_Append("${:U}", "empty name", ...) name expands to empty string - ignored
|
||||
Global:FROM_CMDLINE = overwritten ignored!
|
||||
Global:VAR = 1
|
||||
Global:VAR = 1 2
|
||||
Global:VAR = 1 2 3
|
||||
Var_Parse: ${VAR:M[2]} (eval-defined)
|
||||
Applying ${VAR:M...} to "1 2 3" (eval-defined, none, regular)
|
||||
Applying ${VAR:M...} to "1 2 3" (eval-defined, regular)
|
||||
Pattern[VAR] for [1 2 3] is [[2]]
|
||||
ModifyWords: split "1 2 3" into 3 words
|
||||
VarMatch [1] [[2]]
|
||||
VarMatch [2] [[2]]
|
||||
VarMatch [3] [[2]]
|
||||
Result of ${VAR:M[2]} is "2" (eval-defined, none, regular)
|
||||
Result of ${VAR:M[2]} is "2" (eval-defined, regular)
|
||||
Var_Parse: ${VAR:N[2]} (eval-defined)
|
||||
Applying ${VAR:N...} to "1 2 3" (eval-defined, none, regular)
|
||||
Applying ${VAR:N...} to "1 2 3" (eval-defined, regular)
|
||||
Pattern[VAR] for [1 2 3] is [[2]]
|
||||
ModifyWords: split "1 2 3" into 3 words
|
||||
Result of ${VAR:N[2]} is "1 3" (eval-defined, none, regular)
|
||||
Result of ${VAR:N[2]} is "1 3" (eval-defined, regular)
|
||||
Var_Parse: ${VAR:S,2,two,} (eval-defined)
|
||||
Applying ${VAR:S...} to "1 2 3" (eval-defined, none, regular)
|
||||
Applying ${VAR:S...} to "1 2 3" (eval-defined, regular)
|
||||
Modifier part: "2"
|
||||
Modifier part: "two"
|
||||
ModifyWords: split "1 2 3" into 3 words
|
||||
Result of ${VAR:S,2,two,} is "1 two 3" (eval-defined, none, regular)
|
||||
Result of ${VAR:S,2,two,} is "1 two 3" (eval-defined, regular)
|
||||
Var_Parse: ${VAR:Q} (eval-defined)
|
||||
Applying ${VAR:Q} to "1 2 3" (eval-defined, none, regular)
|
||||
Result of ${VAR:Q} is "1\ 2\ 3" (eval-defined, none, regular)
|
||||
Applying ${VAR:Q} to "1 2 3" (eval-defined, regular)
|
||||
Result of ${VAR:Q} is "1\ 2\ 3" (eval-defined, regular)
|
||||
Var_Parse: ${VAR:tu:tl:Q} (eval-defined)
|
||||
Applying ${VAR:t...} to "1 2 3" (eval-defined, none, regular)
|
||||
Result of ${VAR:tu} is "1 2 3" (eval-defined, none, regular)
|
||||
Applying ${VAR:t...} to "1 2 3" (eval-defined, none, regular)
|
||||
Result of ${VAR:tl} is "1 2 3" (eval-defined, none, regular)
|
||||
Applying ${VAR:Q} to "1 2 3" (eval-defined, none, regular)
|
||||
Result of ${VAR:Q} is "1\ 2\ 3" (eval-defined, none, regular)
|
||||
Applying ${VAR:t...} to "1 2 3" (eval-defined, regular)
|
||||
Result of ${VAR:tu} is "1 2 3" (eval-defined, regular)
|
||||
Applying ${VAR:t...} to "1 2 3" (eval-defined, regular)
|
||||
Result of ${VAR:tl} is "1 2 3" (eval-defined, regular)
|
||||
Applying ${VAR:Q} to "1 2 3" (eval-defined, regular)
|
||||
Result of ${VAR:Q} is "1\ 2\ 3" (eval-defined, regular)
|
||||
Var_Parse: ${:Uvalue:${:UM*e}:Mvalu[e]} (eval-defined)
|
||||
Applying ${:U...} to "" (eval-defined, none, undefined)
|
||||
Result of ${:Uvalue} is "value" (eval-defined, none, defined)
|
||||
Applying ${:U...} to "" (eval-defined, undefined)
|
||||
Result of ${:Uvalue} is "value" (eval-defined, defined)
|
||||
Var_Parse: ${:UM*e}:Mvalu[e]} (eval-defined)
|
||||
Applying ${:U...} to "" (eval-defined, none, undefined)
|
||||
Result of ${:UM*e} is "M*e" (eval-defined, none, defined)
|
||||
Applying ${:U...} to "" (eval-defined, undefined)
|
||||
Result of ${:UM*e} is "M*e" (eval-defined, defined)
|
||||
Indirect modifier "M*e" from "${:UM*e}"
|
||||
Applying ${:M...} to "value" (eval-defined, none, defined)
|
||||
Applying ${:M...} to "value" (eval-defined, defined)
|
||||
Pattern[] for [value] is [*e]
|
||||
ModifyWords: split "value" into 1 words
|
||||
VarMatch [value] [*e]
|
||||
Result of ${:M*e} is "value" (eval-defined, none, defined)
|
||||
Applying ${:M...} to "value" (eval-defined, none, defined)
|
||||
Result of ${:M*e} is "value" (eval-defined, defined)
|
||||
Applying ${:M...} to "value" (eval-defined, defined)
|
||||
Pattern[] for [value] is [valu[e]]
|
||||
ModifyWords: split "value" into 1 words
|
||||
VarMatch [value] [valu[e]]
|
||||
Result of ${:Mvalu[e]} is "value" (eval-defined, none, defined)
|
||||
Result of ${:Mvalu[e]} is "value" (eval-defined, defined)
|
||||
Var_Parse: ${:UVAR} (eval)
|
||||
Applying ${:U...} to "" (eval, none, undefined)
|
||||
Result of ${:UVAR} is "VAR" (eval, none, defined)
|
||||
Applying ${:U...} to "" (eval, undefined)
|
||||
Result of ${:UVAR} is "VAR" (eval, defined)
|
||||
Global:delete VAR
|
||||
Var_Parse: ${:Uvariable:unknown} (eval-defined)
|
||||
Applying ${:U...} to "" (eval-defined, none, undefined)
|
||||
Result of ${:Uvariable} is "variable" (eval-defined, none, defined)
|
||||
Applying ${:u...} to "variable" (eval-defined, none, defined)
|
||||
Applying ${:U...} to "" (eval-defined, undefined)
|
||||
Result of ${:Uvariable} is "variable" (eval-defined, defined)
|
||||
Applying ${:u...} to "variable" (eval-defined, defined)
|
||||
make: "vardebug.mk" line 44: Unknown modifier "unknown"
|
||||
Result of ${:unknown} is error (eval-defined, none, defined)
|
||||
Result of ${:unknown} is error (eval-defined, defined)
|
||||
make: "vardebug.mk" line 44: Malformed conditional (${:Uvariable:unknown})
|
||||
Var_Parse: ${UNDEFINED} (eval-defined)
|
||||
make: "vardebug.mk" line 53: Malformed conditional (${UNDEFINED})
|
||||
|
@ -4,10 +4,10 @@ Var_Parse: ${VARNAME} (eval)
|
||||
Global:VAR.${param} = initial-value
|
||||
Var_Parse: ${${VARNAME}::=assigned-value} (eval-defined)
|
||||
Var_Parse: ${VARNAME}::=assigned-value} (eval-defined)
|
||||
Applying ${VAR.${param}::...} to "initial-value" (eval-defined, none, regular)
|
||||
Applying ${VAR.${param}::...} to "initial-value" (eval-defined, regular)
|
||||
Modifier part: "assigned-value"
|
||||
Global:VAR.${param} = assigned-value
|
||||
Result of ${VAR.${param}::=assigned-value} is "" (eval-defined, none, regular)
|
||||
Result of ${VAR.${param}::=assigned-value} is "" (eval-defined, regular)
|
||||
Var_Parse: ${${VARNAME}} != "assigned-value" (eval-defined)
|
||||
Var_Parse: ${VARNAME}} != "assigned-value" (eval-defined)
|
||||
Global:.MAKEFLAGS = -r -k -d v -d
|
||||
|
@ -3,12 +3,12 @@ Global:VAR =
|
||||
Var_Parse: ${8_DOLLARS} (eval-keep-dollar-and-undefined)
|
||||
Global:VAR = $$$$$$$$
|
||||
Var_Parse: ${VAR:D${8_DOLLARS}} (eval-keep-dollar-and-undefined)
|
||||
Applying ${VAR:D...} to "$$$$$$$$" (eval-keep-dollar-and-undefined, none, regular)
|
||||
Applying ${VAR:D...} to "$$$$$$$$" (eval-keep-dollar-and-undefined, regular)
|
||||
Var_Parse: ${8_DOLLARS}} (eval-keep-dollar-and-undefined)
|
||||
Result of ${VAR:D${8_DOLLARS}} is "$$$$$$$$" (eval-keep-dollar-and-undefined, none, regular)
|
||||
Result of ${VAR:D${8_DOLLARS}} is "$$$$$$$$" (eval-keep-dollar-and-undefined, regular)
|
||||
Global:VAR = $$$$$$$$
|
||||
Var_Parse: ${VAR:@var@${8_DOLLARS}@} (eval-keep-dollar-and-undefined)
|
||||
Applying ${VAR:@...} to "$$$$$$$$" (eval-keep-dollar-and-undefined, none, regular)
|
||||
Applying ${VAR:@...} to "$$$$$$$$" (eval-keep-dollar-and-undefined, regular)
|
||||
Modifier part: "var"
|
||||
Modifier part: "${8_DOLLARS}"
|
||||
ModifyWords: split "$$$$$$$$" into 1 words
|
||||
@ -16,7 +16,7 @@ Global:var = $$$$$$$$
|
||||
Var_Parse: ${8_DOLLARS} (eval-keep-undefined)
|
||||
ModifyWord_Loop: in "$$$$$$$$", replace "var" with "${8_DOLLARS}" to "$$$$"
|
||||
Global:delete var
|
||||
Result of ${VAR:@var@${8_DOLLARS}@} is "$$$$" (eval-keep-dollar-and-undefined, none, regular)
|
||||
Result of ${VAR:@var@${8_DOLLARS}@} is "$$$$" (eval-keep-dollar-and-undefined, regular)
|
||||
Global:VAR = $$$$
|
||||
Global:.MAKEFLAGS = -r -k -d v -d
|
||||
Global:.MAKEFLAGS = -r -k -d v -d 0
|
||||
|
@ -17,40 +17,40 @@ Global:_ = before ${UNDEF} after
|
||||
ParseReadLine (169): '_:= before ${UNDEF:${:US,a,a,}} after'
|
||||
Var_Parse: ${UNDEF:${:US,a,a,}} after (eval-keep-dollar-and-undefined)
|
||||
Var_Parse: ${:US,a,a,}} after (eval-keep-dollar-and-undefined)
|
||||
Applying ${:U...} to "" (eval-keep-dollar-and-undefined, none, undefined)
|
||||
Result of ${:US,a,a,} is "S,a,a," (eval-keep-dollar-and-undefined, none, defined)
|
||||
Applying ${:U...} to "" (eval-keep-dollar-and-undefined, undefined)
|
||||
Result of ${:US,a,a,} is "S,a,a," (eval-keep-dollar-and-undefined, defined)
|
||||
Indirect modifier "S,a,a," from "${:US,a,a,}"
|
||||
Applying ${UNDEF:S...} to "" (eval-keep-dollar-and-undefined, none, undefined)
|
||||
Applying ${UNDEF:S...} to "" (eval-keep-dollar-and-undefined, undefined)
|
||||
Modifier part: "a"
|
||||
Modifier part: "a"
|
||||
ModifyWords: split "" into 1 words
|
||||
Result of ${UNDEF:S,a,a,} is "" (eval-keep-dollar-and-undefined, none, undefined)
|
||||
Result of ${UNDEF:S,a,a,} is "" (eval-keep-dollar-and-undefined, undefined)
|
||||
Var_Parse: ${:US,a,a,}} after (eval-keep-dollar-and-undefined)
|
||||
Applying ${:U...} to "" (eval-keep-dollar-and-undefined, none, undefined)
|
||||
Result of ${:US,a,a,} is "S,a,a," (eval-keep-dollar-and-undefined, none, defined)
|
||||
Applying ${:U...} to "" (eval-keep-dollar-and-undefined, undefined)
|
||||
Result of ${:US,a,a,} is "S,a,a," (eval-keep-dollar-and-undefined, defined)
|
||||
Global:_ = before ${UNDEF:S,a,a,} after
|
||||
ParseReadLine (179): '_:= before ${UNDEF:${:U}} after'
|
||||
Var_Parse: ${UNDEF:${:U}} after (eval-keep-dollar-and-undefined)
|
||||
Var_Parse: ${:U}} after (eval-keep-dollar-and-undefined)
|
||||
Applying ${:U} to "" (eval-keep-dollar-and-undefined, none, undefined)
|
||||
Result of ${:U} is "" (eval-keep-dollar-and-undefined, none, defined)
|
||||
Applying ${:U} to "" (eval-keep-dollar-and-undefined, undefined)
|
||||
Result of ${:U} is "" (eval-keep-dollar-and-undefined, defined)
|
||||
Indirect modifier "" from "${:U}"
|
||||
Var_Parse: ${:U}} after (eval-keep-dollar-and-undefined)
|
||||
Applying ${:U} to "" (eval-keep-dollar-and-undefined, none, undefined)
|
||||
Result of ${:U} is "" (eval-keep-dollar-and-undefined, none, defined)
|
||||
Applying ${:U} to "" (eval-keep-dollar-and-undefined, undefined)
|
||||
Result of ${:U} is "" (eval-keep-dollar-and-undefined, defined)
|
||||
Global:_ = before ${UNDEF:} after
|
||||
ParseReadLine (184): '_:= before ${UNDEF:${:UZ}} after'
|
||||
Var_Parse: ${UNDEF:${:UZ}} after (eval-keep-dollar-and-undefined)
|
||||
Var_Parse: ${:UZ}} after (eval-keep-dollar-and-undefined)
|
||||
Applying ${:U...} to "" (eval-keep-dollar-and-undefined, none, undefined)
|
||||
Result of ${:UZ} is "Z" (eval-keep-dollar-and-undefined, none, defined)
|
||||
Applying ${:U...} to "" (eval-keep-dollar-and-undefined, undefined)
|
||||
Result of ${:UZ} is "Z" (eval-keep-dollar-and-undefined, defined)
|
||||
Indirect modifier "Z" from "${:UZ}"
|
||||
Applying ${UNDEF:Z} to "" (eval-keep-dollar-and-undefined, none, undefined)
|
||||
Applying ${UNDEF:Z} to "" (eval-keep-dollar-and-undefined, undefined)
|
||||
make: "varmod-indirect.mk" line 184: Unknown modifier "Z"
|
||||
Result of ${UNDEF:Z} is error (eval-keep-dollar-and-undefined, none, undefined)
|
||||
Result of ${UNDEF:Z} is error (eval-keep-dollar-and-undefined, undefined)
|
||||
Var_Parse: ${:UZ}} after (eval-keep-dollar-and-undefined)
|
||||
Applying ${:U...} to "" (eval-keep-dollar-and-undefined, none, undefined)
|
||||
Result of ${:UZ} is "Z" (eval-keep-dollar-and-undefined, none, defined)
|
||||
Applying ${:U...} to "" (eval-keep-dollar-and-undefined, undefined)
|
||||
Result of ${:UZ} is "Z" (eval-keep-dollar-and-undefined, defined)
|
||||
Global:_ = before ${UNDEF:Z} after
|
||||
ParseReadLine (186): '.MAKEFLAGS: -d0'
|
||||
ParseDoDependency(.MAKEFLAGS: -d0)
|
||||
|
@ -1,10 +1,10 @@
|
||||
Global:SPECIALS = \: : \\ * \*
|
||||
CondParser_Eval: ${SPECIALS:M${:U}\:} != ${SPECIALS:M\:${:U}}
|
||||
Var_Parse: ${SPECIALS:M${:U}\:} != ${SPECIALS:M\:${:U}} (eval-defined)
|
||||
Applying ${SPECIALS:M...} to "\: : \\ * \*" (eval-defined, none, regular)
|
||||
Applying ${SPECIALS:M...} to "\: : \\ * \*" (eval-defined, regular)
|
||||
Var_Parse: ${:U}\: (eval-defined)
|
||||
Applying ${:U} to "" (eval-defined, none, undefined)
|
||||
Result of ${:U} is "" (eval-defined, none, defined)
|
||||
Applying ${:U} to "" (eval-defined, undefined)
|
||||
Result of ${:U} is "" (eval-defined, defined)
|
||||
Pattern[SPECIALS] for [\: : \\ * \*] is [\:]
|
||||
ModifyWords: split "\: : \\ * \*" into 5 words
|
||||
VarMatch [\:] [\:]
|
||||
@ -12,12 +12,12 @@ VarMatch [:] [\:]
|
||||
VarMatch [\\] [\:]
|
||||
VarMatch [*] [\:]
|
||||
VarMatch [\*] [\:]
|
||||
Result of ${SPECIALS:M${:U}\:} is ":" (eval-defined, none, regular)
|
||||
Result of ${SPECIALS:M${:U}\:} is ":" (eval-defined, regular)
|
||||
Var_Parse: ${SPECIALS:M\:${:U}} (eval-defined)
|
||||
Applying ${SPECIALS:M...} to "\: : \\ * \*" (eval-defined, none, regular)
|
||||
Applying ${SPECIALS:M...} to "\: : \\ * \*" (eval-defined, regular)
|
||||
Var_Parse: ${:U} (eval-defined)
|
||||
Applying ${:U} to "" (eval-defined, none, undefined)
|
||||
Result of ${:U} is "" (eval-defined, none, defined)
|
||||
Applying ${:U} to "" (eval-defined, undefined)
|
||||
Result of ${:U} is "" (eval-defined, defined)
|
||||
Pattern[SPECIALS] for [\: : \\ * \*] is [:]
|
||||
ModifyWords: split "\: : \\ * \*" into 5 words
|
||||
VarMatch [\:] [:]
|
||||
@ -25,32 +25,32 @@ VarMatch [:] [:]
|
||||
VarMatch [\\] [:]
|
||||
VarMatch [*] [:]
|
||||
VarMatch [\*] [:]
|
||||
Result of ${SPECIALS:M\:${:U}} is ":" (eval-defined, none, regular)
|
||||
Result of ${SPECIALS:M\:${:U}} is ":" (eval-defined, regular)
|
||||
lhs = ":", rhs = ":", op = !=
|
||||
Global:VALUES = : :: :\:
|
||||
CondParser_Eval: ${VALUES:M\:${:U\:}} != ${VALUES:M${:U\:}\:}
|
||||
Var_Parse: ${VALUES:M\:${:U\:}} != ${VALUES:M${:U\:}\:} (eval-defined)
|
||||
Applying ${VALUES:M...} to ": :: :\:" (eval-defined, none, regular)
|
||||
Applying ${VALUES:M...} to ": :: :\:" (eval-defined, regular)
|
||||
Var_Parse: ${:U:} (eval-defined)
|
||||
Applying ${:U} to "" (eval-defined, none, undefined)
|
||||
Result of ${:U} is "" (eval-defined, none, defined)
|
||||
Applying ${:U} to "" (eval-defined, undefined)
|
||||
Result of ${:U} is "" (eval-defined, defined)
|
||||
Pattern[VALUES] for [: :: :\:] is [:]
|
||||
ModifyWords: split ": :: :\:" into 3 words
|
||||
VarMatch [:] [:]
|
||||
VarMatch [::] [:]
|
||||
VarMatch [:\:] [:]
|
||||
Result of ${VALUES:M\:${:U\:}} is ":" (eval-defined, none, regular)
|
||||
Result of ${VALUES:M\:${:U\:}} is ":" (eval-defined, regular)
|
||||
Var_Parse: ${VALUES:M${:U\:}\:} (eval-defined)
|
||||
Applying ${VALUES:M...} to ": :: :\:" (eval-defined, none, regular)
|
||||
Applying ${VALUES:M...} to ": :: :\:" (eval-defined, regular)
|
||||
Var_Parse: ${:U\:}\: (eval-defined)
|
||||
Applying ${:U...} to "" (eval-defined, none, undefined)
|
||||
Result of ${:U\:} is ":" (eval-defined, none, defined)
|
||||
Applying ${:U...} to "" (eval-defined, undefined)
|
||||
Result of ${:U\:} is ":" (eval-defined, defined)
|
||||
Pattern[VALUES] for [: :: :\:] is [:\:]
|
||||
ModifyWords: split ": :: :\:" into 3 words
|
||||
VarMatch [:] [:\:]
|
||||
VarMatch [::] [:\:]
|
||||
VarMatch [:\:] [:\:]
|
||||
Result of ${VALUES:M${:U\:}\:} is "::" (eval-defined, none, regular)
|
||||
Result of ${VALUES:M${:U\:}\:} is "::" (eval-defined, regular)
|
||||
lhs = ":", rhs = "::", op = !=
|
||||
make: "varmod-match-escape.mk" line 42: warning: XXX: Oops
|
||||
Global:.MAKEFLAGS = -r -k -d cv -d
|
||||
|
@ -1,12 +1,12 @@
|
||||
Var_Parse: ${:U} (eval)
|
||||
Applying ${:U} to "" (eval, none, undefined)
|
||||
Result of ${:U} is "" (eval, none, defined)
|
||||
Applying ${:U} to "" (eval, undefined)
|
||||
Result of ${:U} is "" (eval, defined)
|
||||
Var_Set("${:U}", "cmdline-u", ...) name expands to empty string - ignored
|
||||
Var_Set("", "cmdline-plain", ...) name expands to empty string - ignored
|
||||
Global:.CURDIR = <curdir>
|
||||
Var_Parse: ${MAKE_OBJDIR_CHECK_WRITABLE:U} (eval)
|
||||
Applying ${MAKE_OBJDIR_CHECK_WRITABLE:U} to "" (eval, none, undefined)
|
||||
Result of ${MAKE_OBJDIR_CHECK_WRITABLE:U} is "" (eval, none, defined)
|
||||
Applying ${MAKE_OBJDIR_CHECK_WRITABLE:U} to "" (eval, undefined)
|
||||
Result of ${MAKE_OBJDIR_CHECK_WRITABLE:U} is "" (eval, defined)
|
||||
Global:.OBJDIR = <curdir>
|
||||
Global:delete .PATH (not found)
|
||||
Global:.PATH = .
|
||||
@ -24,22 +24,22 @@ Var_Set("", "", ...) name expands to empty string - ignored
|
||||
Var_Set("", "subst", ...) name expands to empty string - ignored
|
||||
Var_Set("", "shell-output", ...) name expands to empty string - ignored
|
||||
Var_Parse: ${:Ufallback} != "fallback" (eval-defined)
|
||||
Applying ${:U...} to "" (eval-defined, none, undefined)
|
||||
Result of ${:Ufallback} is "fallback" (eval-defined, none, defined)
|
||||
Applying ${:U...} to "" (eval-defined, undefined)
|
||||
Result of ${:Ufallback} is "fallback" (eval-defined, defined)
|
||||
Var_Parse: ${:U} (eval)
|
||||
Applying ${:U} to "" (eval, none, undefined)
|
||||
Result of ${:U} is "" (eval, none, defined)
|
||||
Applying ${:U} to "" (eval, undefined)
|
||||
Result of ${:U} is "" (eval, defined)
|
||||
Var_Set("${:U}", "assigned indirectly", ...) name expands to empty string - ignored
|
||||
Var_Parse: ${:Ufallback} != "fallback" (eval-defined)
|
||||
Applying ${:U...} to "" (eval-defined, none, undefined)
|
||||
Result of ${:Ufallback} is "fallback" (eval-defined, none, defined)
|
||||
Applying ${:U...} to "" (eval-defined, undefined)
|
||||
Result of ${:Ufallback} is "fallback" (eval-defined, defined)
|
||||
Var_Parse: ${:U} (eval)
|
||||
Applying ${:U} to "" (eval, none, undefined)
|
||||
Result of ${:U} is "" (eval, none, defined)
|
||||
Applying ${:U} to "" (eval, undefined)
|
||||
Result of ${:U} is "" (eval, defined)
|
||||
Var_Append("${:U}", "appended indirectly", ...) name expands to empty string - ignored
|
||||
Var_Parse: ${:Ufallback} != "fallback" (eval-defined)
|
||||
Applying ${:U...} to "" (eval-defined, none, undefined)
|
||||
Result of ${:Ufallback} is "fallback" (eval-defined, none, defined)
|
||||
Applying ${:U...} to "" (eval-defined, undefined)
|
||||
Result of ${:Ufallback} is "fallback" (eval-defined, defined)
|
||||
Global:.MAKEFLAGS = -r -d v -d
|
||||
Global:.MAKEFLAGS = -r -d v -d 0
|
||||
out: fallback
|
||||
|
@ -5,14 +5,14 @@ Var_Parse: ${VARNAME} (eval)
|
||||
Global:VAR((( = 3 open parentheses
|
||||
Var_Parse: ${VAR(((}}}}" != "3 open parentheses}}}" (eval)
|
||||
Var_Parse: ${:UVAR(((}= try1 (eval-defined)
|
||||
Applying ${:U...} to "" (eval-defined, none, undefined)
|
||||
Result of ${:UVAR(((} is "VAR(((" (eval-defined, none, defined)
|
||||
Applying ${:U...} to "" (eval-defined, undefined)
|
||||
Result of ${:UVAR(((} is "VAR(((" (eval-defined, defined)
|
||||
Global:.ALLTARGETS = VAR(((=)
|
||||
make: "varname.mk" line 30: No closing parenthesis in archive specification
|
||||
make: "varname.mk" line 30: Error in archive specification: "VAR"
|
||||
Var_Parse: ${:UVAR\(\(\(}= try2 (eval-defined)
|
||||
Applying ${:U...} to "" (eval-defined, none, undefined)
|
||||
Result of ${:UVAR\(\(\(} is "VAR\(\(\(" (eval-defined, none, defined)
|
||||
Applying ${:U...} to "" (eval-defined, undefined)
|
||||
Result of ${:UVAR\(\(\(} is "VAR\(\(\(" (eval-defined, defined)
|
||||
Global:.ALLTARGETS = VAR(((=) VAR\(\(\(=
|
||||
make: "varname.mk" line 35: Invalid line type
|
||||
Var_Parse: ${VARNAME} (eval)
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: var.c,v 1.898 2021/04/03 21:55:27 rillig Exp $ */
|
||||
/* $NetBSD: var.c,v 1.899 2021/04/03 22:02:59 rillig Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1988, 1989, 1990, 1993
|
||||
@ -140,7 +140,7 @@
|
||||
#include "metachar.h"
|
||||
|
||||
/* "@(#)var.c 8.3 (Berkeley) 3/19/94" */
|
||||
MAKE_RCSID("$NetBSD: var.c,v 1.898 2021/04/03 21:55:27 rillig Exp $");
|
||||
MAKE_RCSID("$NetBSD: var.c,v 1.899 2021/04/03 22:02:59 rillig Exp $");
|
||||
|
||||
typedef enum VarFlags {
|
||||
VFL_NONE = 0,
|
||||
@ -3639,16 +3639,14 @@ static void
|
||||
LogBeforeApply(const ModChain *ch, const char *mod)
|
||||
{
|
||||
const Expr *expr = ch->expr;
|
||||
char vflags_str[VarFlags_ToStringSize];
|
||||
bool is_single_char = mod[0] != '\0' && IsDelimiter(mod[1], ch);
|
||||
|
||||
/* At this point, only the first character of the modifier can
|
||||
* be used since the end of the modifier is not yet known. */
|
||||
debug_printf("Applying ${%s:%c%s} to \"%s\" (%s, %s, %s)\n",
|
||||
debug_printf("Applying ${%s:%c%s} to \"%s\" (%s, %s)\n",
|
||||
expr->name, mod[0], is_single_char ? "" : "...",
|
||||
expr->value.str,
|
||||
VarEvalFlags_ToString(expr->eflags),
|
||||
VarFlags_ToString(vflags_str, expr->varFlags),
|
||||
ExprDefined_Name[expr->defined]);
|
||||
}
|
||||
|
||||
@ -3657,14 +3655,12 @@ LogAfterApply(const ModChain *ch, const char *p, const char *mod)
|
||||
{
|
||||
const Expr *expr = ch->expr;
|
||||
const char *value = expr->value.str;
|
||||
char vflags_str[VarFlags_ToStringSize];
|
||||
const char *quot = value == var_Error ? "" : "\"";
|
||||
|
||||
debug_printf("Result of ${%s:%.*s} is %s%s%s (%s, %s, %s)\n",
|
||||
debug_printf("Result of ${%s:%.*s} is %s%s%s (%s, %s)\n",
|
||||
expr->name, (int)(p - mod), mod,
|
||||
quot, value == var_Error ? "error" : value, quot,
|
||||
VarEvalFlags_ToString(expr->eflags),
|
||||
VarFlags_ToString(vflags_str, expr->varFlags),
|
||||
ExprDefined_Name[expr->defined]);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user