Skip to content
Snippets Groups Projects
  1. Jun 11, 2009
  2. Apr 20, 2009
  3. Apr 13, 2009
  4. Apr 10, 2009
    • rtoy's avatar
      o Add some docstrings to READ-VECTOR and WRITE-VECTOR. · 3d14cbf2
      rtoy authored
      o Fix a confusion about the length of the vector versus the start and
        end octets.  If END is not given, we use the length of the vector,
        but it must be scaled by the number of octets per element.
      3d14cbf2
  5. Mar 27, 2009
    • rtoy's avatar
      code/hash-new.lisp: · e8385fd7
      rtoy authored
      o Don't convert characters to uppercase when computing SXHASH for
        characters.  The characters aren't EQUAL anyway, so the hash value
        doesn't have to be the same.
      
      general-info/release-20a.txt:
      o Update
      e8385fd7
  6. Mar 25, 2009
    • rtoy's avatar
      linux-os.lisp: · f0c421a2
      rtoy authored
      o Use unix:unix-uname to get the software version.  (I don't want to
        deal with broken Linux kernels or other implementation details in
        trying to read /proc/version, and I don't want to run uname -r.)
      
      sunos-os.lisp:
      o Use unix:unix-uname to get the software version instead of running
        uname -r.
      f0c421a2
  7. Mar 20, 2009
    • rtoy's avatar
      This big of code causes CMUCL to spend huge amounts of time trying to · cb674c89
      rtoy authored
      simplify the union of disjoint double-float types:
      
      (defun foo (arg)
        (declare (type double-double-float arg)
      	   (optimize (speed 3) (space 0)))
        (let* ((x arg)
      	 (xx 0w0)
      	 (k 0)
      	 (px (coerce k 'double-double-float))
      	 (qx 0w0))
          (declare (type double-double-float x xx px qx)
      	     (notinline poly-eval poly-eval-1))
          (setf x (- (- x (* px log2-c1)) (* px log2-c2)))
          (+ x 0d0)
          ))
      
      Fix it:
      
      code/type.lisp:
      o Rename SIMPLIFY-BIG-INTEGER-UNION to SIMPLIFY-BIG-UNION
      o SIMPLIFY-BIG-UNION takes an extra arg to specify the resulting type.
      o Modify SIMPLIFY-UNIONS to handle float unions as well as integer
        unions.
      
      general-info/release-20a.txt:
      o Update
      cb674c89
  8. Mar 18, 2009
    • rtoy's avatar
      code/irrat-dd.lisp: · 8bd5d96d
      rtoy authored
      o Declare POLY-EVAL and POLY-EVAL-1 as maybe-inline functions so they
        can be semi-inlined.
      
      code/irrat.lisp:
      o I don't think there's any real reason to make the local function
        REAL-EXPT inline.  It's very big and local function call is already
        good enough.
      
      compiler/float-tran.lisp:
      o Change some functions to be maybe-inline instead of inline to save
        on space for the the larger double-double functions:  SUB-DD,
        SUB-D-DD, SUB-DD-D, SPLIT.  Semi-inline should be good enough for
        these large functions, saving on cache memory, local function
        calling sequence should be good enough.
      8bd5d96d
  9. Mar 16, 2009
  10. Mar 11, 2009
  11. Jan 23, 2009
  12. Jan 21, 2009
  13. Jan 19, 2009
  14. Jan 06, 2009
    • agoncharov's avatar
      · c2323072
      agoncharov authored
      * code/exports.lisp -- Added a missing quote characher.
      * lisp/FreeBSD-os.c -- Fixed the switch to the SSE2 mode, in line with other OSes.
      * lisp/Linux-os.c -- Fixed a comment (sse != sse2)
      c2323072
    • rtoy's avatar
      code/commandline.lisp: · addf17d7
      rtoy authored
      o Command line parsing now recognizes "--" and disables any further
        processing by CMUCL itself.  Everything after "--" is placed in the
        new variable EXT:*COMMAND-LINE-APPLICATION-ARGUMENTS*, which is a
        list of strings.
      
      code/exports.lisp:
      o Export EXT:*COMMAND-LINE-APPLICATION-ARGUMENTS*.
      
      general-info/release-19f.txt:
      o Update.
      addf17d7
  15. Jan 05, 2009
    • rtoy's avatar
      Fix for handling arithmetic errors with x87. · 9edd3c4b
      rtoy authored
      Use bootstrap-2009-01-1.lisp to bootstrap this change.
      
      code/float-trap.lisp:
      o FLOATING-POINT-MODES for :X87 needs to massage the results into the
        expected format (SSE2 MXCSR order).
      o Update for changed VOP names too.
      
      compiler/x86/float.lisp:
      o Rename the floating-point-modes and set-floating-point-modes VOPS to
        x87-floating-point-modes and set-x87-floating-point-modes.  Change
        the translations accordingly too.
      
      compiler/x86/parms.lisp:
      o The float property bytes have been updated to match the SSE2 MXCSR
        register for both SSE2 and X87 builds because the code assumes SSE2
        format.
      
      lisp/Linux-os.c:
      o Don't OR in the SSE2 modes if we're not running an SSE2 build.
        Doing this can erroneously mask out exceptions because the Lisp code
        didn't set up the sse2 modes.  (This happens if you select the x87
        core on a chip that supports sse2.)
      
      lisp/globals.h:
      o Declare fpu_mode.
      
      lisp/lisp.c:
      o Set fpu_mode to be the mode determined from the core file.  Needed
        in Linux-os.c to process the SSE2 modes correctly with an x87 core
        on a sse2-capable chip.
      9edd3c4b
  16. Dec 31, 2008
  17. Dec 30, 2008
    • rtoy's avatar
      More cleanups: · f7fb749f
      rtoy authored
      o Remove stale symbol *CHAR.
      o Forgot to move SOCKET-ERROR to internet section
      o Move *CLX-FDS-TO-DISPLAYS* to CLX section.
      f7fb749f
    • rtoy's avatar
      More EXTENSIONS symbols rearrangement. · d134c888
      rtoy authored
      o Remove stale symbols: *MAX-OLD-TRACE-INDENTATION*,
        *MAX-STEP-INDENTATION*, OLD-TRACE, OLD-UNTRACE
      o Add section for command line parsing symbols.
      o Add section for Hemlock symbols.
      o Add section for CLX extensions
      o Finish the section for internet.lisp symbols.
      d134c888
  18. Dec 29, 2008
  19. Dec 23, 2008
  20. Dec 22, 2008
    • rtoy's avatar
      Oops. Need to move %DOUBLE-DOUBLE-FLOAT from compiler/float-tran.lisp · a45f0d42
      rtoy authored
      to code/float.lisp because we need this early in the build process to
      handle float types.
      
      This might cuase problems with bootstrapping double-double floats!
      a45f0d42
    • rtoy's avatar
      INNER-COERCE-REAL-BOUND needs to coerce to DOUBLE-DOUBLE-FLOAT, when · 9c80670d
      rtoy authored
      available.  Without this, we get things like
      
      (c::specifier-type '(real 1d0 100/9)) ->
      #<UNION-TYPE (OR (SINGLE-FLOAT 1.0 11.111111)
                       (DOUBLE-FLOAT 1.0d0 11.11111111111111d0)
                       (DOUBLE-DOUBLE-FLOAT 1.0w0
                        11.1111111111111107163651467999443w0)
                       (RATIONAL 1 100/9))>
      
      instead of
      
      #<UNION-TYPE (OR (SINGLE-FLOAT 1.0 11.111111)
                       (DOUBLE-FLOAT 1.0d0 11.11111111111111d0)
                       (DOUBLE-DOUBLE-FLOAT 1.0w0
                        11.1111111111111111111111111111111w0)
                       (RATIONAL 1 100/9))>
      
      The bound for double-double-float is not quite correct in the former
      result, and is correct in the latter.
      9c80670d
  21. Dec 21, 2008
  22. Dec 10, 2008
    • rtoy's avatar
      Change how we put the FPU type into the core file. We can't use · 29f1fd98
      rtoy authored
      compile-time options to do this.  The running core file has to tell
      us.
      
      lisp/save.c:
      o Add extra arg to save function to indicate whether the core we're
        saving supports sse2 or not.  Non-zero means sse2.
      o Put the correct indication into the core file.
      
      lisp/save.h:
      o Update declaration of save.
      
      code/save.lisp:
      o Update alien definition for save
      o Pass in the extra parameter for the save routine to indicate if we
        support sse2 or not.
      29f1fd98
    • agoncharov's avatar
      The features X87 and SSE2 are supposed to be exclusive; x87-to-sse2 · 2087c900
      agoncharov authored
      cross build adds SSE2 but X87 stays there. So, pull it out here.
      2087c900
  23. Dec 02, 2008
  24. Nov 12, 2008
  25. 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
  26. Oct 22, 2008
  27. 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
  28. 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
  29. Oct 03, 2008
  30. Sep 24, 2008
Loading