Changeset 8394
- Timestamp:
- Feb 2, 2008, 7:13:49 AM (17 years ago)
- Location:
- branches/source-tracking-0801/ccl
- Files:
-
- 6 edited
-
compiler/lambda-list.lisp (modified) (1 diff)
-
compiler/nx.lisp (modified) (1 diff)
-
compiler/nx0.lisp (modified) (1 diff)
-
level-1/l1-clos-boot.lisp (modified) (3 diffs)
-
level-1/l1-clos.lisp (modified) (2 diffs)
-
lib/nfcomp.lisp (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
branches/source-tracking-0801/ccl/compiler/lambda-list.lisp
r8393 r8394 20 20 21 21 ;;; Compiler functions needed elsewhere 22 23 ;;; mb: HACK HACK HACKITY HACK24 (defconstant $lfbits-info-bit 23)25 22 26 23 (defun %lfun-info-index (fn) -
branches/source-tracking-0801/ccl/compiler/nx.lisp
r8390 r8394 203 203 (provide 'nx) 204 204 205 ;;; mb: HACK HACK HACKITY HACK206 207 (defun %compile-time-eval (form env)208 (let* ((*target-backend* *host-backend*))209 ;; The HANDLER-BIND here is supposed to note WARNINGs that're210 ;; signaled during (eval-when (:compile-toplevel) processing; this211 ;; in turn is supposed to satisfy a pedantic interpretation of the212 ;; spec's requirement that COMPILE-FILE's second and third return213 ;; values reflect (all) conditions "detected by the compiler."214 ;; (It's kind of sad that CL language design is influenced so215 ;; strongly by the views of pedants these days.)216 (handler-bind ((warning (lambda (c)217 (setq *fasl-warnings-signalled-p* t)218 (unless (typep c 'style-warning)219 (setq *fasl-non-style-warnings-signalled-p* t))220 (signal c))))221 (funcall (compile-named-function222 `(lambda () ,form)223 :env env224 :policy *compile-time-evaluation-policy*)))))225 226 205 (defun define-compile-time-macro (name lambda-expression env) 227 206 (let ((definition-env (definition-environment env))) -
branches/source-tracking-0801/ccl/compiler/nx0.lisp
r8390 r8394 1594 1594 1595 1595 (defun record-source-location (stream) 1596 (if (and *compiler-record-source* *fcomp-stream*) 1597 (if (eq *fcomp-stream* stream) 1598 t 1599 (progn 1600 ;; if we don't set *compiler-record-source* to NIL here all subsequent calls to read in 1601 ;; the debugger will fail. that would be bad. 1602 (setf *compiler-record-source* nil) 1603 (error "Attempting to record source on stream ~S but *fcomp-stream* is ~S." 1604 stream *fcomp-stream*))) 1605 nil)) 1596 (and *compiler-record-source* 1597 *fcomp-stream* 1598 (eq *fcomp-stream* stream))) 1606 1599 1607 1600 (defstruct (source-note (:constructor %make-source-note)) -
branches/source-tracking-0801/ccl/level-1/l1-clos-boot.lisp
r7945 r8394 835 835 (%add-standard-method-to-standard-gf gf method)) 836 836 837 ;; Redefined in l1-clos.lisp 838 (defun maybe-remove-make-instance-optimization (gfn method) 839 (declare (ignore gfn method)) 840 nil) 841 837 842 (defun %add-standard-method-to-standard-gf (gfn method) 838 843 (when (%method-gf method) … … 844 849 (qualifiers (%method-qualifiers method))) 845 850 (remove-obsoleted-combined-methods method dt specializers) 851 (maybe-remove-make-instance-optimization gfn method) 846 852 (apply #'invalidate-initargs-vector-for-gf gfn specializers) 847 853 (dolist (m methods) … … 962 968 (when dt 963 969 (if specializers 964 (let* ((argnum (%gf-dispatch-table-argnum dt)) 965 (class (nth argnum specializers)) 966 (size (%gf-dispatch-table-size dt)) 967 (index 0)) 968 (clear-accessor-method-offsets (%gf-dispatch-table-gf dt) method) 969 (if (typep class 'eql-specializer) 970 (setq class (class-of (eql-specializer-object class)))) 971 (while (%i< index size) 972 (let* ((wrapper (%gf-dispatch-table-ref dt index)) 973 hash-index-0? 974 (cpl (and wrapper 975 (not (setq hash-index-0? 976 (eql 0 (%wrapper-hash-index wrapper)))) 977 (%inited-class-cpl 978 (require-type (%wrapper-class wrapper) 'class))))) 979 (when (or hash-index-0? (and cpl (cpl-index class cpl))) 980 (setf (%gf-dispatch-table-ref dt index) *obsolete-wrapper* 981 (%gf-dispatch-table-ref dt (%i+ index 1)) *gf-dispatch-bug*)) 982 (setq index (%i+ index 2))))) 970 (let* ((argnum (%gf-dispatch-table-argnum dt))) 971 (when (>= argnum 0) 972 (let ((class (nth argnum specializers)) 973 (size (%gf-dispatch-table-size dt)) 974 (index 0)) 975 (clear-accessor-method-offsets (%gf-dispatch-table-gf dt) method) 976 (if (typep class 'eql-specializer) 977 (setq class (class-of (eql-specializer-object class)))) 978 (while (%i< index size) 979 (let* ((wrapper (%gf-dispatch-table-ref dt index)) 980 hash-index-0? 981 (cpl (and wrapper 982 (not (setq hash-index-0? 983 (eql 0 (%wrapper-hash-index wrapper)))) 984 (%inited-class-cpl 985 (require-type (%wrapper-class wrapper) 'class))))) 986 (when (or hash-index-0? (and cpl (cpl-index class cpl))) 987 (setf (%gf-dispatch-table-ref dt index) *obsolete-wrapper* 988 (%gf-dispatch-table-ref dt (%i+ index 1)) *gf-dispatch-bug*)) 989 (setq index (%i+ index 2))))))) 983 990 (setf (%gf-dispatch-table-ref dt 1) nil))))) ; clear 0-arg gf cm 984 991 -
branches/source-tracking-0801/ccl/level-1/l1-clos.lisp
r8056 r8394 1910 1910 (when (every (lambda (pair) (typep (cdr pair) 'fixnum)) alist) 1911 1911 (clear-gf-dispatch-table dt) 1912 (setf (%gf-dispatch-table-argnum dt) -1) ;mark as non-standard 1912 1913 (cond ((null (cdr alist)) 1913 1914 ;; Method is only applicable to a single class. … … 2244 2245 %find-classes%)) 2245 2246 2247 ;; Redefined from bootstrapping verison in l1-clos-boot.lisp 2248 ;; Remove the make-instance optimization if the user is adding 2249 ;; a method on initialize-instance, allocate-instance, or shared-initialize 2250 (defun maybe-remove-make-instance-optimization (gfn method) 2251 (when (or (eq gfn #'allocate-instance) 2252 (eq gfn #'initialize-instance) 2253 (eq gfn #'shared-initialize)) 2254 (let* ((specializer (car (method-specializers method))) 2255 (cell (and (typep specializer 'class) 2256 (gethash (class-name specializer) %find-classes%)))) 2257 (when cell 2258 (setf (class-cell-instantiate cell) '%make-instance))))) 2259 2246 2260 ;;; Iterate over all known GFs; try to optimize their dcode in cases 2247 2261 ;;; involving reader methods. -
branches/source-tracking-0801/ccl/lib/nfcomp.lisp
r8390 r8394 376 376 (error 'file-error :pathname file :error-type "File ~S not found")) 377 377 (namestring path)) 378 379 ;;; mb: HACK HACK HACKITY HACK380 (defun read-internal (stream eof-error-p eof-value recursive-p)381 (setq stream (input-stream-arg stream))382 (if recursive-p383 (%read-form stream 0 nil)384 (let ((%read-objects% nil) (%keep-whitespace% nil))385 (%read-form stream (if eof-error-p 0) eof-value))))386 378 387 379 ;;; orig-file is back-translated when from fcomp-file
Note:
See TracChangeset
for help on using the changeset viewer.
