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
_______________________________________________
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint

Reply via email to