home *** CD-ROM | disk | FTP | other *** search
- Path: sparky!uunet!olivea!apple!cambridge.apple.com!UK0392@AppleLink.Apple.COM
- From: UK0392@AppleLink.Apple.COM (EHN & DIJ Oakley,BDV)
- Newsgroups: comp.lang.lisp.mcl
- Subject: MCL 2.0 final comments
- Message-ID: <712571654.4324350@AppleLink.Apple.COM>
- Date: 31 Jul 92 08:31:00 GMT
- Sender: info-mcl-request@cambridge.apple.com
- Lines: 61
- Approved: comp.lang.lisp.mcl@Cambridge.Apple.C0M
- Original-To: INFO-MCL@CAMBRIDGE.APPLE.COM
- Original-Cc: BUG-MCL@CAMBRIDGE.APPLE.COM
-
- Friends (& MCL wonder-workers),
-
- Here is a first batch of comments regarding MCL 2.0 final -
-
- 1. Overall impressions:
- If you have been wondering whether or not to upgrade from 1.x, or to invest in
- MCL 2.0, then now is the time. The beta was a good product, the final release
- is stunningly good, with all sorts of excellent features. I would single out
- (perhaps rather arbitrarily) the following
- - the CD has over 500 megs of material on it, of which over 60 megs is
- contributed source code and demos, including demos of CLIM 1.1,
- ExperTelligence's products, and a huge library of other material which would
- represent a huge amount of ftping (assuming you could locate the material in
- the first place). Personally, I would recommend *every* Common Lisp user to
- buy MCL 2.0 and a CD ROM drive just for this massive archive. There are
- accessible on-line docs, partial sources for MCL 2.0 itself, etc.
- - the examples have been considerably expanded, and include AppleEvent
- stuff, etc. Coupled with the additional material in the much improved
- documentation, MCL is much more accessible.
- - MCL support for evolving features like AppleEvents has also been greatly
- improved, and the new ephemeral gc is excellent (see below).
-
- 2. Compatibility notes:
- Upgrading from MCL 2.0b1p3 is pretty straightforward. I have come across the
- following little things of which you might like to beware:
- - if you use LOOP features, remember that these have been evolving and may
- require a modest bit of tidying before they compile correctly, or to use the
- compatibility loop provided (documented)
- - get-internal-run-time now seems to return a time in milliseconds, whereas
- in 2.0b1, it seemed to return a time in ticks (60ths of a second), although
- this does *not* appear to be documented anywhere
- - the default startup state is for egc-enabled-p to be NIL, somewhat
- surprisingly, so if you want ephemeral gc to be enabled, you will need to turn
- it on [with (egc t) in your init.lisp file] deliberately (if this is
- documented, it is not clear!)
- - there are some other changes which are documented, e.g. logical pathnames
- vs logical directories, for which you will need to watch.
-
- 3. Benefits of egc:
- [Interestingly, in evangelising MCL 2.0 to someone here, it was pointed out
- that 'ephemeral gc' has also been called 'generational gc', and we wondered
- whether there was any literature describing it which might merit reference?]
-
- Ephemeral gc is a major step forward. We have an application which does
- real-time modelling of a radar display, and is clearly very sensitive to
- conventional gc, which brings everything to a temporary halt. When porting
- this to MCL 2.0 final, even giving it a large partition but leaving egc off,
- gcing was very noticeable and disruptive. Under MCL 2.0b1, this was also the
- case (although I fancy that standard gcing under b1 was somewhat less
- frequent?). Once egc was enabled, and without messing with the default
- generation sizes, standard test runs completed using only egc and without any
- gc at all, eliminating all disruption to the display and only very occasional
- time 'jerks'. The result is now very impressive indeed.
-
- One of the examples (a thermometer bar) provides a very useful tool for
- monitoring egc and gc activity, and I would recommend its use for tuning egc
- and memory partitions during development of applications.
-
- Another very happy MCL 2.0 user,
- Howard.
-
-