sbcl Log

Commit Date  
[fd79e3] by Nikodemus Siivola Nikodemus Siivola fix FILL

* Imaginary parts were messed up on 64 bit platforms when
filling arrays of (COMPLEX SINGLE-FLOAT). Thanks to Paul Khuong.

* Also delay the transform of FILL till constraint propagation has
run, to get the constant argument form MAKE-ARRAY in properly.

* ...and eradicate remaining references to the SUPPORT file.

2009-06-04 18:01:31 Tree
[e83436] (sbcl_1_0_29) by Nikodemus Siivola Nikodemus Siivola

1.0.29: release, will be tagged as sbcl_1_0_29

2009-06-04 12:59:09 Tree
[b1f7d9] by Nikodemus Siivola Nikodemus Siivola fix test failures on PPC and elsewhere

* Most of the failures were test that cannot pass due to missing
bits of DX implementation -- stack allocatable vectors and

* Mark backtrace test 353 as expected to fail on PPC as well.

* Don't declare *HANDLER-CLUSTERS* as dynamic-extent on platforms
that do not support DX fixed-alloc, since it will just give
a spurious compiler note.

2009-06-04 11:28:34 Tree
[91ee7a] by Nikodemus Siivola Nikodemus Siivola fix non-unicode builds on x86 and x86-64

* The problem has been there since, but possibly
exposed only recently: MOVE-IF/CHAR cannot use byte-sized
registers since CMOV cannot. Hence disable if for non-unicode

Reported by Stas Boukarev.

* Missing news entry from

2009-06-03 15:56:32 Tree
[0f2750] by Nikodemus Siivola Nikodemus Siivola documentation work related to move to Launchpad

* Delete SUPPORT and minimize BUGS.

The information that used to be there is now the first chapter of
the manual: "Getting Support and Reporting Bugs", Maybe it belongs
elsewhere, but IMO it should be as prominent as we can make it - so
the first chapter for now.

Refer to Lauchpad and sbcl-bugs in "Reporting Bugs".

Remove Dan B. from support providers for now, given that is currently domain-parked.

2009-06-03 09:09:52 Tree
[5b5853] by Nikodemus Siivola Nikodemus Siivola SHARED-INITIALIZE should initialize unbound :CLASS slots

* This has been around for a while, but despite the misleading
comment in the source the spec is clear enough.

2009-06-02 18:33:52 Tree
[7ce510] by Nikodemus Siivola Nikodemus Siivola regression from

* One leg of logic lost in the refactoring: if the type to verify is
(SIMPLE-ARRAY * (*)) we need to check that there is no array

2009-06-02 17:23:08 Tree
[c6fd5a] by Nikodemus Siivola Nikodemus Siivola two regressions from

* OPEN should not physicalize the pathname associated with
the stream.

* RENAME-FILE needs to deal with logical pathnames.

(Both revealed by ansi-tests, as were the last bunch.)

2009-06-02 15:59:33 Tree
[16f861] by Nikodemus Siivola Nikodemus Siivola two regressions from the 1.0.28. series

* from when destructuring a constant :INITIAL-CONTENTS to
MAKE-ARRAY, take care to quote the elements.

* from handle :BACK and :UP in CANONICALIZE-PATHNAME, and
make sure they do not appear after :WILD-INFERIORS or :ABSOLUTE.
I'm more and more concinved that MAKE-PATHNAME should canonicalize,
though, so that these checks don't need to be carried out by users
of pathnames -- but leaving that for later. appropriate that it is .71 that fixes both.

2009-06-02 15:03:03 Tree
[45ec97] by Nikodemus Siivola Nikodemus Siivola regression in ABOUT-TO-MODIFY-SYMBOL-VALUE from

* Patch and test-case by Stas Boukarev.

2009-05-23 08:27:21 Tree
[056761] by Nikodemus Siivola Nikodemus Siivola filesystem tests and small Windows improvements

* FILE-AUTHOR returns NIL instead of signalling an error on Windows

