Squeak and Namespaces
Klaus D. Witzel
klaus.witzel at cobss.com
Wed Nov 29 10:10:51 UTC 2006
Hi Aaron,
as can already seen from this thread, (Squeak times: Namespaces) seems to
be not easy because multiple requirements may clash.
We should define how namespaces work, my suggestion:
- concept: a class defines a namespace, is authoritative
- atoms: classes and [parts of] their state are atomic namespaces
>= "namestate"
- composition: a namespace is a container with 1:n components, a namestate
is a component with 1:1 container
- uniqueness: a namestate and its full name are unique, its atomic name
*must* not
There *should* be some syntactical emphasis so that the developer (and
Shout) can understand!
Motivation for syntax: we say SmallInteger and LargeInteger to subclasses
of Integer and obviously prefer the opposite direction for a namespace
hierarchy. Let's replace the suggested :: by a legitimate binary message
Morphic >~ View
Tweak >~ View
System >~ Default >~ Compiler
My >~ Terrific >~ Compiler
The compiler *should* be extendable by a namespace/namestate
implementation. Of course the implementation of #>~ depends on the
run-time used (VW, Squeak, etc) and the default implementation is DNU (for
Xtreme speed of development ;-)
And Class#>~ can be overridden in support of specialized namestate
resolution during fileIn and accept (I mean alt-s in the browser).
My CHF 0.05 :)
/Klaus
P.S. in the above, nothing much is new.
P.P.S. if I had a whish free then I'd like to drag'n'drop namestate in the
browser (Andreas' step towards enabling scalability of development).
On Tue, 21 Nov 2006 17:32:10 +0100, Aaron Reichow <revaaron at bitquabit.com>
wrote:
> Ahoy!
>
> I know this might sound like a naive question... But why haven't we
> implemented namespaces yet? I'm sure there have been some attempts- but
> what is the status of namespaces in Squeak?
>
> I ask because it seems that, to me, it would be relatively easy to
> implement an intelligent namespace system in Squeak, something we all
> could decide on. It could even offer backwards compatibility in that,
> for now, all the classes in the image are just part of the default
> namespace, that way nothing gets broken.
>
> Ideas? Thoughts? Maybe a pointer to a discussion where this was already
> hashed out? Thanks!
>
> Regards,
> Aaron
>
>
More information about the Squeak-dev
mailing list
|