Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.

Close

sbcl Log


Commit Date  
[7bc052] by Nikodemus Siivola Nikodemus Siivola

1.0.43.58: ignore ASDF source registries when building contribs

Fixes bug 659105.

2010-10-14 16:43:32 Tree
[12836c] by Nikodemus Siivola Nikodemus Siivola

1.0.43.57: better handling of derived function types

Fixes bug 657499, and improves the earlier fix of 655126.

* Sort out TYPE vs. DEFINED-TYPE in FIND-GLOBAL-FUN:

** TYPE is the declarared type, OR the derived type iff
*derive-function-types* is true, no ftype has been declared,
we're not explicitly late-binding, and the function is not
NOTINLINE.

** DEFINED-TYPE is the derived type, or FUNCTION if the function has
been declared NOTINLINE or we're late-binding.

Previously TYPE (which is what the rest of the system trusts
implcitly) was the derived type for functions in the same file
not declared NOTINLINE.

* ASSERT-CALL-TYPE can now be used in "untrusted" cases as well:
argument types are asserted as before, but instead of using
DERIVE-NODE-TYPE to annotate the function LVAR with its type, we
instead assert the return-type when appropriate.

* VALIDATE-CALL-TYPE is now called with DEFINED-TYPE from
IR1-OPTIMIZE-COMBINATION, not
IR1-CONVERT-COMBINATION-CHECKING-TYPE: the DEFINED-TYPE may be used
there in an untrusted call to ASSERT-CALL-TYPE.

Also keep track of the leaves whose DEFINED-TYPE we have asserted,
so that we won't do duplicate work. New slot in COMBINATION:
TYPE-VALIDATED-FOR-LEAF is utilized for this.

* LEAF-WHERE-FROM can now also be :DEFINED-HERE, meaning the
definition originates in the file being compiled -- this
information is used by VALIDATE-CALL-TYPE, and filled in by
FIND-FREE-FUN and FIND-GLOBAL-FUN.

* Adjust the tests for 655126 to account for full warnings
in case *derive-function-types* and self-calls.

2010-10-14 16:32:51 Tree
[179985] by Nikodemus Siivola Nikodemus Siivola

1.0.43.56: make %INSTANCE-TYPEP always-translatable

One way to make an SBCL that builds but cannot build itself is
to change the compiler so that it fails to eliminate a full call
to %INSTANCE-TYPEP.

This doesn't change that, but at least makes such hosts fail in a
place where the issue is easier to figure out than hitting "undefined
function: %INSTANCE-TYPEP" during cold-init.

2010-10-14 11:40:39 Tree
[eca61f] by Nikodemus Siivola Nikodemus Siivola

1.0.43.55: move FILE-COMPILE to compiler-test-utils.lisp

Neater this way, and we should probably be using it in a few
other places too.

2010-10-14 11:16:45 Tree
[157ce7] by Nikodemus Siivola Nikodemus Siivola

1.0.43.54: .gitignore tweaking

Ignore *.diff, *.patch, customize-backend-subfeatures.*.

Change customize-target-features.lisp to customize-target-features.*.

2010-10-14 10:59:34 Tree
[d7f0f5] by Nikodemus Siivola Nikodemus Siivola

1.0.43.53: less CPU-speed sensitive test for bug 654289

Instead of hardcoding a time limit, compile bits of code with
different sized constants, and compare the times in relation
to each other.

2010-10-14 10:57:29 Tree
[765a04] by Nikodemus Siivola Nikodemus Siivola

1.0.43.52: correct char-size for :EXTERNAL-FORMAT :DEFAULT

Fixes bug 657183.

Make picking the char-size part of picking input/output routines,
and make set-fd-stream-routines set FD-STREAM-CHAR-SIZE from it.

For cleanliness sake, don't ever construct an FD-STREAM with an
inconsistent external-format and char-size -- meaning the default
external-format for the FD-STREAM structure cannot be :DEFAULT.
...this should not matter, but in case someone inspects an unfinished
stream instance, at least things make a bit more sense.

2010-10-13 15:07:29 Tree
[21818a] by Nikodemus Siivola Nikodemus Siivola

1.0.43.51: disable get-protocol-by-name/error test on threaded FreeBSD

Workaround for bug 659857.

At least some versions of FreeBSD return -1 and errno=EINTR for
unknown protocols.

2010-10-13 13:24:26 Tree
[af4276] by Nikodemus Siivola Nikodemus Siivola

1.0.43.50: better function signature checking for self-calls

Fixes bug 655126.

Allow passing a lambda-list to GET-DEFINED-FUN, and when provided
one, make up an FTYPE based on that lambda-list.

2010-10-13 13:13:35 Tree
[cb41e6] by Nikodemus Siivola Nikodemus Siivola

1.0.43.49: (SETF FDEFINITION) and (SETF SYMBOL-FUNCTION) should clear derived ftype

Fixes 659220.

Just call CLEAR-INFO unless the type is declared.

2010-10-12 14:42:53 Tree
[9c9bc0] by Paul Khuong Paul Khuong

1.0.43.48: Unbreak fast-ash-c/fixnum=>fixnum on x86

* ZEROIZE is an x86-64ism (introduced in 1.0.43.47).

2010-10-12 05:36:38 Tree
[0c00c2] by Paul Khuong Paul Khuong

1.0.43.47: Unfix ASH of constant shift on x86oids

