sbcl Log


Commit Date  
[b31eab] by Nikodemus Siivola Nikodemus Siivola

move vm-array.lisp earlier in the build, remove %%SAETP-INFO%%

This way DEFINE-ARRAY-DISPATCH can use *S-A-E-T-P* directly.

2012-05-27 09:48:43 Tree
[892a83] by James M. Lawrence James M. Lawrence , pushed by Nikodemus Siivola Nikodemus Siivola

widetag dispatch for MAP-INTO

2012-05-27 08:57:22 Tree
[5762f2] by James M. Lawrence James M. Lawrence , pushed by Nikodemus Siivola Nikodemus Siivola

automate widetag dispatching

* add DEFINE-ARRAY-DISPATCH

* replace the VECTOR-SUBSEQ* dispatch scaffolding
with a DEFINE-ARRAY-DISPATCH call

2012-05-27 08:56:48 Tree
[151b7b] by James M. Lawrence James M. Lawrence , pushed by Nikodemus Siivola Nikodemus Siivola

fix MAP-INTO performance

* remove the O(n^2) algorithm for lists

* use (MAP NIL ...) for all sequence types

* avoid unnecessary LENGTH calls

* update fill pointer after mapping succeeds, not before

* add tests for MAP-INTO (there were none!)

* add some WITH-TESTs to tests/map-tests.impure.lisp

2012-05-27 08:56:15 Tree
[b41220] by Lutz Euler Lutz Euler

Add a missing launchpad reference to NEWS.

2012-05-25 15:09:50 Tree
[b916ee] by Lutz Euler Lutz Euler

Use multi-byte NOPs for code alignment on x86-64.

This is intended to speed up execution of such code sequences. It makes
the disassembly output somewhat more readable, too. The multi-byte NOP
instructions are chosen according to the recommendations of both AMD and
Intel. All existing x86-64 processors should support the "0f 1f" opcode
used.

This adds the needed infrastructure to the backend-independent compiler
parts and uses it from x86-64. Backends not using this functionality are
left unchanged.

Extend EMIT-ALIGNMENT to allow to specify multi-byte NOPs to be used
instead of repetitions of the single-byte NOP and change the call in
EMIT-BLOCK-HEADER on x86-64 to trigger this. Extend EMIT-SKIP to call
EMIT-LONG-NOP in this case.

On x86-64, add EMIT-LONG-NOP as the instruction emitter and extend the
disassembler entry for NOP to understand the multi-byte forms, too.

Make EMIT-FILLER decide more carefully whether to join fillers that are
adjacent in the list of segment annotations: Only join them if they are
immediately adjacent in the segment, too. (Otherwise the joined filler
would cover the wrong parts of a shortened alignment sequence.)

In certain circumstances %EMIT-ALIGNMENT splits an alignment into two
parts. This may not be necessary but has not yet been changed, so
sometimes one more long NOP than needed is assembled.

2012-05-25 14:56:49 Tree
[35f68f] by Stas Boukarev Stas Boukarev

gensym: Don't restrict numerical argument to fixnum.

(gensym number) was restricted to fixnums, restrict it to
unsigned-byte, as per the standard.

2012-05-23 06:01:03 Tree
[9bc5da] by Nikodemus Siivola Nikodemus Siivola

better SIGNAL

Add *STACK-TOP-HINT*.

