sbcl Log


Commit Date  
[19cda1] (sbcl-1.1.8) by Christophe Rhodes Christophe Rhodes

1.1.8: will be tagged as "sbcl-1.1.8"

2013-06-02 13:12:30 Tree
[16197d] by Lutz Euler Lutz Euler

Fix expected result for a character comparison test under non-unicode.

The test "character.pure.lisp / :case-insensitive-char-comparisons
:exhaustive" was marked as an expected failure as the unicode
implementation is not yet complete, but on a non-unicode build it
actually already succeeds.

2013-06-02 12:58:49 Tree
[8a19ff] by Stas Boukarev Stas Boukarev

Fix a regression in APPEND type derivation.

Do not just test the arguments for validity by being subtypes or
supertypes of LIST, but also if it's a subytpe of NULL, since ATOM or
SYMBOL won't satisfy the LIST tests.

Regression since f32ee7d.."Better type derivation for APPEND, NCONC,
LIST.", reported by Eric Marsden.

2013-05-31 12:27:11 Tree
[237840] by Paul Khuong Paul Khuong

Stricter precondition when strength reducing variable right shifts

Looking at the node's derived type is safer than a result type
constraint, which seems to consider the LVAR's derived or
truly-declared type.

Remove a redundant AVER too. If people call %ash/right directly and
incorrectly, they're looking for trouble. Moreover, the call's
type will be derived only if the argument types are correct.

Reported by Eric Marsden on sbcl-devel; further reduced test cases
by Christophe Rhodes.

2013-05-31 01:57:02 Tree
[17dd0a] by Paul Khuong Paul Khuong

Compute single-value-type correctly in the absence of required values

* For the longest time (at least 2003), we didn't take defaulting
into account and did not union the single-value type with NULL.
For some reason, the issue didn't manigest itself until we improved
code generation for EQ/EQL this month.

Thanks to Attila Lendvai for the reasonable test case.

* Also, fix a typo in a VOP name for EQ of fixnum values.

2013-05-27 21:45:33 Tree
[88429c] by Christophe Rhodes Christophe Rhodes

fix CHAR-EQUALity of non-ascii caseful characters

Or at least mostly fix it. There are issues surrounding iota subscript and
titlecase, which aren't regressions in the current release and will require
some more investigation to fix.

2013-05-27 07:11:05 Tree
[be974e] by Lutz Euler Lutz Euler

Skip unicode normalization tests on non-unicode builds.

This was accidentally missed when the tests were introduced.

2013-05-25 14:39:28 Tree
[0b3f5c] by Paul Khuong Paul Khuong

Revert "Fix (aref vector (+ i constant)) with i negative on x86oids"

This reverts commit 5d3a728a1d9a91e7218fe53f12f96ab63b846810.

The current code is still wrong, but better the bugs we've always had
than the ones that break currently-working code.

Kept the test case, and added the one we failed on.

2013-05-24 20:45:57 Tree
[aae270] by Paul Khuong Paul Khuong

Even safer substitution of constants in CUT-TO-WIDTH

* Fix another aspect of the modular arithmetic bug that was only
partially fixed by ccd2a1d (Substitute constants with modular
equivalents more safely); detected by the previous fix not
working on !x86oids.

2013-05-24 18:49:41 Tree
[0e6592] by Paul Khuong Paul Khuong

Robustify specialised IF/IF conversion introduced in 729ce57

* When unlinking a node from its destination LVAR, always mark
the node as potentially up for dead code elimination. IR2 can
become really confused when converting dead code; a more
systematic cleanup pass might provide a useful safety net.

* The changes make a widely-used ir1-manipulation function safer,
so this might also fix some other obscure compiler bug.

