Re: Why does Manipulate leak global symbols? (Potential bug here?)
- To: mathgroup at smc.vnet.net
- Subject: [mg123864] Re: Why does Manipulate leak global symbols? (Potential bug here?)
- From: Bill Rowe <readnews at sbcglobal.net>
- Date: Sun, 25 Dec 2011 06:33:49 -0500 (EST)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
On 12/24/11 at 7:08 AM, szhorvat at gmail.com (Szabolcs) wrote:
>It appears that in Mathematica 8, using Manipulate will create some
>symbols in the global context. Let me illustrate:
>First, I use this to monitor the contents of Global` in real time:
>Dynamic@Refresh[Sort@Names["Global`*"], UpdateInterval -> 2]
>Then I evaluate Manipulate[n, {n, 1, 10}]
>Note that the following unexpected symbols have been added to the
>Global` context: BitDepth, FullScreenArea, Resolution, ScreenArea
>
>Why does this happen? Is it a bug? Can it cause any problems (e.g.
>if I have defined BitDepth before using Manipulate, in the belief
>that there's no such builtin)?
I can't answer as to why this happens. But I doubt that it is a
bug and it seems to have no conflict with things you define.
That is, if I first do
BitDepth=2;
then execute the code you posted in a fresh session, the value I
assigned to BitDepth is unchanged. Alternatively, if I start a
fresh session, execute the code above then type BitDepth in a
new cell, I see BitDepth is colored consistent as any undefined
symbol would be.
>This makes me feel a bit insecure. I am not sure if I might
>inadvertently break something by defining those symbols, thinking
>that they're not used by Mathematica (since they're syntax-coloured
>blue).
It seems the best way to ensure no conflicts could occur is to
simply use a lower case letter as the first letter of the name
of anything you create.