Fred Gilham wrote on Fri, Jul 12, 2002 at 12:27:59PM -0700: 
> 
> What does the `referencing an undumpable constant' error mean?
> 
> I'm trying to recompile the Ergo Lisp system and I'm stuck on this
> problem.  The error comes when compiling the following file:
> 
> ;;; -*- Mode: Lisp; Package: SB-RUNTIME -*-
> (in-package "SB-RUNTIME")  (use-package :ergolisp)
> 
> (use-package '("OPER" "OCC" "TERM" "SORT" "LANG"))
> 
> (defparameter *sbrt-sort-table*
>   (make-sort-table
>    '((#t(:sort id) . #t(:union))
>      (#t(:sort cid) . #t(:union))
>      (#t(:sort number) . #t(:union))
>      (#t(:sort string) . #t(:union))
>      (#t(:sort literal) . #t(:union))
>      (#t(:sort keyword) . #t(:union)))))

Can you post the source for make-sort-table?

> I don't know if the problem is due to make-sort-table creating a hash
> table (which it does) or to it using the #t read macros.  Or if
> there's some other problem.

I usually get these in third-party code when a function takes a (then
higher-order) function as an argument and a default funtion is
provided, but somebody forgot the #'

(defun bla (foo bar &optional (comparefunction foo)

instead of

(defun bla (foo bar &optional (comparefunction #'foo)

The CMUCL compiler would in the former case try to put the literal
function, not a refernece to it into the file.  Other compilers
silently convert to the second form (e.g. Allegro).

Martin

Reply via email to