Skip to content
Snippets Groups Projects
  1. Dec 02, 2008
  2. Nov 12, 2008
  3. Oct 24, 2008
    • rtoy's avatar
      code/float.lisp: · 139b5ed6
      rtoy authored
      o Forgot to implement FLOAT-PRECISION for double-doubles.
      
      general-info/release-19f.txt:
      o Document it.
      139b5ed6
  4. Oct 22, 2008
  5. Oct 21, 2008
    • rtoy's avatar
      Correct some comments referring to the (now) nonexistent *truncate-x* · 1b272408
      rtoy authored
      and *truncate-y*.
      1b272408
    • rtoy's avatar
      Speed up bignum-truncate by getting rid of the special variables · b338119a
      rtoy authored
      *truncate-x* and *truncate-y*.  Accessing these in tight loops hurts
      performance.  So pass truncate-x and truncate-y as parameters to the
      routines that need them.  Reorder the truncate support routines so we
      can block-compile all of the routines for truncate.
      
      With these changes, we see the following changes according to
      cl-bench.  The first column and reference is 2008-10 snapshot
      (darwin), and the next column is the ratio of this new code to the
      reference.  So we see improvements from 10% to 50%.
      
      BIGNUM/ELEM-100-1000     [      0.23]   0.84
      BIGNUM/ELEM-1000-100     [      0.50]   0.89
      BIGNUM/ELEM-10000-1      [      0.51]   0.90
      BIGNUM/PARI-100-10       [      0.05]   0.63
      BIGNUM/PARI-200-5        [      0.22]   0.51
      PI-DECIMAL/SMALL         [      2.44]   0.70
      PI-DECIMAL/BIG           [      2.24]   0.73
      PI-ATAN                  [      1.07]   1.00
      PI-RATIOS                [      2.56]   0.88
      b338119a
  6. Oct 08, 2008
    • rtoy's avatar
      Ticket #24. · f169d3f0
      rtoy authored
      Take the rule of float precision contagion (CLHS 12.1.4.4) to also
      mean that the result should be as accurate as the most accurate
      argument.  Effectively, all args are coerced to the highest precision
      first before computing expt.
      
      There's a simple test program to check that every case is covered with
      the expected precision.  (I think).
      
      (defun test-expt ()
        (dolist (base '(2 2f0 2d0 2w0) t)
          (dolist (power '(1/2 .5f0 .5d0 .5w0))
            (flet ((test-it (b p a eps expected)
      	       (let* ((res (expt b p))
      		      (absdiff (abs (- res a))))
      		 (unless
      		     (or (typep (realpart res) (type-of expected))
      			 (<= absdiff (* 10 eps)))
      		   (format t "FAILED: ~A^~A = ~A (~A)~%" b p res a)))))
      
      	;; Compute base^power.
      	(let* ((expected-type
      		(let ((prod (* base power)))
      		  (if (rationalp prod)
      		      1f0
      		      prod)))
      	       (eps (etypecase expected-type
      		      ((or rational single-float)
      		       single-float-epsilon)
      		      (double-float
      		       double-float-epsilon)
      		      (double-double-float
      		       1w-31)))
      	       (answer (sqrt (float base expected-type))))
      	  (test-it base power answer eps expected-type)
      	  (test-it base (complex power) answer eps expected-type)
      	  (test-it (complex base) power answer eps expected-type)
      	  (test-it (complex base) (complex power) eps answer expected-type))))))
      f169d3f0
  7. Oct 03, 2008
  8. Sep 24, 2008
  9. Sep 23, 2008
  10. Sep 16, 2008
  11. Sep 07, 2008
  12. Sep 02, 2008
  13. Aug 31, 2008
  14. Aug 16, 2008
  15. Aug 15, 2008
  16. Aug 12, 2008
    • rtoy's avatar
      compiler/x86/arith.lisp: · 51daa734
      rtoy authored
      o Remove definition of vm::ash-left-mod32.  (It's already in
        numbers.lisp.)
      
      code/numbers.lisp:
      o Declaim vm::ash-left-mod32 as inline to work around x86 issue where
        vm::ash-left-mod32 never gets translated to a vop.
      51daa734
  17. Jul 31, 2008
  18. Jul 30, 2008
    • rtoy's avatar
      Network updates from Chun Tian, cmucl-imp, 2008/07/21 and followups. · 070993a4
      rtoy authored
      code/internet.lisp:
      o Add BIND-INET-SOCKET
      o Allow CONNECT-TO-INET-SOCKET to allow binding the new socket to a
        local address.
      
      code/exports.lisp:
      o Update export list for BIND-INET-SOCKET.
      
      docs/cmu-user/internet.tex:
      o Add and update docs for BIND-INET-SOCKET and CONNECT-TO-INET-SOCKET.
      o Add docs for ACCEPT-NETWORK-STREAM and OPEN-NETWORK-STREAM.
      o Fix docs for CREATE-UNIX-LISTENER---the function doesn't actually
        have REUSE-ADDRESS keyword arg.
      
      general-info/release-19f.txt:
      o Update with new network info.
      070993a4
  19. Jul 21, 2008
  20. Jul 18, 2008
  21. Jul 15, 2008
  22. Jul 14, 2008
  23. Jun 27, 2008
  24. Jun 26, 2008
    • rtoy's avatar
      code/rand-mt19937.lisp: · d4cb5a5e
      rtoy authored
      o Recursively call RANDOM for the integer case to let the deftransform
        handle the case.
      
      compiler/float-tran.lisp:
      o Remove comment about modifying RANDOM to match the deftransform.
        We're automatically in sync now.
      d4cb5a5e
  25. Jun 25, 2008
  26. Jun 24, 2008
    • rtoy's avatar
      compiler/float-tran.lisp: · a282fdc9
      rtoy authored
        Fix bug in deftransform where the case for x86 and num-high >
        random-fixnum-max was never used.  We now always use the bignum
        multiply code for all platforms and use that for all cases for which
        the deftransform applies.
      
        Simplify the constant-continuation case too so we don't have to the
        check.  I think the bignum multiply version does not have the bias
        problem that rem has.
      
      code/rand-mt19937.lisp:
        Change the RANDOM function to compute the same value as the
        deftransform would.
      
      general-info/release-19f.txt:
        Update
      
      Make a note that both the function and the deftransform should be
      synchronized to match.  This change also changes the sequence of
      numbers produced.
      a282fdc9
  27. Jun 23, 2008
  28. Jun 20, 2008
    • rtoy's avatar
      Update from Paul: · 44d17370
      rtoy authored
      I've moved some slots out of external-format so they can be shared
      between external-formats that are identical in all but some variables.
      
      Also fixed a bug in octets-to-string that made it return one character
      short, and used char-code-limit instead of #x100 to determine when
      octets-to-char returns a "?", so now it'll work without change on 8 or
      16 bit lisps.
      44d17370
  29. Jun 19, 2008
    • rtoy's avatar
      Cosmetic change to WITH-OPEN-FILE so that the macro argument looks · a8722f10
      rtoy authored
      more like the actual call (var filespec &rest open-args) instead of
      (var &rest open-args).  Fix up the macro documentation too since that
      didn't really match the arguments very well either.
      a8722f10
    • rtoy's avatar
      Make DIRECTORY work faster when there are a large number of files. · a83f8cf0
      rtoy authored
      Basically, don't use delete-duplicates but do it ourselves since the
      list is already sorted.
      
      From Lynn Quam, cmucl-imp, 2008/06/05, slightly modified.
      
      code/filesys.lisp:
      o New DIRECTORY function
      
      general-info/release-19f.txt:
      o Update
      a83f8cf0
    • rtoy's avatar
      Create a new search-list "ext-formats" that is initialized to · 44232c3d
      rtoy authored
      "library:ext-formats/".  This makes it easier to add new directories
      where external formats can be found.  The previous use made it
      difficult because the formats had to be in the subdirectory
      ext-formats.
      
      save.lisp:
      o Create and initialize new search-list.
      
      extfmts.lisp:
      o Use the new search-list instead of "library:ext-formats/".
      44232c3d
Loading