options
(lambda (lexenv-lambda default))
(cleanup (lexenv-cleanup default))
- (policy (lexenv-policy default))
- (interface-policy (lexenv-interface-policy default)))
+ (policy (lexenv-policy default)))
(macrolet ((frob (var slot)
`(let ((old (,slot default)))
(if ,var
(frob blocks lexenv-blocks)
(frob tags lexenv-tags)
(frob type-restrictions lexenv-type-restrictions)
- lambda cleanup policy interface-policy
+ lambda cleanup policy
(frob options lexenv-options))))
-
-;;; Return a POLICY that defaults any unsupplied optimize qualities in
-;;; the INTERFACE-POLICY with the corresponding ones from the POLICY.
-(defun make-interface-policy (lexenv)
- (declare (type lexenv lexenv))
- (let ((ipolicy (lexenv-interface-policy lexenv))
- (policy (lexenv-policy lexenv)))
- (let ((result policy))
- (dolist (quality '(speed safety space))
- (let ((iquality-entry (assoc quality ipolicy)))
- (when iquality-entry
- (push iquality-entry result))))
- result)))
\f
;;;; flow/DFO/component hackery
(incf n)))
(let* ((tlf (source-path-tlf-number path))
- (file (find-file-info tlf *source-info*)))
+ (file-info (source-info-file-info *source-info*)))
(make-compiler-error-context
:enclosing-source (short)
:source (full)
:original-source (stringify-form form)
:context src-context
- :file-name (file-info-name file)
+ :file-name (file-info-name file-info)
:file-position
(multiple-value-bind (ignore pos)
(find-source-root tlf *source-info*)
(defun compiler-note (format-string &rest format-args)
(unless (if *compiler-error-context*
(policy *compiler-error-context* (= inhibit-warnings 3))
- (policy nil (= inhibit-warnings 3)))
+ (policy *lexenv* (= inhibit-warnings 3)))
(incf *compiler-note-count*)
(print-compiler-message (format nil "note: ~A" format-string)
format-args))
;;; the compiler, hence the BOUNDP check.
(defun note-undefined-reference (name kind)
(unless (and
- ;; (POLICY NIL ..) isn't well-defined except in IR1
- ;; conversion. This BOUNDP test seems to be a test for
- ;; whether IR1 conversion is going on.
+ ;; Check for boundness so we don't blow up if we're called
+ ;; when IR1 conversion isn't going on.
(boundp '*lexenv*)
;; FIXME: I'm pretty sure the INHIBIT-WARNINGS test below
;; isn't a good idea; we should have INHIBIT-WARNINGS
;; sure what the BOUNDP '*LEXENV* test above is for; it's
;; likely a good idea, but it probably deserves an
;; explanatory comment.
- (policy nil (= inhibit-warnings 3)))
+ (policy *lexenv* (= inhibit-warnings 3)))
(let* ((found (dolist (warning *undefined-warnings* nil)
(when (and (equal (undefined-warning-name warning) name)
(eq (undefined-warning-kind warning) kind))
(defun %event (info node)
(incf (event-info-count info))
(when (and (>= (event-info-level info) *event-note-threshold*)
- (if node
- (policy node (= inhibit-warnings 0))
- (policy nil (= inhibit-warnings 0))))
+ (policy (or node *lexenv*)
+ (= inhibit-warnings 0)))
(let ((*compiler-error-context* node))
(compiler-note (event-info-description info))))