clasp-developers / clasp

clasp Common Lisp environment
https://clasp-developers.github.io/
2.57k stars 145 forks source link

ansi-test regression: FUNCTION.14 #1034

Closed kpoeck closed 4 years ago

kpoeck commented 4 years ago
(FLET ((%F ()
           NIL))
    (DECLARE (OPTIMIZE (SAFETY 3)))
    (LET ((F #'%F))
      (DECLARE (TYPE (FUNCTION NIL NULL) F))
      (FUNCALL F)))
; caught STYLE-WARNING:
;   STYLE-WARNING during compiler-macro-expansion:
;     Undefined type (FUNCTION (&OPTIONAL &REST NIL)
;                     (VALUES (MEMBER NIL) &OPTIONAL &REST T))
; 
; compilation unit finished
;   caught 1 STYLE-WARNING condition

Condition of type: SIMPLE-ERROR
(FUNCTION (&OPTIONAL &REST NIL) (VALUES (MEMBER NIL) &OPTIONAL &REST T)) is not a valid type specifier.
Available restarts:
(use :r1 to invoke restart 1, etc.)

1. (RESTART-TOPLEVEL) Go back to Top-Level REPL.
(CORE::ERROR-TYPE-SPECIFIER (FUNCTION (&OPTIONAL &REST NIL) (VALUES (MEMBER NIL) &OPTIONAL &REST T)))
COMMON-LISP-USER>> 
kpoeck commented 4 years ago
COMMON-LISP-USER>> (clasp-debug:print-backtrace)

   4: (CORE::ERROR-TYPE-SPECIFIER (FUNCTION (&OPTIONAL &REST NIL) (VALUES (MEMBER NIL) &OPTIONAL &REST T)))
   5: (TYPEP #<FUNCTION (FLET %F)> (FUNCTION (&OPTIONAL &REST NIL) (VALUES (MEMBER NIL) &OPTIONAL &REST T)))
   6: CORE:REPL
   7: ((METHOD CLASP-CLEAVIR::CCLASP-EVAL-WITH-ENV (T T)) (FLET ((%F NIL NIL)) (DECLARE (OPTIMIZE (SAFETY 3))) (LET ((F #'%F)) (DECLARE (TYPE (FUNCTION NIL NULL) F)) (FUNCALL F))) NIL)
  16: ((LABELS CLASP-CLEAVIR::DEFAULT) (FLET ((%F NIL NIL)) (DECLARE (OPTIMIZE (SAFETY 3))) (LET ((F #'%F)) (DECLARE (TYPE (FUNCTION NIL NULL) F)) (FUNCALL F))) NIL)
  17: (CLASP-CLEAVIR::SIMPLE-EVAL (FLET ((%F NIL NIL)) (DECLARE (OPTIMIZE (SAFETY 3))) (LET ((F #'%F)) (DECLARE (TYPE (FUNCTION NIL NULL) F)) (FUNCALL F))) NIL #<STANDARD-GENERIC-FUNCTION CLASP-CLEAVIR::CCLASP-EVAL-WITH-ENV>)
  18: (CLASP-CLEAVIR::CCLASP-EVAL (FLET ((%F NIL NIL)) (DECLARE (OPTIMIZE (SAFETY 3))) (LET ((F #'%F)) (DECLARE (TYPE (FUNCTION NIL NULL) F)) (FUNCALL F))) NIL)
  19: (FLET CORE::REP)
  22: (CORE::TPL :NOPRINT NIL)
  31: _RUN-ALL/Users/karstenpoeck/lisp/compiler/clasp-karsten/src/lisp/kernel/lsp/epilogue-cclasp.lisp
COMMON-LISP-USER>> 
Bike commented 4 years ago

uugh. this is due to changes in cleavir type handling. we'll have to reduce complex function types to just function for discrimination purposes.