Skip to main content
6 of 7
Updated bugs header, see https://mathematica.meta.stackexchange.com/a/1611/4330
Jacob Akkerboom
  • 12.2k
  • 46
  • 82

Potential pollution of Global` context in fresh kernel

Bug introduced in 10.0.0 and persisting through 12.2.0 or later

The bug was originally corrected in 10.0.1, but it has been reintroduced.


If I evaluate, with a fresh kernel

Names["Global`*"]

I get

{"rhs", "z"}

I think this is not caused by any packages in $UserBaseDirectory or $BaseDirectory, because if I evaluate the same expression under V9.0.1, which has the same strings for these variables (directories), I get

Names["Global`*"]
{}

As expected.

I was wondering if others are getting the same result. rhs and z do not have values, but still I am a bit concerned about the safety of

Remove["Global`*"]

when certain functions may depend on the existence of these symbols in Global`. For example if I set

sys`f[Global`xxxx_] := Global`xxxx

and evaluate

Remove[Global`xxxx]

then the following looks a bit scary

 sys`f // Definition
sys`f[Removed[xxxx]:_]:=Removed[xxxx]

sys`f still works, but I still think it may lead to trouble (e.g. with Save).

Kirma came up with the nice idea of testing this on the cloud. I get

Apply[And, 
 MemberQ[CloudEvaluate[Names["Global`*"]], #] & /@ {"z", "rhs"}]
True

But there are many other symbols in the Global` context there. So, is this a bug?

Jacob Akkerboom
  • 12.2k
  • 46
  • 82