* Missing DIRECTORY canonicalization tests.

* Check one-letter devices for being alpha-chars when unparsing
them on Windows.

* NATIVE-NAMESTRING now has similar tailing-slash handling
on Windows as elsewhere -- adjust the test.

* Windows namestrings canonicalize / to \ -- make the random
namestring tests take that into account.

...filesys.pure.lisp passes on Windows.

2009-05-22 06:16:20 Tree
[f33fdd] by Nathan Froyd Nathan Froyd move PPC over to slimmed-down EMIT-ERROR-BREAK interface

nyef pointed out that compiler/generic/array.lisp was kinda ugly with the
#!+ condition goo it in. This patch is the first step towards moving all
backends over to the slimmer EMIT-ERROR-BREAK interface--one that doesn't
require duplicating lots of error generation code in VOP generation

2009-05-21 21:03:34 Tree
[ea95df] by Nathan Froyd Nathan Froyd fix build on powerpc-linux

lose() was not getting declared early enough; shuffle header files around
to ensure interr.h gets included before gc.h in the relevant places.

2009-05-21 16:22:54 Tree
[9a82b2] by Nikodemus Siivola Nikodemus Siivola implement SB-EXT:GET-TIME-OF-DAY

* On unixoid platforms is this pretty much what UNIX-GETTIMEOFDAY
used to be, whereas on Windows we build it on top of
SystemTimeAsFileTime since gettimeofday() doesn't give us
microseconds there -- it's almost as if the POSIX API support on
Windows as intentionally sucky...

* Keep UNIX-GETTIMEOFDAY around as a wrapper to GET-TIME-OF-DAY,
since there are applications in the wild that use it directly.
Scheduled for deletion towards to the end of 2009, or so.

2009-05-21 15:27:37 Tree
[d25e34] by Nathan Froyd Nathan Froyd fix compiling with *PROFILE-HASH-CACHE* set to T

We were trying to set the PROBES/MISSES variables prior to actually
defining them. Rearrange the logic and add a little OAOO to ensure the
variables are DEFVAR'd first.

2009-05-21 12:13:53 Tree
[8bc3c6] by Nikodemus Siivola Nikodemus Siivola more DIRECTORY work

* While DIRECTORY on local UNC paths worked as of, turns
out Windows network shares don't exist as far as stat() is
concerned -- and hence using the proper share path didn't work.
sans stat, and we're good.

