Skip to content
Snippets Groups Projects
  1. Mar 27, 2007
  2. Mar 26, 2007
  3. 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
  4. Mar 22, 2007
  5. Mar 21, 2007
  6. 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
  7. 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
  8. 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
  9. Feb 21, 2007
  10. 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
  11. Feb 01, 2007
  12. Jan 26, 2007
  13. Jan 23, 2007
  14. Jan 20, 2007
  15. Jan 18, 2007
  16. Jan 16, 2007
  17. Jan 13, 2007
  18. Jan 11, 2007
  19. Jan 02, 2007
    • rtoy's avatar
      Update · 69d8f86a
      rtoy authored
      69d8f86a
  20. Jan 01, 2007
  21. Dec 24, 2006
  22. 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
  23. 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
  24. Dec 19, 2006
    • cshapiro's avatar
      When attempting to macro expand a symbol that denotes a local · d2dcf0fa
      cshapiro authored
      definition, if the symbol is symbol macro, return the expansion.
      Otherwise, if the symbol is a local definition but not a symbol macro,
      return the symbol and report no expansion.  Previously, the otherwise
      case was not handled and macroexpand-1 fell through in error to test
      forms for global cases.  Among other things, this caused the expansion
      of global symbol macros shadowed by lexical variable bindings.
      d2dcf0fa
  25. Dec 02, 2006
    • rtoy's avatar
      code/float-trap.lisp: · 896812b8
      rtoy authored
      o Need to clear out the individual invalid operation bits when
        clearing the invalid exception bit.
      
      code/exports.lisp:
      compiler/ppc/parms.lisp:
      o Export FLOAT-INVALID-OP-1-BYTE.  (Needs a better name.)
      896812b8
  26. Nov 30, 2006
Loading