sbcl Log

Commit Date  
[c0f43b] (sbcl_1_0_30) by Nikodemus Siivola Nikodemus Siivola

1.0.30: release, will be tagged as sbcl_0_1_0_30

2009-07-17 21:20:31 Tree
[d0376c] by Nikodemus Siivola Nikodemus Siivola fix load-time-value regressions


* Don't allow constant moves from LTV TNs (better fix after release):
this is the simple and obviously correct fix.

* Also declaim the type of the correct function in the test-case from
last commit.

2009-07-08 13:34:56 Tree
[bdafd7] by Nikodemus Siivola Nikodemus Siivola correct loading of first FP operand as inline constant

* x86-64 only.

2009-07-08 12:55:11 Tree
[ff8359] by Paul Khuong Paul Khuong Make float tests consume less memory

* A test introduced in uses a lot of memory during compilation. Split
the definition into multiple toplevel functions to avoid exhausting the heap.

2009-07-06 13:18:09 Tree
[c4a60e] by Nikodemus Siivola Nikodemus Siivola two more CTOR optimization issues

* Invalid calls of the form (MAKE-INSTANCE ''QUUX) or similar reported
hard to understand errors instead of using the NO-APPLICABLE-METHOD
machinery. (reported by Gabor Melis)

* Runtime generation of new CTORs for the inline cache was not thread
safe: grab *WORLD-LOCK* to ansure that (1) all CTORs end up in
*ALL-CTORS* (2) we don't construct a CTOR with the same name twice.
Also initialize the new CTOR with the initial constructor before
setting its FDEFINITION: this is strictly speaking not needed given
the lock, but more clearly correct. No test-case, as I was unable to
actually provoke problem in real code.

2009-07-01 15:13:09 Tree
[c3a003] by Nikodemus Siivola Nikodemus Siivola pre-release freeze start

2009-06-29 07:46:49 Tree
[2230ea] by Paul Khuong Paul Khuong Inline unboxed constants on x86[-64]

* New build-time feature: inline-constants, which specifies that SB!C
and SB!VM implement a protocol described in base-target-features.lisp-expr.
Backends implementing that feature are able to load constants from code
components, in a section that follows the actual executable code.

* Implement the protocol on x86 and x86-64, and use it for float constants,
and, on x86-64 only, mid-sized (> 2^(29-32), but still machine-sized)

* Use the new feature in integer and float arithmetic VOPs.

* Adjust a few test cases to take newly consing situations into account.

* Clean-up:
- New build-time feature: float-eql-vops, which disable rewriting EQL
of single and double floats in terms of foo-float*-bits.
- Fix a typo (unused variable lookup) in TWO-ARG-+/-

2009-06-28 21:37:05 Tree
[485944] by Nikodemus Siivola Nikodemus Siivola ...really this time...

(Missed version.lisp-expr and tests/compiler-test-util.lisp)

2009-06-28 21:21:04 Tree
[f09f67] by Nikodemus Siivola Nikodemus Siivola some LOAD-TIME-VALUE smartness

* Implicit READ-ONLY-P for obviously immutable values.

* Annotate the result with a derived type -- in practice
the obvious declarared type of the function, if any.

* In the test suite organize compiler tests a bit:

** compiler-test-util.lisp has some general-purpose
tools for determining if the compiled code passes muster.

** Move some pure tests from compiler.impure.lisp to the pure
file: they were in the impure file because they defined
utils which are now in the COMPILER-TEST-UTIL (aka CUA)

2009-06-28 21:18:44 Tree
[30c596] by Nikodemus Siivola Nikodemus Siivola small UCD optimizations and related cleanups

