sbcl Log


Commit Date  
[a14aed] (sbcl-1.1.16) by Christophe Rhodes Christophe Rhodes

1.1.16: will be tagged as "sbcl-1.1.16"

2014-02-28 15:53:09 Tree
[d99cbc] by Christophe Rhodes Christophe Rhodes

support Wine builds of sb-bsd-sockets

We get a different error telling us that UDP Streams aren't allowed

2014-02-26 14:51:47 Tree
[1d9728] by Stas Boukarev Stas Boukarev

sb-profile: use ENCAPSULATE to wrap functions around.

For better compatibility with generic functions, use ENCAPSULATE.

Fixes lp#309086.

2014-02-23 18:09:12 Tree
[c89ad4] by Stas Boukarev Stas Boukarev

Change encapsulation to use functions instead of evaluation forms.

In preparation for making sb-profile use ENCAPSULATE, reducing
profiling overhead from evaluation.

2014-02-23 16:12:27 Tree
[6d5b30] by Zulu Zulu , pushed by Stas Boukarev Stas Boukarev

Handle bogus std handles on win32.

2014-02-22 19:44:44 Tree
[afdb50] by Stas Boukarev Stas Boukarev

Reduce consing in iterative regalloc.

The COLOR slot of VERTEX is defined as (cons color sc), but SC is
already accessible through the TN slot, as (tn-sc (vertex-tn vertex)).
Store only the color number in the COLOR slot, reducing consing.

2014-02-22 19:10:34 Tree
[e6f088] by Stas Boukarev Stas Boukarev

Speed up iterative regalloc a little.

Avoid consing an intermediate list in vertex-color-possible-p.

2014-02-22 18:36:27 Tree
[67e380] by Stas Boukarev Stas Boukarev

Improve LOGAND-BIGNUM/C VOP on x86-64.

Avoid putting unboxed constants into the code when possible.

2014-02-22 15:43:04 Tree
[ee98f8] by Stas Boukarev Stas Boukarev

Add transforms for SORT and STABLE-SORT.

Transform SORT and STABLE-SORT into more specialized functions when
possible,

2014-02-22 15:43:04 Tree
[3124ac] by Douglas Katzman Douglas Katzman

x86-64 allows R12 as an index register in SIB addressing.

As R12 is wired to the current thread ptr, this fix has little practical
impact, but corrects the inconsistency that "lea Rn,[rax+r12]" is
effectively identical to "lea Rn,[r12+rax]" except the former caused
the assembler to crash and the disassembler to be confused.

2014-02-22 05:24:23 Tree
[a10227] by Christophe Rhodes Christophe Rhodes

define sane escaping in win32 pathname namestrings

We can't use \\ to escape, because it's the directory separator; that
way lies madness. There's some evidence from random web searching that
win32 users might not be too confused with ^ as an escape character, so
try that.

2014-02-21 17:02:28 Tree
[f6f557] by Christophe Rhodes Christophe Rhodes

improve generic function encapsulation

Perform the encapsulation in an :AROUND method specialized on
STANDARD-GENERIC-FUNCTION, so that subclasses transparently inherit
encapsulation handling while still being able to override the standard
COMPUTE-DISCRIMINATING-FUNCTION behaviour. (This is method structure
that AMOP allows implementations, as the :AROUND method is an
extending one -- it calls CALL-NEXT-METHOD)

2014-02-21 17:02:28 Tree
[1f555b] by Stas Boukarev Stas Boukarev

Resolve pathnames with :back.

Remove as much :back as possible at MAKE-PATHNAME time.

Handle any left :back in UNPARSE-NATIVE-UNIX/WIN32-NAMESTRING the same as
:up.

2014-02-21 15:24:59 Tree
[4f9143] by Douglas Katzman Douglas Katzman

Less repetitive definitions of x86 shift instructions.

2014-02-21 03:20:08 Tree
[f91c85] by Douglas Katzman Douglas Katzman

Prevent x86-64 disassembly from decoding unboxed constants as opcodes.

Also, *DISASSEM-LOCATION-COLUMN-WIDTH* gets a new feature - a width of zero
will not show addresses, which makes diffing work with relatively less
pain; and a width of NIL will show addresses as compactly as possible.

2014-02-20 02:37:17 Tree
[dab3af] by Lutz Euler Lutz Euler

