MCL 4.2 & 3.3 Release Notes
===========================
Thank you for using MCL 4.2 and/or MCL 3.3. This document describes
what has changed since MCL 4.1 and MCL 3.2.
Please send bug reports and other feedback to bug-mcl@digitool.com.
Digitool's web page is .
For MCL related discussion, subscribe to info-mcl@digitool.com
by sending a message to info-mcl-request@digitool.com whose
body contains the single word: subscribe.
Installation
============
Install MCL 4.2 & 3.3 by dragging their respective folders to your hard disk.
For more details, see the Getting Started with MCL book, which is on the CD in
Acrobat format and available in paper form from Digitool as part of the MCL
hardcopy documentation product.
Known Incompatibilities
=======================
MCL 4.2 is incompatible with some versions of the "PPCExceptionEnabler"
extension that shipped with MCL 3.9. IF YOU HAVE "PPCExceptionEnabler" IN YOUR
SYSTEM EXTENSIONS FOLDER, GET RID OF IT. It was necessary for using some
debuggers with MCL 3.9, but is not necessary for MCL 4.0 and will cause
confusing behavior from MCL 4.1/4.2. If you need to run both MCL 3.9 and
MCL 4.2 based applications on the same machine, Digitool has a version of
"PPCExceptionEnabler" that does not have this incompatibility. To get it, send
mail to bug-mcl@digitool.com.
Running MCL for 68K on a PPC (emulated, of course) is incompatible with the
following extensions:
- SoftwareFPU - a shareware extension included on some Macintosh clones.
It apparently only fails when Virtual Memory is ON.
- Norton CrashGuard
MCL for PPC is incompatible with some versions of PPCDebuggerNub.
And, as we have said before:
If you have PPCExceptionEnabler or PPCTraceEnabler in your extensions folder
GET RID OF IT/THEM.
CLIM - Common Lisp Interface Manager
====================================
An alpha version of CLIM for MCL, which is still in development, is included
with this version. Compiled files for MCL 4.2 & MCL 3.3 are in the CLIM-MCL
folder. Contact Digitool for information about purchasing the release version
of Clim for MCL or about licensing the CLIM source files.
New Features - 4.2 & 3.3
========================
A new example file, "ccl:Examples;config.lisp" has been added, which prints
various kinds of information about the current machine, software, and Lisp
environment.
Quickdraw 3D interface files have been added to the "ccl:Libray;Interfaces;"
folder.
In MCL 4.1 and 3.2 the functions make-point, add-points and subtract-points
would return "Big points" if the either h or v was larger than 16 bits. A big
point is represented as a cons of two integers. Now make-point, add-points and
subtract-points always return an integer point suitable for passing to the
toolbox. There are new functions make-big-point, add-big-points and
subtract-big-points which may return a big point. These "big-point" functions
are used where appropriate in the table-dialog-item code. The reader macro #@
can now make big points.
The class table-dialog-item has a new initarg :cell-colors. The value may be
either :text or :background. The default value is :text. If the value is
:background then cell colors apply to background of the cell rather than the
text. Individual cell colors are specified by calling (SET-PART-COLOR table
point color) where 'point' specifies the h and v positions of the cell in the
table.
Changes - 4.2 & 3.3
===================
application-eval-enqueue executes form immediately if no listeners are present.
Insertion caret is drawn in XOR mode to accommodate OS8 "Charcoal".
*features* includes either :CCL-3.3 or :CCL-4.2 keyword.
Fred window navigation using Cntl-N, Cntl-P and friends is improved for wrapped lines.
sxhash returns useful values for arrays, structures, and instances.
Optimizations - 4.2 & 3.3
=========================
Fixed some bad performance problems on startup when many fonts are installed.
menu-enable & menu-disable don't invalidate the view unless necessary.
pop-up-menu's don't set menu-item-check-mark unless it changes; this is much faster
when there are many menu items.
%set-single-float and %hset-single-float no longer cons for double-float values.
set-view-container doesn't invalidate the view unless the container was changed.
Symbols newly exported from the CCL package - 4.2 & 3.3
=======================================================
make-big-point
add-big-points
subtract-big-points
get-finder-comment
set-finder-comment
*sleep-wakeup-functions*
New functions & variables - 4.2 & 3.3
=====================================
make-big-point (h &optional v)
Make a point. The result will be a big point (a cons of h and v) if the value
of either h or v exceeds 16 bits. Otherwise the result will be an integer point.
add-big-points (pt1 pt2)
Add the points pt1 and pt2. The result will be a big point if the value of
either h or v of the result exceeds 16 bits.
subtract-big-points (pt1 pt2)
Subtract the points pt1 and pt2. The result will be a big point if the value of
either h or v of the result exceeds 16 bits.
get-finder-comment (path)
Returns the finder comment as a string of the file referenced by the pathname or
string path.
set-finder-comment (path comment)
Set the finder comment of the file referenced by path to the string comment.
*sleep-wakeup-functions*
This special variable may contain a list of functions of no arguments which will
be called when the machine wakes up from sleep.
Bug fixes - 4.2 & 3.3
=====================
method properly computes the dialog height.
Arglists of traced generic functions are now available (from Alan Ruttenberg).
The backtrace window's pane splitter now has a cursor.
char-downcase works for char-codes greater than 128.
char-name fixed for "control" characters.
choose-new-file-dialog cancels if the StandardFileReply.sfGood field is not true.
When *compile-definitions* is nil (i.e., the compiler has been disabled), more
features are still available (eg, evaluating setf forms).
Control-Q enables dead keys.
copy-file copies the Finder comment, if any, if the (new) keyword argument
:finder-comment-p is true.
Copying text in a listener preserves text colors.
defstruct no longer deletes the print function.
Fixed a problem with encode-universal-time concerning daylight savings time
and "day of week" value.
*environs* knows about some more non-PPC processors.
Launching MCL when something with colors is in the external scrap works better.
Some examples files have been updated see the files for more details):
processes.lisp: Define the fred commands conditional upon :add-process-key-bindings
being present in *features*.
text-edit-dialog-item.lisp: Body colors now work.
find-screen fix from Steven Feist.
full-pathname fixed w.r.t specifying a host and :relative.
get-decoded-time returns the daylight savings time setting from the "Date & Time" control
panel instead of computing it from the current date & time.
Interface Tools fixes:
method no longer includes :view-size or view-position;
they are already included by the simple-view method.
Changed the loading instructions in the make-ift.lisp file.
methods don't include scroll bars of table-dialog-item
in subviews.
select-all and window-can-do-operation call dialog-items with class simple-view.
method doesn't select scroll bars of table-dialog-item.
The function MERGE has been fixed; the result type of merged vectors is correct.
A new version of new-file-dialogs.lisp fixes the case of an alias referencing a deleted
target file.
Compiler optimizers for MAP and MAPC are fixed for cases where the function argument is
not quoted.
Compiler optimizers for POSITION and others don't confuse quoted vectors - eg, '#(1 2) -
with lists.
Pretty printing LOOP forms works now.
Some of the QuickDraw GX interface files have been improved, thanks to Peter Bengtson of
Technoligor AB.
(QUIT) works from inside modal-dialogs.
In some circumstances the function RANDOM returned values that only spanned
half the requested range.
%set-single-float coerces properly when given double-float values.
Splash screens can now be used without manually changing a resource ID (contact Digitool
for details on using splash screens).
stream-listen in "ccl:Library;io-buffer.lisp" checks for untyi-char; some changes in
the test at end of the file.
Printing symbol names does the right thing with respect to print-case when escaped,
and only "slashifies" a sharpsign (#) when it's the first character.
Many fixes in the new table-dialog-item implementation:
(method view-click-event-handler (table-dialog-item t)) calls cell-select
twice if the cell is clicked on twice. It also doesn't perform its body
except when the mouse moves to another cell.
scroll-to-cell now accounts for the separator-size in determining pixels to scroll.
scroll-to-cell also allows scrolling to make entirely visible a partially visible
final row or column.
fixup-scroll-bars honors the table-grow-icon-p value when there is only one scroll bar.
fixup-scroll-bars also enables scrolling for a partially visible final row or column.
table-inner-size handles :undetermined scroll bars.
Scrolling by a page now works correctly with custom row heights & column widths.
Andrew Begels's fix to redraw-cell: erase with the correct background color.
Make first-selected-cell be the first one now selected vs. the first one that got selected.
cell-contents-string-new (from Stefan Bamberger).
table-dialog-item doesn't select when clicked beyond existing cells.
set-view-size table-dialog-item doesn't error when not installed.
Added cell-colors initarg to table-dialog-item; :cell-colors :background means color
applies to cell background rather than text; table-dialog-item changes for this.
Fix :disjoint selection (not the same as :contiguous when shift-key-p is true) and
:contiguous selection.
redraw-cell does nothing if no wptr (for call from set-part-color).
Fixed part-color for table-dialog-item.
An earlier fix to table-dialog-item re scroll-bars being :undetermined broke a lot of
built in callers of table-dialog-item that depended on the bug; those callers have been
fixed.
remove-subviews deals with scroll-bars being gone already because the "scrollee" is gone.
fixup-scroll-bar-levels now does nothing - it caused trouble and appears unnecessary.
window-revert does not attempt to create a non-existent package.
Bug fixes - 4.2
===============
The compilation of int>0-p for bignums has been fixed. The form is used
in the expansion of dotimes.
integer-decode-double-float exceptions for NaN/inf and invalid-operation are enabled.
integer-decode-short-float exceptions for Nan (iff invalid-operation is enabled).
Bug fixes - 3.3
===============
Array inspector fixed for arrays of rank 1.
Fixed concatenate for types such as simple-long-vector, simple-unsigned-long-vector.
Known bugs
==========
If you experience a problem with balloon help for pop-up-menus or regular menus,
set the variable ccl::*fix-menu-balloon-help-bug* to T
A few problems have been reported since the new MCL images were built. Patches
for all problems that have been fixed at this time are included in the
"Patches 4.2" and "Patches 3.3" folders. See the @README@ files in those folders
for more information.