sbcl.git
17 years ago0.9.18.62:
Cyrus Harmon [Mon, 20 Nov 2006 04:51:37 +0000 (04:51 +0000)]
0.9.18.62:
    FreeBSD threads fixes, based on the patches from NIIMI Satoshi
    on the sbcl-devel mailing list. This makes FreeBSD threads "work",
    finally, at least experimentally.

    * added lutex_trylock routine.
    * fix the sb-lutex and (not wait-p) case of get-lutex.
    * add pthred_mutexattr_t field to the lutex lisp object.
    * use libthr (1:1 threading) instead of libpthread (m:n threading)
      which supposedly doesn't work.
    * use PTHREAD_MUTEX_ERRORCHECK when attribute locking mutexes
    * create a dedicated cleanup thread to free threads
    * put a mutex around creating threads
    * use load_fs instead of the inline asm stubs

17 years ago0.9.18.61:
Christophe Rhodes [Sun, 19 Nov 2006 17:45:28 +0000 (17:45 +0000)]
0.9.18.61:
Callbacks for Linux/PPC, based on the patch from Joshua Ross
(joslwah sbcl-devel 2006-11-19).
... massage some of the comments into slightly better shape;
... rework the test case rather strongly.

17 years ago0.9.18.60:
Christophe Rhodes [Sun, 19 Nov 2006 11:26:15 +0000 (11:26 +0000)]
0.9.18.60:
Fix build on ppc/darwin (and probably also on ppc/linux)
... GNU make appears not to like the quotation marks around
the GC_SRC assignments.  The symptom was a silent
stop in the build after ldso-stubs.S.

17 years ago0.9.18.59:
Juho Snellman [Sun, 19 Nov 2006 01:47:32 +0000 (01:47 +0000)]
0.9.18.59:
        Bump fasl-file-version (at least CLOS calling convention changes).

17 years ago0.9.18.58:
Juho Snellman [Fri, 17 Nov 2006 02:15:47 +0000 (02:15 +0000)]
0.9.18.58:
        Further SB-SPROF improvements.

        * Allocation profiling on gencgc. When the profiler is running in
          allocation profiling mode, the gc will signal profiler ticks
          when new allocation regions are opened.
        * Add :LOOP keyword argument to WITH-PROFILING, to allow specifying
          whether the body should be evaluated repeatedly until the maximum
          sample count is reached.
        * Improve merging of code-components with multiple debug-funs,
          better handling of multiple functions with the same name
        * More documentation
        * Also update the stepper documentation

17 years ago0.9.18.57:
Nathan Froyd [Thu, 16 Nov 2006 04:18:55 +0000 (04:18 +0000)]
0.9.18.57:
Add missing 'return'.

17 years ago0.9.18.56:
Juho Snellman [Thu, 16 Nov 2006 03:24:07 +0000 (03:24 +0000)]
0.9.18.56:
        Fix SB-POSIX build on Windows (broken by largefile support). Thanks
        to Yaroslav Kavenchuk.

17 years ago0.9.18.55:
Nathan Froyd [Wed, 15 Nov 2006 16:35:17 +0000 (16:35 +0000)]
0.9.18.55:
Fix a 32/64-bit confusion.

17 years ago0.9.18.54:
Nathan Froyd [Wed, 15 Nov 2006 16:31:00 +0000 (16:31 +0000)]
0.9.18.54:
Unbreak #!-linkage-table builds by adding some forgotten calls
  in ldso-stubs.lisp.

17 years ago0.9.18.53:
Nathan Froyd [Wed, 15 Nov 2006 16:19:56 +0000 (16:19 +0000)]
0.9.18.53:
Optimize MAP and MAP-INTO with vector arguments.

* Introduce new optimization quality, INSERT-ARRAY-BOUNDS-CHECKS;
* Use it in the %MAP and MAP-INTO transforms.  (We needed something
  more fine-grained than (SAFETY 0), because we still want
  any necessary type-checking to take place.  But we know that
  eliminating the bounds checks are safe.)

17 years ago0.9.18.52:
Nathan Froyd [Tue, 14 Nov 2006 22:15:20 +0000 (22:15 +0000)]
0.9.18.52:
If possible, use a shorter XOR instruction on x86-64 when we zero
  a register.

17 years ago0.9.18.51:
Thiemo Seufer [Tue, 14 Nov 2006 20:23:33 +0000 (20:23 +0000)]
0.9.18.51:
Fix GC-unsafe temporary variable.

