Changeset 13195


Ignore:
Timestamp:
Nov 12, 2009, 7:11:32 PM (10 years ago)
Author:
gz
Message:

Add variable *strict-checking* to control checking for e.g. non-portable though valid code. For now it only controls one case - if true, defconstant redefinition will require the new value to be eql to the old one.

Location:
trunk/source
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/compiler/nx-basic.lisp

    r13067 r13195  
    537537       ,@body))))
    538538
     539(defvar *strict-checking* nil
     540  "If true, issues warnings/errors in more cases, e.g. for valid but non-portable code")
     541
    539542
    540543;; Should be true if compiler warnings UI doesn't use source locations, false if it does.
  • trunk/source/level-1/l1-utils.lisp

    r13067 r13195  
    423423      (let* ((old-value (%sym-global-value var)))
    424424        (unless (eq old-value (%unbound-marker-8))
    425           (if (similar-as-constants-p (%sym-global-value var) value)
     425          (if (or (eql old-value value)
     426                  (and (not *strict-checking*) (similar-as-constants-p old-value value)))
    426427            (return)
    427428            ;; This should really be a cell error, allow options other than
Note: See TracChangeset for help on using the changeset viewer.