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.