Juho Snellman [Thu, 23 Nov 2006 04:00:15 +0000 (04:00 +0000)]
0.9.18.69:
Fix DISASSEMBLE after a SB-SPROF:RESET (regression since 0.9.18,
reported by Zach Beane).
Christophe Rhodes [Wed, 22 Nov 2006 22:35:28 +0000 (22:35 +0000)]
0.9.18.68:
Living dangerously...
... fix the (function-lambda-expression #'gf) problem;
... add test cases.
Juho Snellman [Wed, 22 Nov 2006 11:37:21 +0000 (11:37 +0000)]
0.9.18.67:
Fix build with gcc 2.95 (regression from 0.9.18, patch by James
Knight).
Juho Snellman [Tue, 21 Nov 2006 12:24:59 +0000 (12:24 +0000)]
0.9.18.66:
Replace the REPLACE introduced in .64 with a "Spirit of
11.1.2.1.1"-compliant CONTINUE. (This is sort of a regression,
so I'm committing it during early freeze).
Christophe Rhodes [Tue, 21 Nov 2006 10:29:09 +0000 (10:29 +0000)]
0.9.18.65:
Minimally document the FreeBSD/x86 threads.
Juho Snellman [Mon, 20 Nov 2006 10:27:59 +0000 (10:27 +0000)]
0.9.18.64:
Add a REPLACE restart for the annoying "FOO already names an ordinary
function or a macro" error for DEFGENERIC.
Juho Snellman [Mon, 20 Nov 2006 09:46:16 +0000 (09:46 +0000)]
0.9.18.63:
Fix the manual build (missed a file in a previous commit).
Cyrus Harmon [Mon, 20 Nov 2006 04:51:37 +0000 (04:51 +0000)]
0.9.18.62:
FreeBSD threads fixes, based on the patches from NIIMI Satoshi
on the sbcl-devel mailing list. This makes FreeBSD threads "work",
finally, at least experimentally.
* added lutex_trylock routine.
* fix the sb-lutex and (not wait-p) case of get-lutex.
* add pthred_mutexattr_t field to the lutex lisp object.
* use libthr (1:1 threading) instead of libpthread (m:n threading)
which supposedly doesn't work.
* use PTHREAD_MUTEX_ERRORCHECK when attribute locking mutexes
* create a dedicated cleanup thread to free threads
* put a mutex around creating threads
* use load_fs instead of the inline asm stubs
Christophe Rhodes [Sun, 19 Nov 2006 17:45:28 +0000 (17:45 +0000)]
0.9.18.61:
Callbacks for Linux/PPC, based on the patch from Joshua Ross
(joslwah sbcl-devel 2006-11-19).
... massage some of the comments into slightly better shape;
... rework the test case rather strongly.
Christophe Rhodes [Sun, 19 Nov 2006 11:26:15 +0000 (11:26 +0000)]
0.9.18.60:
Fix build on ppc/darwin (and probably also on ppc/linux)
... GNU make appears not to like the quotation marks around
the GC_SRC assignments. The symptom was a silent
stop in the build after ldso-stubs.S.
Juho Snellman [Sun, 19 Nov 2006 01:47:32 +0000 (01:47 +0000)]
0.9.18.59:
Bump fasl-file-version (at least CLOS calling convention changes).
Juho Snellman [Fri, 17 Nov 2006 02:15:47 +0000 (02:15 +0000)]
0.9.18.58:
Further SB-SPROF improvements.
* Allocation profiling on gencgc. When the profiler is running in
allocation profiling mode, the gc will signal profiler ticks
when new allocation regions are opened.
* Add :LOOP keyword argument to WITH-PROFILING, to allow specifying
whether the body should be evaluated repeatedly until the maximum
sample count is reached.
* Improve merging of code-components with multiple debug-funs,
better handling of multiple functions with the same name
* More documentation
* Also update the stepper documentation
Nathan Froyd [Thu, 16 Nov 2006 04:18:55 +0000 (04:18 +0000)]
0.9.18.57:
Add missing 'return'.
Juho Snellman [Thu, 16 Nov 2006 03:24:07 +0000 (03:24 +0000)]
0.9.18.56:
Fix SB-POSIX build on Windows (broken by largefile support). Thanks
to Yaroslav Kavenchuk.
Nathan Froyd [Wed, 15 Nov 2006 16:35:17 +0000 (16:35 +0000)]
0.9.18.55:
Fix a 32/64-bit confusion.
Nathan Froyd [Wed, 15 Nov 2006 16:31:00 +0000 (16:31 +0000)]
0.9.18.54:
Unbreak #!-linkage-table builds by adding some forgotten calls
in ldso-stubs.lisp.
Nathan Froyd [Wed, 15 Nov 2006 16:19:56 +0000 (16:19 +0000)]
0.9.18.53:
Optimize MAP and MAP-INTO with vector arguments.
* Introduce new optimization quality, INSERT-ARRAY-BOUNDS-CHECKS;
* Use it in the %MAP and MAP-INTO transforms. (We needed something
more fine-grained than (SAFETY 0), because we still want
any necessary type-checking to take place. But we know that
eliminating the bounds checks are safe.)
Nathan Froyd [Tue, 14 Nov 2006 22:15:20 +0000 (22:15 +0000)]
0.9.18.52:
If possible, use a shorter XOR instruction on x86-64 when we zero
a register.
Thiemo Seufer [Tue, 14 Nov 2006 20:23:33 +0000 (20:23 +0000)]
0.9.18.51:
Fix GC-unsafe temporary variable.
Juho Snellman [Tue, 14 Nov 2006 03:59:52 +0000 (03:59 +0000)]
0.9.18.50:
Various improvements to SB-SPROF (more speed, reliability and
usability, less consing and source code).
* Do the pc -> debug-info mapping in the signal handler, rather
than just storing the PCs and waiting until REPORT is called.
* Remove huge swathes of code for adjusting the PCs after GCs
(I don't think this had actually worked in quite a while, anyway).
This removes the slowdowns for long profiling runs.
* Show samples from assembly routines in the report, rather than
just grouping them all under "no debug information".
* Clean up SB-C::TL-XEPs etc. from function names
* Add an UNWIND-PROTECT to ensure WITH-PROFILING always stops
profiling.
* Make sigprof-handler mostly non-consing. (There's still a
few words of consing / signal handler invocation, but that happens
for all Lisp-side signal handlers).
For the last point, some core SBCL changes are also needed:
* Make a bunch of signal-context accessors inlineable to reduce
SAP to pointer conversions
* Restructure x86-call-context to always return SAPs in certain
return value positions, to allow the compiler to keep them
in registers. Rewrite recursion with a local function.
Juho Snellman [Mon, 13 Nov 2006 16:03:29 +0000 (16:03 +0000)]
0.9.18.49:
Fix Linux/x86 build after a clean.sh.
* Write the target features to genesis/Makefile.features, included
into other makefiles.
* Remove the disgusting shell/grep tricks for feature-based
conditionalizing in Makefiles
Juho Snellman [Mon, 13 Nov 2006 07:20:20 +0000 (07:20 +0000)]
0.9.18.48:
Make calling methods with &OPTIONALs or &KEYs faster and non-consing.
* Change fast method functions to use the normal Lisp argument
passing convention, rather than the CLOS-style "required arguments
as normal Lisp arguments, non-required ones passed as one
list" convention.
* Don't do argument parsing manually in the FMFs generated by
MAKE-METHOD-INITARGS-FORM-INTERNAL1
* Use &MORE instead of &REST in DFUN lambda lists.
* Clean up the lambda-list generation mess in cache.lisp / dlisp.lisp
Juho Snellman [Mon, 13 Nov 2006 06:10:15 +0000 (06:10 +0000)]
0.9.18.47:
Faster &MORE-handling VOPs on x86 and x86-64.
* The performance of LOOP is really bad on modern x86, rewrite
the loops in %LISTIFY-REST-ARGS and %MORE-ARG-VALUES to do
the index manipulation and branching explicitly.
* REP MOVS isn't very good for copying small blocks of memory, use
an explicit loop in COPY-MORE-ARG.
* Rewrite the x86-64 COPY-MORE-ARG to take advantage of the extra
registers.
* Implement %MORE-ARG (exists on all other platforms).
Juho Snellman [Sun, 12 Nov 2006 23:04:57 +0000 (23:04 +0000)]
0.9.18.46:
Support files >2GB on Linux/x86.
* Compile the runtime (and the C type grovelers) with various flags
to enable a 64-bit off_t.
* Add C-side wrappers for various POSIX functions, so that we can
reliably get the largefile versions of them from Lisp-side.
Rudi Schlatte [Sun, 12 Nov 2006 21:42:27 +0000 (21:42 +0000)]
0.9.18.45
"Patch to update Japanese external formats" (NIIMI Satoshi, 2006-11-10)
* New external format: Shift-JIS
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).