* In genesis, output a define with the descriptions of internal
errors.
* In interr.c, create an array with said descriptions and use it when
describing an internal error.
(unless (eq nil (car current-error))
(format t "#define ~A ~D~%"
(c-symbol-name (car current-error))
- i)))))
+ i))))
+ (format t "#define INTERNAL_ERROR_NAMES \\~%~{~S~#[~:;, \\~%~]~}~%"
+ (map 'list #'cdr internal-errors)))
(terpri)
;; I'm not really sure why this is in SB!C, since it seems
#endif
}
\f
+char *internal_error_descriptions[] = {INTERNAL_ERROR_NAMES};
/* internal error handler for when the Lisp error system doesn't exist
*
* FIXME: Shouldn't error output go to stderr instead of stdout? (Alas,
int len, scoffset, sc, offset, ch;
len = *ptr++;
- printf("internal error #%d\n", *ptr++);
+ printf("internal error #%d (%s)\n", *ptr,
+ internal_error_descriptions[*ptr]);
+ ptr++;
len--;
while (len > 0) {
scoffset = *ptr++;
;;; checkins which aren't released. (And occasionally for internal
;;; versions, especially for internal versions off the main CVS
;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"1.0.33.27"
+"1.0.33.28"