includes the name of the function on x86-64.
* bug fix: forward references to classes in fasls can now be loaded.
(lp#746132)
+ * bug fix: don't warn on a interpreted->compiled function redefinition
+ from the same location. (patch by Douglas Katzman, lp#1042405)
changes in sbcl-1.1.12 relative to sbcl-1.1.11:
* enhancement: Add sb-bsd-sockets:socket-shutdown, for calling
(let ((new (function-redefinition-warning-new-function warning))
(source-location (redefinition-warning-new-location warning)))
(or
- ;; Compiled->Interpreted is interesting.
+ ;; compiled->interpreted is interesting.
(and (typep old 'compiled-function)
(typep new '(not compiled-function)))
- ;; FIN->Regular is interesting.
- (and (typep old 'funcallable-instance)
+ ;; fin->regular is interesting except for interpreted->compiled.
+ (and (typep old '(and funcallable-instance
+ #!+sb-eval (not sb!eval:interpreted-function)))
(typep new '(not funcallable-instance)))
- ;; Different file or unknown location is interesting.
+ ;; different file or unknown location is interesting.
(let* ((old-namestring (function-file-namestring old))
(new-namestring
(or (function-file-namestring new)
(declare (enable-package-locks cl:ed))
(cl:ed)))
42)))))
+
+(defvar *file* #p"full-eval-temp.lisp")
+(with-test (:name (:full-eval :redefinition-warnings))
+ (with-open-file (stream *file* :direction :output :if-exists :supersede)
+ (write '(defun function-for-redefinition () nil) :stream stream))
+ (handler-bind ((warning #'error))
+ (let ((sb-ext:*evaluator-mode* :interpret))
+ (load *file*)
+ (load *file*))
+ (let ((sb-ext:*evaluator-mode* :compile))
+ (load *file*))))
+(delete-file *file*)