#
1.13 |
|
02-Jun-2024 |
rillig |
make: sync VarEvalMode constant names with their debug log names
|
#
1.12 |
|
20-Apr-2024 |
rillig |
make: provide more context information for parse/evaluate errors
|
#
1.11 |
|
19-Nov-2023 |
rillig |
tests/make: replace 'variable expressions' with 'expressions'
|
#
1.10 |
|
19-Nov-2023 |
rillig |
tests/make: replace 'variable expression' with 'expression'
Each expression is based on a variable, there's no need for the verbosity. The wording in make's diagnostics will be changed in a follow-up commit.
|
#
1.9 |
|
01-Jun-2023 |
rillig |
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.8 |
|
14-Feb-2023 |
rillig |
make: remove redundant type VarParseResult
No functional change.
|
Revision tags: 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-base
|
#
1.7 |
|
24-Aug-2022 |
rillig |
make: prevent future out-of-bounds errors when parsing expressions
A modifier in an expression ends not only at the next ':' or at the closing '}' or ')', but also at the end of the string.
Previously, testing for the end of the string had been done separately, which was error-prone since 2006-05-11, when indirect modifiers were introduced. Since then, it was possible that the string terminator '\0' was accidentally skipped in cases where the loop condition only tested for the ending character. When parsing indirect modifiers, the ending character is indeed '\0', but when parsing direct modifiers, it is '}' or ')'.
A welcome side effect is that in the case of unclosed expressions such as '${VAR:Modifier', the amount of error messages is reduced from 2 or 3 to only 1. The removed error messages were wrong and thus confusing anyway.
|
#
1.6 |
|
24-Aug-2022 |
rillig |
tests/make: test misleading error messages on unclosed expressions
The error messages say 'Unknown modifier' or 'Bad modifier', which is not entirely correct. The modifier in itself is valid, it's just that make doesn't expect the end of the string after the modifier.
|
#
1.5 |
|
24-Jan-2022 |
rillig |
tests/make: demonstrate that the 'static' in Var_Parse has an effect
|
Revision tags: cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base
|
#
1.4 |
|
15-Mar-2021 |
rillig |
make: replace enum bit-field with struct bit-field for VarEvalFlags
This makes the code easier to read, especially in var.c. It also makes debugging sessions easier since some debuggers don't show enum bit-fields symbolically as soon as more than one bit is set.
The code outside var.c is basically unchanged, except that instead of passing the individual flags, there are 4 predefined evaluation modes. These suffice for all practical use cases. Only in the implementation deep inside var.c, the value of the flags keepDollar and keepUndef differs.
There is no way of passing the struct to EnumFlags_ToString, which means the ToString function has to be spelled out explicitly. This allows for fine-tuning the representation in the debug log, to reduce the amount of uppercae letters.
No functional change.
|
#
1.3 |
|
20-Dec-2020 |
rillig |
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.
|
#
1.2 |
|
01-Dec-2020 |
rillig |
make(1): add test for parse errors in variable name in Var_SetWithFlags
|
#
1.1 |
|
08-Nov-2020 |
rillig |
make(1): add test for expanding variable expressions
|
#
1.12 |
|
20-Apr-2024 |
rillig |
make: provide more context information for parse/evaluate errors
|
#
1.11 |
|
19-Nov-2023 |
rillig |
tests/make: replace 'variable expressions' with 'expressions'
|
#
1.10 |
|
19-Nov-2023 |
rillig |
tests/make: replace 'variable expression' with 'expression'
Each expression is based on a variable, there's no need for the verbosity. The wording in make's diagnostics will be changed in a follow-up commit.
|
#
1.9 |
|
01-Jun-2023 |
rillig |
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.8 |
|
14-Feb-2023 |
rillig |
make: remove redundant type VarParseResult
No functional change.
|
Revision tags: 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-base
|
#
1.7 |
|
24-Aug-2022 |
rillig |
make: prevent future out-of-bounds errors when parsing expressions
A modifier in an expression ends not only at the next ':' or at the closing '}' or ')', but also at the end of the string.
Previously, testing for the end of the string had been done separately, which was error-prone since 2006-05-11, when indirect modifiers were introduced. Since then, it was possible that the string terminator '\0' was accidentally skipped in cases where the loop condition only tested for the ending character. When parsing indirect modifiers, the ending character is indeed '\0', but when parsing direct modifiers, it is '}' or ')'.
A welcome side effect is that in the case of unclosed expressions such as '${VAR:Modifier', the amount of error messages is reduced from 2 or 3 to only 1. The removed error messages were wrong and thus confusing anyway.
|
#
1.6 |
|
24-Aug-2022 |
rillig |
tests/make: test misleading error messages on unclosed expressions
The error messages say 'Unknown modifier' or 'Bad modifier', which is not entirely correct. The modifier in itself is valid, it's just that make doesn't expect the end of the string after the modifier.
|
#
1.5 |
|
24-Jan-2022 |
rillig |
tests/make: demonstrate that the 'static' in Var_Parse has an effect
|
Revision tags: cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base
|
#
1.4 |
|
15-Mar-2021 |
rillig |
make: replace enum bit-field with struct bit-field for VarEvalFlags
This makes the code easier to read, especially in var.c. It also makes debugging sessions easier since some debuggers don't show enum bit-fields symbolically as soon as more than one bit is set.
The code outside var.c is basically unchanged, except that instead of passing the individual flags, there are 4 predefined evaluation modes. These suffice for all practical use cases. Only in the implementation deep inside var.c, the value of the flags keepDollar and keepUndef differs.
There is no way of passing the struct to EnumFlags_ToString, which means the ToString function has to be spelled out explicitly. This allows for fine-tuning the representation in the debug log, to reduce the amount of uppercae letters.
No functional change.
|
#
1.3 |
|
20-Dec-2020 |
rillig |
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.
|
#
1.2 |
|
01-Dec-2020 |
rillig |
make(1): add test for parse errors in variable name in Var_SetWithFlags
|
#
1.1 |
|
08-Nov-2020 |
rillig |
make(1): add test for expanding variable expressions
|
#
1.11 |
|
19-Nov-2023 |
rillig |
tests/make: replace 'variable expressions' with 'expressions'
|
#
1.10 |
|
19-Nov-2023 |
rillig |
tests/make: replace 'variable expression' with 'expression'
Each expression is based on a variable, there's no need for the verbosity. The wording in make's diagnostics will be changed in a follow-up commit.
|
#
1.9 |
|
01-Jun-2023 |
rillig |
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.8 |
|
14-Feb-2023 |
rillig |
make: remove redundant type VarParseResult
No functional change.
|
Revision tags: netbsd-10-0-RC1 netbsd-10-base
|
#
1.7 |
|
24-Aug-2022 |
rillig |
make: prevent future out-of-bounds errors when parsing expressions
A modifier in an expression ends not only at the next ':' or at the closing '}' or ')', but also at the end of the string.
Previously, testing for the end of the string had been done separately, which was error-prone since 2006-05-11, when indirect modifiers were introduced. Since then, it was possible that the string terminator '\0' was accidentally skipped in cases where the loop condition only tested for the ending character. When parsing indirect modifiers, the ending character is indeed '\0', but when parsing direct modifiers, it is '}' or ')'.
A welcome side effect is that in the case of unclosed expressions such as '${VAR:Modifier', the amount of error messages is reduced from 2 or 3 to only 1. The removed error messages were wrong and thus confusing anyway.
|
#
1.6 |
|
24-Aug-2022 |
rillig |
tests/make: test misleading error messages on unclosed expressions
The error messages say 'Unknown modifier' or 'Bad modifier', which is not entirely correct. The modifier in itself is valid, it's just that make doesn't expect the end of the string after the modifier.
|
#
1.5 |
|
24-Jan-2022 |
rillig |
tests/make: demonstrate that the 'static' in Var_Parse has an effect
|
Revision tags: cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base
|
#
1.4 |
|
15-Mar-2021 |
rillig |
make: replace enum bit-field with struct bit-field for VarEvalFlags
This makes the code easier to read, especially in var.c. It also makes debugging sessions easier since some debuggers don't show enum bit-fields symbolically as soon as more than one bit is set.
The code outside var.c is basically unchanged, except that instead of passing the individual flags, there are 4 predefined evaluation modes. These suffice for all practical use cases. Only in the implementation deep inside var.c, the value of the flags keepDollar and keepUndef differs.
There is no way of passing the struct to EnumFlags_ToString, which means the ToString function has to be spelled out explicitly. This allows for fine-tuning the representation in the debug log, to reduce the amount of uppercae letters.
No functional change.
|
#
1.3 |
|
20-Dec-2020 |
rillig |
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.
|
#
1.2 |
|
01-Dec-2020 |
rillig |
make(1): add test for parse errors in variable name in Var_SetWithFlags
|
#
1.1 |
|
08-Nov-2020 |
rillig |
make(1): add test for expanding variable expressions
|
#
1.9 |
|
01-Jun-2023 |
rillig |
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.8 |
|
14-Feb-2023 |
rillig |
make: remove redundant type VarParseResult
No functional change.
|
Revision tags: netbsd-10-base
|
#
1.7 |
|
24-Aug-2022 |
rillig |
make: prevent future out-of-bounds errors when parsing expressions
A modifier in an expression ends not only at the next ':' or at the closing '}' or ')', but also at the end of the string.
Previously, testing for the end of the string had been done separately, which was error-prone since 2006-05-11, when indirect modifiers were introduced. Since then, it was possible that the string terminator '\0' was accidentally skipped in cases where the loop condition only tested for the ending character. When parsing indirect modifiers, the ending character is indeed '\0', but when parsing direct modifiers, it is '}' or ')'.
A welcome side effect is that in the case of unclosed expressions such as '${VAR:Modifier', the amount of error messages is reduced from 2 or 3 to only 1. The removed error messages were wrong and thus confusing anyway.
|
#
1.6 |
|
24-Aug-2022 |
rillig |
tests/make: test misleading error messages on unclosed expressions
The error messages say 'Unknown modifier' or 'Bad modifier', which is not entirely correct. The modifier in itself is valid, it's just that make doesn't expect the end of the string after the modifier.
|
#
1.5 |
|
24-Jan-2022 |
rillig |
tests/make: demonstrate that the 'static' in Var_Parse has an effect
|
Revision tags: cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base
|
#
1.4 |
|
15-Mar-2021 |
rillig |
make: replace enum bit-field with struct bit-field for VarEvalFlags
This makes the code easier to read, especially in var.c. It also makes debugging sessions easier since some debuggers don't show enum bit-fields symbolically as soon as more than one bit is set.
The code outside var.c is basically unchanged, except that instead of passing the individual flags, there are 4 predefined evaluation modes. These suffice for all practical use cases. Only in the implementation deep inside var.c, the value of the flags keepDollar and keepUndef differs.
There is no way of passing the struct to EnumFlags_ToString, which means the ToString function has to be spelled out explicitly. This allows for fine-tuning the representation in the debug log, to reduce the amount of uppercae letters.
No functional change.
|
#
1.3 |
|
20-Dec-2020 |
rillig |
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.
|
#
1.2 |
|
01-Dec-2020 |
rillig |
make(1): add test for parse errors in variable name in Var_SetWithFlags
|
#
1.1 |
|
08-Nov-2020 |
rillig |
make(1): add test for expanding variable expressions
|
#
1.8 |
|
14-Feb-2023 |
rillig |
make: remove redundant type VarParseResult
No functional change.
|
Revision tags: netbsd-10-base
|
#
1.7 |
|
24-Aug-2022 |
rillig |
make: prevent future out-of-bounds errors when parsing expressions
A modifier in an expression ends not only at the next ':' or at the closing '}' or ')', but also at the end of the string.
Previously, testing for the end of the string had been done separately, which was error-prone since 2006-05-11, when indirect modifiers were introduced. Since then, it was possible that the string terminator '\0' was accidentally skipped in cases where the loop condition only tested for the ending character. When parsing indirect modifiers, the ending character is indeed '\0', but when parsing direct modifiers, it is '}' or ')'.
A welcome side effect is that in the case of unclosed expressions such as '${VAR:Modifier', the amount of error messages is reduced from 2 or 3 to only 1. The removed error messages were wrong and thus confusing anyway.
|
#
1.6 |
|
24-Aug-2022 |
rillig |
tests/make: test misleading error messages on unclosed expressions
The error messages say 'Unknown modifier' or 'Bad modifier', which is not entirely correct. The modifier in itself is valid, it's just that make doesn't expect the end of the string after the modifier.
|
#
1.5 |
|
24-Jan-2022 |
rillig |
tests/make: demonstrate that the 'static' in Var_Parse has an effect
|
Revision tags: cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base
|
#
1.4 |
|
15-Mar-2021 |
rillig |
make: replace enum bit-field with struct bit-field for VarEvalFlags
This makes the code easier to read, especially in var.c. It also makes debugging sessions easier since some debuggers don't show enum bit-fields symbolically as soon as more than one bit is set.
The code outside var.c is basically unchanged, except that instead of passing the individual flags, there are 4 predefined evaluation modes. These suffice for all practical use cases. Only in the implementation deep inside var.c, the value of the flags keepDollar and keepUndef differs.
There is no way of passing the struct to EnumFlags_ToString, which means the ToString function has to be spelled out explicitly. This allows for fine-tuning the representation in the debug log, to reduce the amount of uppercae letters.
No functional change.
|
#
1.3 |
|
20-Dec-2020 |
rillig |
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.
|
#
1.2 |
|
01-Dec-2020 |
rillig |
make(1): add test for parse errors in variable name in Var_SetWithFlags
|
#
1.1 |
|
08-Nov-2020 |
rillig |
make(1): add test for expanding variable expressions
|
#
1.7 |
|
24-Aug-2022 |
rillig |
make: prevent future out-of-bounds errors when parsing expressions
A modifier in an expression ends not only at the next ':' or at the closing '}' or ')', but also at the end of the string.
Previously, testing for the end of the string had been done separately, which was error-prone since 2006-05-11, when indirect modifiers were introduced. Since then, it was possible that the string terminator '\0' was accidentally skipped in cases where the loop condition only tested for the ending character. When parsing indirect modifiers, the ending character is indeed '\0', but when parsing direct modifiers, it is '}' or ')'.
A welcome side effect is that in the case of unclosed expressions such as '${VAR:Modifier', the amount of error messages is reduced from 2 or 3 to only 1. The removed error messages were wrong and thus confusing anyway.
|
#
1.6 |
|
24-Aug-2022 |
rillig |
tests/make: test misleading error messages on unclosed expressions
The error messages say 'Unknown modifier' or 'Bad modifier', which is not entirely correct. The modifier in itself is valid, it's just that make doesn't expect the end of the string after the modifier.
|
#
1.5 |
|
24-Jan-2022 |
rillig |
tests/make: demonstrate that the 'static' in Var_Parse has an effect
|
Revision tags: cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base
|
#
1.4 |
|
15-Mar-2021 |
rillig |
make: replace enum bit-field with struct bit-field for VarEvalFlags
This makes the code easier to read, especially in var.c. It also makes debugging sessions easier since some debuggers don't show enum bit-fields symbolically as soon as more than one bit is set.
The code outside var.c is basically unchanged, except that instead of passing the individual flags, there are 4 predefined evaluation modes. These suffice for all practical use cases. Only in the implementation deep inside var.c, the value of the flags keepDollar and keepUndef differs.
There is no way of passing the struct to EnumFlags_ToString, which means the ToString function has to be spelled out explicitly. This allows for fine-tuning the representation in the debug log, to reduce the amount of uppercae letters.
No functional change.
|
#
1.3 |
|
20-Dec-2020 |
rillig |
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.
|
#
1.2 |
|
01-Dec-2020 |
rillig |
make(1): add test for parse errors in variable name in Var_SetWithFlags
|
#
1.1 |
|
08-Nov-2020 |
rillig |
make(1): add test for expanding variable expressions
|
#
1.5 |
|
24-Jan-2022 |
rillig |
tests/make: demonstrate that the 'static' in Var_Parse has an effect
|
Revision tags: cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base
|
#
1.4 |
|
15-Mar-2021 |
rillig |
make: replace enum bit-field with struct bit-field for VarEvalFlags
This makes the code easier to read, especially in var.c. It also makes debugging sessions easier since some debuggers don't show enum bit-fields symbolically as soon as more than one bit is set.
The code outside var.c is basically unchanged, except that instead of passing the individual flags, there are 4 predefined evaluation modes. These suffice for all practical use cases. Only in the implementation deep inside var.c, the value of the flags keepDollar and keepUndef differs.
There is no way of passing the struct to EnumFlags_ToString, which means the ToString function has to be spelled out explicitly. This allows for fine-tuning the representation in the debug log, to reduce the amount of uppercae letters.
No functional change.
|
#
1.3 |
|
20-Dec-2020 |
rillig |
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.
|
#
1.2 |
|
01-Dec-2020 |
rillig |
make(1): add test for parse errors in variable name in Var_SetWithFlags
|
#
1.1 |
|
08-Nov-2020 |
rillig |
make(1): add test for expanding variable expressions
|
#
1.4 |
|
15-Mar-2021 |
rillig |
make: replace enum bit-field with struct bit-field for VarEvalFlags
This makes the code easier to read, especially in var.c. It also makes debugging sessions easier since some debuggers don't show enum bit-fields symbolically as soon as more than one bit is set.
The code outside var.c is basically unchanged, except that instead of passing the individual flags, there are 4 predefined evaluation modes. These suffice for all practical use cases. Only in the implementation deep inside var.c, the value of the flags keepDollar and keepUndef differs.
There is no way of passing the struct to EnumFlags_ToString, which means the ToString function has to be spelled out explicitly. This allows for fine-tuning the representation in the debug log, to reduce the amount of uppercae letters.
No functional change.
|
#
1.3 |
|
20-Dec-2020 |
rillig |
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.
|
#
1.2 |
|
01-Dec-2020 |
rillig |
make(1): add test for parse errors in variable name in Var_SetWithFlags
|
#
1.1 |
|
08-Nov-2020 |
rillig |
make(1): add test for expanding variable expressions
|
#
1.3 |
|
20-Dec-2020 |
rillig |
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.
|
#
1.2 |
|
01-Dec-2020 |
rillig |
make(1): add test for parse errors in variable name in Var_SetWithFlags
|
#
1.1 |
|
08-Nov-2020 |
rillig |
make(1): add test for expanding variable expressions
|
#
1.2 |
|
01-Dec-2020 |
rillig |
make(1): add test for parse errors in variable name in Var_SetWithFlags
|
#
1.1 |
|
08-Nov-2020 |
rillig |
make(1): add test for expanding variable expressions
|
#
1.1 |
|
08-Nov-2020 |
rillig |
make(1): add test for expanding variable expressions
|