Skip to content
Snippets Groups Projects
  1. Jul 05, 2005
  2. Jul 01, 2005
  3. Jun 30, 2005
  4. Jun 26, 2005
  5. Jun 23, 2005
  6. Jun 22, 2005
  7. Jun 20, 2005
    • rtoy's avatar
      * code/foreign.lisp (load-object-file): Take the truename of FILE · e76442e9
      rtoy authored
      	in case we're given a logical pathname.
      e76442e9
    • rtoy's avatar
      From Gerd, cmucl-imp, 2005-06-18: · e5d1aeaf
      rtoy authored
      (progn
        (defclass foo92b (foo92a) ((s :initarg :s)))
        (defclass foo92a () ())
        (let ((x (make-instance 'foo92b :s 5)) (update-counter 0))
          (defclass foo92b (foo92a) ((s) (s1) (s2))) ; still subclass of foo92a
          (slot-value x 's)
          (defmethod update-instance-for-redefined-class ((object foo92b) added-slots discarded-slots property-list &rest initargs)
            (incf update-counter))
          (make-instances-obsolete 'foo92a)
          (slot-value x 's)
          update-counter))
      Expected: 1
      Got:      0
      
      [Taken from clisp's clos.tst]
      
      
      	* src/pcl/std-class.lisp (force-cache-flushes): Use new state
      	:obsolete if some superclass has been obsoleted.
      
      	* src/pcl/cache.lisp (check-wrapper-validity): If state is
      	:invalid, recurse because force-cache-flushes can change the
      	state.
      e5d1aeaf
  8. Jun 19, 2005
  9. Jun 17, 2005
  10. Jun 15, 2005
  11. Jun 14, 2005
    • rtoy's avatar
      Some fixes for floating-point printing bugs reported by Bruno Haible, · 1031c478
      rtoy authored
      cmucl-imp, on or around 2005/06/13.
      
      Some useful tests:
      
      (format nil "~9,3,2,0,'%G" 0.0314159)
      Expected: "0.314e-01"
      
      
      (format nil "~9,3,2,-2,'%@e" 3.14159)
      Expected: "+.003E+03"
      
      
      (format nil "~6,2,1,'*F" 3.14159)
      Expected: " 31.42"
      
      (format nil "~9,0,6f" 3.14159)
      Expected: " 3141590."
      
      (let (x)
       (dotimes (k 13 x)
        (setq x (cons (format nil "~%Scale factor ~2D: |~13,6,2,VE|"
                (- k 5) (- k 5) 3.14159) x))))
      
      ("
      Scale factor  7: | 3141590.e-06|"
       "
      Scale factor  6: | 314159.0e-05|"
       "
      Scale factor  5: | 31415.90e-04|"
       "
      Scale factor  4: | 3141.590e-03|"
       "
      Scale factor  3: | 314.1590e-02|"
       "
      Scale factor  2: | 31.41590e-01|"
       "
      Scale factor  1: | 3.141590e+00|"
       "
      Scale factor  0: | 0.314159e+01|"
       "
      Scale factor -1: | 0.031416e+02|"
       "
      Scale factor -2: | 0.003142e+03|"
       "
      Scale factor -3: | 0.000314e+04|"
       "
      Scale factor -4: | 0.000031e+05|"
       "
      Scale factor -5: | 0.000003e+06|")
      
      
      code/format.lisp:
      o If the scale factor (k) is negative, the min number of digits to
        print is 1, not (- 1 k) because that prints too many if the field is
        too short.  Setting fmin to fdig is ok if k >= 0.  (See scale factor
        test above.)
      o If flonum-to-string returns with a trailing decimal point, we don't
        need to decrement spaceleft because that deletes a white-space
        character.  (See first scale factor 7 test above.)
      
      code/print.lisp:
      o We need to adjust the number of digits to be printed to include the
        scale factor.  See tests above.
      1031c478
    • rtoy's avatar
      From Gerd, cmucl-imp, 2005/06/11: · c231fb42
      rtoy authored
          This week's fix is for something Lynn Quam reported 2004-10-18.
      
          (defclass a (b) ())
      
          (compile nil
      	     (lambda ()
      	       (defclass b ()
      		 ((x :reader b-x)))
      	       (defmethod f ((obj b))
      		 (b-x obj))))
            => error during macro expansion
      
          The fix is:
      
      	    * src/pcl/method-slot-access-optimization.lisp (check-inline-accessor-call-p):
      	    Return nil for forward-referenced classes.
      
      	    * src/pcl/info.lisp (decide-slot-type): Return nil for
      	    forward-referenced classes.
      c231fb42
  12. Jun 13, 2005
    • rtoy's avatar
      o Definition of DEF-CALLBACK didn't include &body. (Noted by Luis · 1cefe89a
      rtoy authored
        Oliveira, cmucl-help.)
      
      o Use CALLBACK-FUNCALL in the example.
      1cefe89a
    • rtoy's avatar
      Save xref information to fasls. · 624c3dc2
      rtoy authored
      This is done by faking it.  The file being compiled is compiled as
      usual, but we append fake forms to the file as if they came from the
      file.  These fake forms insert the necessary information into the xref
      databases when the fasl is loaded.
      
      To support this feature, we also updated COMPILE-FILE to recognize the
      :xref keyword arg.  Set this to non-NIL to enable computing and saving
      xref information.
      
      code/exports.lisp:
      o Update XREF exports
      
      compiler/fndb.lisp:
      o Update with new definition of COMPILE-FILE.
      
      compiler/main.lisp:
      o Append fake forms to the file being compiled to save xref
        information to the fasl.  This clears out any xref info we might
        have for the file, and inserts the necessary xref information into
        the database.
      o Add :XREF keyword arg to COMPILE-FILE.  Default value of :XREF is
        C::*RECORD-XREF-INFO*.
      
      compiler/xref.lisp:
      o Add function to invalidate xref info for a given namestring, so we
        can reset the info when a fasl with xref info is loaded.
      o Add a function to find all xref information for a given pathname.
        Used for saving xref info to a fasl.
      624c3dc2
  13. Jun 09, 2005
  14. Jun 07, 2005
  15. Jun 06, 2005
    • rtoy's avatar
      Fix CALL-METHOD used outside of emf from. · 0634baa7
      rtoy authored
      Fix from Gerd, cmucl-imp, 2005-06-04 for the following test:
      
          (define-method-combination mc ()
            ((primary () :required t))
            `(restart-case (call-method ,(first primary))
      	 ()))
      
          (defgeneric foo ()
            (:method-combination mc)
            (:method () nil))
      
          (foo)
      
          It turns out this is caused by RESTART-CASE macroexpanding its case
          expression, which it does to see if it starts with ERROR or similar.
          An ANSI thing, if I remember correctly.
      0634baa7
    • emarsden's avatar
      6f8b2114
  16. Jun 01, 2005
  17. May 31, 2005
    • rtoy's avatar
      Fix for compute-slots, from Gerd, cmucl-imp, 2005-05-28. The test · f3bad3ed
      rtoy authored
      case reported by Bruno is:
      
      #+CMU (use-package "PCL")
      (defclass b (a) ())
      (defmethod compute-slots ((class (eql (find-class 'b))))
        (append (call-next-method)
                (list (make-instance 'standard-effective-slot-definition
                        :name 'y
                        :allocation :instance))))
      (defclass a () ((x :allocation :class)))
      ;; A should now have a shared slot, X, and a local slot, Y.
      (mapcar #'slot-definition-location (class-slots (find-class 'b)))
      
      Instead of an error about no matching method, we get
      
      ((X . PCL::..SLOT-UNBOUND..) 0)
      f3bad3ed
  18. May 27, 2005
  19. May 26, 2005
  20. May 25, 2005
Loading