sbcl.git
17 years ago1.0.5.21:
Thiemo Seufer [Wed, 2 May 2007 17:35:31 +0000 (17:35 +0000)]
1.0.5.21:
Code formatting.

17 years ago1.0.5.20: make class-eq specializers work in defmethods
Christophe Rhodes [Wed, 2 May 2007 15:35:15 +0000 (15:35 +0000)]
1.0.5.20: make class-eq specializers work in defmethods
Mostly for consistency: this is not an exported extension or
anything.  But it was gratuitously broken before, and it was
also broken in ways preventing user-defined specializers from
working.  So fix it and test it, with a comment saying that it's
OK to break it deliberately.

(User-defined specializers do not currently work, even after
this change.)

17 years ago1.0.5.19: restore building on cmucl 19a-ish
Christophe Rhodes [Wed, 2 May 2007 15:27:56 +0000 (15:27 +0000)]
1.0.5.19: restore building on cmucl 19a-ish
... sb!xc:macroexpand in code seen by the host compiler.  (Said
code was never executed by the host compiler, because of
the return value of fopcompileable-p)

17 years ago1.0.5.18: trapping-based stepper on the Sparc
Christophe Rhodes [Wed, 2 May 2007 13:07:18 +0000 (13:07 +0000)]
1.0.5.18: trapping-based stepper on the Sparc
... implement instrumentation for :before and :around cases;
... as suggested by Juho, use NTH-INTERRUPT-CONTEXT rather than
allocating a SAP in a signal handler;
... actually run the tests on sparc too.

17 years ago1.0.5.17: Top-level DECLARE signals an error
Christophe Rhodes [Wed, 2 May 2007 10:02:08 +0000 (10:02 +0000)]
1.0.5.17: Top-level DECLARE signals an error
... probably the user meant a top-level DECLAIM, but in the
absence of proof an error is a decent choice for undefined
behaviour.

17 years ago1.0.5.16: Follow the change of linux-os.c:futex_wait().
NIIMI Satoshi [Tue, 1 May 2007 05:20:19 +0000 (05:20 +0000)]
1.0.5.16: Follow the change of linux-os.c:futex_wait().

17 years ago1.0.5.15: fix SB-BSD-SOCKETS tests on chrooted NetBSD
Juho Snellman [Mon, 30 Apr 2007 21:01:42 +0000 (21:01 +0000)]
1.0.5.15: fix SB-BSD-SOCKETS tests on chrooted NetBSD

         * Handle dangling /dev/log symlink
         * Patch by Richard Kreuter

17 years ago1.0.5.14: make PURIFY a no-op on gencgc
Juho Snellman [Mon, 30 Apr 2007 20:55:42 +0000 (20:55 +0000)]
1.0.5.14: make PURIFY a no-op on gencgc

         * Purification doesn't really make any sense with gencgc, since we
           have an uncollected generation with a write barrier these days.
         * Apparently it had also bitrotted on ppc/gencgc between 1.0.0 and
           1.0.4, causing crashes with software doing (SAVE-LISP-AND-DIE
           ... :PURIFY T), for example Maxima. (Reported by Rex Dieter)
         * So make PURIFY a no-op on gencgc, and remove about 600 lines worth of
           #ifdeffed OAOO violations from purify.c.
         * Allows shrinking the static and read-only spaces into something
           sensible (arbitrary value of 1MB selected), and moving all of them
           closer together to reduce the virtual address space footprint.
         * Move + shrink the linkage-table while we're at it.

17 years ago1.0.5.13: better wordbreaks in manual
Christophe Rhodes [Mon, 30 Apr 2007 11:26:08 +0000 (11:26 +0000)]
1.0.5.13: better wordbreaks in manual
Patch from Richard Kreuter, sbcl-devel 2006-12-22

Also fix the Gray input stream example to inherit from an input
stream rather than from an output stream.

17 years ago1.0.5.12: fix threaded Linux builds
Nikodemus Siivola [Mon, 30 Apr 2007 10:35:32 +0000 (10:35 +0000)]
1.0.5.12: fix threaded Linux builds

 * Undo merge damage: missed one COMPARE-AND-EXCHANGE -> COMPARE-AND-SWAP rename.

17 years ago1.0.5.11: fix non-threaded build
Nikodemus Siivola [Mon, 30 Apr 2007 09:37:37 +0000 (09:37 +0000)]
1.0.5.11: fix non-threaded build

 * SIG_STOP_FOR_GC only on threaded platforms.

 * GET-MUTEX was broken for non-threaded builds.

17 years ago1.0.5.10: interrupt-proofing SUB-GC
Nikodemus Siivola [Sun, 29 Apr 2007 23:27:37 +0000 (23:27 +0000)]
1.0.5.10: interrupt-proofing SUB-GC

 * When SUB-GC is entered with GC and interrupts enabled we cannot just
   blithely set *GC-PENDING*, as unwinding from an interrupt would cause
   us to run with GC blocked for an unbounded time: disable interrupts
   before setting it.

17 years ago1.0.5.9: experimental semi-synchronous deadlines
Nikodemus Siivola [Sun, 29 Apr 2007 21:57:39 +0000 (21:57 +0000)]
1.0.5.9: experimental semi-synchronous deadlines

 * WITH-DEADLINE provides an interface to a synchronous deadline/timeout
   facility that can interrupt execution only on blocking IO and when
   waiting on locks (latter Linux only for now.)

 * DECODE-DEADLINE provides an interface that implementors of blocking
   functions can use to hook into the deadline mechanism.

 * Add SB-IMPL::*ON-DANGEROUS-SELECT* for debugging: can be used to
   warn/ signal an error / obtain a backtrace when SBCL calls select
   without a timeout while interrupts are disabled.

 * Undocumented and unexported periodic polling functionality has been
   removed from SERVE-EVENT, but can be reinstated should it be
   desired.

