unparsing of directory pathnames as files. Analogously,
SB-EXT:PARSE-NATIVE-NAMESTRING takes an AS-DIRECTORY, forcing a
filename to parse into a directory pathname.
+ * enhancement: implicit generic function creation now signals a
+ specific style-warning IMPLICIT-GENERIC-FUNCTION-WARNING, which
+ users can bind handlers for and muffle around calls to LOAD.
* enhancement: RUN-PROGRAM allows unicode arguments and environments
to be used (using the default stream external format), and allows
non-simple strings to be used. (thanks to Harald Hanche-Olsen)
"DISABLE-PACKAGE-LOCKS"
"ENABLE-PACKAGE-LOCKS"
- ;; error signalled when attempt to load an invalid fasl
- ;; is made, so that user code can try to recompile, etc.
+ ;; Custom conditions & condition accessors for users to handle.
+ "CODE-DELETION-NOTE"
+ "COMPILER-NOTE"
+ "IMPLICIT-GENERIC-FUNCTION-NAME"
+ "IMPLICIT-GENERIC-FUNCTION-WARNING"
"INVALID-FASL"
- ;; conditions that can be handled to reduce compiler
- ;; verbosity
- "CODE-DELETION-NOTE" "COMPILER-NOTE"
-
;; and a mechanism for controlling same at compile time
"MUFFLE-CONDITIONS" "UNMUFFLE-CONDITIONS"
(format-args-mismatch simple-style-warning)
())
+(define-condition implicit-generic-function-warning (style-warning)
+ ((name :initarg :name :reader implicit-generic-function-name))
+ (:report
+ (lambda (condition stream)
+ (format stream "~@<Implicitly creating new generic function ~S.~:@>"
+ (implicit-generic-function-name condition)))))
+
(define-condition extension-failure (reference-condition simple-error)
())
specializers lambda-list &rest other-initargs)
(unless (and (fboundp generic-function-name)
(typep (fdefinition generic-function-name) 'generic-function))
- (style-warn "implicitly creating new generic function ~S"
- generic-function-name))
+ (warn 'implicit-generic-function-warning :name generic-function-name))
(let* ((existing-gf (find-generic-function generic-function-name nil))
(generic-function
(if existing-gf
;;; checkins which aren't released. (And occasionally for internal
;;; versions, especially for internal versions off the main CVS
;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"1.0.12.37"
+"1.0.12.38"