Skip to content
Snippets Groups Projects
  1. Jul 26, 2015
    • Raymond Toy's avatar
      Use asdf instead of defsystem. · 00564a1f
      Raymond Toy authored
      Then when the pcl tests are compiled, the fasls are stored somewhere
      else instead of in the tests/pcl directory.  This means the src
      directory isn't polluted with fasls when we make a source tarball.
      00564a1f
  2. Jun 24, 2015
    • Raymond Toy's avatar
      Check for function names correctly · 89074ab3
      Raymond Toy authored
      Fix #7
      
      The change to use extended names like (flet frob) broke the detection
      of local names for get-setf-expansion.  Fix it.  This reverts behavior
      back to what 18a used to do.
      
      A test for this is also added.
      89074ab3
  3. Jun 22, 2015
  4. Jun 14, 2015
    • Raymond Toy's avatar
      Fix #4: ELT signals error on invalid index on lists · 1ca0a557
      Raymond Toy authored
      code/seq.lisp:
      o Define internal LIST-ELT* function that executes ELT on lists,
        signaling an error if the index is invalid.
      
      compiler/seqtran.lisp:
      o Change the deftransform for ELT to use LIST-ELT* instead of NTH.
      
      tests/issues.lisp:
      o Add test for this issue.
      1ca0a557
  5. Apr 25, 2015
  6. Dec 01, 2014
    • Raymond Toy's avatar
      Fix to handle (log 3/2 2) and (log -3/2 2). Test added. · 5f81e241
      Raymond Toy authored
       * src/code/irrat.lisp:
         * Fix LOG2 to handle the case of negative rational numbers.
         * Fix LOG of rational to a rational base. We want to convert the
           log of the number to a single float because log2 isn't intended
           to handle single-float type.
      
       * tests/irrat.lisp:
         * Add test for log of rational to rational base.
         * Add some additional tests for dd-%log2.
      5f81e241
  7. Nov 28, 2014
  8. 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
  9. 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
  10. Nov 25, 2014
  11. Nov 24, 2014
  12. 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
    • Raymond Toy's avatar
      Add a final newline to the file. · 4c0e2967
      Raymond Toy authored
      4c0e2967
  13. Nov 03, 2014
  14. Oct 02, 2014
    • Raymond Toy's avatar
      Micro-optimize SCALE-FLOAT to use multiplication when possible. · 8f5f6abc
      Raymond Toy authored
      If the exponent (second arg of SCALE-FLOAT) is such that 2^exponent
      can be represented as a float (single or double), we can implement
      SCALE-FLOAT using a multiplication by 2^exponent, since multiplication
      by 2^exponent is exact.
      
       * src/compiler/float-tran.lisp:
         * Update deftransforms for SCALE-FLOAT to do a multiply when
           possible. 
       * tests/float-tran.lisp:
         * Add tests to make sure the deftransforms for SCALE-FLOAT are
           applied appropriately.
      8f5f6abc
    • 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
  15. Oct 01, 2014
  16. 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
  17. Sep 25, 2014
    • Raymond Toy's avatar
      Fix type derivation of the exponent for DECODE-FLOAT. · bcc8cd7d
      Raymond Toy authored
      The minimum exponent is from 0, it's from least-positive float.
      
       * src/compiler/float-tran.lisp:
         * Derive the correct minimum exponent by using the exponent from
           the least-positive float value of the appropriate type.
       * tests/float-tran.lisp:
         * Add tests for the derived exponent type for DECODE-FLOAT.
      
      Conflicts:
      	tests/float-tran.lisp
      bcc8cd7d
    • Raymond Toy's avatar
      Fix error in type derivation for the sign in DECODE-FLOAT. · b51c9978
      Raymond Toy authored
      Type derivation of the sign of (DECODE-FLOAT X) returned the incorrect
      value when x was declared to be of type (DOUBLE-FLOAT (0d0)).
      
       * src/compiler/float-tran.lisp
         * Fix type derivation
       * tests/float-tran.lisp
         * New file for tests of DECODE-FLOAT-SIGN-DERIVE-TYPE-AUX.
       * tests/float.lisp
         * New file to test that decode-float is compiled correctly.
      b51c9978
    • Raymond Toy's avatar
      Fix type derivation of the exponent for DECODE-FLOAT. · 6f288c11
      Raymond Toy authored
      The minimum exponent is from 0, it's from least-positive float.
      
       * src/compiler/float-tran.lisp:
         * Derive the correct minimum exponent by using the exponent from
           the least-positive float value of the appropriate type.
       * tests/float-tran.lisp:
         * Add tests for the derived exponent type for DECODE-FLOAT.
      6f288c11
    • Raymond Toy's avatar
      Add tests for compiled log2 and log10. · 24c656a5
      Raymond Toy authored
      24c656a5
    • 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
  18. Sep 21, 2014
    • Raymond Toy's avatar
      Add deftransform to convert (log x 2) and (log x 10) to log2 and · db25e3e0
      Raymond Toy authored
      %log10. This better than using the definition (/ (log x) (log base)).
      This also allows exact answer for 2^n and 10^n for appropriate n.
      
      
       * src/compiler/float-tran.lisp:
         * Add deftransforms to convert (log x 2) and (log x 10) to
           kernel::log2 and kernel:%log10 
       * tests/float-tran.lisp:
         * Add tests to check the transforms are done, or not done, as
           appropriate.
      db25e3e0
  19. 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
    • Raymond Toy's avatar
      Fix error in type derivation for the sign in DECODE-FLOAT. · d03e1784
      Raymond Toy authored
      Type derivation of the sign of (DECODE-FLOAT X) returned the incorrect
      value when x was declared to be of type (DOUBLE-FLOAT (0d0)).
      
       * src/compiler/float-tran.lisp
         * Fix type derivation
       * tests/float-tran.lisp
         * New file for tests of DECODE-FLOAT-SIGN-DERIVE-TYPE-AUX.
       * tests/float.lisp
         * New file to test that decode-float is compiled correctly.
      d03e1784
  20. Aug 28, 2014
  21. Aug 27, 2014
  22. Aug 23, 2014
Loading