Introduction to Squeak?

goran.hultgren at bluefish.se goran.hultgren at bluefish.se
Sun Mar 30 15:10:10 UTC 2003


Hi Jenny and all!

jennyw <jennyw at dangerousideas.com> wrote:
> Hi, Andreas,
> 
> I'm also reading through the FAQ and links to intros on the Swiki, which
> is helpful.  I do have some questions to start out with ...
> 
> Is it not typical to put comments in classes so that one knows what they 
> do?  Is it generally the case that to find out how to use a class you 

Well, Class comments *should* be there IMHO. And many others agree with
me.
At the same time there are numerous classes with blank class comments in
the current image.
But we are working to improve that - in 3.6 I would guess a whole bunch
of submitted new class comments will enter the image or the appropriate
packages.

> just read through the code?  The thing I'm exploring right now is 
> Celeste, since I have an interest in e-mail programs (as in I'm 
> frustrated with all of them).

Celeste is pretty nice (I use it myself, the filtering one) but there
are of course numerous things we could add/fix etc. Celeste is going to
be broken out into a separate package in 3.6 btw.
 
> I used SqueakMap to install SUnit 3.1.  I noticed that as I installed 
> packages, they disappeared off the list.  Does this mean that there is 
> no uninstall facility?  I did notice that SUnit had two packages to load 

Well, no. If you look at the menu in the package loader you will see
that there are a couple of filters that you can activate/deactivate.
Daniel made the default to filter out installed packages - that is why
they "disappear" from the list. We should fix this because you aren't
the first one who has been tricked by that.

To answer your other question: Can packages be uninstalled? No, not yet.

SqueakMap is package format "agnostic" so it depends on the package
format. Packages can for example be ChangeSets or simple fileins. Such
formats are essentially Squeak code that is being run on installation
which means that they can "do" anything. And thus we can't in theory
uninstall them.

BUT... Squeakers are moving into using more modern formats like DVS
which Avi Bryant in the future probably will make uninstallable.

So, in short - the "normal" formats like .cs and .st files aren't
uninstallable. DVS fileouts (also called .st) will probably be
uninstallable in the future. SqueakMap handles them all so it will thus
depend from package to package.

Another thing is that uninstallation will probably be less interesting
given the upcoming mechanisms for building images using load scripts etc
in SqueakMap 1.1. So instead of uninstalling you simply rebuild your
image. Not as cool as uninstall of course - but to get there we need to
use DVS in full and also figure out how to reliably reverse side effects
of things like class initialization etc. Tricky stuff.

> for uninstalling.  I assume that loading these removed code.  I guess I 
> was originally thinking this would be similar to Debian's apt-get, but 
> it seems to be a bit simpler.

The "removal" packages that can be seen on SqueakMap are temporary and
will be used especially during the development of version 3.6in which we
are actively going to chop up the image into packages. So they aren't
really meant for end-user use.

And yes, SqueakMap is "simpler" than apt-get but will in the upcoming
version 1.1 add a number of very important features (package releases,
proper file cache, links&resources and a few more things) making it much
more "on par". (I am the main SqueakMap developer btw :-)

Especially "package releases" in SM1.1 will open up a whole sea of new
possibilities like "load scripts" and "dependency resolution" engines. I
have one such dependency scheme and corresponding engine all lined up
which is different from Debian but IMHO in many ways simpler and more
flexible.

> I noticed that when I was downloading mail into Celeste that I wasn't
> able to do anything else.  Is this because Squeak is not by nature 
> multi-threaded/multi-processing?

Andreas already answered this so no - you can easily "multithread"
(check classes like Process and senders of fork and forkAt: for some
examples). It would probably be an easy thing to make Celeste pop and
send in the background - I faintly remember we toyed with that on the
mailinglist a long time ago.

> FYI, the project I originally had in mind was to do some basic IMAP
> manipulation.  I do this a bit from Perl and thought it would be nice to
> do this from Squeak. I'm beginning to realize this may be a bit
> difficult since there doesn't seem to be any IMAP support in Squeak. 
> When I asked about this a while ago, Les Tyrrell mentioned that he had
> written some IMAP stuff for VisualWorks that could be ported. However, I
> can't find that package any longer -- it seems his Web pages are no
> longer up.  So if I go ahead with this, this would probably be from
> scratch (although I would be able to use IMAP modules from other
> languages like Python and Perl for ideas).

I think Les is still on this list, hmmm - his latest email I know of is:
lestyrrell "at" spamcop.net
Last post was in februari - try mailing him and he will surely help you
out.

> Thanks!
> 
> Jen

You are welcome.

regards, Göran



More information about the Squeak-dev mailing list