[Rpm-maint] [rpm-software-management/rpm] Implement a real stack for parametric macro locals (#1409)
Panu Matilainen
notifications at github.com
Thu Oct 22 12:01:51 UTC 2020
Mixing up local stack and global data never was such a hot idea, as locals could get trapped between globals and not freed at appropriate times etc.
This clears the semantics wrt that, fixing a long-standing expected failure in the test-suite. Another semantics change is that you can no longer undefine a locally defined macro, which eliminates the ambiguity of what should happen on %undefine if both global and local macros exist. As such, there's of course some potential for breakage too.
Besides clear semantics, this should speed up parametric macro execution as we no longer need to huff and puff the global table up and down on entry and exit. Furthermore, this paves way to using a hash for the macro table.
You can view, comment on, or merge this pull request online at:
https://github.com/rpm-software-management/rpm/pull/1409
-- Commit Summary --
* Separate macro table from the context
* Implement a real stack for parametric macro locals
-- File Changes --
M build/rpmfc.c (2)
M rpmio/macro.c (180)
M rpmio/rpmmacro.h (1)
M tests/rpmmacro.at (3)
-- Patch Links --
https://github.com/rpm-software-management/rpm/pull/1409.patch
https://github.com/rpm-software-management/rpm/pull/1409.diff
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/1409
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rpm.org/pipermail/rpm-maint/attachments/20201022/fa80da2f/attachment.html>
More information about the Rpm-maint
mailing list