Hi All,
Is it too late to have a hearty discussion here on the squeak discussion group regarding namespaces and modules?
I.e., have the plans for squeak been cast in stone. I've briefly read some of the module and namespace discussions on the Wiki.
If not then I would like to try and participate in a discussion on this area with the goal being to strive for some level of compatibility with existing Smalltalk implementations of namespaces, modules, etc such as in the work I've done for SmallScript (AOS and .NET versions), and its ancestor SmalltalkAgents (QKS Smalltalk).
I would add that this is area where simplicity is truly elegance in the best sense of Smalltalk's philosophy. But it is equally an area where recognizing synergies and making the right steps for achieving simplicity can be a hard thing to get right.
-- Dave S. [SmallScript LLC]
SmallScript for the AOS & .NET Platforms David.Simmons@SmallScript.com | http://www.smallscript.org
-----Original Message----- From: squeak-dev-admin@lists.squeakfoundation.org [mailto:squeak-dev- admin@lists.squeakfoundation.org] On Behalf Of Hannes Hirzel Sent: Thursday, January 31, 2002 10:18 PM To: Squeak list Cc: Dan Ingalls; Doug Way; scott Subject: Re: [modules] Important: class re/definitions in change sets
and
updates
On Thu, 31 Jan 2002, Henrik Gedenryd wrote:
There are now multiple name spaces, one per module.
So an important thing to keep in mind is that in subsequent change
sets
and
especially updates, system categories in class definitions *have to*
agree
with that of the existing class, or a second class will be added in
the
module specified by the category. (Harvesters, in particular, keep
this
in
mind.)
Since system categories are simulated from module path names,
classes
will
be placed in *exactly* the module specified in the category of a
class
definition--even if the module doesn't exist. This is for reasonable backward compatibility.
So, new classes will be placed there obviously. But, for an existing
class
in a certain module, a *new class* will be created from the new
class
(re-)
definition if it specifies a different module. This is not a bug, it
is
because every module has its own name space.
One could circumvent this by ignoring the category for any class
already
present under #(Squeak), but I don't think this would be a good
thing,
all
things considered.
I copied this important information on a new swiki page with the title 'Name spaces':
http://minnow.cc.gatech.edu/squeak/2221
This page can be accessed from 'Modules: Design Principles' http://minnow.cc.gatech.edu/squeak/2044
which in turn is accessed from the 'Modules' page
http://minnow.cc.gatech.edu/squeak/2042
There is a fair amount of initial information by Henrik and a
compilation
of this list's discussion on [modules] last autumn.
May I ask anybody interested to watch out for important information as well and update the pages as necessary.
Hannes Hirzel