* Fix "optimization failure with anything using
SB-IMPL::UCD-GENERAL-CATEGORY" reported by Lynn Quam
( and related
performance issues.

** Declare returns types of UCD accessors where it seems to matter.

** Make the character database a global variable, not special.

* Delete stale header comments from target-char.lisp: not just ASCII
for quite a while now.

* Delete references to fonts and bits from docstrings everywhere but
in CHAR-INT and canonicalize docstring indentation.

(The patch is a bit noisy because moving the definition of the
character database inside the macrolet messed up a whole bunch of
indentation -- sorry about that.)

2009-06-28 14:45:38 Tree
[aa8cdb] by Nikodemus Siivola Nikodemus Siivola correctly compute default initargs for FAST-MAKE-INSTANCE

* Ooops, can't use DEFAULT-INITARGS, since calling it executes the
initforms. Define and use CTOR-DEFAULT-INITARGS.

* A better test-case.

* Reported by Leslie P. Polzer.

2009-06-28 10:55:52 Tree
[77f6e0] by Nikodemus Siivola Nikodemus Siivola update ASDF

* Not from cclan anymore, but

2009-06-27 09:28:16 Tree
[f8c8f8] by Nikodemus Siivola Nikodemus Siivola silence compiler note for type-checks from MAKE-INSTANCE in safe code

* Reported by Samium Gromoff.

2009-06-27 09:02:04 Tree
[386e90] by Nikodemus Siivola Nikodemus Siivola compute default initargs for SB-PCL::FAST-MAKE-INSTANCE

* Reported by Lars Rune Nøstdal.

* SB-PCL::DEFAULT-INITARGS doesn't have to be a generic function.

* Test-case.

2009-06-26 20:45:04 Tree
[5e0af0] by Paul Khuong Paul Khuong Floating point correctness improvement

* Don't perform constant folding for addition/subtraction of 0
or multiplication/division/exponentiation by +/- 1 on float

* Also operate on the imaginary part for generic addition and
subtraction with mixed complex/real arguments, as specified.

* Update NEWS for 10.29.44.

2009-06-26 16:54:18 Tree
[139f0e] by Nikodemus Siivola Nikodemus Siivola export SB-POSIX:FILENAME and SB-POSIX:FILE-DESCRIPTOR

* Also define the non-designator types, and export the designator

* Document both types and functions separately, moving the docs from
manual into docstrings.

* Extend FILENAME-DESIGNATOR for STREAMS for consistency with pathnames.

2009-06-26 15:56:09 Tree
[44c9d9] by Nikodemus Siivola Nikodemus Siivola another CTOR optimization

* If we're forced to use the fallback generator, but the initargs can be
verified early on and there are no extra methods on MAKE-INSTANCE
we don't have to go through full MAKE-INSTANCE: instead use
FAST-MAKE-INSTANCE. 1 less GF call and no initarg checking at runtime
yields a ~2-4 fold performance improvement.

2009-06-25 17:11:05 Tree
[a157ed] by Paul Khuong Paul Khuong Complex float improvements

* On all platforms:
- Slightly more stable complex-complex float (double and single)
- New transform for real-complex division;
- complex-real and real-complex float addition and subtraction
behave as though the real was first upgraded to a complex, thus
losing the sign of any imaginary zero.

* On x86-64
- Complexes floats are represented packed in a single SSE register;
- VOPs for all four arithmetic operations, complex-complex, but also
complex-real and real-complex, except for complex-complex and
real-complex division;
- VOPs for =, negate and conjugate of complexes (complex-real and
- VOPs for EQL of floats (real and complexes).
- Full register moves for float values in SSE registers should also
speed scalar operations up.

2009-06-25 15:37:05 Tree
[aecec1] by Paul Khuong Paul Khuong SSE{1,2} instruction definitions on x86-64

* Most definitions have barely been tested.

* Small disassembler bugfix for an SSE instruction format also included.

2009-06-25 15:26:10 Tree
[50327e] by Nikodemus Siivola Nikodemus Siivola small fixoid for the EXPT optimization from

* EQL -1, not 1 -- no easily observable difference, but this one gets
the branchless version actually used.

2009-06-25 15:00:34 Tree
[95d194] by Nikodemus Siivola Nikodemus Siivola inline CTOR caches for MAKE-INSTANCE

* If MAKE-INSTANCE has constant keywords but a variable first argument,
build an inline cache of CTORs.

** Initially a sorted list, switching to a max 256 entry table if
the list grows too large.

** Rename CTOR-NAME to CTOR-NAME-OR-CLASS, and allow building CTORs
for class arguments as wel. Similarly, CTOR function names
can contain class objects as well.

** Factor out RANDOMLY-PUNTING-LAMBDA from cache.lisp, since CTOR
cache wants it too.

** STD-INSTANCE-P and FSC-INSTANCE-P become functions with compiler
macros -- they are now used in compiler-support.lisp, which
is built before low.lisp, so using macros is out.

* Also enable the existing CTOR optimization for constant class objects
as class arguments.

* Tests.

2009-06-25 14:55:41 Tree
[c6e249] by Nikodemus Siivola Nikodemus Siivola more (EXPT MINUS-ONE INTEGER) optimization

* Branchless version, thanks to Paul Khuong.

* Also optimize -1.0 and -1.0d0 cases.

* Tests.

2009-06-25 11:26:57 Tree
[237ec4] by Nikodemus Siivola Nikodemus Siivola SLEEP on large integers

* Truncate arguments to nanosleep to SIGNED-WORD -- sleeping for 68
years should be enough for anyone. (reported by Leslie Polzer, patch
by Stas Boukarev)

* Also fix a snafu from the last commit: GET-UNIVERSAL-TIME, not

2009-06-25 10:32:55 Tree
[6dc30b] by Nikodemus Siivola Nikodemus Siivola better DESCRIBE

* Rework DESCRIBE for more comprehensive reporting and
easier to read output.

* Delete src/pcl/describe.lisp, no PCL leftovers in the new DESCRIBE
except for some heritage in DESCRIBE-INSTANCE.

* Fix COMPILED timestamps: we want both internal-real and universal
time for different use-cases. (Though I'm not sure if we really care
about the COMPILED timestamps that much, especially now that I
unilaterally removed their printing from DESCRIBE.)

* Give primitive type transform functions the lambda-list of the type.

2009-06-25 09:40:22 Tree
[2b82a3] by Gabor Melis Gabor Melis fix control stack exhuastion regression on x86 darwin

... caused by

2009-06-24 20:03:43 Tree
Older >

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

Sign up for the SourceForge newsletter:

No, thanks