* Canonicalize the pathnames for DIRECTORY, so that (DIRECTORY #P".")
is equivalent to (DIRECTORY #P"./") -- ditto for #P".." and
#P"../". Also make DIRECTORY treat :UNSPECIFIC names and types as
if they were NIL.

2009-05-21 10:30:27 Tree
[146ca8] by Nikodemus Siivola Nikodemus Siivola SB-EXT:DEFINE-HASH-TABLE-TEST

* Based on old SB-INT:DEFINE-HASH-TABLE-TEST, but:
** macro, not a function.
** only two arguments: name of the test function, and the hash function
(which can also be a lambda form.)
** :TEST accepts both 'NAME, and #'NAME as well.
** pick up redefinitions of the test and hash-function without
re-executing the D-H-T-T form.
** protected by package locks.

* MAKE-HASH-TABLE :HASH-FUNCTION supported as well. EQ-based hashing
not legal for user-provided hash functions, accidents prevented by
wrapping functions which may return a true secondary value in
a closure.

* Documentation -- other hash-table extensions as well.

* Documentation generation improvements:
** use the shortest package name available -- CL:FOO, not
** kludge around texi2pdf making &key and company bold
** add exceptions so that we don't format words ANSI and CLHS
as lowecase symbols.

2009-05-21 09:56:16 Tree
[47a747] by Nathan Froyd Nathan Froyd restore SYSCALL macros to the target build

Apparently there were other clients floating out in the wild.

2009-05-21 01:50:52 Tree
[621eeb] by Nikodemus Siivola Nikodemus Siivola partial re-implementation of DIRECTORY

* Rip out !ENUMERATE-MATCHES, which insisted on walking the
directory tree from the root -- making using DIRECTORY on
UNC pathnames a losing proposition.

* New guts built on top of MAP-DIRECTORY, and it's lower level cousin
WITH-NATIVE-DIRECTORY-ITERATOR. This seems easier to understand to
me at least, and was certainly easier than trying to re-architect
!ENUMERATE-MATCHES. ...and DIRECTORY now works on UNC shares, yay!

...and a bunch of associated secondary changes:

** Rename UNIX-FILE-KIND NATIVE-FILE-KIND, and move it to

UNIX-DIRENT-NAME -- later to be turned into OS-*, and possibly
moved into SB-SYS.

** *IGNORE-WILDCARDS* is no longer needed in MAYBE-MAKE-PATTERN,
kill it.

and Unix: both have the same lisp namestring syntax for pieces,
and if a third pathname host appears it probably should too.

keyword there.

in GENSYM instead.

** Kill PATHAME-ORDER, unused.

** Follow the same convention as elsewhere for :AS-FILE in
NATIVE-NAMESTRING on Windows -- users needing the
no-trailing-slash version are supposed to say :AS-FILE. OS
pickiness on slash-or-no seems universal...

2009-05-20 13:51:53 Tree
[8ebb91] by Nikodemus Siivola Nikodemus Siivola partial UNC pathname support for Windows

UNC hosts are represented using the devíce components of pathnames,
as are drives. This is sleightly lossy since it prevents accessing
network hosts named with a single letter -- single-letter devices
are taken to mean drives.

However, since storing the host in the pathname host component
would lead to confusion between logical hosts and UNC hosts,
this seems preferable right now, so that

(make-pathname :host "foo" ...)

remains unambiguous. DIRECTORY does not work yet with UNC pathnames
since it insists on walking the path from root -- which Windows
doesn't seem to allow for UNC paths, not even local ones.

2009-05-19 12:30:24 Tree
[be6abf] by Nikodemus Siivola Nikodemus Siivola give UNIX-NAMESTRING the chop

Use PROBE-FILE and NATIVE-NAMESTRING instead as appropriate.

2009-05-18 20:38:44 Tree
[e4c6f7] by Nikodemus Siivola Nikodemus Siivola more MAKE-ARRAY goodness


The transform for LIST dimensions replaces this with an identical
call, except that the dimensions will be 3.

The transform for INTEGER dimensions fires, but does not yet
see the (LIST X Y Z) in INITIAL-CONTENTS, since it is now an
argument to the lambda introduced by the previous call.

One option would be to delay the latter transform if we don't see
how to compile it nicely, because after a couple of IR1-OPTIMIZE
passes the call to LIST will be there, and the intermediate lambda

However, because multiple roundtrips like that suck, instead make
the source transform for MAKE-ARRAY smart enough to recognize this
case, and transform to the integer argument case directly., this makes me think we really should try to eliminate /
simplify lambdas introduced by TRANSFORM-CALL up front somehow.

2009-05-18 09:17:49 Tree
[7f9f1f] by Nikodemus Siivola Nikodemus Siivola cross compiler is able to reason about host complexes

...based on the type the host object will take in target,
which just needs to follow the same logic our dumper uses.

...fixing which shows the the new FILL transform didn't handle
complex single floats quite right yet.

2009-05-18 07:58:11 Tree
[81b3f0] by Nikodemus Siivola Nikodemus Siivola more robust stack frame pointer checking in SB-SPROF

Foreign code might not have a frame pointer like we expect. Use

Patch by Bart Botta.

2009-05-17 18:01:01 Tree
[cfc3b6] by Nikodemus Siivola Nikodemus Siivola transform FILL to a UB*-BASH-FILL when possible

The performance boost for all cases which previously used
VECTOR-FILL* is quite noticeable.

Also delay the FILL transform if the vector element type is
not yet known.

...also one leftover #+sb-xc-host from the previous commit.

2009-05-17 17:30:23 Tree
Older >