17 years ago1.0.5.8: always display package prefixes when symbols conflict
Nathan Froyd [Sun, 29 Apr 2007 18:34:20 +0000 (18:34 +0000)]
1.0.5.8: always display package prefixes when symbols conflict

* Patch by Kevin Reid, sbcl-devel 2007-04-28.

17 years ago1.0.5.7: missing test case for 1.0.4.40
Nikodemus Siivola [Sun, 29 Apr 2007 17:28:28 +0000 (17:28 +0000)]
1.0.5.7: missing test case for 1.0.4.40

 * Also add a test-case for the bad type declatation fixed in PCL in
   1.0.4.40.

17 years ago1.0.5.6: compare-and-swap / instance-set-conditional refactoring
Nikodemus Siivola [Sun, 29 Apr 2007 17:17:25 +0000 (17:17 +0000)]
1.0.5.6: compare-and-swap / instance-set-conditional refactoring

 * Rename *-COMPARE-AND-EXCHANGE *-COMPARE-AND-SWAP.

 * DEFINE-FULL-COMPARE-AND-SWAP, use it to implement
   %INSTANCE-COMPARE-AND-SWAP (previously %INTANCE-SET-CONDITIONAL) on x86oids.

 * Implement %SIMPLE-VECTOR-COMPARE-AND-SWAP. Not used right now, but required
   by a forthcoming patch.

 * Implement non-x86oid (non-threaded) versions of the above.

 * Check that the slot isn't raw in DEFINE-STRUCURE-SLOT-COMPARE-AND-SWAP.

 * Whitespace.

17 years ago1.0.5.5: &ENVIRONMENT fixes
Nikodemus Siivola [Sun, 29 Apr 2007 16:19:29 +0000 (16:19 +0000)]
1.0.5.5: &ENVIRONMENT fixes

 * Place the binding for &ENVIRONMENT in the correct scope for
   ignore declarations.

 * Place the local-decls return value from PARSE-DEFMACRO in the
   right scope in DEFSETF.

 * Tests.

17 years ago1.0.5.4: signal handler consing causing GCs
Nikodemus Siivola [Sun, 29 Apr 2007 15:51:01 +0000 (15:51 +0000)]
1.0.5.4: signal handler consing causing GCs

 * Skip GC attempt if interrupts are enabled but GC signals are
   blocked in the context we would restore.

   This can happen at least when a signal handler conses while GC
   signals are blocked, so what we take a PendingInterrupt trap while
   in the original handler.

17 years ago1.0.5.3: compiling a SUBSEQ on a SIMPLE-VECTOR should not give notes
Nikodemus Siivola [Sun, 29 Apr 2007 14:30:48 +0000 (14:30 +0000)]
1.0.5.3: compiling a SUBSEQ on a SIMPLE-VECTOR should not give notes

 * One type declaration, one TRULY-THE, and two test-cases.

17 years ago1.0.5.2: non-racy WITH-SPINLOCK-AND-WITHOUT-GCING
Nikodemus Siivola [Sun, 29 Apr 2007 14:04:17 +0000 (14:04 +0000)]
1.0.5.2: non-racy WITH-SPINLOCK-AND-WITHOUT-GCING

 * It used to be possible for an interrupt or a GC request to come
   in during the small window after RECEIVE-PENDING-INTERRUPTS, but
   while we were running with interrupts and GC disabled. This would
   leave it pending and block further ones -- without any guarantee
   when the next one would come in.

   Experimentally this could also deadlock GC, but the code path
   leading to that is not entirely clear.

 * WITHOUT-GCING can be implemented by using just a single UWP, so do
   it like that.

17 years ago1.0.5.1: remove ldso-stubs.S in clean.sh
Christophe Rhodes [Sun, 29 Apr 2007 08:51:56 +0000 (08:51 +0000)]
1.0.5.1: remove ldso-stubs.S in clean.sh
(patch from Timothy Ritchey sbcl-devel 2007-04-26)

17 years ago1.0.5:
William Harold Newman [Sat, 28 Apr 2007 18:47:58 +0000 (18:47 +0000)]
1.0.5:
release, will be tagged as sbcl_1_0_5

17 years ago1.0.4.111: NEWS editing
Nikodemus Siivola [Wed, 25 Apr 2007 10:07:23 +0000 (10:07 +0000)]
1.0.4.111: NEWS editing

 * Hash-table functions aren't quite interrupt safe yet, aka brutal honesty.

 * Missing dots.

17 years ago1.0.4.110: make -sb-unicode builds work again
Nathan Froyd [Tue, 24 Apr 2007 15:38:59 +0000 (15:38 +0000)]
1.0.4.110: make -sb-unicode builds work again

* SB!VM:COMPLEX-CHARACTER-STRING-WIDETAG is not bound when #!-sb-unicode

17 years ago1.0.4.109: rewrite source that mixed quasiquotes and circular lists
Juho Snellman [Fri, 20 Apr 2007 06:11:43 +0000 (06:11 +0000)]
1.0.4.109: rewrite source that mixed quasiquotes and circular lists

         * CLisp didn't like the combination, use a macrolet instead
         * Patch by Luis Oliveira

