A NOTE has been added to this issue. ====================================================================== https://www.austingroupbugs.net/view.php?id=1422 ====================================================================== Reported By: joerg Assigned To: ====================================================================== Project: Issue 8 drafts Issue ID: 1422 Category: Shell and Utilities Type: Error Severity: Objection Priority: normal Status: Resolved Name: Jörg Schilling Organization: User Reference: Section: Page Number: 2894-2895 Line Number: 97277-97282 Final Accepted Text: https://www.austingroupbugs.net/view.php?id=1422#c5265 Resolution: Accepted As Marked Fixed in Version: ====================================================================== Date Submitted: 2020-11-18 13:49 UTC Last Modified: 2021-03-19 14:34 UTC ====================================================================== Summary: The current definition for the += assingment is in conflict with existing behavior of make and unpredictable/error-prone ======================================================================
---------------------------------------------------------------------- (0005291) joerg (reporter) - 2021-03-19 14:34 https://www.austingroupbugs.net/view.php?id=1422#c5291 ---------------------------------------------------------------------- Re: https://www.austingroupbugs.net/view.php?id=1422#c5260 A make compliant way to avoid the problem you mentioned in that bugnote is to use: foo ::= $$$$hello all: ; @echo '$(foo)' Re: https://www.austingroupbugs.net/view.php?id=1422#c5263 A make compliant way to avoid the problem you mentioned in that bugnote is to use: one = $$one two ::= $$$$two all: ; @echo '$(one) $(two)' Re: https://www.austingroupbugs.net/view.php?id=1422#c5268 Whom do you like to help with that note? The remark misses the most important problem: A full blown make implementation needs to be able to update targets (e.g. arguments from include directives) while parsing Makefiles. This makes it hard to switch off expansion in a way similar to gnu make. The only way I see in e.g. smake without throwing all 40 year old code structures away is to introduce a global variable to enforce expansion when in a parser related part of the code. This enforces ugly code :-( This is the background why I propose to add :::= for an expanding assignment without creating a different macro type and a +:= append operator that always expands the right side. Issue History Date Modified Username Field Change ====================================================================== 2020-11-18 13:49 joerg New Issue 2020-11-18 13:49 joerg Name => Jörg Schilling 2020-11-18 13:49 joerg Page Number => 2894-2895 2020-11-18 13:49 joerg Line Number => 97277-97282 2021-03-05 16:11 geoffclare Note Added: 0005257 2021-03-05 17:07 psmith Note Added: 0005258 2021-03-05 17:10 psmith Note Edited: 0005258 2021-03-05 17:11 psmith Note Edited: 0005258 2021-03-05 17:17 psmith Note Edited: 0005258 2021-03-05 18:30 joerg Note Added: 0005259 2021-03-05 19:18 psmith Note Added: 0005260 2021-03-05 19:18 psmith Note Added: 0005261 2021-03-05 19:18 psmith Note Deleted: 0005261 2021-03-05 19:38 psmith Note Edited: 0005260 2021-03-08 15:32 joerg Note Added: 0005262 2021-03-08 15:42 joerg Note Edited: 0005262 2021-03-08 18:56 psmith Note Added: 0005263 2021-03-08 18:58 psmith Note Edited: 0005263 2021-03-11 15:50 joerg Note Added: 0005264 2021-03-11 15:51 joerg Note Edited: 0005264 2021-03-11 16:26 geoffclare Note Added: 0005265 2021-03-11 16:26 geoffclare Final Accepted Text => https://www.austingroupbugs.net/view.php?id=1422#c5265 2021-03-11 16:26 geoffclare Status New => Resolved 2021-03-11 16:26 geoffclare Resolution Open => Accepted As Marked 2021-03-11 16:27 geoffclare Tag Attached: issue8 2021-03-11 22:07 dmitry_goncharovNote Added: 0005267 2021-03-12 19:18 psmith Note Added: 0005268 2021-03-19 14:34 joerg Note Added: 0005291 ======================================================================