Skip to content

Commit b3ab0c4

Browse files
authored
Disable SBCL's type checking (#1434)
* Disable SBCL's type checking as it's already done in Coalton. * Fix a test checking the generated code.
1 parent b5e0c76 commit b3ab0c4

File tree

3 files changed

+10
-7
lines changed

3 files changed

+10
-7
lines changed

src/codegen/codegen-expression.lisp

+5-4
Original file line numberDiff line numberDiff line change
@@ -107,10 +107,11 @@
107107
(values ,(car (last (node-lisp-form expr)))))
108108
inner)))
109109

110-
(if settings:*emit-type-annotations*
111-
`(the (values ,(tc:lisp-type (node-type expr) env) &optional)
112-
,inner)
113-
inner)))
110+
`(locally (declare #+sbcl (optimize (sb-c::type-check 1)))
111+
,(if settings:*emit-type-annotations*
112+
`(the (values ,(tc:lisp-type (node-type expr) env) &optional)
113+
,inner)
114+
inner))))
114115

115116
(:method ((expr node-while) env)
116117
(declare (type tc:environment env))

src/codegen/program.lisp

+4-2
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,8 @@ Example:
106106
(compile-scc bindings env))))
107107
(lisp-forms (mapcar (lambda (lisp-form)
108108
(cons (car (source:location-span (source:location lisp-form)))
109-
(parser:toplevel-lisp-form-body lisp-form)))
109+
`((locally (declare #+sbcl (optimize (sb-c::type-check 1)))
110+
,@(parser:toplevel-lisp-form-body lisp-form)))))
110111
lisp-forms)))
111112
(mapcan #'cdr (merge-forms bindings lisp-forms))))
112113

@@ -180,7 +181,8 @@ Example:
180181
(list
181182
`(declaim (sb-ext:start-block ,@definition-names))))
182183

183-
,@(compile-definitions sccs definitions lisp-forms offsets env)
184+
(locally (declare #+sbcl (optimize (sb-c::type-check 0)))
185+
,@(compile-definitions sccs definitions lisp-forms offsets env))
184186

185187
#+sbcl
186188
,@(when (eq sb-ext:*block-compile-default* :specified)

tests/entry-tests.lisp

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
(let* ((file (source:make-source-file (compile-test-file)))
1515
(source-form-types (mapcar #'first
1616
(source-forms (entry:codegen file)))))
17-
(dolist (expect-type '(defpackage in-package defun eval-when let setf))
17+
(dolist (expect-type '(defpackage in-package eval-when locally))
1818
(is (position expect-type source-form-types)
1919
"Missing expected ~A form in generated code" expect-type))))
2020

0 commit comments

Comments
 (0)