>>>>> "Luke" == Luke Gorrie <[EMAIL PROTECTED]> writes:
Luke> Howdy guys,
Luke> Some issues I've seen with 19a-pre3 on Debian/x86:
Luke> 1. Efficiency notes on any old deftype. If you compile this in a file:
Luke> (declaim (optimize (speed 2)))
Luke> (deftype foo () 'number)
[snip]
Luke> This appears to happen with any deftype at all.
It seems that the difference between now and 18e is that the
macroexpansion for deftype is slightly different. Currently it calls
lisp::dotted-list-length, but previously it called length. I assume
this was to fix some ansi issue where dotted lists were valid.
Could probably suppress the notes coming from dotted-list-length
(which uses loop). Is this important to you?
Luke> 2. Spurious-looking notes when using WITH-SLOTS on structures.
Luke> Example:
Luke> (defpackage :test)
Luke> (in-package :test)
Luke> (defstruct s (a "default value"))
Luke> (defun test ()
Luke> (with-slots (a) (make-s)
Luke> a))
Luke> When compiling:
Luke> ; In: DEFUN TEST
Luke> ; (WITH-SLOTS (A) (MAKE-S) A)
Luke> ; --> LET SYMBOL-MACROLET A SLOT-VALUE PCL::ACCESSOR-SLOT-VALUE LET
FUNCALL
Luke> ; --> C::%FUNCALL
Luke> ; ==>
Luke> ; #'(PCL:SLOT-ACCESSOR :GLOBAL A PCL::READER)
Luke> ; Warning: Undefined function (PCL:SLOT-ACCESSOR :GLOBAL A
Luke> ; PCL::READER) as the argument to FUNCTION
Luke> ; ;
Luke> ; Warning: This function is undefined:
Luke> ; (PCL:SLOT-ACCESSOR :GLOBAL A PCL::READER)
Luke> ;
18e produces something similar:
; (SLOT-ACCESSOR-NAME::|TEST A slot READER| #:G0)
; Warning: Undefined function: SLOT-ACCESSOR-NAME::|TEST A slot READER|
; ;
; Warning: This function is undefined:
; SLOT-ACCESSOR-NAME::|TEST A slot READER|
;
Perhaps some issue with PCL and when the functions are defined. I
don't understand PCL at all.
Is with-slots supposed to work structures or only classes? I can
never remember.
Ray