Skip to content
Snippets Groups Projects
  1. Nov 30, 2014
    • Raymond Toy's avatar
      Partially addresses ticket:91 by allowing the test suite to finish. · 70181ee7
      Raymond Toy authored
      The tests still fail (along with others), but the test suite will
      finish.
      
       * code/float-trap.lisp:
         * Update SET-FLOATING-POINT-MODES:
           * When we clear out bits in float-invalid-op-1-byte, clear out the
             float-invalid-op-2-byte.  Not necessary for this fix, but those
             bits signal other invalid operations from sqrt and such.
           * When clearing the exceptions, clear the sticky exceptions
             summary bit too.
         * Fix SIGFPE-HANDLER:
           * As above, clear out the bit in float-invalid-op-2-byte and the
             exceptions summary bit.
           * Only clear out the new exception bits, as done for SSE2.
           * Mask out the float-invalid-op-2-byte and the summary bit before
             setting the new modes.
      
       * compiler/ppc/parms.lisp
         * Define float-exceptions-summary-byte.
      
       * code/exports.lisp:
         * Export FLOAT-INVALID-OP-2-BYTE
      70181ee7
  2. Nov 27, 2014
    • Raymond Toy's avatar
      Fix up a few more issues with log. · 55d04a31
      Raymond Toy authored
       * src/code/irrat.lisp:
         * In log10, return the correct type for the result.  Previously, we
           would return a double even if a single were desired.
         * Fix up a few more cases where we failed to handle log of a huge
           rational correctly for log base 2 and base 10.
       * tests/irrat.lisp:
         * Add some tests to check that log returns the correct type of
           number for the log base 2 and 10 of very large rationals.
      55d04a31
  3. Nov 26, 2014
    • Raymond Toy's avatar
      Fix some issues with log2 and log10 of big rationals. · 37d383ae
      Raymond Toy authored
       * src/code/irrat.lisp:
         * Add log10 function to handle the computation of the base 10 log
           of big rationals that might not fit in a double-float.
         * Fix some issues where CL:LOG wasn't handling logs of big
           rationals. (A regression).
       * tests/trac.lisp:
         * Update trac.8 test to include logs base 10.
      37d383ae
    • Raymond Toy's avatar
      Use new log2 function in C · 0a522bd0
      Raymond Toy authored
       * code/exports.lisp:
         * Export %LOG2.
       * code/irrat.lisp:
         * Define %log2
         * Use %log2 instead of log2. (This needs work)
       * compiler/float-tran.lisp:
         * Use %log2 instead of log2 in the deftransforms.
      0a522bd0
  4. Nov 25, 2014
  5. Nov 24, 2014
  6. Nov 15, 2014
  7. Nov 12, 2014
  8. Nov 07, 2014
  9. Nov 06, 2014
    • Raymond Toy's avatar
      Add iterators and loop paths for codepoints and glyphs · 2b1925b6
      Raymond Toy authored
       * src/code/string.lisp:
         * Add WITH-STRING-CODEPOINT-ITERATOR to allow iterating over the
           codepoints in a string.
         * Add WITH-STRING-GLYPO-ITERATOR to allow iterating over the
           glpyhs in a string.
       * src/code/exports.lisp:
         * Export WITH-STRING-CODEPOINT-ITERATOR and
           WITH-STRING-GLYPH-ITERATOR. 
       * src/code/loop.lisp:
         * Support (loop for cp being the codepoint of string ...) which
           extracts the consecutive codepoints from the string. Allow
           codepoints, code-point, and code-points as aliases of codepoint.
         * Support (loop for g-string being the glyph of string ...) which
           extracts each glyph (as a string) from the string.  Allow glpyhs
           as an alias.
       * tests/extended-loop.lisp:
         * New file of tests for the new loop paths.
       * src/i18n/locale/cmucl.pot:
         * Update.
      2b1925b6
  10. Nov 02, 2014
  11. Oct 27, 2014
  12. Oct 25, 2014
  13. Oct 11, 2014
  14. Oct 10, 2014
    • Raymond Toy's avatar
      a1946b35
    • Raymond Toy's avatar
      Unify extern-alien-name for darwin x86 and ppc. · 571dd490
      Raymond Toy authored
      Initial attempt to unify extern-alien-name, primarily for darwin (x86
      and ppc). Thus, systems using elf do not prepend an underscore, but
      other systems are assumed to prepend an underscore.
      
      This is currently only for darwin/x86.  A cross-compile on darwin x86
      is needed.
      
       * code/x86-vm.lisp:
         * For elf systems, don't prepend an underscore.  For other systems,
           do prepend.
       * compiler/generic/new-genesis.lisp:
         * Fix long-standing bug where we should call EXTERN-ALIEN-NAME to
           get the right name for "resolve_linkage_tramp".
       * lisp/Darwin-os.c:
         * Update os_dlsym to assume the external name is always preceded by
           an underscore.  The lookup for dlysm is done by stripping off the
           leading underscore.
       * lisp/os-common.c:
         * Add EXTERN_ALIEN_NAME macro to create the correct alien name for
           elf and non-elf systems.
         * Use it to generate the correct name to be used for comparison in
           the sanity checks of the linkage table entries.
      571dd490
  15. Oct 09, 2014
    • Raymond Toy's avatar
      First cut at removing ppc-darwin-dlshim.c. Not needed anymore because · 57711cc2
      Raymond Toy authored
      dlsym works on OSX/ppc like on other ports.
      
      A cross-compile was used with cross-ppc-ppc-darwin.lisp.  I'm not sure
      a cross-compile is required, though.
      
       * code/ppc-vm.lisp:
         * EXTERN-ALIEN-NAME doesn't need to prepend an underscore anymore. 
       * lisp/Config.ppc_darwin:
         * Don't compile/link ppc-darwin-dlshim.c.
       * lisp/os-common.c:
         * Don't prepend underscore for call_into_lisp.
       * tools/cross-scripts/cross-ppc-ppc-darwin.lisp:
         * EXTERN-ALIEN-NAME doesn't need to prepend an underscore anymore.
      57711cc2
  16. Oct 02, 2014
    • Raymond Toy's avatar
      Fix regression in %ENUMERATE-DIRECTORIES. · 8329e1d5
      Raymond Toy authored
      Previously (18a at least), %ENUMERATE-DIRECTORIES would return a path
      even if a directory element did not exist.  This behavior is restored.
      
      See email from cmucl-help, Sep 26, 2014.
      
       * src/code/filesys.lisp:
         * Fix regression.in %ENUMERATE-DIRECTORIES.  Even if the directory
           does not exist, we continue recursing instead of stopping.
       * src/general-info/release-20f.txt:
         * Update
       * tests/filesys.lisp:
         * New file adding tests for UNIX-NAMESTRING.
      8329e1d5
    • Raymond Toy's avatar
      Fix regression in %ENUMERATE-DIRECTORIES. · 2f316750
      Raymond Toy authored
      Previously (18a at least), %ENUMERATE-DIRECTORIES would return a path
      even if a directory element did not exist.  This behavior is restored.
      
      See email from cmucl-help, Sep 26, 2014.
      
       * src/code/filesys.lisp:
         * Fix regression.in %ENUMERATE-DIRECTORIES.  Even if the directory
           does not exist, we continue recursing instead of stopping.
       * src/general-info/release-20f.txt:
         * Update
       * tests/filesys.lisp:
         * New file adding tests for UNIX-NAMESTRING.
      2f316750
  17. Oct 01, 2014
  18. Sep 28, 2014
  19. Sep 27, 2014
    • Raymond Toy's avatar
      Fix incorrect value from INTEGER-DECODE-FLOAT for denormals. · ab0a979d
      Raymond Toy authored
      This is a long standing bug where INTEGER-DECODE-FLOAT returned
      incorrect values for denormal double-float numbers.  The lower 32 bits
      of the double were not shifted enough when creating the integer
      result.
      
      As a side-effect, DECODE-FLOAT decodes denormal double-float's
      correctly and SCALE-FLOAT scales denormals correctly too.
      
       * src/code/float.lisp:
         * Shift the lower 32-bit of the fraction one more time to adjust
           for the fact that the upper 20 bits were shifted an extra time.
       * tests/float.lisp:
         * Add several tests for INTEGER-DECODE-FLOAT, SCALE-FLOAT, and
           DECODE-FLOAT.
       * src/general-info/release-20f.txt:
         * Add this bug fix to the notes.
      
      Conflicts:
      	tests/float.lisp
      ab0a979d
    • Raymond Toy's avatar
      Fix incorrect value from INTEGER-DECODE-FLOAT for denormals. · 315ea234
      Raymond Toy authored
      This is a long standing bug where INTEGER-DECODE-FLOAT returned
      incorrect values for denormal double-float numbers.  The lower 32 bits
      of the double were not shifted enough when creating the integer
      result.
      
      As a side-effect, DECODE-FLOAT decodes denormal double-float's
      correctly and SCALE-FLOAT scales denormals correctly too.
      
       * src/code/float.lisp:
         * Shift the lower 32-bit of the fraction one more time to adjust
           for the fact that the upper 20 bits were shifted an extra time.
       * tests/float.lisp:
         * Add several tests for INTEGER-DECODE-FLOAT, SCALE-FLOAT, and
           DECODE-FLOAT.
       * src/general-info/release-20f.txt:
         * Add this bug fix to the notes.
      315ea234
  20. Sep 26, 2014
  21. Sep 25, 2014
    • Raymond Toy's avatar
      Make the LOG function match what the deftransform for LOG does. · 106bf4fc
      Raymond Toy authored
      Without this, compiled code produces different answers from
      interpreted code.
      
       * src/code/irrat.lisp:
         * Add cases where the base is 2 or 10 to compute the log in the
           same way as the deftransform for LOG does.
       * tests/float.lisp:
         * Fix comparison to use equalp, not equal.
         * Add test for log10.
      106bf4fc
  22. Sep 20, 2014
    • Raymond Toy's avatar
      Add fdlibm's log10. · 24511623
      Raymond Toy authored
       * src/code/irrat.lisp:
         * Define %log10 to use fdlibm's log10
       * src/lisp/GNUmakefile
         * Compile e_log10
       * tests/trig.lisp
         * Add tests for %log10.
      24511623
    • Raymond Toy's avatar
      Make (log (scale-float 1d0 k) 2) = k · 2e182540
      Raymond Toy authored
       * src/code/irrat.lisp
         * Improve accuracy of log2 for the case when x=2^k. There might be
           some loss in accuracy for other values of x, however.
       * tests/float.lisp
         * Add test for log2(2^k) = k.
      2e182540
  23. Aug 29, 2014
  24. Aug 26, 2014
    • Raymond Toy's avatar
      Deprecate FLOAT-TRAPPING-NAN-P in favor of FLOAT-SIGNALING-NAN-P. · 9b6ad201
      Raymond Toy authored
      These numbers are called signaling, not trapping NaN in almost all
      usages.
      
       * code/exports.lisp:
         * Export FLOAT-SIGNALING-NAN-P.
       * code/float.lisp:
         * Implement FLOAT-SIGNALING-NAN-P.
         * Make FLOAT-TRAPPING-NAN-P an inline call to the
           FLOAT-SIGNALING-NAN-P and add a docstring to say it is
           deprecated. 
       * code/print.lisp:
         * Print "Signaling" instead of "Trapping".
       * i18n/locale/cmucl.pot:
         * Regenerated due to the changes in docstrings.
      9b6ad201
  25. Aug 23, 2014
  26. Aug 22, 2014
    • Raymond Toy's avatar
      On x86/darwin, we want and only need the sse2 mode bits. Darwin · 1626be46
      Raymond Toy authored
      doesn't use x87.
      1626be46
    • Raymond Toy's avatar
      Re-enable the x87 floating-point mode stuff. · 2c4a13af
      Raymond Toy authored
      On 32-bit linux, we can still get FP exceptions using x87 because
      32-bit linux can still use x87 instructions for arithmetic.  Because
      of this, we need to re-enable the support x87 floating-point modes,
      including getting and setting the modes and also extracting the modes
      from a sigcontext.
      
       * src/code/float-trap.lisp:
         * Put back support for getting and setting the x87 FP modes. 
       * src/compiler/x86/float.lisp:
         * Add comment on the layout of the status and control words for
           x87. 
       * src/lisp/Linux-os.c:
         * Put back support for getting the x87 (and sse2) FP modes. Needed
           in the sigfpe-handler in float-trap.lisp.
      
      Some of this needs to be cleaned up because we always require sse2
      now.
      2c4a13af
  27. Aug 10, 2014
    • Raymond Toy's avatar
      Fix ticket:101, implementing STREAM-ADVANCE-TO-COLUMN for FORMAT ~T. · e585e8d6
      Raymond Toy authored
       * code/format.lisp:
         * Add support for Gray streams for tabulation, calling
           STREAM-ADVANCE-TO-COLUMN as needed.
       * tests/gray-stream.lisp:
         * Add tests for absolute and relative tabulation. These are simple
           and just compare that lisp streams and Gray streams produce the
           same output.
       * general-info/release-20f.txt:
         * Update.
      e585e8d6
  28. Aug 09, 2014
    • Raymond Toy's avatar
      Fix ticket:105 by not flaming out on a closed stream. · c0052f55
      Raymond Toy authored
       * code/reader.lisp:
         * The READER-ERROR condition tries to be helpful and print out the
           position of where the error occurred using FILE-POSITION. But
           FILE-POSITION flames out when the stream is closed, so check for
           a closed stream before calling FILE-POSITION
      
       * tests/trac.lisp:
         * Add test from the bug report.
      
       * general-info/release-20f.txt:
         * Update.
      c0052f55
    • Raymond Toy's avatar
      Fix ticket #100 by implementing STREAM-FILE-POSITION · 9e687a21
      Raymond Toy authored
      Implements STREAM-FILE-POSiTION and (SETF STREAM-FILE-POSITION).
      
       * code/stream.lisp:
         * Add support for Gray streams in FILE-POSITION.
       * pcl/gray-streams.lisp:
         * Define STREAM-FILE-POSITION and (SETF STREAM-FILE-POSITION).
         * Add methods on FUNDAMENTAL-STREAM, CHARACTER-INPUT-STREAM, and
           CHARACTER-OUTPUT-STREAM.
       * code/exports.lisp:
         * Export STREAM-FILE-POSITION.
      9e687a21
Loading