Thiemo Seufer [Wed, 2 May 2007 17:35:31 +0000 (17:35 +0000)]
1.0.5.21:
Code formatting.
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.)
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)
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.
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.
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().
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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)
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
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.
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
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
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.
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. :-)
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)...
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...
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
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
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.)
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.
Juho Snellman [Wed, 18 Apr 2007 06:00:00 +0000 (06:00 +0000)]
1.0.4.100: gray streams manual fixes
* From Richard Kreuter
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
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.
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.
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
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.
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
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)
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
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.
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.
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.
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.
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
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.
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.
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
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
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.
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.
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.
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.
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
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
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.
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.
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.
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.
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.
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).
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.
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
lisphacker [Wed, 11 Apr 2007 21:19:32 +0000 (21:19 +0000)]
1.0.4.68: Restore x86 non-darwin buildability.
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.
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
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.
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?
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
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)
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.
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
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.
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.
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.
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.
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.
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
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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)
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.
Nathan Froyd [Sat, 7 Apr 2007 01:17:36 +0000 (01:17 +0000)]
1.0.4.37: Delete some dead code in pack.lisp
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.
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
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...