Move out the *BREAK-ON-SIGNALS* stuff to a separate function for
clarity. Conditionalize the call there, meaning those restarts don't need to
be allocated unless we actually need them -- making SIGNAL faster and a lot
less consy. (TYPEP calls still cons, though. Can't have everything...)

2012-05-22 18:53:04 Tree
[43c193] by Stas Boukarev Stas Boukarev

run-program: Don't use /tmp unconditionally.

* Use TEMP on win32 and TMPDIR on non-win32.
* Don't delete just opened temporary files on windows, because opened
files cannot be unlinked on windows.

Fixes lp#968837.

2012-05-22 18:39:07 Tree
[0395c1] by Stas Boukarev Stas Boukarev

run-program: Don't decode and re-encode environ.

Leave environ unchanged when no :environment argument is provided.
Closes lp#985904.

2012-05-22 18:06:06 Tree
[02313f] by Cyrus Harmon Cyrus Harmon

implicit generic function warning improvement

the warning now prints out the package of the symbol that corresponds
to the newly created generic function.

2012-05-21 21:03:59 Tree
[77a1e2] by Nikodemus Siivola Nikodemus Siivola

some nincompoop broke the build

*blush*

2012-05-21 18:39:02 Tree
[1f9c4b] by Nikodemus Siivola Nikodemus Siivola

make ENSURE-GENERIC-FUNCTION accept method combination arguments

Previously we only accepted a list designating the method combination, but
since MOP also specifies a way to grab the actual method combination, we
should really accept that as well.

Fixes bug 936513.

2012-05-21 05:43:11 Tree
[04a651] by Nikodemus Siivola Nikodemus Siivola

fix source information for functions from EVAL

* Removed the breathtaking (NAMED-LAMBDA (EVAL (DEFUN FOO)) ...) hack, which
caused inconsistent source locations, and broke the built-in debugger
source command for evaluated functions.

Replace it with *SOURCE-FORM-CONTEXT-ALIST*, which allows the simple
evaluator to communicate the original context to the compiler without
messing with the function source.

This also means we no longer have to wrap named-lambdas and lambdas in
another lambda, but can instead compile them directly -- which in turn
allows FUNCTION-LAMBDA-EXPRESSION to work correctly for definitions from
EVAL and LOAD.

* Additionally, use a handler to muffle any compiler notes from EVAL instead
of using a declaration: those can leak to the user via F-L-E.

* Change ACTUALLY-COMPILE to return a function signaling an error instead of
returning NIL when compilation fails fatally. Doing this in
ACTUALLY-COMPILE allows us to rely on COMPILE-IN-LEXENV always returning a
function, and gives easy access to a better error message.

* Properly associate COMPILER-ERRORS with their SIGNAL-ERROR restart.

* Adjust debug.impure.lisp to be less dependent on the details of
%SIMPLE-EVAL.

* Test cases. Pay special attention to TEST-DEBUGGER in debug.impure.lisp.

* New docstring for COMPILE. Added a sneaky teaser about COMPILE being able
to recompile things, which is new starting to look feasible.

2012-05-21 05:41:25 Tree
[a6a12e] by Nikodemus Siivola Nikodemus Siivola

refactor GET-TOPLEVEL-FORM &co between debugger and disassembler

* Merge the implementations in debug.lisp and target-disassembler.lisp.

* Get rid of most of the cacheing.

* Prefer the DEBUG-SOURCE-FORM if it exists: thanks to *SOURCE-NAMESTRING*
we can have misleading namestrings for functions generated by calls to
EVAL during LOAD, etc.

2012-05-21 05:37:56 Tree
[dc2b10] by Nikodemus Siivola Nikodemus Siivola

robustify COUNT-FULL-CALLS in the test suite

Move it to compiler-test-utils.lisp, while at it.

2012-05-21 05:37:49 Tree
[6e60dc] by Nikodemus Siivola Nikodemus Siivola

lazy *STACK-TOP-HINT*s

Allow binding it to a symbol, which is resolved when entering the debugger:
it denotes the name of the first uninteresting frame.

This simplifies ERROR, CERROR, BREAK, %BREAK, and makes interrupts more
efficient as we no longer need to find the interrupted frame when entering
an interupt handler.

It also makes (handler-bind ((error #'invoke-debugger)) ...) once again gain
the benefits of the stack top hint, which we lost when we ceased the provide
the hint around the call to SIGNAL for efficiency reasons. Best of both
worlds, one hopes.

2012-05-21 05:37:38 Tree
[a2fd28] by Nikodemus Siivola Nikodemus Siivola

factor debug-name cleaning into a separate function

We will need it elsewhere too.

2012-05-21 05:37:30 Tree
[bb9b38] by Nikodemus Siivola Nikodemus Siivola

COMPILED-PROGRAM-ERROR source form needs *PRINT-ESCAPE*

PRINC-TO-STRING is not what we want here.

2012-05-21 05:37:25 Tree
[126b9c] by Nikodemus Siivola Nikodemus Siivola

implement ATOMIC-UPDATE

Nicer than having to write explicit CAS loops.

Also improve COMPARE-AND-SWAP docstring, and remove the EXPERIMENTAL label
from it.

2012-05-21 05:35:36 Tree
[522a3c] by Nikodemus Siivola Nikodemus Siivola

break infinite recursion in GENERATE-SLOTD-TYPECHECK

Compilation of a typecheck can cause class finalization, which in turn can
cause calls to GENERATE-SLOTD-TYPECHECK.

Given the right sort of dependency graph, this can cause a cycle which needs
to be broken.

Regression from 1.0.46.11, fixed bug 1001799.

2012-05-21 05:34:11 Tree
[77d889] (sbcl-1.0.57) by Juho Snellman Juho Snellman

1.0.57: will be tagged as "sbcl-1.0.57"

2012-05-20 18:55:37 Tree
[29fe19] by Stas Boukarev Stas Boukarev

Fix build on windows.

* Include sbcl.h before LISP_FEATURE_WIN32 is used in coreparse.c
* Include stub for _exit.

2012-05-17 21:10:13 Tree
[d833d6] by Stas Boukarev Stas Boukarev

define-condition: return the name of the defined condition.

2012-05-16 22:51:51 Tree
[36d913] by Stas Boukarev Stas Boukarev

Better error for malformed type declarations.

Give proper error messages for things like
(declare (type (integer 1 . 2) a)).

2012-05-16 16:30:04 Tree
Older >