[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
defstruct
In AKCL 123 and greater there is a bug in the sharp reader for structs.
This will be fixed when Schelter returns. If anyone needs a fix now, the
following patch will work
---------------------------------------------------------------------
(in-package 'si)
(defun sharp-s-reader (stream subchar arg)
(declare (ignore subchar))
(when (and arg (null *read-suppress*))
(error "An extra argument was supplied for the #S readmacro."))
(let ((l (read stream)))
(unless (get (car l) 's-data)
(error "~S is not a structure." (car l)))
;; Intern keywords in the keyword package.
(do ((ll (cdr l) (cddr ll)))
((endp ll)
;; Find an appropriate construtor.
(do ((cs (si::s-data-constructors
(get (car l) 'si::s-data)) (cdr cs)))
((endp cs)
(error "The structure ~S has no structure constructor."
(car l)))
(when (symbolp (car cs))
(return (apply (car cs) (cdr l))))))
(rplaca ll (intern (string (car ll)) 'keyword)))))
----------------------------------------------------------------------
Mike B