17 years ago0.9.18.50:
Juho Snellman [Tue, 14 Nov 2006 03:59:52 +0000 (03:59 +0000)]
0.9.18.50:
        Various improvements to SB-SPROF (more speed, reliability and
        usability, less consing and source code).

        * Do the pc -> debug-info mapping in the signal handler, rather
          than just storing the PCs and waiting until REPORT is called.
        * Remove huge swathes of code for adjusting the PCs after GCs
          (I don't think this had actually worked in quite a while, anyway).
          This removes the slowdowns for long profiling runs.
        * Show samples from assembly routines in the report, rather than
          just grouping them all under "no debug information".
        * Clean up SB-C::TL-XEPs etc. from function names
        * Add an UNWIND-PROTECT to ensure WITH-PROFILING always stops
          profiling.
        * Make sigprof-handler mostly non-consing. (There's still a
          few words of consing / signal handler invocation, but that happens
          for all Lisp-side signal handlers).

        For the last point, some core SBCL changes are also needed:

        * Make a bunch of signal-context accessors inlineable to reduce
          SAP to pointer conversions
        * Restructure x86-call-context to always return SAPs in certain
          return value positions, to allow the compiler to keep them
          in registers. Rewrite recursion with a local function.

17 years ago0.9.18.49:
Juho Snellman [Mon, 13 Nov 2006 16:03:29 +0000 (16:03 +0000)]
0.9.18.49:
        Fix Linux/x86 build after a clean.sh.

        * Write the target features to genesis/Makefile.features, included
          into other makefiles.
        * Remove the disgusting shell/grep tricks for feature-based
          conditionalizing in Makefiles

17 years ago0.9.18.48:
Juho Snellman [Mon, 13 Nov 2006 07:20:20 +0000 (07:20 +0000)]
0.9.18.48:
        Make calling methods with &OPTIONALs or &KEYs faster and non-consing.

        * Change fast method functions to use the normal Lisp argument
          passing convention, rather than the CLOS-style "required arguments
          as normal Lisp arguments, non-required ones passed as one
          list" convention.
        * Don't do argument parsing manually in the FMFs generated by
          MAKE-METHOD-INITARGS-FORM-INTERNAL1
        * Use &MORE instead of &REST in DFUN lambda lists.
        * Clean up the lambda-list generation mess in cache.lisp / dlisp.lisp

17 years ago0.9.18.47:
Juho Snellman [Mon, 13 Nov 2006 06:10:15 +0000 (06:10 +0000)]
0.9.18.47:
        Faster &MORE-handling VOPs on x86 and x86-64.

        * The performance of LOOP is really bad on modern x86, rewrite
          the loops in %LISTIFY-REST-ARGS and %MORE-ARG-VALUES to do
          the index manipulation and branching explicitly.
        * REP MOVS isn't very good for copying small blocks of memory, use
          an explicit loop in COPY-MORE-ARG.
        * Rewrite the x86-64 COPY-MORE-ARG to take advantage of the extra
          registers.
        * Implement %MORE-ARG (exists on all other platforms).

17 years ago0.9.18.46:
Juho Snellman [Sun, 12 Nov 2006 23:04:57 +0000 (23:04 +0000)]
0.9.18.46:
        Support files >2GB on Linux/x86.

        * Compile the runtime (and the C type grovelers) with various flags
          to enable a 64-bit off_t.
        * Add C-side wrappers for various POSIX functions, so that we can
          reliably get the largefile versions of them from Lisp-side.

17 years ago0.9.18.45
Rudi Schlatte [Sun, 12 Nov 2006 21:42:27 +0000 (21:42 +0000)]
0.9.18.45
 "Patch to update Japanese external formats" (NIIMI Satoshi, 2006-11-10)
  * New external format: Shift-JIS

17 years ago0.9.18.44:
Christophe Rhodes [Sun, 12 Nov 2006 09:20:19 +0000 (09:20 +0000)]
0.9.18.44:
Patch from Zach Beane for sb-posix support for time, utime and
utimes.

17 years ago0.9.18.43:
Juho Snellman [Thu, 9 Nov 2006 21:30:20 +0000 (21:30 +0000)]
0.9.18.43:
        Signal an error for attempts to displace an array to an array with
        a different element type (patch by Mario Mommer).

        Also mark a couple of float tests as passing on FreeBSD (patch
        by NIIMI Satoshi).

17 years ago0.9.18.42:
Juho Snellman [Thu, 9 Nov 2006 20:34:30 +0000 (20:34 +0000)]
0.9.18.42:
        TRANSLATE-PATHNAME was selecting the version component from
        FROM-WILDCARD rather than SOURCE. (Reported by Josip Gracin,
        apparently causing trouble for cl-darcs).

17 years ago0.9.18.41: add Nikodemus Siivola / Steel Bank Studio Ltd to SUPPORT
Nikodemus Siivola [Wed, 8 Nov 2006 06:18:57 +0000 (06:18 +0000)]
0.9.18.41: add Nikodemus Siivola / Steel Bank Studio Ltd to SUPPORT

17 years ago0.9.18.40:
Christophe Rhodes [Tue, 7 Nov 2006 11:04:38 +0000 (11:04 +0000)]
0.9.18.40:
Update the manual's description of threading to reflect
currently supported platforms.

17 years ago0.9.18.39:
Christophe Rhodes [Tue, 7 Nov 2006 10:51:39 +0000 (10:51 +0000)]
0.9.18.39:
ASDF update: better SBCL_HOME handling.

17 years ago0.9.18.38:
Juho Snellman [Tue, 7 Nov 2006 10:22:09 +0000 (10:22 +0000)]
0.9.18.38:
        Typechecking for CLOS instance slots, based on the earlier
        clos-typechecking branch by Christophe Rhodes.

        To get the typechecking right, especially when considering
        inheritance where the slots in subclasses can have tighter
        :TYPEs than in the superclass, some major PCL optimizations
        need to be disabled. This slows down slot writes significantly.
        Typechecking is thus only enabled for safe code.

        * Store a function in each slot-definition with a non-T :TYPE, which
          checks whether its parameter is of the proper type for the slot.
        * Store in each class knowledge about whether the class was defined
          in an environment with (SAFETY 3) policy.
        * Don't do PV optimization for SETF of SLOT-VALUE in safe code.
        * When generating writer methods for classes defined in safe code,
          fetch the appropriate slotd for the instance and call its
          type-checking-function (if one exists) before doing the slot write.
        * Do the same in the slow path of SET-SLOT-VALUE
        * When generating a ctor for a MAKE-INSTANCE call in safe code,
          check the types of the supplied initargs.
        * Fix declaration handling for some binding forms in SB-WALK
        * Remove dead accessor-call optimization code
        * Tests

17 years ago0.9.18.37:
Nathan Froyd [Tue, 7 Nov 2006 01:08:24 +0000 (01:08 +0000)]
0.9.18.37:
Commit Lutz Euler's "Patch: Fix symbol counts in DESCRIBE on
  packages", sbcl-devel 2006-11-05.

17 years ago0.9.18.36:
Nathan Froyd [Tue, 7 Nov 2006 01:06:02 +0000 (01:06 +0000)]
0.9.18.36:
Commit Ossi Herrala's "Small nuisance with NetBSD", sbcl-devel
  2006-11-06.

17 years ago0.9.18.35:
Nathan Froyd [Tue, 7 Nov 2006 01:02:50 +0000 (01:02 +0000)]
0.9.18.35:
Commit Matthew Swank's "patch to allow compiler dependent doc to
  build under cygwin/win32", sbcl-devel 2006-11-06.

17 years ago0.9.18.34:
Thiemo Seufer [Sat, 4 Nov 2006 22:34:32 +0000 (22:34 +0000)]
0.9.18.34:
Fix build failure with texinfo from debian/unstable.

17 years ago0.9.18.33:
Thiemo Seufer [Sat, 4 Nov 2006 18:56:10 +0000 (18:56 +0000)]
0.9.18.33:
Build fix for cheneygc.

17 years ago0.9.18.32: room test that was supposed to be in 0.9.18.31
Nikodemus Siivola [Fri, 3 Nov 2006 19:56:36 +0000 (19:56 +0000)]
0.9.18.32: room test that was supposed to be in 0.9.18.31

17 years ago0.9.18.31: room fix
Nikodemus Siivola [Fri, 3 Nov 2006 19:53:59 +0000 (19:53 +0000)]
0.9.18.31: room fix
 * Type-error: SHIFT in VECTOR-TOTAL-SIZE had a bogus declaration,
   masked by SAFETY 0. Remove the offending declaration and increase
   safety.
 * A more aggressive ROOM test.

17 years ago0.9.18.30:
Juho Snellman [Fri, 3 Nov 2006 11:47:56 +0000 (11:47 +0000)]
0.9.18.30:
        Fix x86-64 build (dodgy assertion, no real bug).

17 years ago0.9.18.29: --dynamic-space-size command-line switch
Nikodemus Siivola [Thu, 2 Nov 2006 17:18:36 +0000 (17:18 +0000)]
0.9.18.29: --dynamic-space-size command-line switch
 * Based on the patch by David Lichteblau. Default size of the
   dynamic space is the same as it used to be, but can be altered
   at startup.
 * Delete dead variables: stop_the_world and
   *INITIAL-DYNAMIC-SPACE-FREE-POINTER*.
 * Rewrote --help output to more typical usage format.

17 years ago0.9.18.28: allow read-only space to be placed in higher addresses on PPC
Nikodemus Siivola [Thu, 2 Nov 2006 15:35:12 +0000 (15:35 +0000)]
0.9.18.28: allow read-only space to be placed in higher addresses on PPC
 * Rewrite jumps encoding addresses to read-only space with a spare
   register so that the address range is not limited.
 * This means that fix-rospace magic can go away. (But the real reason for
   this is the forthcoming adjustable dynamic-space-size and
   relocation, which in conjunction with the rospace magic make me
   uncomfortable).

17 years ago0.9.18.27: fix darwin build
Nikodemus Siivola [Thu, 2 Nov 2006 15:11:25 +0000 (15:11 +0000)]
0.9.18.27: fix darwin build
 * Deal with missing FPE_FOO constants.

17 years ago0.9.18.26:
Juho Snellman [Thu, 2 Nov 2006 14:18:23 +0000 (14:18 +0000)]
0.9.18.26:
        Err... Also including the 64-bit input routines might make the
        64-bit output routines somewhat more useful.

17 years ago0.9.18.25:
Juho Snellman [Thu, 2 Nov 2006 13:24:00 +0000 (13:24 +0000)]
0.9.18.25:
        Support u-b 64 / s-b 64 streams with native endianity on 64-bit
        platforms.

17 years ago0.9.18.24:
Juho Snellman [Thu, 2 Nov 2006 12:55:51 +0000 (12:55 +0000)]
0.9.18.24:
        Fix SB-EXECUTABLE on win32. (Patch by Marko Kocic, sbcl-devel
        "sb-executable mingw patch" on 2006-08-29).

        * Yes, SB-EXECUTABLE is mostly useless, since nobody uses it
          for making "executables". But there are libraries that load
          SB-EXECUTABLE for the unfortunately exported COPY-STREAM
          function.
        * Oops, whitespace damage from 0.9.18.23.

17 years ago0.9.18.23:
Juho Snellman [Thu, 2 Nov 2006 12:10:40 +0000 (12:10 +0000)]
0.9.18.23:
        Fix SB-POSIX:STAT and friends on NetBSD. (Patch by Richard
        Kreuter, sbcl-devel "Request for advice re sb-posix:stat on
        NetBSD" on 2006-10-15)

17 years ago0.9.18.22:
Juho Snellman [Thu, 2 Nov 2006 12:00:30 +0000 (12:00 +0000)]
0.9.18.22:
        Use the si_code field for mapping FP exceptions to conditions
        on Posix platforms (Patch by NIIMI Satoshi, sbcl-devel "Patch to handle
        floating point exception" on 2006-10-30).

17 years ago0.9.18.21:
Juho Snellman [Thu, 2 Nov 2006 11:17:56 +0000 (11:17 +0000)]
0.9.18.21:
        Fix DEFUN-CACHED thread/interrupt-safety issues. It was
        possible for FOO-CACHE-ENTER to modify a region in the cache
        vector while FOO-CACHE-LOOKUP had only partially read it.

        * Instead of storing all the data in one vector, the main
          cache vector will only contain references to bucket vectors,
          which contain the real data. FOO-CACHE-ENTER will always
          allocate a new bucket, old buckets are never modified. Thus
          FOO-CACHE-LOOKUP consistently sees either a pre- or post-
          FOO-CACHE-ENTRY state.

17 years ago0.9.18.20: correct step-frame logic on non-x86oids
Nikodemus Siivola [Wed, 1 Nov 2006 13:00:40 +0000 (13:00 +0000)]
0.9.18.20: correct step-frame logic on non-x86oids
 * Single-stepping tests now pass on ppc/darwin, at least.

17 years ago0.9.18.19: oops, tests hang!
Nikodemus Siivola [Wed, 1 Nov 2006 11:48:39 +0000 (11:48 +0000)]
0.9.18.19: oops, tests hang!
 * Something wrong with stepping, make it at least finish the tests.

17 years ago0.9.18.18: SAVE-LISP-AND-DIE vs multiple threads
Nikodemus Siivola [Mon, 30 Oct 2006 11:15:03 +0000 (11:15 +0000)]
0.9.18.18: SAVE-LISP-AND-DIE vs multiple threads
 * Check that only a single thread exists after *SAVE-HOOKS* have been
   run -- or signal an error.

17 years ago0.9.18.17: Hyperbolic functions for Win32
Nikodemus Siivola [Mon, 30 Oct 2006 10:53:45 +0000 (10:53 +0000)]
0.9.18.17: Hyperbolic functions for Win32
 * Lisp-side definitions for %TANH, %ASINH, %ACOSH, and %ATANH.
 * One sequence test tweaked to make it run on Windows.

17 years ago0.9.18.16: disassembly of funcallable instances
Nikodemus Siivola [Mon, 30 Oct 2006 08:11:49 +0000 (08:11 +0000)]
0.9.18.16: disassembly of funcallable instances
 * Pull out the funcallable-instance-fun using %FUN-FUN.
 * Test.

17 years ago0.9.18.15: fix adjust-array :fill-pointer buglet, plus housekeeping
Nikodemus Siivola [Sun, 29 Oct 2006 21:05:58 +0000 (21:05 +0000)]
0.9.18.15: fix adjust-array :fill-pointer buglet, plus housekeeping
 * Reported by Lars Brinkhoff: "An error of type error is signaled if
   fill-pointer is supplied and non-nil but array has no fill pointer."
 * Test-case.
 * Improve the localtime/gmtime KLUDGE for Windows: instead of
   flipping the sign of time, use zero -- still arbitrary, but
   slightly less so. "Where there timezones before 1970, geez!"
 * Oops! Broken test-case from 0.9.18.12 fixed.

17 years ago0.9.18.14:
Thiemo Seufer [Sun, 29 Oct 2006 20:19:27 +0000 (20:19 +0000)]
0.9.18.14:
Define CAUSEF_BD in the file, Linux 2.6.18 stopped exporting
the define.

17 years ago0.9.18.13:
Thiemo Seufer [Sun, 29 Oct 2006 20:14:26 +0000 (20:14 +0000)]
0.9.18.13:
More .cvsignores.

17 years ago0.9.18.12: valid/already-dumped confusion in the file compiler/
Nikodemus Siivola [Sun, 29 Oct 2006 19:44:45 +0000 (19:44 +0000)]
0.9.18.12: valid/already-dumped confusion in the file compiler/
 * A constant is not already dumped just because it is in the valid
   table.
 * Fopcompiler was validating the wrong object occasionally.
   Unfortunately the *DUMP-ONLY-VALID-STRUCTURES* binding still
   needed. Couple of FIXME's pertaining to that added.
 * Useless WHEN in EMIT-MAKE-LOAD-FORM deleted.
 * Record a bug.

17 years ago0.9.18.11: whitespace
Nikodemus Siivola [Sat, 28 Oct 2006 09:57:00 +0000 (09:57 +0000)]
0.9.18.11: whitespace
 * Undo whitespace damage from Window commits.

17 years ago0.9.18.11: Remove unused (probably wrong) definition of malloc from sb-bsd-sockets
Andreas Fuchs [Fri, 27 Oct 2006 21:44:42 +0000 (21:44 +0000)]
0.9.18.11: Remove unused (probably wrong) definition of malloc from sb-bsd-sockets

17 years ago0.9.18.10: Win32 get_timezone robustness
Nikodemus Siivola [Thu, 26 Oct 2006 16:17:15 +0000 (16:17 +0000)]
0.9.18.10: Win32 get_timezone robustness
 * Windows localtime & gmtime functions don't like negative times.

17 years ago0.9.18.9: Pathname Love on Win32
Nikodemus Siivola [Thu, 26 Oct 2006 16:07:52 +0000 (16:07 +0000)]
0.9.18.9: Pathname Love on Win32
 * Namestring simplification (was UNIX-SIMPLIFY-PATHNAME) is now
   function of the host. Shamelessly cargo-culted Win32 version from
   the Unix version.
 * Kludged %ENUMERATE-DIRECTORIES to work with :WILD-INFERIORS on
   Win32.
 * Fix UNPARSE-NATIVE-WIN32-NAMESTRING to handle #P"X:\\FOO" case
   correctly. ("X:\\FOO", not "X:\\\\FOO")
 * Missing NEWS entry for 0.9.18.8.
 * Correct order of arguments to MERGE-PATHNAMES in SYSINIT-PATHNAME.
 * Couple of WITH-TEST additions to test-suite.

17 years ago0.9.18.8: LET* and VALUES declaration
Nikodemus Siivola [Thu, 26 Oct 2006 11:37:56 +0000 (11:37 +0000)]
0.9.18.8: LET* and VALUES declaration
 * Wrong arguments to PROCESSING-DECLARATIONS in the LET*
   ir1-translator.
 * Test-case.

17 years ago0.9.18.7: Win32 RUN-PROGRAM :WAIT T tweak
Nikodemus Siivola [Thu, 26 Oct 2006 10:29:47 +0000 (10:29 +0000)]
0.9.18.7: Win32 RUN-PROGRAM :WAIT T tweak
 * Only -1 as result means the spawn failed: other negative
   return values are error codes.

17 years ago0.9.18.6: Win32 get-internal-real-time improved
Nikodemus Siivola [Thu, 26 Oct 2006 08:38:49 +0000 (08:38 +0000)]
0.9.18.6: Win32 get-internal-real-time improved
 * The old version was accurate only to the second, new one gets
   milliseconds right.
 * Move unix/win32 implementation bodies of GET-INTERNAL-*-TIME to
   unix.lisp and win32.lisp (less conditionalization).
 * Move *GC-RUN-TIME* zeroing to GC-REINIT.
 * Initialize the system epoch to start time, not to time of first
   call to GET-INTERNAL-REAL-TIME, document system epoch in
   GET-INTERNAL-REAL-TIME.
 * Sort the stub function calls in src/runtime/win32.c nicely.

17 years ago0.9.18.5: Support DISASSEMBLE for interpreted functions.
Brian Downing [Thu, 26 Oct 2006 04:26:20 +0000 (04:26 +0000)]
0.9.18.5:  Support DISASSEMBLE for interpreted functions.
  * Support DISASSEMBLE for interpreted functions, by compiling (but
    not installing) the function beforehand.
  * Add tests to interface.impure.lisp for the above.

17 years ago0.9.18.4: Fix non-x86 builds.
Brian Downing [Thu, 26 Oct 2006 03:55:20 +0000 (03:55 +0000)]
0.9.18.4:  Fix non-x86 builds.
  * Make :precision :53-bit in *saved-floating-point-modes*
    conditional upon #!+x86.

17 years ago0.9.18.3: Canonicalize whitespace.
Brian Downing [Thu, 26 Oct 2006 03:22:21 +0000 (03:22 +0000)]
0.9.18.3:  Canonicalize whitespace.

17 years ago0.9.18.2: Win32 exceptions
Nikodemus Siivola [Wed, 25 Oct 2006 17:07:53 +0000 (17:07 +0000)]
0.9.18.2: Win32 exceptions
 * Floating point exceptions.
 * Stack exhaustion exception.
 * Rename FIND-INTERRUPTED-NAME to FIND-INTERRUPTED-NAME-AND-FRAME.
 * Commentary (questionary?) on the Win32 exception magic.
 * More groveling.

 Alert: grovel-headers.c/defconstant uses now unsigned long, not long.
 Works on Linux/x86, Win32, and Darwin/ppc. If breaks elsewhere then
 define_signed_const and define_unsigned_const needed.

17 years ago0.9.18.1: Small floating point related tweaks
Nikodemus Siivola [Wed, 25 Oct 2006 16:24:43 +0000 (16:24 +0000)]
0.9.18.1: Small floating point related tweaks
 * Introduce FLOAT-COLD-INIT-OR-REINIT fixing a couple of
   COLD-INIT/REINIT FIXME's for more OAOO.
 * Save floating point modes in core, and restore them on startup.
 * Move SET/GET-FLOATING-POINT-MODES documentation from comments to
   docstrings.

17 years ago0.9.18:
William Harold Newman [Wed, 25 Oct 2006 14:58:40 +0000 (14:58 +0000)]
0.9.18:
release, will be tagged as sbcl_0_9_18

17 years ago0.9.17.18: fix windows build, MAKE-ALIEN compiler note muffled fully
Nikodemus Siivola [Mon, 23 Oct 2006 13:45:51 +0000 (13:45 +0000)]
0.9.17.18: fix windows build, MAKE-ALIEN compiler note muffled fully
 * Win32 build needs MAKE-ALIEN much earlier then other platforms,
   so restore MAKE-ALIEN to its old place in target-alieneval.lisp,
   and muffle the %SAP-ALIEN note from there unconditionally.

17 years ago0.9.17.17:
Brian Downing [Sat, 21 Oct 2006 07:23:13 +0000 (07:23 +0000)]
0.9.17.17:
  * Support INTERPRETED-FUNCTIONs in SB-INTROSPECT:FUNCTION-ARGLIST.
    Problem reported by <baronsamdi@verizon.net>.

17 years ago0.9.17.16:
Nathan Froyd [Thu, 19 Oct 2006 02:06:12 +0000 (02:06 +0000)]
0.9.17.16:
Delete dead checked-cell-ref VOP in x86oid backends.

17 years ago0.9.17.15: silence %SAP-ALIEN compiler-note for MAKE-ALIEN in default policy
Nikodemus Siivola [Wed, 18 Oct 2006 13:59:21 +0000 (13:59 +0000)]
0.9.17.15: silence %SAP-ALIEN compiler-note for MAKE-ALIEN in default policy
 * Uses of MAKE-ALIEN are a common source of unavoidable notes about
   unoptimized %SAP-ALIEN, which only serve to mask the ones the user
   can do something about.

17 years ago0.9.17.14:
William Harold Newman [Wed, 18 Oct 2006 13:47:06 +0000 (13:47 +0000)]
0.9.17.14:
a bit of OAOOification in the way tests/run-tests.sh code
invokes SBCL, so that now it consistently ignores
.sbclrc again, so tests succeed even when .sbclrc
contains (BREAK)

17 years ago0.9.17.13: SB-POSIX:CFSET*SPEED, SB-POSIX:CFGET*SPEED, and related constants
Nikodemus Siivola [Wed, 18 Oct 2006 11:42:26 +0000 (11:42 +0000)]
0.9.17.13: SB-POSIX:CFSET*SPEED, SB-POSIX:CFGET*SPEED, and related constants
  * Patch by Max-Gerd Retzlaff. cfsetspeed left out as non-portable,
    cfgetispeed and cfgetospeed added.
  * Tests -- which have not been properly run, and aren't run as part
    of the SB-POSIX suite, since they require serial port access.

17 years ago0.9.17.12: restore win32 and x86-darwin buildability
Nikodemus Siivola [Mon, 9 Oct 2006 16:53:35 +0000 (16:53 +0000)]
0.9.17.12: restore win32 and x86-darwin buildability
 * trivial assembler directive fixes

17 years ago0.9.17.11:
Christophe Rhodes [Mon, 9 Oct 2006 14:56:43 +0000 (14:56 +0000)]
0.9.17.11:
Scribble some notes on funcallable instances before I forget.

17 years ago0.9.17.10: async unwind for specials
Gabor Melis [Fri, 6 Oct 2006 11:44:20 +0000 (11:44 +0000)]
0.9.17.10: async unwind for specials
  * in UNBIND zero the symbol before the value
  * in UNBIND-TO-HERE zero the value even if the symbol is zero

17 years ago0.9.17.9:
Christophe Rhodes [Fri, 6 Oct 2006 11:24:47 +0000 (11:24 +0000)]
0.9.17.9:
One missing include directive which got through the net.

17 years ago0.9.17.8:
Christophe Rhodes [Fri, 6 Oct 2006 10:54:09 +0000 (10:54 +0000)]
0.9.17.8:
MORE THREADSAFE FUNCALLABLE-INSTANCE
... in a threaded world, we can't set the function and lexenv
of a funcallable instance separately, because some other
thread might inconveniently funcall the object 'twixt
the one and the other.
... instead, make the funcallable-instance-function a
fully-fledged slot, and give a funcallable-instance a
trampoline which knows how to call it.
... which means implementing this strategy for $n$
architectures.  Tested on x86, x86-64, ppc, alpha and
sparc; completely untested on mips, and unimplemented
on hppa.

This removes some of the complexity in calling closures (the
closure-self slot is now redundant, as is the extra
indirection).  Other miscellaneous fixes:
* extract-fun-type worked only by accident;
* new magic :init :funcallable-instance-tramp for primitive
  objects
* verify_space() need no longer worry its little brain about
  undefined_tramp and closure_tramp (I think)
* test case for threaded funcallable-instance interaction.

17 years ago0.9.17.7:
Juho Snellman [Mon, 2 Oct 2006 14:43:16 +0000 (14:43 +0000)]
0.9.17.7:
        Implementation of STEP-OUT was completely bogus.

        * Only do the *STEP-OUT* binding / handling only around the STEP-INTO
          branch in the step-around wrapper, not around the STEP-NEXT /
          CONTINUE / OUT branch.
        * Detect attempts to STEP-OUT when there is no matching STEP-IN
          also in STEP-FORM, not just in the debugger repl
        * Test

17 years ago0.9.17.6:
Juho Snellman [Mon, 2 Oct 2006 13:43:19 +0000 (13:43 +0000)]
0.9.17.6:
        Cleanup.

        * Fix formatting of sub-items in 0.9.17 NEWS (thanks to Kevin Reid)
        * gc.lisp whitespace canonicalization

17 years ago0.9.17.5:
Juho Snellman [Mon, 2 Oct 2006 11:34:30 +0000 (11:34 +0000)]
0.9.17.5:
        The debugger tends to not show all variables regardless of the
        optimization policy. Fix the most common reason for that happening.

        * When compiling with a high debug quality, don't do substitution for
          variables that are only used once.
        * Except for variables introduced in DEFTRANSFORM inline
          lambdas, since they're not going to very interesting for the
          debugger.

17 years ago0.9.17.5:
Juho Snellman [Mon, 2 Oct 2006 11:34:25 +0000 (11:34 +0000)]
0.9.17.5:
        The debugger tends to not show all variables regardless of the
        optimization policy. Fix the most common reason for that happening.

        * When compiling with a high debug quality, don't do substitution for
          variables that are only used once.
        * Except for variables introduced in DEFTRANSFORM inline
          lambdas, since they're not going to very interesting for the
          debugger.

17 years ago0.9.17.4:
Juho Snellman [Mon, 2 Oct 2006 06:38:35 +0000 (06:38 +0000)]
0.9.17.4:
Fix the STORE-VALUE restart for CHECK-TYPE on non-variable places
        (DO considered harmful).

17 years ago0.9.17.3:
Juho Snellman [Mon, 2 Oct 2006 05:15:44 +0000 (05:15 +0000)]
0.9.17.3:
Fix negation of character-set types (reported by Anton Kazennikov
        on comp.lang.lisp).

17 years ago0.9.17.2: fix two potential GC deadlocks
Nikodemus Siivola [Wed, 27 Sep 2006 11:03:17 +0000 (11:03 +0000)]
0.9.17.2: fix two potential GC deadlocks
 * Dying threads used to grab session and all-threads locks
   with GC inhibited, which was bad:
    1. T1 has the lock, GC not inhibited
       T2 in HANDLE-THREAD-EXIT waiting for the lock, GC inhibited
    2. GC is triggered
    3. T1 stopped while holding the lock
       T2 deadlocks waiting for T1 to release the lock.
 * Mark threads dead while holding the *ALL-THREADS-LOCK*, so that
     (unless (thread-alive-p th)
       (assert (not (member th (list-all-threads)))))
   cannot fail.
 * Since dying threads can now trigger GCs, don't run after-gc hooks
   and finalizers if the thread has been marked as dead.
 * Move all thread cleanup logic to HANDLE-THREAD exit.

17 years ago0.9.17.1:
Thiemo Seufer [Tue, 26 Sep 2006 23:10:02 +0000 (23:10 +0000)]
0.9.17.1:
Improve thread safety.

17 years ago0.9.17:
William Harold Newman [Tue, 26 Sep 2006 17:26:55 +0000 (17:26 +0000)]
0.9.17:
release, will be tagged as sbcl_0_9_17

17 years ago0.9.16.46:
Juho Snellman [Sun, 24 Sep 2006 15:47:27 +0000 (15:47 +0000)]
0.9.16.46:
        Fix regressions:

        * Installation was broken with non-bash /bin/sh (thanks to
          Niimi Satoshi for the patch)
        * DEFAULT-EXTERNAL-FORMAT would now try to print a warning for
          an invalid external format before streams had been initialized,
          causing an infinite error loop (reported by Hannu Koivisto).
          Temporary fix is just not printing the warning, a better fix
          will wait until after the freeze.
        * Also stop autodetecting the external format from the locale
          on non-unicode builds. Having a default external format that's
          incompatible with CHARACTER doesn't seem very sensible, especially
          now that the external formats are also used for SB-ALIEN:C-STRING
          instead of just streams.

17 years ago0.9.16.45:
Juho Snellman [Wed, 20 Sep 2006 18:18:19 +0000 (18:18 +0000)]
0.9.16.45:
        Fix building with CMUCL (typo in the name of an IGNOREd variable
        in !DEFSTRUCT-WITH-ALTERNATE-METACLASS).

17 years ago0.9.16.44:
Juho Snellman [Wed, 20 Sep 2006 18:05:02 +0000 (18:05 +0000)]
0.9.16.44:
        Stepper tweaks:

        * Inhibit stepping while calling the stepper hook.
        * Make the body of STEP steppable
        * Signal a STEP-FINISHED-CONDITION when STEP returns

17 years ago0.9.16.43:
Juho Snellman [Wed, 20 Sep 2006 15:04:48 +0000 (15:04 +0000)]
0.9.16.43:
        Switch to using the more accurate method of determining
        *STEP-FRAME* on x86/x86-64 where SIGNAL-CONTEXT-FRAME works.
        Retain the previous kludge on non-x86, where SIGNAL-CONTEXT-FRAME
        seems to be completely broken.

17 years ago0.9.16.42:
Juho Snellman [Wed, 20 Sep 2006 14:50:40 +0000 (14:50 +0000)]
0.9.16.42:
        Always update TN-CURRENT-CONFLICT after the innermost loop of
        PROPAGATE-LIVE-TNS has found a match, and not just every time
        it converts a :READ conflict to a :LIVE conflict. This avoids
        useless travelsals over the tnwise global-conflicts chain, speeding
        up compilation when there are lots of global conflicts (for
        example on (DEBUG 3)). Thanks to David Lichteblau.

17 years ago0.9.16.41:
Juho Snellman [Wed, 20 Sep 2006 12:08:22 +0000 (12:08 +0000)]
0.9.16.41:
        More win32 fixes.  (Thanks to Yaroslav Kavenchuk: sbcl-devel
        "win32 regression" on 2006-09-18 and "merge-pathnames on
        win32" on 2006-09-19)

        * Double the size of the string buffers given to syscalls on
          sb-unicode, since the data is going to be in UCS-2 instead of
          some single-octet encoding
        * Fix the code for finding the system-wide sbclrc
        * Whitespace

17 years ago0.9.16.40:
Juho Snellman [Tue, 19 Sep 2006 23:38:32 +0000 (23:38 +0000)]
0.9.16.40:
Don't do permutation vector optimization for SLOT-VALUE on method
        parameters that are SETQd [see the test ((:setq :method-parameter)
        slot-value) in clos.impure.lisp].

        * WALK-METHOD-LAMBDA detects parameters whose bindings are modified,
          and returns them as a list
        * MAKE-METHOD-LAMBDA-INTERNAL adds a symbol-macrolet
          %PARAMETER-BINDING-MODIFIED with that list as a value around
          the method body
        * OPTIMIZED-SLOT-VALUE and friends no longer directly return the
          optimized form when the method is being walked, but a macro
          that expands to either the optimized or unoptimized form, based
          on %PARAMETER-BINDING-MODIFIED
        * As a side effect, SETQ-P becomes a little more accurate

17 years ago0.9.16.39:
Juho Snellman [Tue, 19 Sep 2006 21:35:33 +0000 (21:35 +0000)]
0.9.16.39:
        Oops, unblock interrupts while handling a single-stepper trap. Fixes
        GC deadlocks while using the stepper in Slime on a threaded
        SBCL.

17 years ago0.9.16.38:
Juho Snellman [Mon, 18 Sep 2006 20:09:13 +0000 (20:09 +0000)]
0.9.16.38:
        Rewrite the single-stepper to solve the compilation/run-time
        performance and type-inference inaccuracy problems with the old
        approach. Also make some UI improvements to the stepper.

        * The IR1 stage no longer instruments the code. Instead it
          only detects function call forms which should (according to
          the policy) be steppable, and records a string
          representation of those forms in the matching combination
          nodes (to be stored in the debug-info).
        * Modify the function call vops to emit some instrumentation just
          before the actual call happens. This will check either the
          symbol-value of *STEPPING* (unithreaded) or the new STEPPING
          slot of threads (multithreaded) and trap if it's true. The
          trap handler will replace the closure / fdefn that was about
          to be called with a wrapper, which will signal a stepper
          condition and then call the original function.
        * Emit a similar bit of instrumentation before any call that
          got optimized to a simple VOP. The difference is that the
          only thing that the trap handler will do is to directly
          signal the condition.
        * The necessary VOP / runtime changes have only been done on
          x86, x86-64 and ppc so far. Alpha, Mips and Sparc should
          still compile, but the stepper won't work there.
        * Remove the old single-stepper REPL, and instead integrate the
          stepper into the debugger.
        * Add STEP-OUT functionality (stop stepping temporarily,
          resuming it once the current function returns).

17 years ago0.9.16.37:
Christophe Rhodes [Mon, 18 Sep 2006 14:26:49 +0000 (14:26 +0000)]
0.9.16.37:
Minor fixups
... fix building on x86-64 (delete some extra parens...)
... make funcallable-standard-objects (including generic
functions) properly inspectable again, after the
change of the superclasses' order.

17 years ago0.9.16.36:
Juho Snellman [Mon, 18 Sep 2006 11:28:05 +0000 (11:28 +0000)]
0.9.16.36:
        Oops, fix minor bug introduced in .35: #+sb-unicode -> #!+sb-unicode

17 years ago0.9.16.35:
Juho Snellman [Sun, 17 Sep 2006 09:50:00 +0000 (09:50 +0000)]
0.9.16.35:
        Merge sbcl-devel "some reconstruction of win32 and others", 2006-09-10
        by Yaroslav Kavenchuk.

        * Replace manual external-format conversions in various SB-WIN32
          internals with alien external-formats.
        * Implement MACHINE-INSTANCE and SOFTWARE-VERSION.

17 years ago0.9.16.34:
Nathan Froyd [Sun, 17 Sep 2006 02:31:13 +0000 (02:31 +0000)]
0.9.16.34:
Improve code generation for LOGTEST on x86.

* Use the logic the fixnum test VOPs use for emitting small TEST
  instructions in the LOGTEST VOPs as well;
* Change {ODD,EVEN}P source transforms to use LOGTEST.

17 years ago0.9.16.33:
Nathan Froyd [Sun, 17 Sep 2006 02:26:41 +0000 (02:26 +0000)]
0.9.16.33:
Micro-optimize keyword argument parsing on x86 and x86-64.

* Change %MORE-ARG to take a negative offset, so we can perform
  the negation once outside the parsing loop instead of twice
  each time through the loop;
* Combine the retrieval of the keyword and its associated value
  into a single VOP, so we can take advantage of base+index+disp
  addressing.

17 years ago0.9.16.32: weak hash tables
Gabor Melis [Fri, 15 Sep 2006 14:39:44 +0000 (14:39 +0000)]
0.9.16.32: weak hash tables
  The implementation is based on cmucl's weak hash table code.

  * scav_vector defers scavenging of weak hash tables until ...

  * ... newspace scavenging at which time the deferred weak hash
    tables are scavenged according to their WEAKNESS type (this
    happens after each scan of newspace)

  * finally just before weak pointers are scanned (i.e. with the
    purpose of breaking them) the weak hash tables are scanned (i.e.
    the appropriate entries are removed) too.

17 years ago0.9.16.31:
Christophe Rhodes [Fri, 15 Sep 2006 08:23:31 +0000 (08:23 +0000)]
0.9.16.31:
Belatedly add a test for the primitive-type / intersection-type
confusion.