Would be nice to have a view on them like in VW. On Saturday, December 14, 2013, Marcus Denker wrote:
> > On 14 Dec 2013, at 16:15, Norbert Hartl <[email protected]<javascript:_e({}, > 'cvml', '[email protected]');>> > wrote: > > > Am 14.12.2013 um 15:58 schrieb kilon alios > <[email protected]<javascript:_e({}, 'cvml', '[email protected]');> > >: > > yes sorry i meant global variables , the ones you define in workspace like > a := 1. > > Those aren’t globals. Everything you do in the workspace is compiled as > method (UndefinedObect>>#DoIt) and executed. There are only a handful of > global values and there is the smalltalk dictionary where names can be > looked up. > > They live in the “bindings” ivar of Workspace. > > When you compile code with the “requestor” not nil, it will put > a OCRequestorScope into the scope chain. > This means that when Opal Semantic analysis asks the scope for the > definition of a name, it will call > #lookupVar: on that scope, which is then doing: > > (requestor bindingOf: name asSymbol) ifNotNil: [:assoc | > ^ OCLiteralVariable new assoc: assoc; scope: self; yourself]. > ^ super lookupVar: name. > > Which means that variables in the Workspace are compiled as literal > variables (like globals), > but the binding comes from a dictionary that is in the ivar “bindings” of > the Workspace. > > Marcus > -- --- Philippe Back Dramatic Performance Improvements Mob: +32(0) 478 650 140 | Fax: +32 (0) 70 408 027 Mail:[email protected] | Web: http://philippeback.eu Blog: http://philippeback.be | Twitter: @philippeback Youtube: http://www.youtube.com/user/philippeback/videos High Octane SPRL rue cour Boisacq 101 | 1301 Bierges | Belgium Pharo Consortium Member - http://consortium.pharo.org/ Featured on the Software Process and Measurement Cast - http://spamcast.libsyn.com Sparx Systems Enterprise Architect and Ability Engineering EADocX Value Added Reseller
