mirror of
git://git.code.sf.net/p/sbcl/sbcl
synced 2026-09-10 07:26:40 -04:00
0.7.1.33:
merged APD "bug 152" patch sbcl-devel 2002-03-06
This commit is contained in:
parent
ec2616d216
commit
b05ccdd915
6
BUGS
6
BUGS
|
|
@ -1275,12 +1275,6 @@ WORKAROUND:
|
|||
Instead, in sbcl-0.7.1.17 it returns
|
||||
#<FUNCTION "top level local call SB!IMPL::DISPATCH-CHAR-ERROR">
|
||||
|
||||
152:
|
||||
Undefined functions are supposed to be reported as UNDEFINED-FUNCTION
|
||||
conditions, inheriting from CELL-ERROR. Instead sbcl-0.7.1.19 reports
|
||||
them as TYPE-ERRORs (reporting the problem as something not being
|
||||
coerceable to a function).
|
||||
|
||||
153:
|
||||
(essentially the same problem as a CMU CL bug reported by Martin
|
||||
Cracauer on cmucl-imp 2002-02-19)
|
||||
|
|
|
|||
2
TODO
2
TODO
|
|
@ -58,7 +58,7 @@ for early 0.7.x:
|
|||
os_trunc_foo(), os_round_up_foo()
|
||||
** removed various avoid-evaluating-C-macro-arg-twice
|
||||
cruft
|
||||
* added mechanisms for automatically finding dead symbols is
|
||||
* added mechanisms for automatically finding dead symbols in
|
||||
package-data.lisp-expr (i.e. those symbols not bound,
|
||||
fbound, defined as types, or whatever), and used them
|
||||
to remove dead symbols
|
||||
|
|
|
|||
|
|
@ -1100,7 +1100,6 @@ is a good idea, but see SB-SYS re. blurring of boundaries."
|
|||
"NUMERIC-TYPE-HIGH" "NUMERIC-TYPE-LOW" "NUMERIC-TYPE-P"
|
||||
"OBJECT-NOT-ARRAY-ERROR" "OBJECT-NOT-BASE-CHAR-ERROR"
|
||||
"OBJECT-NOT-BIGNUM-ERROR" "OBJECT-NOT-BIT-VECTOR-ERROR"
|
||||
"OBJECT-NOT-COERCEABLE-TO-FUN-ERROR"
|
||||
"OBJECT-NOT-COMPLEX-ERROR"
|
||||
"OBJECT-NOT-COMPLEX-FLOAT-ERROR"
|
||||
"OBJECT-NOT-COMPLEX-SINGLE-FLOAT-ERROR"
|
||||
|
|
@ -1203,7 +1202,7 @@ is a good idea, but see SB-SYS re. blurring of boundaries."
|
|||
"TYPE-SPECIFIER" "TYPE-UNION" "TYPE/=" "TYPE="
|
||||
"TYPES-EQUAL-OR-INTERSECT"
|
||||
"UNBOUND-SYMBOL-ERROR" "UNBOXED-ARRAY"
|
||||
"UNDEFINED-SYMBOL-ERROR" "UNION-TYPE" "UNION-TYPE-P"
|
||||
"UNDEFINED-FUN-ERROR" "UNION-TYPE" "UNION-TYPE-P"
|
||||
"UNION-TYPE-TYPES" "UNKNOWN-ERROR"
|
||||
"UNKNOWN-KEY-ARG-ERROR"
|
||||
"UNKNOWN-TYPE" "UNKNOWN-TYPE-P"
|
||||
|
|
|
|||
|
|
@ -173,17 +173,12 @@
|
|||
:datum object
|
||||
:expected-type 'symbol))
|
||||
|
||||
(deferr undefined-symbol-error (fdefn-or-symbol)
|
||||
(deferr undefined-fun-error (fdefn-or-symbol)
|
||||
(error 'undefined-function
|
||||
:name (etypecase fdefn-or-symbol
|
||||
(symbol fdefn-or-symbol)
|
||||
(fdefn (fdefn-name fdefn-or-symbol)))))
|
||||
|
||||
(deferr object-not-coerceable-to-fun-error (object)
|
||||
(error 'type-error
|
||||
:datum object
|
||||
:expected-type 'coerceable-to-fun))
|
||||
|
||||
(deferr invalid-arg-count-error (nargs)
|
||||
(error 'simple-program-error
|
||||
:format-control "invalid number of arguments: ~S"
|
||||
|
|
|
|||
|
|
@ -104,7 +104,7 @@
|
|||
(:generator 10
|
||||
(move object obj-temp)
|
||||
(loadw value obj-temp fdefn-fun-slot other-pointer-lowtag)
|
||||
(let ((err-lab (generate-error-code vop undefined-symbol-error obj-temp)))
|
||||
(let ((err-lab (generate-error-code vop undefined-fun-error obj-temp)))
|
||||
(inst cmpeq value null-tn temp)
|
||||
(inst bne temp err-lab))))
|
||||
|
||||
|
|
|
|||
|
|
@ -2642,12 +2642,16 @@
|
|||
(format t " /* 0x~X */~@[ /* ~A */~]~%" value doc))))
|
||||
(terpri))
|
||||
|
||||
;; writing codes/strings for internal errors
|
||||
(format t "#define ERRORS { \\~%")
|
||||
;; writing information about internal errors
|
||||
(let ((internal-errors sb!c:*backend-internal-errors*))
|
||||
(dotimes (i (length internal-errors))
|
||||
(format t " ~S, /*~D*/ \\~%" (cdr (aref internal-errors i)) i)))
|
||||
(format t " NULL \\~%}~%")
|
||||
(let ((current-error (aref internal-errors i)))
|
||||
;; FIXME: this UNLESS should go away (see also FIXME in
|
||||
;; interr.lisp) -- APD, 2002-03-05
|
||||
(unless (eq nil (car current-error))
|
||||
(format t "#define ~A ~D~%"
|
||||
(substitute #\_ #\- (symbol-name (car current-error)))
|
||||
i)))))
|
||||
(terpri)
|
||||
|
||||
;; writing primitive object layouts
|
||||
|
|
|
|||
|
|
@ -25,6 +25,10 @@
|
|||
(eval-when (:compile-toplevel :execute)
|
||||
(def!macro define-internal-errors (&rest errors)
|
||||
(let ((info (mapcar (lambda (x)
|
||||
;; FIXME: We shouldn't need placeholder
|
||||
;; NIL entries any more now that we
|
||||
;; pass our magic numbers cleanly
|
||||
;; through sbcl.h.
|
||||
(if x
|
||||
(cons (symbolicate (first x) "-ERROR")
|
||||
(second x))
|
||||
|
|
@ -83,21 +87,16 @@
|
|||
"Object is not of type CONS.")
|
||||
(object-not-symbol
|
||||
"Object is not of type SYMBOL.")
|
||||
(undefined-symbol
|
||||
(undefined-fun
|
||||
;; FIXME: Isn't this used for calls to unbound (SETF FOO) too? If so, revise
|
||||
;; the name.
|
||||
"An attempt was made to use an undefined FDEFINITION.")
|
||||
(object-not-coerceable-to-fun
|
||||
"Object is not coerceable to type FUNCTION.")
|
||||
(invalid-arg-count
|
||||
"invalid argument count")
|
||||
(bogus-arg-to-values-list
|
||||
"bogus argument to VALUES-LIST")
|
||||
(unbound-symbol
|
||||
"An attempt was made to use an undefined SYMBOL-VALUE.")
|
||||
;; FIXME: We shouldn't need these placeholder NIL entries any more
|
||||
;; now that we pass our magic numbers cleanly through sbcl.h.
|
||||
nil
|
||||
(object-not-sap
|
||||
"Object is not a System Area Pointer (SAP).")
|
||||
(invalid-unwind
|
||||
|
|
@ -112,8 +111,6 @@
|
|||
"odd number of &KEY arguments")
|
||||
(unknown-key-arg
|
||||
"unknown &KEY argument")
|
||||
nil
|
||||
nil
|
||||
(invalid-array-index
|
||||
"invalid array index")
|
||||
(wrong-number-of-indices
|
||||
|
|
|
|||
|
|
@ -94,7 +94,7 @@
|
|||
(move obj-temp object)
|
||||
(loadw value obj-temp fdefn-fun-slot other-pointer-lowtag)
|
||||
(inst cmp value null-tn)
|
||||
(let ((err-lab (generate-error-code vop undefined-symbol-error obj-temp)))
|
||||
(let ((err-lab (generate-error-code vop undefined-fun-error obj-temp)))
|
||||
(inst b :eq err-lab))
|
||||
(inst nop)))
|
||||
|
||||
|
|
|
|||
|
|
@ -139,10 +139,7 @@
|
|||
(:generator 10
|
||||
(loadw value object fdefn-fun-slot other-pointer-lowtag)
|
||||
(inst cmp value nil-value)
|
||||
;; FIXME: UNDEFINED-SYMBOL-ERROR seems to actually be for symbols with no
|
||||
;; function value, not, as the name might suggest, symbols with no ordinary
|
||||
;; value. Perhaps the name could be made more mnemonic?
|
||||
(let ((err-lab (generate-error-code vop undefined-symbol-error object)))
|
||||
(let ((err-lab (generate-error-code vop undefined-fun-error object)))
|
||||
(inst jmp :e err-lab))))
|
||||
|
||||
(define-vop (set-fdefn-fun)
|
||||
|
|
|
|||
|
|
@ -260,7 +260,7 @@ undefined_tramp_offset:
|
|||
call_pal PAL_bugchk
|
||||
.long trap_Error
|
||||
.byte 4 /* what are these numbers? */
|
||||
.byte 23
|
||||
.byte UNDEFINED_FUN_ERROR
|
||||
.byte 254
|
||||
.byte (0xe0 + sc_DescriptorReg)
|
||||
.byte 2
|
||||
|
|
|
|||
|
|
@ -216,11 +216,7 @@ undefined_tramp = . + 1
|
|||
b 1f
|
||||
unimp trap_Cerror
|
||||
.byte 4
|
||||
#ifdef type_LongFloat
|
||||
.byte 24
|
||||
#else
|
||||
.byte 23
|
||||
#endif
|
||||
.byte UNDEFINED_FUN_ERROR
|
||||
.byte 254, sc_DescriptorReg, 3
|
||||
.align 4
|
||||
1:
|
||||
|
|
|
|||
|
|
@ -262,11 +262,7 @@ GNAME(undefined_tramp):
|
|||
int3
|
||||
.byte trap_Error
|
||||
.byte 2
|
||||
#ifdef LONG_FLOAT_WIDETAG
|
||||
.byte 24
|
||||
#else
|
||||
.byte 23
|
||||
#endif
|
||||
.byte UNDEFINED_FUN_ERROR
|
||||
.byte sc_DescriptorReg # eax in the Descriptor-reg SC
|
||||
ret
|
||||
.size GNAME(undefined_tramp), .-GNAME(undefined_tramp)
|
||||
|
|
|
|||
|
|
@ -18,4 +18,4 @@
|
|||
;;; for internal versions, especially for internal versions off the
|
||||
;;; main CVS branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
|
||||
|
||||
"0.7.1.32"
|
||||
"0.7.1.33"
|
||||
|
|
|
|||
Loading…
Reference in a new issue