* Reported by James Y Knight on IRC and Fila Kolodny on Launchpad
(fixes lp#1183496).

2013-05-24 18:49:40 Tree
[03090f] by Paul Khuong Paul Khuong

Silence the compiler when (runtime-) compiling PCL innards

2013-05-24 18:49:39 Tree
[5d3a72] by Paul Khuong Paul Khuong

Fix (aref vector (+ i constant)) with i negative on x86oids

* The VOPs for indexed access with constant offset take a fixnum
index. Adjust fndb entries to reflect that.

* Fix FOLD-INDEX-ADDRESSING: don't convert if the resulting index
would be wider than a fixnum, and compute the new offset correctly
for subtractions.

* Test case by Douglas Katzman.

2013-05-24 18:49:33 Tree
[8ed82d] by Jingyi Hou Jingyi Hou , pushed by Christophe Rhodes Christophe Rhodes

tweak so that block-delete-p is findable by grep for 'def.*block-delete-p'

2013-05-23 19:47:44 Tree
[2cabe4] by Jingyi Hou Jingyi Hou , pushed by Christophe Rhodes Christophe Rhodes

search_for_executable() fails to process last part of PATH if PATH does not end with ':'

2013-05-23 19:47:37 Tree
[5cb515] by Christophe Rhodes Christophe Rhodes

fix build with #!-SB-UNICODE

Don't build a hash table with high-codepoint characters as values under
those circumstances.

2013-05-23 19:33:00 Tree
[808d81] by Paul Khuong Paul Khuong

Improved SIMD-PACK manipulation VOPs on x86-64

* Tighten naive (and, in one case, wrong-looking) lifetime
specifications to enable more register coalescing.

* Exploit the coalescing by replacing explicit move instructions
with MOVE, and specify the SC to get MOVAPS for float data.

* Microoptimise away some PSRLDQ by 0.

2013-05-22 18:19:47 Tree
[2372ff] by Paul Khuong Paul Khuong

Specialised VOPs for EQ of fixnum values on x86oids

Steal fixnum EQL VOPs to implement EQ, like we already do for
characters, words and signed-words: otherwise they're converted
as signed-word EQ.

2013-05-22 18:17:23 Tree
[ab705e] by Paul Khuong Paul Khuong

Preserve types when swapping constant arguments and commute LOGTEST

* Add a transform to ensure any constant argument to LOGTEST is in
second position.

* Commutative-arg-swap used to often cause suboptimal code: subsequent
transforms fire before constraint propagation has tightened types
back to their original value. Hack with TRULY-THE for now. A more
general fix (e.g. by declaring the type of arguments in spliced-in
lambda expressions) would be even better.

2013-05-22 18:12:17 Tree
[1e2f52] by Paul Khuong Paul Khuong

Update/clarify the status of FUNCTIONP and COMPILED-FUNCTION-P

The two functions aren't collapsed anymore on #!+sb-eval builds.

2013-05-22 05:31:28 Tree
[faaca6] by Paul Khuong Paul Khuong

Optimize (- (* x constant)) into (* x (- constant))

Another marginal lvar-fun-name/splice-fun-arg hack.

Closes lp#1065770.

2013-05-22 05:13:22 Tree
[1ac616] by Paul Khuong Paul Khuong

More efficient move-from-signed on x86-64 with 63-bit fixnums

We can SHL instead of IMUL to check for overflow, and only have to
RCR the sign bit back in to recover the original value.

2013-05-22 05:13:22 Tree
[60deeb] by Paul Khuong Paul Khuong

Simpler word-sized variable right shifts on x86 and x86-64

* Known negative shifts are converted to another function that
only handles machine-friendly right shifts.

* The transforms and VOPs are conditionalised on ash-right-vops,
so other platforms aren't penalised.

* The new transforms trigger a lot of notes; this is suboptimal,
and one test had to be adjusted.

2013-05-22 05:13:22 Tree
[11dc84] by Paul Khuong Paul Khuong

Simplify (- (- x)) for rationals

The transform is trivial enough to execute without a real pattern
matching framework, but we're close to the limit.

2013-05-22 05:13:22 Tree
[46602b] by Paul Khuong Paul Khuong

Evaluate global inline functions via their fdefinition

* When inlinable global functions are evaluated for value, emit
code to refer to their fdefinition, rather than to a bogus
entry point.

* Make sure we only generate code to refer to XEPs and fail early
otherwise, rather than after backpatching.

* Fixes lp#1035721.

2013-05-22 05:13:22 Tree
[c1ec38] by Paul Khuong Paul Khuong

Truthful error reporting for complicated compile-time type mismatches

Type mismatches for multiple-use LVARs (i.e. resulting from conditional
expressions) can't be pinpointed to a single source for the value(s).

Such expressions used to be reported as type mismatches with the constant
NIL. Instead, switch to a more complex format with the lowest common source
form, if any (hopefully the conditional), and the nodes that may deliver
the form's value.

Do the same when warning about non-EQ-comparable CATCH tags.

2013-05-22 05:13:22 Tree
Older >