[ENH][Modules] Another version

Henrik Gedenryd Henrik.Gedenryd at lucs.lu.se
Tue Sep 18 17:30:49 UTC 2001


danielv at netvision.net.il wrote:

> Hi Henrik,
> A few questions about your modules system -
> The Explorer is used extensively to browse modules. Is there a tool for
> modifying them (to create the system refactorings)? how do you do it?

No, not yet, but drag and drop seems like an obvious function to add once
the basics are all there and working. One could then record changes to a
refactoring class too. But the hard work to me has seemed to be untangling
relationships and figuring where things ought to go. Writing the code to
make the moves is a minimal task in comparison, in my experience...

> Do you/will you support extensions (class definition is in module a,
> additional methods for it are defined in module b)?
> The DeltaModules class comment looks like it's supposed to allow me to
> load code and install it (or not) separately, which is important. How
> much of that is there?

The DeltaModules will do that, among other things, but right now the DM code
is best regarded as a "demo".

> How does one load code from the HTTP repository? how does one put code
> there?

That is the part where I havent done much at all, right now you can't do
anything really, besides see the repository object build a url
automatically. While the scheme is rather similar to SCAN, since the
opportunity arose I added a high level of integration of the module and
repository structures (they are identical). This could be a unique feature
for Squeak, yielding great simplicity, so that specifying the module path,
such as "Project Whisker" (cf. "java.lang.math") is sufficient for Squeak to
automatically locate, download and install the entire thing from any place
on the net. 

I am hoping for either or both of the "competing" repository authors to jump
in (hint hint), or someone else of course. Anyone volunteering can count on
good support from me. My idea was to start with something much simpler than
e.g. CVS, that initially would more or less just allow us to easily share
contributions (simple up- and downloading).

Note: Java people tend to complain loudly about problems with the classpath.
I am somewhat familiar with the problem, but I would like to solicit
experience with this from everyone here (or web pointers), so we can avoid
thes issues if they might apply to us, no issue is too small if it is
relevant. Grab this chance to complain about Java for a constructive
purpose. :)

> Your work and the ModSqueak work seem quite similar in scope. Can you
> comment on the differences?

While they may appear similar, if you look a little closer at
ModSqueak/Ginsu, they are actually quite different in their approaches.
Theirs doesn't use namespaces/modules at all (yet at least), and instead
uses the declarative/semantic model of Team/V that Allen W-B described,
which in its principles is very similar to how traditional compilers and dev
tools operate. However, a closer comparison would get argumentative and I'll
try to avoid a flame war here.

Still, I would venture to say that the model of a commercial, in-house
development process that those tools are built for is _very_ different from
that of an internet-distributed, collaborative open-source project. I think
it was Paul who said that they are developing their solution because it is
the kind of tool they want to use for their own work, which I respect, but
to adapt it to the usage patterns and needs of the Squeak community would
not be a straight-forward thing to do at all. I have explicitly taken the
needs of the Squeak community into account, and tried to design a model that
is specifically adapted to this, adopting the good features from the
suggestions of people here, including from the ModSqueak/ Team/V approach.


> BTW, in the regular browser, after loading your changes and executing
> the refactoring, the menu for class categories (now modules?) bombs. See
> error below.

Thanks, that was a very stupid bug.

Henrik






More information about the Squeak-dev mailing list