2015-12-08 17:44 GMT+01:00 Marcus Denker <[email protected]>: > Yes, I wondered why it was not done in semantic analysis… would be much > easier. > > The binding approach only takes care of reflective change (Smalltalk > globals at: Object put: nil), > a case that is not as important to fix. (reflection is dangerous, > disallowing just this one > operation does not help). > > We should do some experiments. >
by the way, what is the difference between LiteralVariable : isGlobal and isGlobalVariable ? > > Marcus > > On 08 Dec 2015, at 17:33, Guillermo Polito <[email protected]> > wrote: > > I remember. But what I do not remember is if the compiler was aware of it. > > I remember you had these ReadOnlyVariable, subclass of association that > redefined #value:. You were however still capable of doing: > > MyReadOnlyVar := 1. > > On 8 dic 2015, at 5:29 p.m., Marcus Denker <[email protected]> wrote: > > Hi, > > There used to be a mechanism for that (readonly variable bindings). > > It was there but not used: half the globals where readonly, all globals > added > after the experiment was done where “normal”. > > With the new “first class” variables we could easily add that back in a > clean way. > > Marcus > > On 08 Dec 2015, at 17:19, Nicolai Hess <[email protected]> wrote: > > Object := nil > > you can evaluate that piece of code, but afterwards .... > > Opal checks for assignments to read only variables (method arguments for > example) > and signals an error if you try to modify those vars. > But it does not check globals. > > Should all Globals (OCLiteralVariable with isGlobalVar == true) be read > only ? > or can we distinguish global vars and class bindings? > > > > >
