View · Search · Index
No registered users in community xowiki
in last 10 minutes

Re: [Xotcl] constant/immutable property

From: Gustaf Neumann <neumann_at_wu-wien.ac.at>
Date: Wed, 04 Jan 2012 11:00:56 +0100

Dear Victor,

While it is easy to provide a slim implementation, which
works nicely for particular cases, it is much more
complicated to provide a general solution that works for all
potential use cases.

Here are a few questions one has to address here:
* Most likely, one would expect something like a write-once
semantic via the property (declare the property, assign
later some value to it, etc.) rather than a true "const" (at
least when "property" rather than "variable" is used).
* Since Tcl variables can be altered in many ways (output
variables of cmds, resolver, ...) a true "const" must be
most likely realized via traces (which have often tricky
issues).
* it is not clear, whether "const" should imply different
write semantics, or as well different unset semantics. In
the latter case, when a destroy happens, one should
certainly unset the variables even when they are "const".
Also, copy/move operations tend to be tricky.
* when const is a slot property, we should address as well
cases for slots with additional semantics (such as
persistent, database-mapped slots, etc.)

Actually, my goal would even go further, by setting
optionally objects/classes immutable, but this is opening
some more cans of worms, but this opens as well some more
potential optimizations.

With have the "immutable" theme block on our todo list, but
not for the initial release.

-gustaf neumann

On 03.01.12 20:47, Victor Mayevski wrote:
> Thank you Gustaf and Sefan,
>
> Would it be possible to add that functionality into NX core? For example, via:
>
> Obj property {key:constant value}
> Obj variable key:constant value
>
> I know I can code it myself but I think programmers would prefer for
> it to be a built-in function.