avoid variable names in strings which get executed
if (1) is not possible/too expensive, guard by exporting variables of current ring.
Then a redefinition will trigger a warning:
> ;//unsafe:
> ring R = 0,x,dp;
> execute ("poly x = x-1"); // x = -1, wrong, no error/warning
> x;
-1
> ; //safe:
> ring S = 0,x,dp;
> poly x = var(1) ;// export ring variables
> execute ("poly x = x"); // will result in a warning :
// ** redefining x **
main idea:
see https://github.com/surface-smoothers/Sources/tree/spielwiese.stepwise.workaround.shadowing
partly fixed for: primdec.lib
TODO: look ad Primdec::algeDeco (funny things happen there)
reported to Olexandr, Hans and Claus (personal communication)
update: failing example with changes: