Ignore:
Timestamp:
Oct 7, 2015, 4:33:17 AM (6 years ago)
Author:
gb
Message:

handle LOAD-TIME-VALUE differently.
In the COMPILE (EVAL) case, wrap the literal (immediate) in new acode.
make ACODE-CONSTANT-P recognize the COMPILE-FILE case, and return NIl,NIL
Fixes ticket:1317 in the trunk

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/compiler/nx2.lisp

    r16111 r16611  
    362362
    363363
     364
    364365(defun acode-constant-p (form)
    365366  ;; This returns (values constant-value constantp); some code
     
    371372          ((eql op (%nx1-operator t))
    372373           (values t t))
    373           ((or (eql op (%nx1-operator fixnum))
    374                (eql op (%nx1-operator immediate)))
     374          ((eql op (%nx1-operator fixnum))
    375375           (values (car (acode-operands form)) t))
     376          ((eql op (%nx1-operator immediate))
     377           ;; recognize the acode produced for LOAD-TIME-VALUE by
     378           ;; COMPILE-FILE as something non-constant.
     379           (if (and
     380                (consp (car (acode-operands form)))
     381                *load-time-eval-token*
     382                (eq (car (car (acode-operands form))) *load-time-eval-token*))
     383             (values nil nil)
     384                             
     385                   
     386             (values (car (acode-operands form)) t)))
    376387          (t (values nil nil)))))
    377388
Note: See TracChangeset for help on using the changeset viewer.