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.
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).
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).
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
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.
Christophe Rhodes [Tue, 7 Nov 2006 10:51:39 +0000 (10:51 +0000)]
0.9.18.39:
ASDF update: better SBCL_HOME handling.
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
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.
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.
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.
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.
Thiemo Seufer [Sat, 4 Nov 2006 18:56:10 +0000 (18:56 +0000)]
0.9.18.33:
Build fix for cheneygc.
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
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.
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).
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.
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).
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.
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.
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.
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.
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)
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).
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.
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.
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.
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.
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.
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.
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.
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.
Thiemo Seufer [Sun, 29 Oct 2006 20:14:26 +0000 (20:14 +0000)]
0.9.18.13:
More .cvsignores.
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.
Nikodemus Siivola [Sat, 28 Oct 2006 09:57:00 +0000 (09:57 +0000)]
0.9.18.11: whitespace
* Undo whitespace damage from Window commits.
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
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.
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.
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.
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.
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.
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.
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.
Brian Downing [Thu, 26 Oct 2006 03:22:21 +0000 (03:22 +0000)]
0.9.18.3: Canonicalize whitespace.
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.
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.
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
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.
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>.
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.
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.
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)
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.
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
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.
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
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.
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.
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
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
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.
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.
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).
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).
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.
Thiemo Seufer [Tue, 26 Sep 2006 23:10:02 +0000 (23:10 +0000)]
0.9.17.1:
Improve thread safety.
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
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.
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).
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
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.
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.
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
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
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.
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).
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.
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
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.
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.
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.
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.
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.
Christophe Rhodes [Thu, 14 Sep 2006 21:10:44 +0000 (21:10 +0000)]
0.9.16.30:
A couple of type-system fixups for #+sb-eval
... we have to have sb-eval:interpreted-function defined
on the host, so that the deftype for COMPILED-FUNCTION
does not involve any unknown types. So
... make !defstruct-with-alternate-metaclass compilable by the
host compiler, similarly to sb-xc:defstruct. Don't
quite do it properly: put a FIXME note in for posterity.
... move early-full-eval.lisp earlier in the build, and split
out the definition for compiled-function from
deftypes-for-target to late-deftypes-for-target (after
the interpreted-function class is defined)
... (declare (type compiled-function x)) should do a type check
for compiled-function, not for simply FUNCTION.
... the problem was actually in PRIMITIVE-TYPE on intersection
types; the computation was fairly bogus. Make it less
bogus.
... also delete some stale classoid symbols.
Juho Snellman [Wed, 13 Sep 2006 21:37:28 +0000 (21:37 +0000)]
0.9.16.29:
The new timer.impure test added in 0.9.16.21 uncovered some
completely unrelated problems in a different test. Multiple
simultaneous FIND-SYMBOLs on the same package could cause the
package to become corrupted in a way that would cause further
accesses to it to loop infinitely. This seems a bit harsh.
* Remove the optimization (moving the table from which a
symbol was found to the front of the package's table list)
which was causing this problem. It didn't seem to have much
of an performance effect anyway.
* Fix the test that was accidentally triggering this bug and
add a new test specifically for it.
Nathan Froyd [Wed, 13 Sep 2006 17:30:28 +0000 (17:30 +0000)]
0.9.16.28:
Shorten pseudo-atomic sequence on x86 and x86-64.
Do this by combining *pseudo-atomic-{atomic,interrupted}* into
a single variable, *pseudo-atomic-bits*, which is a fixnum
bitmask where bit 0 denotes atomic-ness and bit 1 denotes
interruptedness.
* Change genesis to initialize this variable properly (this
didn't need to be done for the old variables because the
allocation sequences would set them upon entrance);
* Modify functions and macros accessing pseudo-atomic variables
to reflect the new state of the world;
Juho Snellman [Wed, 13 Sep 2006 15:59:31 +0000 (15:59 +0000)]
0.9.16.27:
Add an interpreting EVAL, for cases where the compiler is
unsuitable due to e.g. compilation overhead.
* The old EVAL is still the default. To use the new one,
(SETF SB-EXT:*EVALUATOR-MODE* :INTERPRET).
Making the interpreter the default might be the purer
choice, since there's a standard way of ensuring that code
is compiled, and no standard way of ensuring that it's
not. On the other hand, there are practical reasons for
keeping the compiler as the default. The interpreter is very
slow, doesn't have proper debugger support (either for
backtraces or inspecting frames), and it doesn't have
stepper support.
* The interpreter doesn't treat THE or type declarations for
lexical variables as assertions. The regression tests that
assume otherwise have been disabled when running in
interpreted mode. The intepreter will however type-check the
proclaimed types of specials.
William Harold Newman [Tue, 12 Sep 2006 13:11:46 +0000 (13:11 +0000)]
0.9.16.26:
memory crutch for middle-aged maintainers: repeated NS's
explanation in 0.9.16.25 commit message as comment
above the change
Nikodemus Siivola [Tue, 12 Sep 2006 09:08:49 +0000 (09:08 +0000)]
0.9.16.25: build fix for CMUCL and older SBCLs
* Not all lisps are happy about SETF-compiler macros: CMUCL 19 does not accept
them at all, and older SBCL's give a full warning.
Nikodemus Siivola [Mon, 11 Sep 2006 10:40:07 +0000 (10:40 +0000)]
0.9.16.24: (SETF INFO) compiler macro enabled
* Since we now support SETF compiler-macros. Unfortunately the
definition comes too late to affect large parts of SBCL -- but the
same applies to the venerable compiler-macro for INFO.
* Use KEYWORDP instead of CONSTANTP in these macros, as that (or
self-evaluating-p) is what is actually ment -- no EVAL or
CONSTANT-FORM-VALUE in sight.
Juho Snellman [Sat, 9 Sep 2006 08:00:03 +0000 (08:00 +0000)]
0.9.16.23:
One more simple-base-string -> simple-string substitution in
the pathname code (pointed out by Yaroslav Kavenchuk on
sbcl-devel).
William Harold Newman [Fri, 8 Sep 2006 14:35:21 +0000 (14:35 +0000)]
0.9.16.22:
logged bug
tiny comment typo fix
Nikodemus Siivola [Thu, 7 Sep 2006 08:49:38 +0000 (08:49 +0000)]
0.9.16.21: small fixes and cleanups
* timers expiring in dead thread no longer cause a TYPE-ERROR.
Reported by Paul "Nonny Mouse" on sbcl-devel.
* ASDF-INSTALL uses GNU tar on Solaris. From patch by Josip Gracin.
* Unnecessary conditional in RUN-PROGRAM on Win32. Reported by Yaroslav
Kavenchuck.
* Use cut from index 1, not 0 in find-gnumake.sh. Reported by Harald
Hanche-Olsen.
Juho Snellman [Thu, 7 Sep 2006 01:58:12 +0000 (01:58 +0000)]
0.9.16.20:
Some win32 cleanups (patch by Jack Unrue on sbcl-devel, 2006-08-31).
* Replace remaining calls to perror() with fprintf(stderr, ...,
GetLastError()) since errno is not set by Win32 API calls.
* Disable debug output from os_map().
Juho Snellman [Thu, 7 Sep 2006 01:33:17 +0000 (01:33 +0000)]
0.9.16.19:
Add special-case for SB-INT:FIND-UNDELETED-PACKAGE-OR-LOSE in the
fop-compiler, to make it use a FOP-PACKAGE fop instead of a
longer FOP-FUNCALL sequence. (Patch by Alastair Bridgewater,
sbcl-devel "Small fopcompiler hack" on 2006-08-22).
Juho Snellman [Thu, 7 Sep 2006 00:56:59 +0000 (00:56 +0000)]
0.9.16.18:
Fix installation into directories with spaces (reported by Edi
Weitz on sbcl-help).
Juho Snellman [Wed, 6 Sep 2006 20:27:09 +0000 (20:27 +0000)]
0.9.16.17:
Support for external formats in SB-ALIEN. The C-STRING alien-type
specifier now accepts :EXTERNAL-FORMAT and :ELEMENT-TYPE parameters.
This is a slightly incompatible change: to get the behaviour of
the old C-STRING alien-type, use (C-STRING :EXTERNAL-FORMAT :ASCII
:ELEMENT-TYPE BASE-CHAR).
Thanks to Yaroslav Kavenchuk for doing most of the work on this.
* Also add support for non-ascii pathnames
* Add some recent CONTRIBUTORS
* Update INSTALL
* Add argument quote/space escaping to RUN-PROGRAM on win32
Juho Snellman [Sun, 3 Sep 2006 01:55:03 +0000 (01:55 +0000)]
0.9.16.16:
Add bsd tar support to ASDF-INSTALL (patch by "bsd1628", sbcl-devel
"Changes to ASDf-INSTALL to support NetBSD tar" on 2006-08-04).
Nikodemus Siivola [Sat, 2 Sep 2006 11:38:23 +0000 (11:38 +0000)]
0.9.16.15: stamp down on warnings due to step instrumentation
* CALL-NEXT-METHOD body compiled without step-instumentation.
* Get rid of the FAST-NARROWED-EMF kludge, replace it with another
one: in addition to INVOKE-EFFECTIVE-METHOD-FUNCTION we now also
have INVOKE-NARROW-EFFECTIVE-METHOD-FUNCTION.
* Test.
Juho Snellman [Sat, 2 Sep 2006 00:29:56 +0000 (00:29 +0000)]
0.9.16.14:
Add support for Unix98-style ptys. (thanks to Sidney Markowitz)
Juho Snellman [Fri, 1 Sep 2006 23:03:57 +0000 (23:03 +0000)]
0.9.16.13:
Remove the horribly thread-unsafe globaldb caches. Both of them.
* Makes single globaldb accesses significantly slower (about
50% slowdown), but for any normal use-cases this is completely
lost in the noise
* Add a test