sbcl Log

Commit Date  
[953e29] by Stas Boukarev Stas Boukarev

Optimize TYPEP of (MOD X) on x86/x86-64.

Optimize type-tests in the same vein as type-checks previously, and
implement type-checks by means of type-tests. Further optimize it by
avoiding doing fixnum tests on known fixnums and boxing of
signed/unsigned numbers.

2013-07-16 01:12:51 Tree
[220651] by Paul Khuong Paul Khuong

Handle unbounded integer types in INTEGER-TYPE-NUMERIC-BOUNDS

If any of the integer type in the union lack upper or lower bounds,
immediately abort with unknown bounds (rather than taking the MIN
of NIL and an integer).

Thanks to pfdietz for his random testing.

Fixes lp#1199127.

2013-07-08 21:05:26 Tree
[8fb553] by Lutz Euler Lutz Euler

Add a regression test for lp#1194673.

2013-07-07 13:06:47 Tree
[e877a2] by Christophe Rhodes Christophe Rhodes

restore CLISP cross-compilability

s is the marker for short-float, not single-float. Use f instead.

2013-07-05 16:24:44 Tree
[b4fa25] by Stas Boukarev Stas Boukarev

Update ASDF to 3.0.2.

2013-07-04 09:58:54 Tree
[a20451] (sbcl-1.1.9) by Christophe Rhodes Christophe Rhodes

1.1.9: will be tagged as "sbcl-1.1.9"

2013-07-04 08:29:48 Tree
[43df38] by Christophe Rhodes Christophe Rhodes

fix typo in FFI chapter

