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
Christophe Rhodes [Fri, 1 Sep 2006 16:08:31 +0000 (16:08 +0000)]
0.9.16.12:
Whoops. Commit extremely late printing code for
reference-condition with reference :amop :function ... (used in
unset funcallable-instance functions). Also include
:amop :reader, as yet unused.
Christophe Rhodes [Fri, 1 Sep 2006 15:32:21 +0000 (15:32 +0000)]
0.9.16.11:
Give funcallable-standard-object the direct superclasses
(function standard-object), to make generic-function have a
superclass list in accord with CLHS 1.4.4.5. This deviation
from AMOP is compatible with Lispworks and CLISP.
Christophe Rhodes [Fri, 1 Sep 2006 14:57:29 +0000 (14:57 +0000)]
0.9.16.10:
Massage the new ARRAY :SIMPLE-UNION2 type method into a little
bit more of acceptability.
... now (or simple-string simple-array) is the same as
(or simple-array simple-string)
... really quite complicated unions still seem to work, judging
by ETYPECASE.15 and SUBTYPEP.OR.4
... include some simple test cases.
Gabor Melis [Fri, 1 Sep 2006 10:53:45 +0000 (10:53 +0000)]
0.9.16.9:
* raw slots are of type lispobj instead of long for the sake of
alpha
Gabor Melis [Fri, 1 Sep 2006 10:32:27 +0000 (10:32 +0000)]
0.9.16.8: less conservatism
* the word at control_stack_end is not part of the control stack and
not a pointer to be preserved
* similarly, don't preserve the first word after the interrupt context
Cyrus Harmon [Thu, 31 Aug 2006 07:48:06 +0000 (07:48 +0000)]
0.9.16.7: renamed ppc-darwin-{langinfo,dlshim} to
darwin-{langinfo,dlshim}
* removed ppc-darwin-dlshim.{c,h}
* removed ppc-darwin-langinfo.{c,h}
* removed x86-darwin-langinfo.c
* added darwin-dlshim.{c,h}
* added darwin-langinfo.{c,h}
* fixed references to these in Config.x86-darwin and
Config.ppc-darwin
* fixed references to these in grovel-headers.c
Nikodemus Siivola [Tue, 29 Aug 2006 13:35:23 +0000 (13:35 +0000)]
0.9.16.6: better circularity detection in fasl dumper
* We need to detect car-circularity too, which can get expensive, so
we approximate: CYCLIC-LIST-P => MAYBE-CYCLIC-P
* Reported by Marco Monteiro on sbcl-devel.
Nikodemus Siivola [Mon, 28 Aug 2006 17:16:22 +0000 (17:16 +0000)]
0.9.16.5: clean up some unused symbols from SB-EXT (really)
The missing package-data-list.lisp-expr changes from last commit.
ETOOMANYCHERRIES
Nikodemus Siivola [Mon, 28 Aug 2006 17:14:04 +0000 (17:14 +0000)]
0.9.16.4: clean up some unused symbols from SB-EXT
In Memoriam:
*GC-NOTIFY-AFTER*
*GC-NOTIFY-BEFORE*
*GC-NOTIFY-STREAM*
*ERROR-PRINT-LENGTH*
*ERROR-PRINT-LEVEL*
*ERROR-PRINT-LINES*
Nikodemus Siivola [Mon, 28 Aug 2006 16:56:47 +0000 (16:56 +0000)]
0.9.16.3: initfile refactoring
* Move all related logic to PROCESS-INIT-FILE.
* Enable customization of default user- and sysinit file via
SB-IMPL::*SYSINIT-PATHNAME-FUNCTION* and
SB-IMPL::*USERNIT-PATHNAME-FUNCTION*.
* Fixes -- and makes testable without root access -- the bug
regarding loading of the default sysinit file, reported by Leonid
Slobodov.
* A few missing #!+sb-doc's in toplevel.lisp.
Christophe Rhodes [Mon, 28 Aug 2006 12:14:30 +0000 (12:14 +0000)]
0.9.16.2:
Fix bug found by compiling with both a buggy
funcallable-instance type under intersection and a patch for
generic (Gray-like) sequences. Weird, huh?
... make sure we have a sequence before using sequence functions
in ENOUGH-NAMESTRING-like functions.
Christophe Rhodes [Mon, 28 Aug 2006 12:08:19 +0000 (12:08 +0000)]
0.9.16.1:
Rework the named :complex-intersection-arg2 method for instance
and funcallable-instance, making it a lot clearer and fixing
bugs in the process...
... structure-classoids are always subtypep instance and never
intersect funcallable-instance;
... standard-classoids are different. It's possible to make
a subclass of an instance class which is
funcallable-instance (if you pardon the loose
construction), while the reverse is not possible.
William Harold Newman [Fri, 25 Aug 2006 21:26:42 +0000 (21:26 +0000)]
0.9.16:
release, will be tagged as sbcl_0_9_16
Nikodemus Siivola [Wed, 23 Aug 2006 12:46:26 +0000 (12:46 +0000)]
0.9.15.48: more precice unions of array types
* implement ARRAY :SIMPLE-UNION2, and don't use CSUBTYPEP to shortcut
unions where both types are array types -- fixes bug #306a. (Move to tests.)
* move comments in UNION-COMPLEX-SUBTYPEP-ARG2 slightly for clarity.
* bug #367 went with #368.
* bug #387 is fixed nowadays.
Nikodemus Siivola [Tue, 22 Aug 2006 17:01:39 +0000 (17:01 +0000)]
0.9.15.47: compiler-macros for SETF functions
* ...already work, so remove the warning, and add a test
Nikodemus Siivola [Tue, 22 Aug 2006 15:48:56 +0000 (15:48 +0000)]
0.9.15.46: cosmetic cleanups
* SLOT-VALUE-OR-DEFAULT now uses an UNREADABLE-OBJECT as the default
marker for unbound slots, giving us #<unbound slot> instead of "unbound".
* Edit special operator docstrings for consistency.
* Whitespace.
Christophe Rhodes [Tue, 22 Aug 2006 13:23:41 +0000 (13:23 +0000)]
0.9.15.45:
Make ENSURE-CLASS and ENSURE-GENERIC-FUNCTION do what AMOP says
regarding the :METACLASS and :GENERIC-FUNCTION-CLASS default
arguments. I don't like it, but that's what it says, and as
Bruno points out on sbcl-devel, no default is right in all
circumstances.
... we didn't call ENSURE-CLASS ourselves except as part of
DEFCLASS' expansion; we did call
ENSURE-GENERIC-FUNCTION, so arrange to call it only
when necessary and only with the right
:generic-function-class argument.
... while we're at it, fix a bug in ENSURE-CLASS, which got
the metaclass wrong if the argument was provided
more than once.
... document one or two more small MOP deviations in the
manual.
Nikodemus Siivola [Mon, 21 Aug 2006 17:54:38 +0000 (17:54 +0000)]
0.9.15.44: fix bug 368: intersection of array types
* TYPE-INTERSECTION of arrays preserves the specialized type when
appropriate -- even if the intersection of the expressed types is
empty.
* Delete bug 217 -- has been fixed, is in the test-suite.
* Note about bug 235.
* Not more *USE-IMPLEMENTATION-TYPES*, behave always as if it was T.
Christophe Rhodes [Mon, 21 Aug 2006 16:34:58 +0000 (16:34 +0000)]
0.9.15.43:
Tiny rename in PCL, to stop me from confusing UPDATE-CLASS with
the completely unrelated (FLET UPDATE-CLASS).