Skip to content
Snippets Groups Projects
  1. Dec 21, 2007
  2. Dec 18, 2007
  3. Dec 17, 2007
  4. Dec 15, 2007
    • rtoy's avatar
      Tracing with :encapsulate NIL works on Darwin now. There are some · 7d7c3c3e
      rtoy authored
      issues like why the mcontext slot is 0 in the sigcontext from a
      function end breakpoint.  This works around that problem for now.
      
      lisp/x86-arch.c:
      o Add documentation on how arch_do_displaced_inst works.
      o Darwin has the eflags register in the sigcontext so use that to
        enable and disable single-stepping using the eflags slot.  This is
        how Linux works too.  This change makes function start breakpoints
        work.
      
      code/debug-int.lisp:
      o In FIND-ESCAPED-FRAME, make sure the mcontext slot is not null (0)
        before we try to grab the cfp slot from it.  This works around an
        issue where the mcontext slot is 0 on Darwin.
      
      code/ntrace.lisp:
      o Make *TRACE-ENCAPSULATE-DEFAULT* be :default again.
      7d7c3c3e
  5. Dec 13, 2007
  6. Nov 14, 2007
    • rtoy's avatar
      Export COMPATIBLE-FUNCTION-TYPES-P. · 2b51b6a3
      rtoy authored
      2b51b6a3
    • rtoy's avatar
      Fix some mistakes accidentally introduced in the sigcontext · 42b3bda6
      rtoy authored
      rearrangement.  Changes not tested, but there are no compiler warnings
      anymore.
      
      o Fix typo:  It's fpstate, not ftpstate.
      o Fix dereferencing of the fpstate, which is not in the sigcontext
        anymore.  It's in the sc-mcontext slot of the sigcontext now.
      42b3bda6
    • rtoy's avatar
      boot-1007-11-14-1.lisp: · e86597ac
      rtoy authored
      o Add comments that we need to cross-compile on x86.
      o Load up boot-2007-11-1 for the x86 cross-compile to get rid of a
        warning.
      o Load up the default cross-x86-x86 script.
      
      exports.lisp:
      o Remove FLOAT-ACCURACY.  It is now gone.
      e86597ac
    • rtoy's avatar
      In UNIX-MMAP, replace FILE-OFFSET with (SIGNED-BYTE 32), since · 71a7a181
      rtoy authored
      unix-glibc2 doesn't define FILE-OFFSET.
      71a7a181
    • cshapiro's avatar
      * Change the way the x87 precision control is managed. While in Lisp, · 1440af76
      cshapiro authored
        the precision control will always be set to double precision.  For
        the duration of calls into C, the precision control will be set to
        the ABI default.  On Linux and Darwin this is double extended
        precision.  On all other platforms the precision control is left as
        double precision.  The specious FLOAT-ACCURACY declaration has been
        eliminated.
      
      * Shorten the precision control field to 24-bits by disposing of the
        unexamined high order eight bits of the status word.  This compacts
        the code generated around floating point mode changes and reduces
        consing.
      
      * Eliminate unnecessary uses of FLDENV and FSTENV.  We can substitute a
        use of FSTENV with FSTSW in FLOATING-POINT-MODES.  This reduces the
        number of cycles to access the relevant mode bits by a factor of
        thirty.  We cannot eliminate FLDENV in SET-FLOATING-POINT-MODES, but
        the common case does not require an update to the status word.  A
        fast path has been added to the VOP that improves the execution time
        by at least a factor of fifteen.
      
      * Remove the precision control option to SET-FLOATING-POINT-MODES.  It
        is the responsibility of the compiler to generating code that yields
        correctly rounded results in double and single precision.
      1440af76
  7. Nov 09, 2007
    • rtoy's avatar
      Lynn Quam noted that callbacks did not work on his system. This · 1e0ff599
      rtoy authored
      happened because the callback trampoline used malloc'ed space which
      were not executable by default.  Change this so that the trampoline is
      executable.
      
      code/unix.lisp, code/unix-glibc2.lisp:
      o Add UNIX-MPROTECT
      
      code/exports.lisp:
      o Export UNIX-MPROTECT
      
      code/alieneval.lisp:
      o Make sure the malloc'ed trampoline area is executable.
      
      general-info/release-19e.txt:
      o Update
      1e0ff599
  8. Nov 06, 2007
  9. Nov 05, 2007
  10. Oct 31, 2007
    • rtoy's avatar
      Update from Paul Foley. · 989bf7e1
      rtoy authored
      o Disable package errors when loading up external formats.
      o A minor patch allowing string-to-octets and vice versa to write into
        a preallocated array (though they might still allocate a bigger one
        if necessary),
      o Fix up any confusion between simple-base-string and simple-string so
        that nothing breaks when/if they're not the same.
      989bf7e1
  11. Oct 25, 2007
    • rtoy's avatar
      Import Paul Foley's external-formats support. · e49c536b
      rtoy authored
      New files:
      o code/extfmts.lisp
      o pcl/simple-streams/external-formats/iso8859-1.lisp
      o pcl/simple-streams/external-formats/void.lisp
      
      code/exports.lisp:
      o Export the new symbols STRING-TO-OCTETS, OCTETS-TO-STRING,
        *DEFAULT-EXTERNAL-FORMAT*, ENCODE-STRING, and DECODE-STRING from the
        STREAM package
      o Make the symbols in the EXT package too.
      
      pcl/simple-streams/internal.lisp:
      o Move the implementation of STRING-TO-OCTETS and friends to a new
        file (extfmts.lisp).
      
      pcl/simple-streams/external-formats/utf-8.lisp:
      o New implementation.
      
      tools/make-main-dist.sh:
      o Create new target directory to hold external formats
      o Copy all of the external formats to the new directory.
      
      tools/pclcom.lisp:
      o Compile new code
      
      tools/worldcom.lisp:
      o Compile code/extfmts.lisp
      
      tools/worldload.lisp:
      o Load code/extfmts.lisp
      e49c536b
  12. Oct 18, 2007
    • rtoy's avatar
      Slight reimplemention of how tracing of local functions is done. We · 620750d0
      rtoy authored
      don't do the hackish list-of-name to find local debug function
      anymore.  This change allows us to retrace local functions when the
      function is redefined.
      
      code/debug-int.lisp:
      o Add :LOCAL-NAME keyword parameter to tell us to look for the local
        function within the given FUN.  The bizarre hack using a list as the
        FUN to do this is now gone.
      
      code/ntrace.lisp:
      o Change TRACE-FDEFINITION to return a fourth value if the function is
        a local function.  The fourth value is the name of the local
        function.
      
      o TRACE-1 recognizes the extra value from TRACE-FDEFINITION to
        determine if this is a local function that needs to be traced.
        Also, if DEFINITION is given, we process that carefully so we can
        trace the new definition with a local function.
      
      o UNTRACE-1 likewise updated to recognize and handle local functions.
      
      o TRACE-REFINED-UPDATE modified so that when a function is redefined,
        we retrace the function itself if it was traced (as before).  But we
        also look through the traced functions to see if we need to retrace
        the local definitions in this new function.
      620750d0
  13. Oct 10, 2007
    • rtoy's avatar
      o Use new RATIONAL-TO-DD function to convert bignums to · fa8ea7c8
      rtoy authored
        double-doubles.
      o Remove now unused DOUBLE-DOUBLE-FLOAT-FROM-BITS.
      
      This should fix an issue with converting bignums to double-doubles.
      For example (- (ash 1 150) 1) can now be be represented accurately as
      a double-double.
      fa8ea7c8
    • rtoy's avatar
      o Add RATIONAL-TO-DD, an accurate method to convert rationals to · 4f86a308
      rtoy authored
        double-double-floats.  (From Richard Fateman.)
      o Use that in FLOAT-RATIO for convertnig ratios to
        double-double-floats.
      o Remove old double-double-float support from FLOAT-RATIO.
      o Split FLOAT-RATIO in two, one supporting single/double floats, and
        one for double-double-floats.
      
      With these changes, I think we now have print/read consistency for
      double-double-float numbers.
      4f86a308
  14. Oct 09, 2007
  15. Oct 08, 2007
  16. Oct 04, 2007
    • rtoy's avatar
      The floating point precision was always getting reset to :53-bit, even · d88bcbc7
      rtoy authored
      if the user set a different value.  Fix this so the correct precision
      is restored.
      
      compiler/x86/parms.lisp:
      o Add new static-symbol *FPU-PRECISION* to hold the precision bits
        that are given in (setf floating-point-modes).
      
      compiler/x86/float.lisp:
      o Whenever (setf floating-point-modes) is called, save the precision
        bits to *FPU-PRECISION* so that get restored correctly in
        DEALLOC-NUMBER-STACK-SPACE.
      
      compiler/x86/c-call.lisp:
      o Update DEALLOC-NUMBER-STACK-SPACE VOP so that when float-accuracy
        policy says so, we restore the precision from *fpu-precision*,
        instead of always making it :53-bit.
      
      code/lispinit.lisp:
      o Initialize the default precision to :53-bit on startup.
      d88bcbc7
    • rtoy's avatar
      Oops. Delete extra paren. · 55e2e65b
      rtoy authored
      55e2e65b
  17. Oct 03, 2007
    • rtoy's avatar
      Fix for Trac ticket #1. · 686a18ac
      rtoy authored
      Instead of having scale-exponent scale the number and using the scaled
      number for printing, have flonum-to-string scale the number for us.
      There is no loss in precision in flonum-to-string, so we don't have
      round-off errors in printing the number.  This means (format nil "~E"
      1.234567890123456789d4) is printed as "1.2345678901234567d+4" instead
      of "1.2345678901234565d+0".  Then prin1 and ~E both call
      flonum-to-digits with exactly the same number, so prin1 and ~E should
      have the same printed result.
      
      These tests pass:
      
      (assert (string= (format nil "~9,4,,-7E" pi) ".00000003d+8"))
      (assert (string= (format nil "~9,4,,-5E" pi) ".000003d+6"))
      (assert (string= (format nil "~5,4,,7E" pi) "3141600.d-6"))
      (assert (string= (format nil "~11,4,,3E" pi) "  314.16d-2"))
      (assert (string= (format nil "~11,4,,5E" pi) "  31416.d-4"))
      (assert (string= (format nil "~11,4,,0E" pi) "  0.3142d+1"))
      (assert (string= (format nil "~9,,,-1E" pi) ".03142d+2"))
      (assert (string= (format nil "~,,,-2E" pi) "0.003141592653589793d+3"))
      (assert (string= (format nil "~,,,2E" pi) "31.41592653589793d-1"))
      (assert (string= (format nil "~E" pi) "3.141592653589793d+0"))
      (assert (string= (format nil "~9,5,,-1E" pi) ".03142d+2"))
      (assert (string= (format nil "~11,5,,-1E" pi) " 0.03142d+2"))
      (assert (string= (format nil "~G" pi) "3.141592653589793    "))
      (assert (string= (format nil "~9,5G" pi) "3.1416    "))
      (assert (string= (format nil "|~13,6,2,7E|" pi) "| 3141593.d-06|"))
      (assert (string= (format nil "~9,3,2,0,'%E" pi) "0.314d+01"))
      (assert (string= (format nil "~9,0,6f" pi) " 3141593."))
      (assert (string= (format nil "~6,2,1,'*F" pi) " 31.42"))
      (assert (string= (format nil "~6,2,1,'*F" (* 100 pi)) "******"))
      (assert (string= (format nil "~9,3,2,-2,'%@E" pi) "+.003d+03"))
      (assert (string= (format nil "~10,3,2,-2,'%@E" pi) "+0.003d+03"))
      (assert (string= (format nil "~15,3,2,-2,'%,'=@E" pi) "=====+0.003d+03"))
      (assert (string= (format nil "~9,3,2,-2,'%E" pi) "0.003d+03"))
      (assert (string= (format nil "~8,3,2,-2,'%@E" pi) "%%%%%%%%"))
      
      (assert (string= (format nil "~g" 1e0) "1.    "))
      (assert (string= (format nil "~g" 1.2d40) "12000000000000000000000000000000000000000.    "))
      
      (assert (string= (format nil "~e" 0) "0.0e+0"))
      (assert (string= (format nil "~e" 0d0) "0.0d+0"))
      (assert (string= (format nil "~9,,4e" 0d0) "0.0d+0000"))
      (assert (string= (format nil "~E" 1.234567890123456789d4) "1.2345678901234567d+0"))
      686a18ac
  18. Oct 02, 2007
    • rtoy's avatar
      compiler/locall.lisp · 63ddf98f
      rtoy authored
      o In MAYBE-CONVERT-TAIL-LOCAL-CALL, honor the notinline declaration
        when deciding if we can let convert a tail call.  This is useful for
        tracing of local functions.
      
      code/debug-int.lisp:
      o If we can't find a debug function, print a note that the (local)
        function might have been inlined.
      63ddf98f
  19. Oct 01, 2007
    • rtoy's avatar
      Fix bug in parse-time noted by Chisheng Huang, cmucl-imp, 24 Sep 2007: · d12fc085
      rtoy authored
      (parse-time "1 jan 2006") causes an error if Jan 1, 2006 isn't on the
      same day of the week as the current day of the week.
      
      Patch supplied by Madhu, cmucl-imp, 24 Sep 2007.
      
      o Change default dotw value from nil to -1 so we can properly
        initialize the dotw.
      d12fc085
  20. Sep 28, 2007
    • rtoy's avatar
      Fix bug noted by Chisheng Huang, cmucl-imp, 25 Sep 2007. · 2dac2760
      rtoy authored
      MAPHASH needs to grab the kv-vector from the hash table for each
      iteration because the hash table may have been rehashed.  (This mostly
      reverts the code to the previous version, where this bug was
      introduced.)
      2dac2760
  21. Sep 13, 2007
    • rtoy's avatar
      Untracing of flet/labels functions wasn't working and neither was · 010270ec
      rtoy authored
      retracing flet/labels functions.  This was caused by the hash-table in
      *TRACE-FUNCTIONS* using an EQ test.  This doesn't work well when the
      functions are lists like (FLET INNER OUTER).
      
      code/ntrace.lisp:
      o Change *TRACED-FUNCTIONS* to use an EQUAL table so lists can match.
      
      pcl/braid.lisp:
      o Move LISP::SXHASH-INSTANCE to low.lisp because we need it defined
        earlier because of the change to tracing.  Can't build PCL without
        this change.
      
      pcl/low.lisp:
      o LISP::SXHASH-INSTANCE moved here.
      010270ec
  22. Sep 10, 2007
  23. Sep 04, 2007
  24. Aug 28, 2007
    • rtoy's avatar
      Ticket #11 · 92f2f154
      rtoy authored
      Add case for double-double-float.
      92f2f154
  25. Aug 21, 2007
  26. Aug 17, 2007
    • rtoy's avatar
      code/env-access.lisp: · f5c564ec
      rtoy authored
      o Let's just return all of the declarations we know of, instead of
        removing some, in DECLARATION-INFORMATION.
      o Add the known set of CL (and CMUCL) declarations to the list of
        declarations that are returned in DECLARATIONS.
      o Add support for AUGMENT-ENVIRONMENT.
      
      code/exports.lisp:
      o Export AUGMENT-ENVIRONMENT from EXT package.
      o Import AUGMENT-ENVIRONMENT into C package.
      f5c564ec
    • rtoy's avatar
      Tweak grammar. · 70210bc8
      rtoy authored
      70210bc8
    • rtoy's avatar
      Generate more informative gensyms. · 2b52aaa0
      rtoy authored
      2b52aaa0
  27. Aug 08, 2007
Loading