ren wrote:
I agree with malex. There are times in which I wish Singular would have a list of names that I am not allowed to use (for objects and for variables) and give an explicit error if I try to use one of the forbidden names (most of the times I'm trying to introduce a variable called "test" while debugging my code), but the work to realize that far outweigh the gain.
What do you suggest? Do nothing is not an option (for me).
ren wrote:
There are various promising projects involving alternative interpreters for Singular, perhaps one of them will solve this issue in the long run...? In the meantime, let's trust the users that they know what they are doing when using "execute". Sometimes, it is sadly just not possible to get around that.
Sadly, we can't trust the users or developers, and meanwhile many unsafe code statements are part of the library code.
And, as shown in the initial example, it is not necessary to use 'execute' to hit this bug.
So if we continue without a change, things will became much worse over time (and they did).
And of course a change may feel strange, that is normal.
malex wrote:
Therefore it is thechnically possible to catch such issues but that will result in performance loss. Moreover such a change is rather complicated to implement (i think at least a change of grammer will be necessary for that).
So should we ignore the problem because it is easier? I won't.
@hannes
hannes wrote:
ring r1=0,(x,y,z),dp;
ring r2=0,(a,b,x),dp; // but x has already a (different) meaning
// but a warning would be confusing/misleading
I agree on this with you.