sbcl Log

Commit Date  
[b15ec2] by Stas Boukarev Stas Boukarev

Fix OPEN with :io and :if-does-not-exist nil.

No need to call unix-stat, truename is already bound to the result of

Reported by Eric Marsden.

2013-09-24 18:04:59 Tree
[19d37e] by Stas Boukarev Stas Boukarev

ADJOIN shouldn't constant fold.

ADJOIN creates new lists, so it shouldn't be constant folded. The
problem materialized when more %adjoin-* helper functions received an
fndb entry with foldable attribute copied, causing more cases to be

Reported by Eric Marsden.

2013-09-23 17:25:51 Tree
[d7cbe5] by Paul Khuong Paul Khuong

Test for broken copy-more-arg harder

* It takes 17 fixed arguments for (threaded) PPC to fail. Test
for up to 33 arguments now.

* Also, add some comments to explain why SP shouldn't be set to its
final value eagerly when the stack frame is smaller than the fixed
arguments: accessing slots past SP is a bad idea when interrupts
could hit and overwrite these values. In such cases, leave SP
pointing to the end of the source vector, and only move it back to
the end of the destination vector after the copy loop.

2013-09-22 01:05:14 Tree
[9b79c4] by Paul Khuong Paul Khuong

Smaller initial stack frame size on x86oids

Now that copy-more-arg is fixed, stack frames can be initialised
at 3 slots (some raw constants in the codegen seems to depend on
each frame spanning at least that many slot).

2013-09-21 22:34:30 Tree
[20102d] by Paul Khuong Paul Khuong

Fix copy-more-arg on x86 and x86-64

Parsing of non-fixed (&optional, &key and &rest) arguments used to
fail when there were more fixed arguments than slots in the stack
frame. Fix this on x86oids by copying non-fixed arguments in the
correct direction, depending on whether there are more fixed args
or stack frame slots.

This bug is more visible on x86oids since 3b98d3 (Smaller stack
frames on x86oids), but may still plague other platforms. These
platforms still have larger initial stack frame size (8 slots), so
the issue remains as hard to trigger as it's been for more than a

Reported by Jan Moringen, and reduced by Stas Boukarev.

Also add a test, marked as failing on !x86oids.

2013-09-21 19:11:49 Tree
[2cfc78] by Stas Boukarev Stas Boukarev

Fix a regression in binding specials.

Got two lines mixed up, where order is important.

Caught by Paul Khuong.

2013-09-21 22:35:47 Tree
[ced29b] by Stas Boukarev Stas Boukarev

Optimize special variable binding on sb-thread.

Remove a level of indirection when unbinding special bindings, instead
of saving a symbol on the binding stack, and then accessing its
tls-index to unbind it, save the tls-index directly, saving one memory

2013-09-19 19:30:09 Tree
[f42374] by Stas Boukarev Stas Boukarev

Fix loading specialized vectors from fasls.

Previously vectors were dumped and loaded based on the hand crafted
typecase forms, which was quite fragile.
After the dumping part was rewritten to consult
sb-vm:*specialized-array-element-type-properties*, the loading part
broke down.
Change the way it's done altogether, simplifying things significantly.
Instead of having separate FOPs for signed and unsigned vectors,
writing bit size of elements, just dump the widetag and use just a
single FOP, fop-spec-vector. Floating point dumping routines now use
fop-spec-vector too.

2013-09-19 02:24:25 Tree
[7dfa54] by Christophe Rhodes Christophe Rhodes


Simple, easy-to-understand cross-compiler version with limited
functionality; target version generated from sb-vm:*S-A-E-T-P*
so stands some chance of being correct.

Problem in previous version noted by Douglas Katzman (report
sbcl-devel 2013-09-16)

2013-09-18 10:20:58 Tree
[05e28b] by Stas Boukarev Stas Boukarev

Remove a level of indirection in *linkage-info*.

Don't store the address in a linkage-info structure, only the linkage-info-address
slot was ever used. Store the address directly.

2013-09-16 19:56:40 Tree
[79f4c3] by Stas Boukarev Stas Boukarev

Restore building of +sb-unicode with -sb-unicode.

Some host definitions slipped in during cross-compilation.
char-code-limit => sb!xc:char-code-limit.
**character-primary-compositions** was initialized at xc-time, move it to cold init.

Thanks to Christophe Rhodes for the latter.

2013-09-16 19:53:30 Tree
[26e756] by Christophe Rhodes Christophe Rhodes


It should therefore not trigger AVER failures if the user gets the
order of arguments wrong, but report the problem sanely. The fix
in this commit is only semi-sane; it would be nice to report an
expected-type of SB-MOP:FUNCALLABLE-STANDARD-OBJECT rather than
SB-KERNEL:FUNCALLABLE-INSTANCE, but there are slightly tricky
bootstrap issues to sort out to get that to work.

2013-09-16 11:34:49 Tree
[fa8bda] by Christophe Rhodes Christophe Rhodes

minor optimization to restart-case

