sbcl Log


Commit Date  
[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
read.

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

rewrite DUMP-I-VECTOR

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

SET-FUNCALLABLE-INSTANCE-FUNCTION is user interface

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:47:40 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
DESTRUCTURING-BIND.

2013-09-13 09:10:26 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
PARSE-KEYWORDS-AND-BODY; Gets rid of KLUDGE regarding
WITH-KEYWORD-PAIRS

* 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-09-13 09:10:17 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 14:02:51 Tree
[56b6d1] by Christophe Rhodes Christophe Rhodes

rename recently-added tests

use only keyword symbols in the names to assist in continuous
integration

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:25:59 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
after WITH_GC_AT_SAFEPOINTS_ONLY.
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
omitted.

Reported by Jan Moringen.

2013-09-09 15:44:18 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:44:39 Tree
[b08c57] by Christophe Rhodes Christophe Rhodes

better comment describing INDEX type

merged ideas from Paul Khuong and Jan Moringen, from
<http://paste.lisp.org/display/138734>

2013-09-09 09:21:54 Tree
[c07b62] by Stas Boukarev Stas Boukarev

sb-safepoint: Fix interrupts during GC.

In interrupt_handle_now, move

context_sap = alloc_sap(context);
info_sap = alloc_sap(info);

after WITH_GC_AT_SAFEPOINTS_ONLY(), otherwise the allocation will
break the running GC.
Fixes lp#1133018.

2013-09-08 23:19:18 Tree
[6e8fe7] by Stas Boukarev Stas Boukarev

LDB/DPB do not check for negative indexes.

Calling (lambda (x y) (ldb (byte x y) 100)) with -1 -2 didn't raise an
error.

Reported by Bart Botta.

2013-09-07 19:01:37 Tree
[9c510b] by Stas Boukarev Stas Boukarev

Adjust SETcc instruction encoding on x86-64.

Avoid emitting REX for legacy registers.

2013-09-07 05:48:35 Tree
[01cc13] by Stas Boukarev Stas Boukarev

Improve knownfun declarations.

Make some types more accurate, add some
:derive-type #'result-type-first/last-arg.
Add missing %adjoin/member/assoc-test/not/key defknowns.

2013-09-06 22:03:08 Tree
[7a3dd4] by Stas Boukarev Stas Boukarev

Remove a wrong IGNORE declaration.

An incorrect ignore declaration was used with #!-sb-package-locks,
even though the ignored variables are used without sb-package-locks
too.

Patch by Douglas Katzman.

2013-09-06 17:58:24 Tree
[6364a5] by Stas Boukarev Stas Boukarev

Save some space in WITH-OUTPUT-TO-STRING.

Not passing :element-type 'character to MAKE-STRING-OUTPUT-STREAM
saves a few bytes, since it's the default value.

2013-09-06 14:23:40 Tree
Older >