Re: Why does Manipulate leak global symbols? (Potential bug here?)
- To: mathgroup at smc.vnet.net
- Subject: [mg123911] Re: Why does Manipulate leak global symbols? (Potential bug here?)
- From: David Reiss <dbreiss at gmail.com>
- Date: Fri, 30 Dec 2011 07:03:33 -0500 (EST)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- References: <jd71p5$140$1@smc.vnet.net> <jdeqc2$8op$1@smc.vnet.net> <jdh6eb$kln$1@smc.vnet.net>
P.S. I submitted this a s a bug report to WRI. --David On Dec 29, 2:55 am, Szabolcs Horv=E1t <szhor... at gmail.com> wrote: > It appears these symbols are created during the formatting (display) of > the Manipulate object, and not while the Manipulate function runs. > > On 2011.12.28. 11:17, David Reiss wrote: > > > > > > > > > > > This is presumably a bug in that what otherwise should be System > > context (or some other Context) symbols are being placed into the > > Global Context when they are being defined at the first instance of > > the use of a Manipulate. One also comes across this as one uses > > Mathematica -- not all symbols have been properly contextified: given > > how many symbols exist, it's amazing that it doesn't happen more > > often. > > > --David > > > On Dec 25, 6:35 am, Bill Rowe<readn... at sbcglobal.net> wrote: > >> On 12/24/11 at 7:08 AM, szhor... 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. > > -- > Szabolcs Horv=E1t > Mathematica QA site proposal:http://area51.stackexchange.com/proposals/37= 304