Ignore:
Timestamp:
Feb 15, 2013, 7:24:29 AM (7 years ago)
Author:
gb
Message:

Propagate recent trunk changes.

Location:
release/1.9/source/level-1
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • release/1.9/source/level-1

  • release/1.9/source/level-1/l1-error-system.lisp

    r15311 r15706  
    190190  ()
    191191  (:report (lambda (c s) (declare (ignore c)) (format s "Attempt to heap-allocate a lisp object when heap allocation is disabled."))))
    192  
     192
     193(define-condition vector-size-limitation (storage-condition)
     194  ((subtag :initarg :subtag)
     195   (element-count :initarg :element-count))
     196  (:report (lambda (c s)
     197             (let* ((subtag (slot-value c 'subtag))
     198                    (element-count (slot-value c 'element-count))
     199                    (typename (if (eql subtag target::subtag-bignum)
     200                                'bignum
     201                                (if (eql subtag target::subtag-simple-vector)
     202                                  'simple-vector
     203                                  (if (eql subtag target::subtag-simple-base-string)
     204                                    'string
     205                                    (if (> subtag target::subtag-simple-vector)
     206                                      `(simple-array ,(element-subtype-type subtag) (*))
     207                                      `(ccl::uvector ,subtag))))))
     208                    (qualifier (if (eql subtag target::subtag-bignum)
     209                                 "32-bit "
     210                                 "")))
     211               (format s "Cannot allocate a ~s with ~d elements.~&Objects of type ~s can can have at most ~&~d ~aelements in this implementation."
     212                       typename
     213                       element-count
     214                       (copy-tree typename)
     215                       (1- target::array-total-size-limit)
     216                       qualifier)))))
    193217
    194218(define-condition type-error (error)
Note: See TracChangeset for help on using the changeset viewer.