Small cleanup on x86-64: Use REG-IN-SIZE instead of MAKE-{BYTE,DWORD}-TN.

In VOP definitions, when a TN for a part of a register is needed,
in some places REG-IN-SIZE is used, in others MAKE-BYTE-TN or
MAKE-DWORD-TN. REG-IN-SIZE can do everything the other two functions
can, so use it in all cases to make the code more regular, and delete
the obsolete functions.

2014-02-13 19:24:49 Tree
[4878c2] by Douglas Katzman Douglas Katzman

Don't always "preform" a GC. (docstring spelling fix)

2014-02-09 01:08:25 Tree
[81bb03] by Lutz Euler Lutz Euler

Fix disassembly of XCHG RAX, R8 on x86-64.

Also fix the corresponding 32- and 16-bit versions.

The three combinations of the XCHG instruction with these specific
register operands were wrongly disassembled as NOP as their encoding
uses the opcode #x90 (with a REX and possibly the #x66 prefix) which the
printer of the NOP instruction matches. (The 8-bit version was already
disassembled correctly as it uses a different opcode.)

Add a new instruction format and two new prefilters to the disassembler
and add a printer clause to the XCHG instruction definition to precisely
distinguish between occurrences of the #x90 opcode that are NOPs and
that are XCHGs.

Note that both #x48 #x90 (XCHG RAX, RAX) and #x66 #x90 (XCHG AX, AX)
continue to disassemble as NOP. This seems sensible as the processor
treats any instruction with opcode #x90 as a true NOP if it exchanges
RAX (or the lower 32 or 16 bits of it) with itself (this is explicitly
stated in the processor's manual), and as the assembler already
generates #x66 #x90 when asked for a two-byte NOP.

2014-02-08 17:48:35 Tree
[645161] by Lutz Euler Lutz Euler

Fix assembly of XCHG EAX, EAX on x86-64.

Don't emit the short (accumulator, reg) form of the XCHG instruction
for this combination of arguments as the result is #x90 which is a NOP.
Instead emit the long (reg, reg/mem) form so that the upper 32 bits of
RAX are cleared as specified.

2014-02-08 17:48:35 Tree
[0e6564] by Lutz Euler Lutz Euler

Small cleanups in src/compiler/x86[-64]/insts.lisp.

On both platforms, remove a redundant instruction format definition:
TWO-BYTES was defined twice, identically. (The repetition seems not
to have done any harm.)

Break overly long lines and, on x86-64, update a comment.

2014-02-08 17:48:35 Tree
[f7b0e7] by Douglas Katzman Douglas Katzman

Ensure that the fopcompiler signals a warning on undefined functions.

Made a new file for fopcompiler tests that shouldn't first be compiled.
Also moved the fasload-print test to a better location.

2014-02-07 23:54:45 Tree
[292e8b] by Douglas Katzman Douglas Katzman

Unbreak SB-COVER

2014-02-07 23:46:45 Tree
[142dc0] by Douglas Katzman Douglas Katzman

Improve LOGBITP of constant 2nd arg

2014-02-07 15:08:15 Tree
[0cab3e] by Douglas Katzman Douglas Katzman

Add double-width compare-and-exchange instructions for x86oid.

Also add a test for the CPUID instruction.

There are new private functions for the enlightened.
These could be used as the implementation of a publicized CAS
expander for something like
(CAS (car+cdr my-cons) ...) ; Don't do this (not implemented)
but I didn't think that "shoehorning" these into CAS was better
than just providing the functions.

2014-02-07 14:35:47 Tree
[feb31f] by Stas Boukarev Stas Boukarev

Stop COMMUTATIVE-ARG-SWAP from producing undumpable structures.

If the form produces an error such undumpable structures will prevent
the error message from being dumped into the FASL.

COMMUTATIVE-ARG-SWAP manages to do so by wrapping the non-constant
variable in (truly-the type), to facilitate type propagation.

Get rid of COMMUTATIVE-ARG-SWAP completely, introduce a new known
attribute, COMMUTATIVE, and let IR1-OPTIMIZE-COMBINATION to perform
argument swapping before applying any transforms and without
discarding any type derivation already performed on the combination.

Fixes lp#1276282.

2014-02-06 23:04:18 Tree
Older >