17 years ago1.0.4.108: turn mach-exception-handler on for macos/x86 and x86_64
Cyrus Harmon [Fri, 20 Apr 2007 05:19:48 +0000 (05:19 +0000)]
1.0.4.108: turn mach-exception-handler on for macos/x86 and x86_64
 * have make-config.sh add mach-exception-handler to the features by
   default. This gets around the CrashReporter problems and enables
   debugging of SBCL processes with GDB.

17 years ago1.0.4.107: fix doc/make-doc.sh if "make" command is not GNU make.
NIIMI Satoshi [Thu, 19 Apr 2007 15:48:54 +0000 (15:48 +0000)]
1.0.4.107: fix doc/make-doc.sh if "make" command is not GNU make.

First build problem found by James Knight's BuildBot. :-)

17 years ago1.0.4.106: refactoring FILE-POSITION on FD-STREAMS, some cleanups
Nikodemus Siivola [Thu, 19 Apr 2007 12:01:04 +0000 (12:01 +0000)]
1.0.4.106: refactoring FILE-POSITION on FD-STREAMS, some cleanups

 * Make the underlying FILE-POSITION on FD-STREAMs interrupt-safe.
   This is not enough to make FILE-POSITION on FD-STREAMs interrupt
   safe, as the ANSI-STREAM layer is not -- or at least I doesn't look
   like it to me.

 * Split FD-STREAM-FILE-POSITION into two parts for easier reading,
   and make the error behaviour more ANSI compliant.

 * Move FLUSH-OUTPUT-BUFFER to FINISH-FD-STREAM-OUTPUT to make it a
   one-stop-shopping implementation of finish-output for FD-STREAMs.

 * New function: FD-STREAM-OUTPUT-FINISHED-P, which returns false if
   there is any pending output on the stream.

 * Add comments explaining why certain VECTOR-SAP usages are safe
   without pinning the vector -- at least on x86oids.

 * Instead of (IF #-WIN32 P #+WIN32 T #-WIN32 THEN #+WIN32 ELSE),
   let us use #-WIN32 ELSE #+WIN32 (IF P THEN ELSE)...

17 years ago1.0.4.105: remove clisp from the list of working build hosts
Juho Snellman [Thu, 19 Apr 2007 06:44:45 +0000 (06:44 +0000)]
1.0.4.105: remove clisp from the list of working build hosts

         * It's not like it's actually worked for anyone in ages, but
           people keep trying to use it...

17 years ago1.0.4.104: don't mutate constant strings in genesis
Juho Snellman [Thu, 19 Apr 2007 06:32:47 +0000 (06:32 +0000)]
1.0.4.104: don't mutate constant strings in genesis

         * CLisp rightfully complains about this when used as a build host

17 years ago1.0.4.103: fix build with OpenMCL as the host
Juho Snellman [Thu, 19 Apr 2007 06:27:46 +0000 (06:27 +0000)]
1.0.4.103: fix build with OpenMCL as the host

         * OpenMCL doesn't do the right thing with #+foo #+foo bar bar
         * An invalid slot type declaration

17 years ago1.0.4.102: SB-SYS and stream cleanups
Nikodemus Siivola [Wed, 18 Apr 2007 15:26:02 +0000 (15:26 +0000)]
1.0.4.102: SB-SYS and stream cleanups

 * Factor out looping on SERVE-ALL-EVENTS to FINISH-FD-STREAM-OUTPUT.

 * Make IO-TIMEOUT a subclass of TIMEOUT.

 * Remove spurious SB!SYS: prefixes from src/code/stream.lisp and
   fd-stream.lisp.

 * Delete stale symbols ALLOCATE-SYSTEM-MEMORY-AT, C-PROCEDURE,
   POINTER, POINTER>, POINTER<, SERVER, SERVER-MESSAGE, and
   WITH-ENABLED-INTERRUPTS from SB-SYS. (Also delete commented out
   implementation of W-E-I in target-signal.lisp.)

17 years ago1.0.4.101: new STRING-OUTPUT-STREAM implementation
Nikodemus Siivola [Wed, 18 Apr 2007 10:09:59 +0000 (10:09 +0000)]
1.0.4.101: new STRING-OUTPUT-STREAM implementation

 * Instead of copying the output string each time we need to expand
   it, maintain a chain of buffers. For large inputs the improvement
   is vast, for small inputs the performance characteristics are
   essentially the same. One the average seems to cons about 30% less.

17 years ago1.0.4.100: gray streams manual fixes
Juho Snellman [Wed, 18 Apr 2007 06:00:00 +0000 (06:00 +0000)]
1.0.4.100: gray streams manual fixes

         * From Richard Kreuter

17 years ago1.0.4.99: fix big-endian build
Juho Snellman [Wed, 18 Apr 2007 05:20:38 +0000 (05:20 +0000)]
1.0.4.99: fix big-endian build

         * Reported by Harald Hanche-Olsen

17 years ago1.0.4.98: Win32 build fix
lisphacker [Tue, 17 Apr 2007 19:16:18 +0000 (19:16 +0000)]
1.0.4.98: Win32 build fix
  * Win32 doesn't do sigaltstack, and thus has no SIGSTKSZ.

17 years ago1.0.4.97: Oops. Fix bug introduced in x86 vop if-eq in 1.0.4.73.
lisphacker [Tue, 17 Apr 2007 17:19:38 +0000 (17:19 +0000)]
1.0.4.97: Oops. Fix bug introduced in x86 vop if-eq in 1.0.4.73.

17 years ago1.0.4.96: oops, missed one case in the HAIRY-DATA-VECTOR-REF changes
Juho Snellman [Tue, 17 Apr 2007 13:28:19 +0000 (13:28 +0000)]
1.0.4.96: oops, missed one case in the HAIRY-DATA-VECTOR-REF changes

        * SIMPLE-STRING is a special case in EXTRACT-UPGRADED-ELEMENT-TYPE

17 years ago1.0.4.95: small genesis cleanups
Nikodemus Siivola [Tue, 17 Apr 2007 12:34:52 +0000 (12:34 +0000)]
1.0.4.95: small genesis cleanups

 * Factor most of the logic to munge lisp-names to C-names into C-NAME
   and C-SYMBOL-NAME.

   Also translate #\/ to #\_, fixing duplicate definition warnings for
   static-symbols.h.

17 years ago1.0.4.94 make-target-contrib.sh self-announcement
Rudi Schlatte [Tue, 17 Apr 2007 08:39:51 +0000 (08:39 +0000)]
1.0.4.94 make-target-contrib.sh self-announcement
    * patch by Yaroslav Kavenchuk

17 years ago1.0.4.93: backtrace_from_fp
Juho Snellman [Tue, 17 Apr 2007 06:54:10 +0000 (06:54 +0000)]
1.0.4.93: backtrace_from_fp

        * Split the ldb x86oid backtrace into two parts (backtrace and
          backtrace_from_fp), to make debugging e.g. thread deadlocks
          from gdb easier. For example: call backtrace_from_fp($rbp, 10)

17 years ago1.0.4.92: faster generic array access
Juho Snellman [Tue, 17 Apr 2007 04:19:28 +0000 (04:19 +0000)]
1.0.4.92: faster generic array access

        * Replace the typecase-based HAIRY-DATA-VECTOR-* with a table-driven
          dispatch on widetags
        * Move bounds checking of one-dimension AREFs into HAIRY-DATA-VECTOR-*
          from the caller, so that we can avoid doing a full ARRAY-DIMENSION
          in the common case.
        * 3-5x speedup on generic array accesses

17 years ago1.0.4.91: revert 1.0.4.89 test changes
Nikodemus Siivola [Mon, 16 Apr 2007 04:59:02 +0000 (04:59 +0000)]
1.0.4.91: revert 1.0.4.89 test changes
 ECHERRYPICK from commit 1.0.4.90.

17 years ago1.0.4.90: revert 1.0.4.89 changes to ROOM
Nikodemus Siivola [Mon, 16 Apr 2007 04:38:07 +0000 (04:38 +0000)]
1.0.4.90: revert 1.0.4.89 changes to ROOM

 * Cleaned up version conses too much.

 * Record the bug .89 was supposed to fix.

17 years ago1.0.4.89: ROOM cleanups & type-declaration fixes
Nikodemus Siivola [Sat, 14 Apr 2007 16:28:26 +0000 (16:28 +0000)]
1.0.4.89: ROOM cleanups & type-declaration fixes

 * Use CODE-INSTRUCTIONS instead of (%PRIMITIVE CODE-INSTRUCTIONS).

 * Eliminate TRULY-THE and THE from src/code/room.lisp.

 * Byte-counts don't necessarily fit into fixnums, so remove some
   of the fixnum declarations (reported by Faré on sbcl-devel.)

 * Test-case.

17 years ago1.0.4.88: x86 assembly-routine cleanups
lisphacker [Sat, 14 Apr 2007 15:36:19 +0000 (15:36 +0000)]
1.0.4.88: x86 assembly-routine cleanups

  * More uses of make-ea-for-vector-data.

  * More uses of make-ea-for-object-slot.

17 years ago1.0.4.87: better EQUALP hash function for arrays
Juho Snellman [Sat, 14 Apr 2007 12:28:15 +0000 (12:28 +0000)]
1.0.4.87: better EQUALP hash function for arrays

        * Hashing on just the first 4 elements makes EQUALP tables essentially
          useless for many kinds of data due to collisions. Hash all the
          elements.
        * Optimize a couple of other cases that are probably common
          (u-b 8 vectors, fixnum vectors).
        * Change EQUALP-HASH to punt to EQ-HASH when appropriate

17 years ago1.0.4.86: correct type declaration for SAP+
Nikodemus Siivola [Sat, 14 Apr 2007 11:16:53 +0000 (11:16 +0000)]
1.0.4.86: correct type declaration for SAP+

 * The OFFSET argument is a (SIGNED-BYTE #.N-WORD-BITS), not a FIXNUM.

17 years ago1.0.4.85: small PCL cleanups and thread-safety notes
Nikodemus Siivola [Sat, 14 Apr 2007 09:48:40 +0000 (09:48 +0000)]
1.0.4.85: small PCL cleanups and thread-safety notes

 * CACHE-NUMBER-VECTOR-REF and WRAPPER-CACHE-NUMBER-VECTOR-REF were
   equivalent to LAYOUT-CLOS-HASH. Use only the latter for easier
   reading.

 * *PREVIOUS-NWRAPPERS* is protected by the PCL lock, so ok.

 * The whole of dlisp2.lisp is currently dead code.

17 years ago1.0.4.84: better EQUAL hash-tables, revert 0.9.15.21 (non-compliant SXHASH)
Juho Snellman [Sat, 14 Apr 2007 09:27:22 +0000 (09:27 +0000)]
1.0.4.84: better EQUAL hash-tables, revert 0.9.15.21 (non-compliant SXHASH)

        * The value of SXHASH on non-string/bitvector arrays should not
          change when the contents of the array change (clhs sxhash,
          clhs 18.1.2.2). So the commit in 0.9.15.21 is invalid.
        * But luckily nothing requires us to use SXHASH for our own
          tables. Change the definition of EQUAL-HASH to punt to EQ-HASH
          for data types where EQUAL == EQL

17 years ago1.0.4.83: fix SXHASH for bignums
Juho Snellman [Fri, 13 Apr 2007 22:37:36 +0000 (22:37 +0000)]
1.0.4.83: fix SXHASH for bignums

        * (logAND x (ash x -7)) doesn't give a very good hash...
        * Reported by Faré Rideau on #lisp

17 years ago1.0.4.82: more x86 backend cleanups
lisphacker [Fri, 13 Apr 2007 20:40:12 +0000 (20:40 +0000)]
1.0.4.82: more x86 backend cleanups
  * optimized callback code slightly (use load-symbol-value (one
    instruction) instead of two discrete instructions)

  * cleaned up pseudo-atomic by adding an optional width to
    make-ea-for-symbol-value.

17 years ago1.0.4.81: more x86 backend cleanups
lisphacker [Fri, 13 Apr 2007 19:23:52 +0000 (19:23 +0000)]
1.0.4.81: more x86 backend cleanups
  * make-ea-for-vector-data macro and use where appropriate.

17 years ago1.0.4.80: make ADJUST-ARRAY interrupt-safe
Nikodemus Siivola [Fri, 13 Apr 2007 12:32:14 +0000 (12:32 +0000)]
1.0.4.80: make ADJUST-ARRAY interrupt-safe

 * WITHOUT-INTERRUPTS while using the temp-vector that is also bound
   to the thread-local *ZAP-ARRAY-DATA-TEMP*, so that interrupt handlers
   calling ADJUST-ARRAY cannot stomp on the data.

   Also zero out the temp-vector immediately, and be a bit more sensible
   about filling it.

 * STABLE-SORT has been audited for interrupt-safety vrt. its cached
   temporary vector, and is already OK.

 * Squeeze a mighty 1050 words out of the core by using empty vectors
   for both of the above to start with.

17 years ago1.0.4.79: remove lock from *descriptor-handlers*
Nikodemus Siivola [Fri, 13 Apr 2007 10:22:30 +0000 (10:22 +0000)]
1.0.4.79: remove lock from *descriptor-handlers*
 * Each thread binds it, so no locking required. WITHOUT-INTERRUPTS still
   needed, however.

17 years ago1.0.4.78: shrink package hash-tables to an optimal size when saving a core
Juho Snellman [Thu, 12 Apr 2007 19:19:05 +0000 (19:19 +0000)]
1.0.4.78: shrink package hash-tables to an optimal size when saving a core

        * Also shrink the table if sufficiently many symbols are uninterned
          from the package
* Shrinks the core by 800k
        * Patch by Lutz Euler on sbcl-devel 2007-04-01

17 years ago1.0.4.77: oops, forgot to cvs add a new file in .76
Juho Snellman [Thu, 12 Apr 2007 17:29:30 +0000 (17:29 +0000)]
1.0.4.77: oops, forgot to cvs add a new file in .76

17 years ago1.0.4.76: add a new style-warning for duplicate CASE keys
Juho Snellman [Thu, 12 Apr 2007 17:04:04 +0000 (17:04 +0000)]
1.0.4.76: add a new style-warning for duplicate CASE keys

        * Patch by Kevin Reid on sbcl-devel
        * With minor changes to make the warnings more readable, and to
          allow Slime to highlight the offending clauses rather than the
          whole CASE.

17 years ago1.0.4.75: Win32 build fix.
lisphacker [Thu, 12 Apr 2007 16:44:22 +0000 (16:44 +0000)]
1.0.4.75: Win32 build fix.
  * There is no sb!unix:eintr on win32, so serve-event shouldn't use it.

17 years ago1.0.4.74: fix &environment issues with macroexpansions in the fopcompiler
Juho Snellman [Thu, 12 Apr 2007 15:55:07 +0000 (15:55 +0000)]
1.0.4.74: fix &environment issues with macroexpansions in the fopcompiler

        * Use real compiler lexenvs in the fopcompiler instead of ad hoc
          ones, and pass the environments properly to macroexpand.
        * Reported by Samium Gromoff on sbcl-devel.

17 years ago1.0.4.73: more x86 backend cleanups
lisphacker [Thu, 12 Apr 2007 14:55:07 +0000 (14:55 +0000)]
1.0.4.73: more x86 backend cleanups
  * Added x86 SB-VM::ENCODE-VALUE-IF-IMMEDIATE to contain a repeated
    etypecase in the backend.

17 years ago1.0.4.72: More x86 backend cleanups
lisphacker [Thu, 12 Apr 2007 13:24:33 +0000 (13:24 +0000)]
1.0.4.72: More x86 backend cleanups
  * more make-ea-for-FOO.

  * more inst mov make-ea FOO => storew.

17 years ago1.0.4.71: x86 backend cleanup
lisphacker [Thu, 12 Apr 2007 03:24:22 +0000 (03:24 +0000)]
1.0.4.71: x86 backend cleanup
  * Make botched calls of make-ea-for-symbol-value amd
    make-ea-for-symbol-tls-index cause the build to fail early and
    obviously (this would have saved me two hours of debugging).

17 years ago1.0.4.70: more x86 backend cleanups
lisphacker [Thu, 12 Apr 2007 02:28:52 +0000 (02:28 +0000)]
1.0.4.70: more x86 backend cleanups
  * Use make-ea-for-FOO macros instead of make-ea with complex
    displacement in many places.

17 years ago1.0.4.69: fix CL-PPCRE compilation on x86-64
Juho Snellman [Thu, 12 Apr 2007 01:55:22 +0000 (01:55 +0000)]
1.0.4.69: fix CL-PPCRE compilation on x86-64

        * Broken by the character vop changes in 1.0.4.53
        * Patch by Lutz Euler

17 years ago1.0.4.68: Restore x86 non-darwin buildability.
lisphacker [Wed, 11 Apr 2007 21:19:32 +0000 (21:19 +0000)]
1.0.4.68: Restore x86 non-darwin buildability.

17 years ago1.0.4.67: Minor cleanups
Juho Snellman [Wed, 11 Apr 2007 20:57:13 +0000 (20:57 +0000)]
1.0.4.67: Minor cleanups

        * Make PCL aware of SB-EXT:MUFFLE-CONDITIONS declaration. Suppresses
          bogus warning when that declaration is used in a method body.
          Reported by Kevin Reid on sbcl-devel 2007-04-09.
        * Fix a typo in a variable declamation, pointed out by Peter Graves.
        * Add some eval-whenage around the DEFCONSTANT for
          +SSET-REHASH-THRESHOLD+, since it's used in the same file inside
          a #.. This should restore building with clisp to the normal
          level of brokenness.

17 years ago1.0.4.66: Undo D-X changes in 1.0.4.63
Nathan Froyd [Wed, 11 Apr 2007 20:51:56 +0000 (20:51 +0000)]
1.0.4.66: Undo D-X changes in 1.0.4.63

17 years ago1.0.4.65: lock accesses to *descriptor-handlers*
Nikodemus Siivola [Wed, 11 Apr 2007 18:08:39 +0000 (18:08 +0000)]
1.0.4.65: lock accesses to *descriptor-handlers*

 * FD-STREAM functions add and remove handlers, so we need to
   serialize the access. Assume this is not usually contended and use
   a spinlock. Also restructure the accesses so that we never traverse
   the list that may be modified by a recursive serve-event call
   caused by an FD handler.

 * Delete the stale & commented out object-set stuff, and remove the
   corresponding symbols from SB-SYS.

 * Move the SUB-SERVE-EVENT stuff that was in macros inline for
   easier reading.

 * Move WITH-SPINLOCK to host.

17 years ago1.0.4.64: more stack-alignment x86/Darwin
Nikodemus Siivola [Wed, 11 Apr 2007 17:05:14 +0000 (17:05 +0000)]
1.0.4.64: more stack-alignment x86/Darwin

 * Things work better if we restore the old stack pointer in the
   inline version...

 * Make sure foreign tests test both fast and small code-paths.

 Note: our allocation routines also call out to C, ending up in
 alloc(), so they may need looking at too.

 Note: out-of-line call_into_c does call + jmp, getting it to
 to call + ret should not be too hard, should it?

17 years ago1.0.4.63: Don't zeroize dynamic-extent simple-unboxed-arrays on x86 and x86-64
Nathan Froyd [Wed, 11 Apr 2007 16:35:27 +0000 (16:35 +0000)]
1.0.4.63: Don't zeroize dynamic-extent simple-unboxed-arrays on x86 and x86-64

17 years ago1.0.4.62: Enhance BIGNUM-REPLACE
Nathan Froyd [Wed, 11 Apr 2007 16:20:17 +0000 (16:20 +0000)]
1.0.4.62: Enhance BIGNUM-REPLACE

* Only require one iteration variable if (EQL START1 START2)

17 years ago1.0.4.61: stack-alignment on CALL-OUT VOP on x86/Darwin
Nikodemus Siivola [Wed, 11 Apr 2007 13:59:24 +0000 (13:59 +0000)]
1.0.4.61: stack-alignment on CALL-OUT VOP on x86/Darwin

 * As in call_into_c, comment on the OAOOMness.

 * Fixes init.test.sh & core.test.sh failures on threaded
   Darwin builds.

17 years ago1.0.4.60: More efficient structure raw slot accessors on x86-64
Nathan Froyd [Wed, 11 Apr 2007 11:37:43 +0000 (11:37 +0000)]
1.0.4.60: More efficient structure raw slot accessors on x86-64

17 years ago1.0.4.59: small signal handling improvements
Nikodemus Siivola [Wed, 11 Apr 2007 07:30:57 +0000 (07:30 +0000)]
1.0.4.59: small signal handling improvements

 * Grovel SIG_DFL and SIG_IGN.

 * Grovel "rare" signals based on the definedness of the signal, not
   LISP_FEATURE_FOO.

 * Make SIGINT signal an INTERACTIVE-INTERRUPT, which should make
   sense on Windows too, if we ever get the ConsoleCtrlHandler
   working.

 * Make SIGTRAP signal an BREAKPOINT-ERROR, and make SYSTEM-CONDITION
   a superclass of both it, INTERACTIVE-INTERRUPT and
   MEMORY-FAULT-ERROR.

 * Inhibit GC while destroying the thread mutex lutex to avoid races
   with the GC.

 ...and add missing NEWS entries due to your truly.

17 years ago1.0.4.58: fix lisp object start address calculations in x86-64
Cyrus Harmon [Tue, 10 Apr 2007 21:43:44 +0000 (21:43 +0000)]
1.0.4.58: fix lisp object start address calculations in x86-64
  * use logandc2 obj sb!vm:lowtag-mask instead of logand obj
    #xfffffffffffffff8 (which should have been #xfffffffffffffff0)
    to compute obj-start-addr.

17 years ago1.0.4.57: Make the compiler's bit-vector functions use standard CL idioms
Nathan Froyd [Tue, 10 Apr 2007 18:10:31 +0000 (18:10 +0000)]
1.0.4.57: Make the compiler's bit-vector functions use standard CL idioms

* We can do this and still get inline loops because of the
  REPLACE/UB*-BASH-COPY/SUBSEQ/COPY-SEQ work committed early;
* ...and, as a nice bonus, make them slightly faster by doing so.

17 years ago1.0.4.56: Make case-insensitive string and character comparisons non-consing
Nathan Froyd [Tue, 10 Apr 2007 16:36:08 +0000 (16:36 +0000)]
1.0.4.56: Make case-insensitive string and character comparisons non-consing

* Create two-arg versions of case-insensitive character comparison
  functions;
* Use said functions in the general case;
* Make source transforms for the general functions use the two-arg
  functions, thereby avoiding the &REST consing of the general
  functions.

17 years ago1.0.4.55: Optimized REPLACE and UB*-BASH-COPY routines
Nathan Froyd [Tue, 10 Apr 2007 13:50:43 +0000 (13:50 +0000)]
1.0.4.55: Optimized REPLACE and UB*-BASH-COPY routines

* Expand simple cases of UB*-BASH-COPY inline to avoid full call
  overhead and generate better code generally;
* Handle more cases of REPLACE; we now optimize REPLACE on all
  simple specialized array types (only element types <= n-word-bits
  are handled generally, though);
* Use a single COPY-SEQ and SUBSEQ transform rather than one per
  specialized array type; generate inline copies for these too
  when possible;
* Tests;
* Backend cleanup: introduce a FIND-SAETP to eliminate duplicate code;
* Backend cleanup: change %{SET-,}VECTOR-RAW-BITS on x86 to use
  the *-WITH-OFFSET machinery.

17 years ago1.0.4.54: x86-64/darwin preliminary threads support
Cyrus Harmon [Tue, 10 Apr 2007 04:18:10 +0000 (04:18 +0000)]
1.0.4.54: x86-64/darwin preliminary threads support
 * add sb-lutex to features via make-config.sh
 * preserve_pointer context registers in gencgc.c
 * use lock/cmpxchg on darwin
 * GSYM/GNAME asm hacks
 * add -arch options when appropriate for building threads-foreign.so

17 years ago1.0.4.53: Apply Lutz Euler's improved character VOPs patch
Nathan Froyd [Tue, 10 Apr 2007 01:20:24 +0000 (01:20 +0000)]
1.0.4.53: Apply Lutz Euler's improved character VOPs patch

17 years ago1.0.4.52: fix GET-SPINLOCK, broken by the COMPARE-AND-EXCHANGE patch
Nikodemus Siivola [Mon, 9 Apr 2007 09:48:26 +0000 (09:48 +0000)]
1.0.4.52: fix GET-SPINLOCK, broken by the COMPARE-AND-EXCHANGE patch
 * It was behaving as "TRY-SPINLOCK". Oops.
 * Our test suite did catch this, but it was being masked by other errors.

17 years ago1.0.4.51: no blksize_t on OS X Panther
Nikodemus Siivola [Sun, 8 Apr 2007 17:34:45 +0000 (17:34 +0000)]
1.0.4.51: no blksize_t on OS X Panther
 * Grovel a new feature :os-provides-blksize-t.

 Note: as the number of os-provides-foo features increases, it starts
 seeming prudent to move them to a separate feature list.

17 years ago1.0.4.50: more x86 backend
lisphacker [Sun, 8 Apr 2007 15:25:39 +0000 (15:25 +0000)]
1.0.4.50: more x86 backend
  * Fixing a missed pair of frame-byte-offsets from 1.0.4.42.

17 years ago1.0.4.49: revert debugger hackery
Cyrus Harmon [Sun, 8 Apr 2007 15:16:26 +0000 (15:16 +0000)]
1.0.4.49: revert debugger hackery
 * back out my x86-64/macos inspired top-frame workaround. This has
   the unfortunate side-effect of re-breaking the debugger on
   x86-64/macos, but that needs a proper fix.

17 years ago1.0.4.48: ROOM patch by Lutz Euler
Nikodemus Siivola [Sun, 8 Apr 2007 13:20:57 +0000 (13:20 +0000)]
1.0.4.48: ROOM patch by Lutz Euler
 * More correct reporting on x86-64.

17 years ago1.0.4.47: correct the mess of 1.0.4.46
Nikodemus Siivola [Sun, 8 Apr 2007 13:12:28 +0000 (13:12 +0000)]
1.0.4.47: correct the mess of 1.0.4.46
 * Previous was an accidental commit. Sorry.

17 years ago1.0.4.46: allow &environment and disallow &aux in DEFSETF lambda-lists
Nikodemus Siivola [Sun, 8 Apr 2007 12:51:34 +0000 (12:51 +0000)]
1.0.4.46: allow &environment and disallow &aux in DEFSETF lambda-lists
 * Reported by Samium Gromoff.
 * Test-cases.

17 years ago1.0.4.45: workaround for bug #412 & undefined variable cleanup
Nikodemus Siivola [Sun, 8 Apr 2007 12:38:18 +0000 (12:38 +0000)]
1.0.4.45: workaround for bug #412 & undefined variable cleanup

 * When converting dead references to global variables, convert using
   SYMBOL-VALUE. Results in the same code, but prevents dead unbound
   variable references from being flushed.

 * Collect XREF information for constant SYMBOL-VALUE cases.

 * Fix one dead reference to *LEXENV* in SBCL codebase.

 * Fix other undefined variables in contribs.

 * Test-case.

17 years ago1.0.4.44: More x86 disassembler work
lisphacker [Sun, 8 Apr 2007 05:23:48 +0000 (05:23 +0000)]
1.0.4.44: More x86 disassembler work

  * Added a prefix instruction for operand-size-prefix, making MOV
    [EDX], AX (for example) disassemble correctly.

  * Hacked up map-segment-instructions to work for prefix instructions
    again.

17 years ago1.0.4.43: x86 assembler/disassembler tweaks
lisphacker [Sat, 7 Apr 2007 21:43:04 +0000 (21:43 +0000)]
1.0.4.43: x86 assembler/disassembler tweaks
  * Made fs-segment-prefix disassemble as such instead of as byte #x64.
  * Added gs-segment-prefix, for symmetry.

17 years ago1.0.2.42: x86 backend cleanups
lisphacker [Sat, 7 Apr 2007 20:00:24 +0000 (20:00 +0000)]
1.0.2.42: x86 backend cleanups
  * Defined frame-byte-offset and frame-word-offset for calculating
    offsets within a stack frame.
  * Modified most direct references to stack data to use
    frame-byte-offset and frame-word-offset instead of an inline
    calculation.

17 years ago1.0.4.41: unbreak threaded build
Nikodemus Siivola [Sat, 7 Apr 2007 18:27:05 +0000 (18:27 +0000)]
1.0.4.41: unbreak threaded build
 * move the newflangled DEFINE-STRUCTURE-SLOT-FOOs later in the
   build, so as to have SB!VM:INSTANCE-SLOTS-OFFSET available.

 * STRUCTURE-SLOT-INDEX unused -- oops in cherrypicking from a different
   tree.

17 years ago1.0.4.40: small fixes
Nikodemus Siivola [Sat, 7 Apr 2007 17:42:05 +0000 (17:42 +0000)]
1.0.4.40: small fixes

 * / is not flushable, but unsafely-flushable. Reported by Marco
   Monteiro, patch by Kevin Reid. Test-case added to compiler.pure.lisp.

 * #include "globals.h" for funcall.c, should unbreak the build for non-x86oids.

 * s/(AND (UNSIGNED-BYTE FIXNUM))/(AND UNSIGNED-BYTE FIXNUM)/ in combin.lisp,
   discovered by James Anderson.

17 years ago1.0.4.39: get rid of hardcoded mutex and spinlock slot indexes
Nikodemus Siivola [Sat, 7 Apr 2007 13:58:57 +0000 (13:58 +0000)]
1.0.4.39: get rid of hardcoded mutex and spinlock slot indexes

 * DEFINE-STRUCTURE-SLOT-COMPARE-AND-EXCHANGE can be used to define
   nice wrappers for %INSTANCE-SLOT-CONDITIONAL using just the
   structure and slot name.

   Note to self: it would probably make sense to give something along
   these lines for users to use as well, so that they can implement
   lockless algorithms in lisp.

 * DEFINE-STRUCTURE-SLOT-ADDRESSOR does the same for getting the
   slot address.

 * SB-PCL::GET-STRUCTURE-DD moved to host and renamed
   SB-KERNEL:FIND-DEFSTRUCT-DESCRIPTION.

 * SB-THREAD now uses SB-KERNEL.

 (threads.impure.lisp currently fail, but not due to this)

17 years ago1.0.4.38: unbreak win32 build, again
Nikodemus Siivola [Sat, 7 Apr 2007 09:38:47 +0000 (09:38 +0000)]
1.0.4.38: unbreak win32 build, again
 * Thanks to Yaroslav Kavenchuk.

17 years ago1.0.4.37: Delete some dead code in pack.lisp
Nathan Froyd [Sat, 7 Apr 2007 01:17:36 +0000 (01:17 +0000)]
1.0.4.37: Delete some dead code in pack.lisp

17 years ago1.0.4.36: Commit Kevin Reid's "safer *break-on-signals*" patch.
Nathan Froyd [Sat, 7 Apr 2007 01:13:23 +0000 (01:13 +0000)]
1.0.4.36: Commit Kevin Reid's "safer *break-on-signals*" patch.

17 years ago1.0.4.35: Commit Kevin Reid's "Test failure in core.test.sh" patch
Nathan Froyd [Sat, 7 Apr 2007 01:07:05 +0000 (01:07 +0000)]
1.0.4.35: Commit Kevin Reid's "Test failure in core.test.sh" patch

17 years ago1.0.4.34: return true from GET-SPINLOCK
Nikodemus Siivola [Fri, 6 Apr 2007 21:48:29 +0000 (21:48 +0000)]
1.0.4.34: return true from GET-SPINLOCK

 * unbreak threaded build: since we now depend on the return
   value of GET-SPINLOCK in WITH-SPINLOCK, NIL isn't too hot.

 ...and I could have sworn I made a threaded test build for this...