Packaging the programming tools
Bert Freudenberg
bert at impara.de
Mon Jul 18 13:57:47 UTC 2005
Am 18.07.2005 um 04:17 schrieb Andreas Raab:
> Folks -
>
> I've been working on detangling the current tool set from the rest
> of the system since I wanted to be able to replace the current tool
> set with something more appropriate for Tweak. It turns out that
> with a little restructuring of responsibilities this isn't all that
> hard and so I'm happy to announce the probably only Squeak image in
> the world which has no programming tools whatsoever (!):
I'm pretty sure there have been images stripped of all tools, and
Spoon of course takes that to the extreme. However, being able to
comfortably load and unload the tools is a Very Good Thing :)
> http://www.impara.de/~andreas/iSqueak/3.8/NoTools.zip [6.3MB]
>
> If you grab this image you will find that you won't be able to open
> a browser, a change sorter, workspace etc. not even a debugger[*1]
> simply because none of these tools are present.
That means I should not make any errors? At the moment, for any
exception I get an ominous "Syntax Error: Message pattern expected"
notifier, followed by a nil>>MNU in the Decompiler, then follows an
endless loop of notifiers for UnhandledErrors. Pressing Alt-.
freezes the image ater answering the notifier.
> [*1] Try browsing the sender of some message or a class - you will
> very quickly notice why I don't like the usage of "AppRegistry
> default" since it raises completely needless errors when for
> example trying to browse a class -- compare this with the notifier
> you get when trying to browse a selector which uses ToolSet's
> interpretation of "proper" AppRegistry behavior.
>
> However, since this is not very interesting, you can just load the
> standard tools package from
>
> http://www.impara.de/~andreas/iSqueak/3.8/Tools-ar.17.mcz [450k]
>
> install and use it.
Hmm, it requests my author initials ... where does that come from?
> And when you're tired of it, simply unload it from Monticello[*].
> Needless to say, the tools package does not leave any obsolete
> classes or undeclared references behind, it comes and goes cleanly.
>
> [*] After unloading execute the code in the left hand panel - it
> turns out that #unload is not executed when unloading packages from
> Monticello (we *really* need to fix this!) probably because the
> #unload method is removed before the class.
Done. See attachment. Methods are not removed one-by-one anymore when
the whole class is removed.
> But wait, there is more! Since the current tools package is
> somewhat messy and depends directly on Morphic and MVC I decided to
> build an alternative which exclusively depends on ToolBuilder. It's
> called the "PlusTools" (all the names have a "Plus" in the name,
> e.g., FileListPlus, TestRunnerPlus, ClassBrowserPlus,
> DebuggerPlus...) and loadable from:
>
> http://www.impara.de/~andreas/iSqueak/3.8/PlusTools-ar.16.mcz [300k]
>
> And of course, you can load and unload both tool sets at the same
> time if you'd like to. Note that the point of this exercise is not
> only to be able to replace the tools for Tweak - it is equally to
> show that a Squeak system can easily come without *any* specific
> tool support, squeakmap, even monticello (I only left MC in the
> image because you'd have to load it anyway to get to the tool sets)
> just as long as you have a way of loading code (e.g., compiler and
> change management). Therefore there is really no need whatsoever to
> put all of the programming tools into a "basic" Squeak image.
>
> And finally, the PlusTools should be helpful for further detangling
> work as they depend on ToolBuilder and not on Morphic or MVC (there
> might still be a few remnants but that's easily fixable).
>
> For those of you interested, here are the major changes that I did
> to make the above possible:
> * Refactoring of ChangeSet and ChangeSorter - all of the actual
> change set related stuff had to be moved out of ChangeSorter and
> ChangeSet itself had to be moved over to the System package and out
> of Tools.
> * Moving of the breakpoint, tallying, file contents browser (diff
> etc) out of the Tools (right now all of these are in System)
> * Introduced FileServiceRegistry to avoid abuse of FileList
> * Introduced ToolSet AppRegistry to support various tool sets
>
> I also had to do some significant shuffling around between packages
> to get everything in order and (un-)loadable but most of these
> changes were non-invasive. If you are interested the full
> repository is also available at:
>
> http://www.impara.de/~andreas/iSqueak/3.8/NoToolsRepository.zip
> [32MB]
>
> and contains a few more (already unloaded) packages and fixes going
> back to the original 3.8 versions from SqF.org.
Some more bugs I encountered:
* MessageNotUnderstood: Inspector class>>openOn:
* Endless loop in ToolSet class>>explore:
Ah well, fixes attached, too :)
- Bert -
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Tools-bf.18(ar.17).mcd
Type: application/octet-stream
Size: 2280 bytes
Desc: not available
Url : http://lists.squeakfoundation.org/pipermail/packages/attachments/20050718/99b128d4/Tools-bf.18ar.17.obj
-------------- next part --------------
A non-text attachment was scrubbed...
Name: System-bf.4(ar.3).mcd
Type: application/octet-stream
Size: 1737 bytes
Desc: not available
Url : http://lists.squeakfoundation.org/pipermail/packages/attachments/20050718/99b128d4/System-bf.4ar.3.obj
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Monticello-bf.265(ar.264).mcd
Type: application/octet-stream
Size: 21118 bytes
Desc: not available
Url : http://lists.squeakfoundation.org/pipermail/packages/attachments/20050718/99b128d4/Monticello-bf.265ar.264.obj
More information about the Packages
mailing list