December 19, 2001

ACL 6.1

I just got a copy of ACL 6.1. There are some cool-looking new features (Mac OS X support, localization), but there is something very wrong with the emacs-lisp interface. It is reaaaally slow. When Mike showed me how slow it had become, I decided to hold off on upgrading.

After hitting Enter (fi:inferior-lisp-newline) in emacs to send a form to lisp for evaluation, there is a noticeable pause (maybe three-quarters to a full second) before the return value is printed, or any side-effect I/O is displayed. It could be that there is a delay before the form is sent to lisp, or before the output from lisp is displayed in emacs.

Mike and Will both installed 6.1 and noticed the slowdown. Mike installed all the latest patches from Franz, and while the patches did improve things, there was still an annoying delay.

So I remain at 6.0 until we hear back from Franz about how to fix this.

Posted by jjwiseman at 01:20 AM | Comments (1)

December 11, 2001

Portability 3: Structures, Slots and Conditions

I always wondered whether the with-slots macro was legal to use on structures. The answer turns out to be that it is not.

Some of the code in the assertional memory module used with-slots on structures. This code worked in ACL and MCL, but did not work in CMUCL. with-slots is defined in terms of slot-value, and the Hyperspec says that the behavior of slot-value depends on the metaclass of the object it is applied to:

  • standard-class (defined with defclass) : never an error.
  • built-in-class (possibly types like string and T): always an error.
  • anything else: unspecified; maybe it will be an error, maybe not.

The spec goes on to say "Note in particular that the behavior for conditions and structures is not specified." Which means don't count on it working (and don't count on it not working).

At least this was not a particularly difficult change to make in the code.

Posted by jjwiseman at 09:35 PM | Comments (0)