* The fixnum=>fixnum VOPs for ASH used to explicitly handle shifts greater
than the word length by computing a zero instead. These should be
constant-folded away in IR1 now.

* 1.0.43.45 incidentally fixed lp #309063 (which is what the fix above
was used for). Add a test case, update NEWS, and note the optimizations
committed in 1.0.43.{42,43,47}.

2010-10-12 05:10:07 Tree
[2dfaff] by Paul Khuong Paul Khuong

1.0.43.46: Simplify some type tests to EQL comparisons

* When the type to test is a singleton type, check for EQLity
against the one value inhabiting that type.

2010-10-12 04:52:24 Tree
[f2218c] by Paul Khuong Paul Khuong

1.0.43.45: More type-directed constant folding

* 1.0.30.2 introduced logic to use MEMBER-TYPEs during constant
propagation. This commit uses SINGLETON-TYPE-P to extend that
logic to more types (NUMERIC and CHARACTER-SET).

* This exposes additional constant-folding opportunities in
src/code/bit-bash.lisp; the necessary definitions are now available
at compile-time.

2010-10-12 04:50:24 Tree
[49319a] by Paul Khuong Paul Khuong

1.0.43.44: New type method: TYPE-SINGLETON-P

* The new type method is used to Determine whether a type is inhabited
by exactly one object. If so, it returns and the object. Otherwise,
it returns NIL, NIL.

* It is only defined for MEMBER, CHARACTER-SET and NUMERIC -TYPEs so
far.

* The default is to always return NIL, NIL.

2010-10-12 04:46:02 Tree
[600211] by Paul Khuong Paul Khuong

1.0.43.43: Merge more equivalent branches together

* Recognize cases of (if foo [leaf] [same leaf]), and compile the conditional
branch away. We used to only perform something similar to that when the
branches jumped to exactly the same block. We now detect simple cases of
equivalent blocks.

2010-10-12 04:43:48 Tree
[eb7eab] by Paul Khuong Paul Khuong

1.0.43.42: Constant fold IFs before performing IF/IF conversion

IF/IF-conversion is somewhat similar to "the trick": when a conditional
branches on an lvar that may be written to by multiple nodes, duplicate
the conditional after each of the writers.

We used to perform that before constant-folding IFs. We now do the
reverse: it's always better to completely flush the branch away than to
duplicate it.

2010-10-12 04:41:16 Tree
[fa37ab] by Nikodemus Siivola Nikodemus Siivola

1.0.43.41: TYPE-ERROR printing tweak for *PRINT-ESCAPE* = T

Print as #<TYPE-ERROR exptected-type: SOME-TYPE datum: SOME-DATUM> when
possible.

Virtually every time I see a TYPE-ERROR printed with *PRINT-ESCAPE* =
T I need to go look for the place where it is printed in order to see
what the actual problem is -- and I don't think I'm the only one.

This is hopefully one annoyance less.

2010-10-11 14:29:13 Tree
[d79b18] by Juho Snellman Juho Snellman

1.0.43.40: Allow use of unmangled win32 function names

* Patch lp#657117 from Kalyanov Dmitry

2010-10-10 00:34:11 Tree
[6bd6f6] by Nikodemus Siivola Nikodemus Siivola

1.0.43.39: proclaimed function types and NOTINLINE

Declaring a function NOTINLINE no longer causes the compiler
to ignore its proclaimed FTYPE.

Trusting the proclaimed type is harmless, as NOTINLINE calls
are compiled just like regular (as opposed to inlined) calls.

2010-10-09 23:09:26 Tree
[989f5a] by Nikodemus Siivola Nikodemus Siivola

1.0.43.38: some PPRINT-LOGICAL-BLOCK issues

:PER-LINE-PREFIX was multiply-evaluated, and both it, :PREFIX, and :SUFFIX
caused code-deletion notes to be issued.

Stick a ONCE-ONLY in there, and use

(declare (string ...))

instead of

(unless (typep x 'string) (error ...))

Python derives the fact that the argments must be strings by the time
the TYPEP call occurs from the call to START-LOGICAL-BLOCK, hence the
code-deletion note for the call to ERROR.

2010-10-09 22:33:41 Tree
[20f2eb] by Nikodemus Siivola Nikodemus Siivola

1.0.43.37: update ASDF to 2.009

2010-10-08 19:45:15 Tree
[83d429] by Alastair Bridgewater Alastair Bridgewater

1.0.43.36: threads: Add ATOMIC-INCF improvement notification to NEWS.

* Updated NEWS, that is all.

2010-10-07 16:53:12 Tree
[545fde] by Nikodemus Siivola Nikodemus Siivola

1.0.43.35: fix make-host-2.lisp from 1.0.43.34

THAT was not supposed to go in. Grr. Sorry.

2010-10-07 16:49:30 Tree
[975352] by Nikodemus Siivola Nikodemus Siivola

1.0.43.34: differentiate cross-compiler output from target and host

No difference in the end-product, but seeing "x-compiling" in
build-logs makes them easier to read for slow people like me.

That is:

* while building the xc-host messages are from the host compiler.
If the host happens to be SBCL, that means:

; compiling (DEFUN FOO ...)

* while building the target:

; x-compiling (DEFUN FOO ...)

* while building CLOS and contribs on target:

; compiling (DEFUN FOO ...)

2010-10-07 16:40:47 Tree
Older >