[Openmcl-cvs-notifications] r15336 - /trunk/source/compiler/nx0.lisp

gb at clozure.com gb at clozure.com
Thu Apr 19 18:14:58 CDT 2012


Author: gb
Date: Thu Apr 19 18:14:58 2012
New Revision: 15336

Log:
Run alphatizers at SAFETY 3.

Set ticket:638 et al.

Note that ticket:285 hasn't really depended on "inlining" FUNCALL or
APPLY in order to correctly handle next-method context in some time
(though the generated code is much better if calls to these functions
are inlined.)  Ticket:295 describes something that's a bit questionable
anyways (recognizing non-toplevel DEFUNs by processing calls to CCL::%DEFUN=
),
and that (as before) depends on whether or not CCL::%DEFUN is inline.

In any case: I've spent a long time looking for things that're compiled
unsafely with SAFETY 3 in effect and haven't seen any, and it's much more
practical to actually run code at high safety than it has been (so anything
that I missed should show up ...)

Modified:
    trunk/source/compiler/nx0.lisp

Modified: trunk/source/compiler/nx0.lisp
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/source/compiler/nx0.lisp (original)
+++ trunk/source/compiler/nx0.lisp Thu Apr 19 18:14:58 2012
@@ -1806,13 +1806,9 @@
     (if (symbolp sym)
       (let* ((*nx-sfname* sym) special)
         (if (and (setq special (gethash sym *nx1-alphatizers*))
-                 (or (not (functionp (fboundp sym)))
-                     (memq sym '(apply funcall ;; see bug #285
-                                 %defun        ;; see bug #295
-                                 ))
-                     (< (safety-optimize-quantity env) 3))
-                 ;;(not (nx-lexical-finfo sym env))
-                 (not (nx-declared-notinline-p sym *nx-lexical-environment=
*)))
+                 (not (nx-lexical-finfo sym env))
+                 (or (special-operator-p sym)
+                     (not (nx-declared-notinline-p sym env))))
           (funcall special context form env) ; pass environment arg ...
           (progn            =

             (nx1-typed-call context sym args))))



More information about the Openmcl-cvs-notifications mailing list