Fix the bogus translation of matchdeclare when used with local
commit6547c4b3c1b3d1f603c78c0a5995ed20675ece5b
authorKris Katterjohn <katterjohn@gmail.com>
Fri, 4 Feb 2022 01:11:09 +0000 (3 20:11 -0500)
committerKris Katterjohn <katterjohn@gmail.com>
Fri, 4 Feb 2022 01:11:09 +0000 (3 20:11 -0500)
tree5aec0b94ed8fcd0a365b1412dab96453dfa105eb
parent24dab143f48d0726bab5e21fd417c2261de33b8f
Fix the bogus translation of matchdeclare when used with local

This is an ancient bug that was present in Macsyma.

This affected matchdeclare forms translated with something other
than translate_file (e.g., translate or compfile).

META-OUTPUT needs to always push onto META-PROP-L when translating.
Otherwise, when local is used for the pattern variable, the
MATCHDECLARE property will not be on the pattern variable:

(%i1) foo():=(local(x),matchdeclare(x,true),let(a*x,x),letsimp(a*q))$

(%i2) foo();
(%o2) q

(%i3) translate(foo)$

(%i4) foo();
(%o4) a*q

No problems with the test suite or share test suite.  A new test
has been added to rtest_translator.
src/trprop.lisp
tests/rtest_translator.mac