Skip to content
Snippets Groups Projects
  1. Mar 28, 2007
  2. Mar 27, 2007
  3. Mar 26, 2007
  4. Mar 23, 2007
    • rtoy's avatar
      Better conversion of bignums to double-double-floats. Also fixes the · d61a8a8b
      rtoy authored
      silly bug that (float <neg bignum> 1w0) was returning a positive
      result instead of negative.
      
      o Rename DOUBLE-DOUBLE-FLOAT to DOUBLE-DOUBLE-FLOAT-FROM-BITS to match
        other functions and to make it separate from the same function in
        the KERNEL package.
      o Modify DOUBLE-DOUBLE-FLOAT-FROM-BITS to look at the bignum and
        extract out the pieces better.  Look for a pattern <53 bits> <zeroes>
        <53 bits> where <zeroes> is a set of consecutive zero bits.  We use
        the 2 53-bit sections to create the double-double-float.
      o Make DOUBLE-DOUBLE-FLOAT-FROM-BITS honor the sign.
      o Add BIGNUM-FLOAT-DIGITS to figure out how many bits of the bignum
        should be used to create the float.
      o Call BIGNUM-FLOAT-DIGITS from BIGNUM-TO-FLOAT instead of using
        FLOAT-FORMAT-DIGITS.
      d61a8a8b
  5. Mar 22, 2007
  6. Mar 21, 2007
  7. Mar 20, 2007
    • rtoy's avatar
      Was not getting the right instruction for the faulting floating-point · 9fde59c0
      rtoy authored
      exception.
      
      This was happening when the faulting FP instruction was in the delay
      slot of a branch.  The PC was incremented to the branch target, and
      hence had the wrong information.  The FPQ structure has the right
      information.
      
      code/sparc-svr4-vm.lisp:
      o Add FPQ structure so we can access the information about the
        faulting FP instruction.
      
      compiler/sparc/float.lisp:
      o Extract the correct information about the faulting FP instruction
        instead of from the PC.
      9fde59c0
    • rtoy's avatar
      Document tracing for FLET/LABELS in the docstring. · 07d8f3eb
      rtoy authored
      07d8f3eb
  8. Mar 05, 2007
    • rtoy's avatar
      Add support for dynamic-extent for ppc. · c17bd546
      rtoy authored
      Simple tests with rest args and some dynamic-extent closures indicates
      that this work.  Compiling CMUCL with dynamic-extent enabled appears
      to work as well.  I conclude that the implementation here is probably
      correct.
      
      (Yes, I know dynamic-extent is currently disabled, but let's make ppc
      complete.)
      
      compiler/ppc/alloc.lisp:
      o Implement the vops %DYNAMIC-EXTENT-START and %DYNAMIC-EXTENT-END.
      o Update the LIST-OR-LIST*, MAKE-CLOSURE, and FIXED-ALLOC vops to
        support dynamic-extent, by passing ALLOCATION and
        WITH-FIXED-ALLOCATION macros the extra :STACK-P arg.
      
      compiler/ppc/call.lisp:
      o Update LISTIFY-REST-ARGS vop to support dynamic-extent, by passing
        the ALLOCATION macro the extra :STACK-P arg.
      
      compiler/ppc/macros.lisp:
      o Update the ALLOCATION macro to support the :STACK-P arg.
      c17bd546
  9. Mar 03, 2007
    • rtoy's avatar
      compiler/ir2tran.lisp: · af09965a
      rtoy authored
      o Implement stack clearing stuff for ppc.
      
      compiler/ppc/call.lisp:
      o Implement stack clearing for xep-allocate-frame and allocate-frame,
        mostly cargo-culting the sparc version.
      af09965a
  10. Feb 21, 2007
  11. Feb 03, 2007
    • rtoy's avatar
      Fix bug in expt type derivation. · 99d4c4c8
      rtoy authored
      (defun f (x y)
         (declare (fixnum x y))
         (expt x y))
      
      caused an error because we weren't handling member types correctly.
      99d4c4c8
  12. Feb 01, 2007
  13. Jan 26, 2007
  14. Jan 23, 2007
  15. Jan 20, 2007
  16. Jan 18, 2007
  17. Jan 16, 2007
  18. Jan 13, 2007
  19. Jan 11, 2007
  20. Jan 02, 2007
    • rtoy's avatar
      Update · 69d8f86a
      rtoy authored
      69d8f86a
  21. Jan 01, 2007
  22. Dec 24, 2006
  23. Dec 22, 2006
    • rtoy's avatar
      Fix issue reported by Albert Reiner, cmucl-help, 2006/10/20, and fix · 7b9a9f98
      rtoy authored
      another issue with uninitialized &aux variables.
      
        (defstruct (foobar
                     (:constructor make-foobar
                                   (xxx
                                    &key (aaa nil) (bbb nil)
                                    &aux
                                    (foobar-data xxx)
                                    (aaa (or aaa
                                             (getf foobar-data :aaa)
                                             1))
                                    (bbb (or bbb
                                             (getf foobar-data :bbb)
                                             (1+ aaa))))))
          (aaa (required-argument) :type fixnum)
          (bbb (required-argument) :type fixnum))
      
        (make-foobar nil) -> #<foobar :aaa 1 :bbb 2>
      
      But CMUCL gives type errors.
      
      To fix Albert's issue, modify CREATE-BOA-CONSTRUCTOR to keep track of
      the &aux vars separately from the other arglist vars.  Adjust
      CREATE-VECTOR-CONSTRUCTOR, CREATE-LIST-CONSTRUCTOR,
      CREATE-STRUCTURE-CONSTRUCTOR, and CREATE-FIN-CONSTRUCTOR to take an
      extra arg for the &aux vars.  For CREATE-STRUCTURE-CONSTRUCTOR, we
      only put declarations for the other arglist vars.  To make sure we
      store the right kinds of objects into the slots, we also wrap (the
      <type> init) for each initial value.
      
      Also CLHS 3.4.6 has an example of a boa constructor using an aux
      variable without an initializer.  CMUCL was not handling that right.
      Modify CREATE-BOA-CONSTRUCTOR to change the initializer to use (or
      <aux> slot-default-value) to get the correct default value into the
      slot if the aux variable doesn't.
      7b9a9f98
  24. Dec 21, 2006
    • rtoy's avatar
      Fix the bug reported by Madhu on cmucl-imp, 2006/12/16: · dd7132b7
      rtoy authored
      (defvar $f (open "/etc/passwd" :mapped t :class 'stream:file-simple-stream))
      (file-position $f)
      
      returns a negative value.
      
      I think this happens because of some possible confusion between
      buffer-ptr and buf-len in a mapped file-simple-stream.  I changed the
      code so that buffer-ptr is initialized to 0, and the various routines
      that check for eof compare buffpos against buf-len, instead of
      buffer-ptr.  I think this also means buffer-ptr is not used in mapped
      file-simple-streams.
      
      Add a couple of file-position tests too.
      dd7132b7
Loading