sbcl Log


Commit Date  
[2ea3b0] by Christophe Rhodes Christophe Rhodes

sxhash on LAYOUT objects can use the CLOS-HASH slot

... dunno yet if it actually makes a difference in my use case's
timings

2014-03-01 11:38:08 Tree
[84140c] by Douglas Katzman Douglas Katzman

Remove some unnecessary package prefixes

2014-03-01 04:38:28 Tree
[deebda] by Douglas Katzman Douglas Katzman

Make the disassembler's :USING clause work as intended

2014-03-01 04:06:19 Tree
[b4b05a] by Douglas Katzman Douglas Katzman

De-obfuscate DEFINE-INSTRUCTION-FORMAT.

Previously if two unrelated formats had same-named args in the same positions,
specifying {prefilter,labeler,printer} as lambda expressions could clobber
one or the other format, e.g.
(define-instruction-format (foo 8)
(bits :field (byte 2 2) :printer (lambda (a b c) (something a b c))))
(define-instruction-format (bar 8)
(bits :field (byte 2 2) :printer (lambda (a b c) (otherthing a b c))))
produced two DEFPARAMETERs for the same symbol:
(DEFPARAMETER *BITS-0-PRINTER-WRAPPER* (LAMBDA (A B C) ...))
These are now named not to collide in most cases.

Incompatible changes- :INCLUDE is parsed by the macroexpander and not
evaluated. Access functions for bits of a dchunk are generated only if
requested via a :READER option, and they appear in the target core.

Also fixed DEFINE-ARG-TYPE not to accept a :VALUE, on account of that
not being propagated by SET-ARG-FROM-TYPE, which seemed correct;
and DEFTYPE FILTERED-VALUE-INDEX was off by 1.

2014-03-01 03:23:48 Tree
[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
Older >