Spurious redefinition warning when INTERPRETED-FUNCTION turns to compiled
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
SBCL |
Fix Released
|
Low
|
Unassigned |
Bug Description
If a bunch of source files are loaded with sb-ext:
Proposed fix:
diff --git a/src/code/
index ab6e942..7391bec 100644
--- a/src/code/
+++ b/src/code/
@@ -1425,7 +1425,9 @@ handled by any other handler, it will be muffled.")
(and (typep old 'compiled-function)
(typep new '(not compiled-
;; FIN->Regular is interesting.
- (and (typep old 'funcallable-
+ ;; except that interpreted functions becoming compiled is not interesting.
+ (and (typep old '(and funcallable-
+ #!+sb-eval (not sb!eval:
(typep new '(not funcallable-
;; Different file or unknown location is interesting.
(let* ((old-namestring (function-
Changed in sbcl: | |
status: | New → Fix Committed |
importance: | Undecided → Low |
Changed in sbcl: | |
status: | Fix Committed → Fix Released |
Additionally one of our developers discovered that the old-namestring needs to be truenameized if source paths have symlinks.
- (not (string= old-namestring new-namestring) ))))))) ) ))))))) )
+ (not (string= (namestring (truename old-namestring)) new-namestring)