sbcl Log

Commit Date  
[920b5e] by Paul Khuong Paul Khuong


Executing (sb-ext:assert-version->= 1 1 13) signals a continuable
error if the running SBCL is older than 1.1.13 (and an undefined
function error before that).

Based on a patch by Philip Munksgaard.

Closes lp#674372.

2013-11-14 21:51:18 Tree
[6574cb] by Paul Khuong Paul Khuong

Tail call (exec) at the end of

exec-ing into the runtime executable doesn't hurt and helps rlwrap.

Suggested by William Cushing (lp#1249183).

2013-11-14 19:22:47 Tree
[04b902] by Stas Boukarev Stas Boukarev

sb-sprof: Move tests into test.lisp.

Instead of having tests in sb-sprof.lisp and running them from
test.lisp, move everything into test.lisp.

2013-11-13 11:34:58 Tree
[f8664e] by Cyrus Harmon Cyrus Harmon

remove asdf-install contrib

2013-11-12 22:10:59 Tree
[54da32] by Stas Boukarev Stas Boukarev

Fix typos in docstrings and function names.

Includes an incompatibility change, sb-thread:thread-eMphemeral-p has
a typo, but it doesn't appear to be used anywhere outside of SBCL.

2013-11-12 14:40:23 Tree
[378a5e] by Douglas Katzman Douglas Katzman

Add test for my commit 0e8649... of last week

2013-11-11 22:53:37 Tree
[a4c87f] by Stas Boukarev Stas Boukarev

win32: provide error messages when loading foreign libraries.

Decode the error codes into messages.

2013-11-11 11:13:51 Tree
[1975bd] by Stas Boukarev Stas Boukarev

More robust homedir detection on Windows.


Fixes lp#922117.

2013-11-10 18:26:17 Tree
[772e2f] by Stas Boukarev Stas Boukarev

Fix merging of ~/ pathnames.

Don't merge the device component if the resulting pathname starts with
:absolute :home. The expansion of ~ may contain it's own device,
causing problems, especially on Windows, where
(merge-pathnames "~/") => c:C:\Users\user.

2013-11-10 15:59:35 Tree
[0e8649] by Douglas Katzman Douglas Katzman

Eliminate "unused variable" warning from ARRAY-ROW-MAJOR-INDEX

2013-11-08 21:08:46 Tree
[711f75] by Stas Boukarev Stas Boukarev

Don't warn when #'(setf fun) is used in the presence of a setf-macro.

Warn only when defining such a function, not when using it.

Reported by Douglas Katzman.

2013-11-08 20:26:44 Tree
[99e23f] by Stas Boukarev Stas Boukarev

Optimize testing of sealed structures.

Don't check for the layout validity, redefining structures is
undefined, and the non-sealed case doesn't check for it already.

2013-11-07 22:47:41 Tree
[7cd7b2] by Stas Boukarev Stas Boukarev


Change MAKE-RESTART lambda-list to
(name function
&optional report-function interactive-function test-function)
instead of using the default structure constructor with keywords.
MAKE-RESTART is only used in RESTART-BIND, and this allows for more
compact calls and not having to parse keyword parameters should
make the code slightly faster.

2013-11-07 22:45:12 Tree
[9b8111] by Stas Boukarev Stas Boukarev


Optimize a case when restart handlers have zero or one arguments:
instead of saving a &rest list and then applying a function, don't
save anything, or save one argument and use FUNCALL.

Based on a patch by Jan Moringen.

Closes lp#1249055.

2013-11-07 22:26:47 Tree
[4082de] by Stas Boukarev Stas Boukarev Fix when $OSTYPE is not set.

2013-11-07 20:02:16 Tree
[a12945] by Stas Boukarev Stas Boukarev

Fix equality between #p"~" and (user-homedir-pathname) on Win32.

Don't use user-homedir-namestring on the windows version of
native-namestring, since the home directory can be specified as
C:/User/user, use (native-namestring (user-homedir-pathname)), which
will get C:\\User\\user\\ instead, making (native-namestring "~/") and
(native-namestring (user-homedir-pathname)) equal.

2013-11-06 18:39:31 Tree
[9de65d] by Stas Boukarev Stas Boukarev

Disable win32 pathnames routines on -win32 and vice versa.

#-win32 has all the win32 pathname code enabled, but it's not used
anywhere and not exported. Even if using pathnames of a different OS
may be a good idea, it's currently not presented in any usable way and
only wastes space.

2013-11-06 17:20:21 Tree
[cf49f2] by Stas Boukarev Stas Boukarev

Fix contrib building on mingw.

The current directory has to be found out using pwd -W, to avoid any
conversion into unix-looking pathnames.

2013-11-06 17:11:53 Tree
[8c773a] by Stas Boukarev Stas Boukarev

Remove get2 variant of get.

(get x y [z]) was expand into (get3 x y z) or (get2 x y), and get2
called (get3 x y nil), just expand into (get3 x y nil) directly.

2013-11-06 00:46:26 Tree
[151fa3] by Stas Boukarev Stas Boukarev

Optimize raw-instance-slots-equalp for #-complex-float-vops.

The comparer function for COMPLEX types wasn't properly optimized
during cross-compilation because the types of REALPART and IMAGPART
weren't derived by the cross-compiler on account of
CROSS-FLOAT-INFINITY-KLUDGE, but the derivers do not actually perform
any mathematical derivation, just
(complex (double-float 10d0)) => (double-float 10d0).
Enabling them during cross-compilation allows = on complex floats be
optimized and avoids consing.

2013-11-05 15:56:00 Tree
[1cba0a] by Stas Boukarev Stas Boukarev

Fix lose() invocation inside sparc-arch.c

2013-11-05 13:48:03 Tree
[4c7c37] by Stas Boukarev Stas Boukarev

Optimize EQUALP on structures with raw slots.

Add a comparer slot to raw-slot-data, which is defined as
(lambda (index x y)
(= (%raw-instance-ref/double x index)
(%raw-instance-ref/double y index)))

Which is both faster than calling %raw-instance-ref/double out of
line and does not cons.

2013-11-04 22:52:37 Tree
[498ec5] by Paul Khuong Paul Khuong

[N]BUTLAST perform a single pass over the list

The old code would first count the number of conses, and then
SUBSEQ/(RPLACD/NTHCDR). Instead traverse the list with two offset
pointers that advance in lockstep.

Based on a patch by Johan Andersson, on lp#1245697.

2013-11-04 18:55:10 Tree
[8be78b] by Paul Khuong Paul Khuong

More complicated TYPEP tests are marginally transparent to type propagation

Expansions for TYPEP are wrapped in %typep-wrapper, a fancy identity. The
additional arguments track what value is being tested for what type, which
helps inform constraint propagation, as well as detecting redundant type

Such a wrapper is a hindrance to lower level control flow rewriting that are
essential for decent code generation. After a single pass of constraint
propagation, the wrapper evaporates and the TYPEP expansion becomes as opaque
as it is now.

2013-10-24 02:36:17 Tree
[ce6c27] by Paul Khuong Paul Khuong

Two new optimizer types for flow-sensitive type propagation

CONSTRAINT-PROPAGATE optimizers can add new information about the
state of the world after/if the function has returned. Function
type declarations/propagation suffice for simple patterns (e.g.
return types, or unconditional type requirements on arguments),
but this optimizer is more general.

Such optimizers receive two arguments, the combination node and the
current set of constraints, and return a sequence of constraints.
Constraints are lists of three or four values:
1. a constraint kind (either TYPEP, <, >, or EQL);
2, 3. two arguments, either LVARs, LAMBDA-VARs or a CTYPE;
4. optionally, whether the meaning of the constraint must be
This mimics the (defstruct (constraint ...)) in constraint.lisp.
If any of the argument is NIL, the constraint is skipped; otherwise,
it is added to current set of constraints. Optimizers have access
to that set, and can thus map LVARs to LAMBDA-VARs thanks to

CONSTRAINT-PROPAGATE-IF optimizers can instead hook into the
interpretation of functions as predicate, when their result feeds
into an IF node. They also receive the node and the current set
of constraints as arguments, and return four values. The first two
values are an LVAR and a CTYPE: if they are non-NIL, that LVAR is
of that CTYPE iff the combination returns true. The two remaining
values are sequences of constraints (see previous paragraph) for
the consequent (if-true) and alternative (if-false) branches,
respectively. These are useful for more complex tests, but also
to represent partial information, e.g., if an EQUAL test fails,
the two values are not EQL either.

2013-10-24 02:34:37 Tree
Older >

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

No, thanks