noted by Michael Crouch (lp#1197129)

2013-07-03 09:26:01 Tree
[fd2101] by Paul Khuong Paul Khuong

Revert to binding *package* in bootstrappy code

I see no sane way to use sb!ext:print-symbol-with-prefix or
sb-ext:... in ~//. Bind *package* to :keyword instead, for
undefined function conditions.

Reported by adeth on #lisp.

2013-06-29 23:54:25 Tree
[616e16] by James M. Lawrence James M. Lawrence , pushed by Stas Boukarev Stas Boukarev

Fix SLEEP on 32-bit platforms.

2013-06-25 21:43:27 Tree
[622b19] by Paul Khuong Paul Khuong

Fix a typo in the block comment on encoding/decoding universal times

Might as well, while we're updating URLs.

Spotted by Luis Oliveira.

2013-06-28 13:08:11 Tree
[d8665c] by Paul Khuong Paul Khuong

s/32/n-word-bits/ in bignum-index

For some reason we missed that during all the work on x86-64. Then
again, our static inference is good enough that no runtime check
seem to be left to detect that the declaration is wrong.

2013-06-28 06:03:33 Tree
[8fee78] by Paul Khuong Paul Khuong

Store FP values from x87 to the heap outside pseudo-atomic

It suffices to get the header right, and that way we avoid signaling
FPEs in PA, when, as is bound to happen, a value is only truncated
when it's boxed.

2013-06-28 06:01:06 Tree
[74cf7a] by Paul Khuong Paul Khuong

double->single float conversion isn't a no-op on x87 anymore

The conversion can result in overflow, so pass through a stack
temporary to force a truncation.

Test case by Peter Keller on sbcl-devel, 2013-06-26.

2013-06-28 05:45:49 Tree
[1656e5] by Paul Khuong Paul Khuong

New contrib: SB-GMP

This contrib was developed by Stephan Frank to replace some of our
bignum and rational arithmetic code with calls to libgmp. Simply
loading the contrib will transparently accelerate arithmetic on
large rationals when libgmp is available; if libgmp cannot be found,
the contrib should change nothing.

The contrib also wraps additional functions in GNU MP, so that they
accept and return SBCL-native integers or ratios. See GNU MP's manual
for more information.

2013-06-28 03:15:38 Tree
[d30da1] by Paul Khuong Paul Khuong

Defer some sanity checks to after testing for value refence to inline functions

The functional corresponding to an inline function can be marked as dead when
there remains references in for-value contexts. Detect such references before
making sure the function is still live.

Reported with a reduced test case by Teemu Likonen to sbcl-devel on 2013-06-24.

2013-06-28 02:03:24 Tree
[b88467] by Jan Moringen Jan Moringen , pushed by Paul Khuong Paul Khuong


Otherwise MAKE-THREAD could be interrupted after having
locked *MAKE-THREAD-LOCK*. If the interrupting code also called
MAKE-THREAD, a recursive lock attempt for *MAKE-THREAD-LOCK* would

The problem could be easily triggered by

(MAKE-TIMER ... :THREAD <T or a thread>)

Also move let bindings of SETUP-SEM, REAL-FUNCTION, ARGUMENTS and
INITIAL-FUNCTION and the NOT *GC-INHIBIT* assertion out of the
critical section.

Tests have been added in threads.pure.lisp and timer.impure.lisp.

fixes lp#1180102.

2013-06-23 17:13:14 Tree
[a5e4db] by Attila Lendvai Attila Lendvai , pushed by Paul Khuong Paul Khuong

Wrap the body of sb-debug:backtrace with with-debug-io-syntax.

Added with-debug-io-syntax macro.

Some whitespace changes as well.

2010-10-27 12:03:34 Tree
[810b20] by Attila Lendvai Attila Lendvai , pushed by Paul Khuong Paul Khuong

Provide more info in debugger-disabled-hook.

Before this change if there was an error printing the condition object,
then we didn't even try printing the backtrace afterwards, which can be
a useful source of information even if the condition printing has failed.

Some modifications by Paul Khuong.

2010-10-31 00:18:53 Tree
[417910] by Attila Lendvai Attila Lendvai , pushed by Paul Khuong Paul Khuong

Make the printing of a slot-unbound error more error tolerant.

Especially against errors coming from custom PRINT-OBJECT methods, in which
case only print the TYPE-OF the instance. Also, print fully qualified
symbol names.

Slightly modified by Paul Khuong.

2011-01-02 15:41:47 Tree
[c7313d] by Attila Lendvai Attila Lendvai , pushed by Paul Khuong Paul Khuong

Use sb!ext:print-symbol-with-prefix in implicit-generic-function-warning.

and export this useful function from sb-exr.

Slight mangling by Paul Khuong.

2011-01-02 15:42:15 Tree
[3e3cd6] by Pierre Thierry Pierre Thierry , pushed by Paul Khuong Paul Khuong

Update URL of "Long, Painful History of Time"

Previous URL was not available anymore (404 error)
Also rewrapped the paragraph to the same width as the others

2011-08-28 19:38:28 Tree
[8900ba] by Stas Boukarev Stas Boukarev

Simplify EMIT-VOP further.

EMIT-VOP is only ever used in conjunction with INSERT-VOP-SEQUENCE, by
returning two values: first and last VOPs, all linked together,
INSERT-VOP-SEQUENCE then inserts them into the block. But nowadays
EMIT-VOP always returns the same VOP as the second value.
* EMIT-VOP now returns one value, the emitted VOP.
* INSERT-VOP-SEQUENCE is renamed to INSERT-VOP, accepts only one VOP.
* A new function EMIT-AND-INSERT-VOP is added, which combines them,
and is used anywhere where EMIT-VOP was used.

This makes things less complicated, and reduces core size by 32KB, the
same as the previous commit, for a total of 64KB of savings
essentially for free.

(Also squeeze a couple of line-break fixes)

2013-06-24 10:28:30 Tree
[092fae] by Stas Boukarev Stas Boukarev


Since there's only one kind of templates now, there's no need for
indirection. Rename EMIT-GENERIC-VOP to EMIT-VOP, remove EMIT-FUNCTION
slot from TEMPLATE, call EMIT-VOP directly.

2013-06-24 09:50:35 Tree
[6e8818] by Stas Boukarev Stas Boukarev

backtrace: don't cons large lists when RCX is overwritten inside XEPs.

To present a list with the actual number of passed arguments in the
backtrace, clean-xep used the arg-count register and added missing
arguments in the form of #<unknown>, but if the register is
overwritten by other code, it could cons very large lists, exhausting
heap. Do such arg-list clean up only upon INVALID-ARG-COUNT-ERROR.
Fixes lp#1192929.

2013-06-22 15:37:18 Tree
[77641d] by Joshua Elsasser Joshua Elsasser

Hopefully fix the windows build to grovel time structures correctly.

It is a little misleading to say "correctly" since struct timespec
doesn't really exist on windows. Groveling the definition that we
define in our own pthreads wrapper seems the most consistent choice.

The grovel-headers.c changes have only been tested in isolation, not
with a real build. Thanks to Kyle Isom for testing, any resulting
build problems are entirely my fault.

2013-06-09 04:36:48 Tree
Older >

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

Sign up for the SourceForge newsletter:

No, thanks