Skip to content
Snippets Groups Projects
  1. Nov 07, 2014
  2. 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
  3. Nov 02, 2014
  4. Oct 27, 2014
  5. Oct 25, 2014
  6. Oct 11, 2014
  7. 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
  8. 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
  9. 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
  10. Oct 01, 2014
  11. Sep 28, 2014
  12. 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
  13. Sep 26, 2014
  14. 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
  15. 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
  16. Aug 29, 2014
  17. 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
  18. Aug 23, 2014
  19. 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
  20. 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
  21. 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
  22. Aug 02, 2014
  23. Aug 01, 2014
  24. Jul 31, 2014
    • Raymond Toy's avatar
      Fix ticket ##104: Source location for define-condition · 3b8bd838
      Raymond Toy authored
      This is the patch from the ticket except that the boot file name has
      been changed to conform to the usual naming rules.
      
      To test it, try (c::info :source-location :class 'error). This should
      return something like
      
      #S(C::FILE-SOURCE-LOCATION :FORM-NUMBERS 52 :PATHNAME "target:code/error.lisp")
      
      Notes:
      * compiler/globaldb.lisp: New info-type source-location/class.  As
      class names can theoretically also be variable names it seemed
      reasonable to introduce this instead of using the existing
      source-location/defvar.
      
      * code/error.lisp (%compiler-define-condition): Take
      source-location as argument and store it in the infodb.
      (define-condition): Pass source-location along.
      
      * bootfiles/20e/boot-2014-06-1.lisp: New bootfile needed
      because error.lisp is compiled before globaldb.lisp.
      3b8bd838
    • Raymond Toy's avatar
      Remove the mathcalls section. It's not used and some of it (log1p) is · 06179e0c
      Raymond Toy authored
      duplicated in irrat.lisp.
      06179e0c
Loading