The generated non-local transfer functions go to a tag which will
always be in scope whenever the restart can be invoked, so wrap the
GO in a scary (safety 0) optimization declaration. This fixes
lp#1023721 (but not the issue raised in comment #1, which would be
solved naturally if lp#383078 is addressed).

Include a test which deliberately breaks the normal dynamic-extent
lifetime for restarts; restarts generated by RESTART-CASE and friends
in fact have indefinite extent, even though once they're out of the
dynamic-extent of their creating/binding operator you can't really do
anything with them (INVOKE-RESTART signals a control-error if the
restart given is not active, and there's no way to reactivate a
restart). However, the temptation to make the restart function
have dynamic-extent allocation must be resisted, because of the
indefinite lifetime of the restart object itself.

2013-09-13 13:30:13 Tree
[7dab8f] by Christophe Rhodes Christophe Rhodes

NEWS update for RESTART-CASE clause parsing

fixes lp#1203585

2013-09-13 09:36:37 Tree
[0337d7] by Jan Moringen Jan Moringen , pushed by Christophe Rhodes Christophe Rhodes

Simplify RESTART-BIND and improve documentation string

* Mention syntax in documentation string.

* Simplify implementation using a location function PARSE-BINDING and

2013-07-16 21:15:02 Tree
[1fa173] by Jan Moringen Jan Moringen , pushed by Christophe Rhodes Christophe Rhodes

Remove convoluted keyword argument processing in RESTART-CASE

* Replace a combination of TRANSFORM-KEYWORDS, PARSE-KEYWORD-PAIR and
WITH-KEYWORD-PAIRS with a relatively simple local function

* Add a smoke test and more cases for the :MALFORMED-CLAUSES test in
tests/condition.pure.lisp; Gets rid of the "fair amount of
rearrangement ... should be tested" FIXME

* Fix "test case from Gerd Moellmann" in tests/clos.impure.lisp which
contained an invalid RESTART-CASE form uncovered by the above change

2013-07-21 22:09:03 Tree
[f7ed7e] by Christophe Rhodes Christophe Rhodes

more restrictive test naming

restrict test names to trees of integers and external symbols in
CL/KEYWORD/SB- packages.

2013-09-11 11:24:43 Tree
[56b6d1] by Christophe Rhodes Christophe Rhodes

rename recently-added tests

use only keyword symbols in the names to assist in continuous

2013-09-11 05:10:20 Tree
[3641e3] by Christophe Rhodes Christophe Rhodes

detect cpl-protocol-violations early

Don't try to eagerly finalize classes which will cause
cpl-protocol-violations to be signalled. (lp#309076)

2013-09-10 22:24:46 Tree
[c6f5bc] by Stas Boukarev Stas Boukarev

Fix a regression in sb-safepoint.

WITH_GC_AT_SAFEPOINTS_ONLY is actually a fancy macro, which wraps the
form following it in some code. In a recent change that wasn't
accounted for and resulted in bad consequences. Add {} around the code
Reported by Jan Moringen.

2013-09-10 17:40:42 Tree
[17ba95] by Stas Boukarev Stas Boukarev

Micro-optimize move-immediate on x86-64.

Use XOR X, X when the immediate is 0.

2013-09-09 15:54:05 Tree
[0c08cc] by Stas Boukarev Stas Boukarev

Fix CHAR-EQUAL on base-chars on non-sb-unicode.

BASE-CHAR-P, called by TWO-ARG-CHAR-EQUAL, isn't properly implemented
on non-sb-unicode, the transform by which it gets transformed into
(typep x 'base-char) is disabled, causing an infinite loop.
Since testing for base-char-p is usually redundant on #-sb-unicode,
don't define it there at all. This will catch inadvertent uses.
In the few places where it's currently used, it's can be safely

Reported by Jan Moringen.

2013-09-09 15:43:58 Tree
[2fb9cd] by Christophe Rhodes Christophe Rhodes

rename SB-SIMPLE-STREAMS utility function

At least, I think it was simply intended to be a utility function,
but the FILE-NAMESTRING name is unfortunate, as that's a CL function,
and (for other reasons) SB-SIMPLE-STREAMS claims to implement CL in
the package lock sense, so this was not noticed at the time.

This fixes lp#884603; I am unconvinced that the namestring logic is
actually correct (keeping the distinction between NAMESTRING and
NATIVE-NAMESTRING clear) but I'll wait for an actual user to complain
about that before thinking too hard.

2013-09-09 14:09:42 Tree
[6c296d] by Christophe Rhodes Christophe Rhodes

better ctor fallback-generators

The logic surrounding default-initargs in the presence of "hairy"
methods on make-instance and friends was not quite right, leading
to evaluation of the wrong things at the wrong times. Patch by
Jan Moringen with extra test cases (lp#1179858).

2013-09-09 11:42:30 Tree
[b08c57] by Christophe Rhodes Christophe Rhodes

better comment describing INDEX type

merged ideas from Paul Khuong and Jan Moringen, from

2013-09-09 09:21:54 Tree
Older >