Skip to content
Snippets Groups Projects
  1. May 24, 2007
    • rtoy's avatar
      o Make DD-%ATAN2 handle signed zeroes. This is needed to get branch · d58b0dba
      rtoy authored
        cuts right for some special functions.
      o DD-COMPLEX-ATANH needs to be careful about producing signed zeroes
        in the right spots.  Add a CAREFUL-MUL to make sure a zero of the
        correct sign is produced when needed.  (What other places need such
        care?)
      d58b0dba
  2. May 23, 2007
  3. May 22, 2007
  4. May 19, 2007
    • rtoy's avatar
      Trac ticket #10 · 51a50f19
      rtoy authored
      For large numbers we did not check for odd-valued results that needed
      to be rounded to even.
      51a50f19
  5. May 02, 2007
  6. Apr 07, 2007
  7. Mar 28, 2007
    • rtoy's avatar
      o Fix typo handling complex-double-double-reg-sc-number case. · 81eabad0
      rtoy authored
      o Fix extra paren for double-double-stack-sc-number case, and don't
        use with-nfp which doesn't exist on x86.
      o Add support for complex-double-double-stack-sc-number, which was
        missing for x86.
      81eabad0
    • rtoy's avatar
      o Remove some extraneous (typo) parens for · 139cb256
      rtoy authored
        double-double-stack-sc-number and
        complex-double-double-stack-sc-number.
      o The complex-double-double-stack-sc-number case was not computed the
        complex double-double correctly.  Fix it.
      139cb256
  8. Mar 27, 2007
  9. 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
  10. Mar 22, 2007
  11. Mar 21, 2007
  12. 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
  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. 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
  20. 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
  21. 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
  22. Nov 16, 2006
    • rtoy's avatar
      code/float-trap.lisp: · 6f968a58
      rtoy authored
      o Pass the modes to GET-FP-OPERANDS
      
      compiler/ppc/float.lisp:
      o If the destination register is the same as one of the source
        registers, an overflow or underflow exception will have replaced the
        source register with the result.  In that case, replace the source
        value with NIL to indicate we don't know.  (We could recompute the
        source from the result, but there would be a round-off error.)
      6f968a58
  23. Nov 14, 2006
  24. Nov 08, 2006
  25. Oct 02, 2006
    • rtoy's avatar
      code/ntrace.lisp: · b2391606
      rtoy authored
      o Add a new :WHEREIN-ONLY option for trace, which is like :WHEREIN,
        but only if the immediate caller is one of the listed functions
        instead of anywhere in the backtrace.
      
      general-info/release-19d.txt:
      o Update for :WHEREIN-ONLY
      b2391606
  26. Aug 21, 2006
    • rtoy's avatar
      Some very basic support for signed zeroes for DOUBLE-DOUBLE-FLOAT. We · e14ba2a5
      rtoy authored
      can now read and print -0w0.
      
      code/float.lisp:
      o Adjust float-sign so that we get the correct sign when
        double-double-floats are used.
      o Adjust FLOAT-RATIO to call %MAKE-DOUBLE-DOUBLE-FLOAT so that we
        preserve the sign of the number.  This is safe because the
        components are known to be properly scaled.
      
      compiler/float-tran.lisp:
      o Use %MAKE-DOUBLE-DOUBLE-FLOAT in %DOUBLE-DOUBLE-FLOAT to preserve
        the sign of the original float.  This is safe because the
        components are known to be properly scaled.
      o Add a FLOAT-SIGN deftransform to handle DOUBLE-DOUBLE-FLOAT.
      e14ba2a5
    • rtoy's avatar
      Print out what kind of weak hash table we have. · ff65e1c0
      rtoy authored
      ff65e1c0
    • rtoy's avatar
      Add BASE-CHAR and CHARACTER to · 8bfbe53c
      rtoy authored
      *READ-INTO-SIMPLE-ARRAY-RECOGNIZED-TYPES* so that READ-VECTOR can read
      binary data from streams of those types.  Fixes Trace ticket 7.
      8bfbe53c
  27. Aug 18, 2006
    • rtoy's avatar
      code/hash-new.lisp: · eff841d2
      rtoy authored
      o Replace the magic value #x80000000 with +eq-based-hash-value+.
      
      lisp/gencgc.c:
      o Replace the magic value 0x80000000 with EQ_BASED_HASH_VALUE.
      o When freeing the hash entry, we forgot to reset the hash-vector
        entry to EQ_BASED_HASH_VALUE.
      eff841d2
    • rtoy's avatar
      Add support for weak value, key-and-value, and key-or-value hash · e206ca4a
      rtoy authored
      tables.  Use boot-2006-08-1-cross to cross-compile.  During worldload,
      you'll get a restart.  Choose the CLOBBER-IT restart.
      
      bootfiles/19c/boot-2006-08-1-cross.lisp:
      o Cross-compile script to mark that a cross-compile is needed.
        Nothing fancy, just load up the example scripts.
      
      code/hash-new.lisp:
      o Update the allowed values for the weak-p slot of a hash table.
      o Change hash table printer to print out the test and weak style.
      o Update MAKE-HASH-TABLE to allow other values for :weak-p keyword arg
        and set the weak-p slot appropriately.
      o Produce an error if a weak key, key-and-value, or key-or-value table
        is created but the test is not EQ or EQL.
      
      compiler/ppc/parms.lisp:
      compiler/sparc/parms.lisp:
      o Add :KEY, :VALUE, :KEY-AND-VALUE, and :KEY-OR-VALUE symbols to the
        static symbols because C code needs them.
      
      lisp/gencgc.c:
      o Add necessary support to handle the new hash types.
      e206ca4a
Loading