sbcl Log

Commit Date  
[bffa99] (25.0 kB) by Juho Snellman Juho Snellman
Port over / reconstruct ancient CMUCL loop analysis code.
Improve register allocation:
... Pack TNs that are used in deep loops first, giving them a
higher chance of getting allocated in a register.
... Inside loops, pack the most used TNs first.
... When (> SPEED COMPILE-SPEED) attempt to pack the TNs into
the most used locations in the SB instead of the earlier
behaviour of scattering them into as many locations as
possible. This results in tighter allocation / fewer spills.

2004-10-12 22:01:39 View
[8a8a89] (24.9 kB) by Nikodemus Siivola Nikodemus Siivola Step SBCL, step!
* Merge the new intrumentation based single stepper,
excise stale breakpoint code for STEP; TRACE breakpoints
should be unaffected.
* A dash of documentation.

2004-09-13 07:14:35 View
[75b523] (24.9 kB) by Nikodemus Siivola Nikodemus Siivola Join the foreign legion!
* x86/FreeBSD, x86/Linux and Sparc/SunOS now have
linkage-table support, allowing SAVE-LISP-AND-DIE to
function properly in the presence of loaded shared
* As a related cleanup automate testing for dlopen
support on the plaform, and conditionalize
LOAD-SHARED-OBJECT support on the resulting
:os-provides-dlopen feature.

2004-09-09 12:10:11 View
[ff9259] (24.8 kB) by Nikodemus Siivola Nikodemus Siivola Merge package locks, AKA "what can go wrong with a 3783 line patch?"
... Controlled by the presence of :sb-package-locks in target
... This builds both with and without package locks on both
x86 Linux and SunOS Sparc, with both CMUCL and SBCL
as host -- so chances are it should build elsewhere as
... Remaining TODO: turn package locking errors from lexical
constructs to program errors in the produced code, fix
the bits in SBCL that hit host's SBCL-tyle package locks
(relevant FIXME is in src/cold/shared.lisp).

2004-06-29 08:50:51 View
[2f3c00] (24.7 kB) by Christophe Rhodes Christophe Rhodes
More refactoring around COMPILER-WARN
... new src/code/cross-condition file to house cross-compiler
definitions of conditions
... new condition types for format warnings
... (note that this separation between xc and target definitions
allows us to make warnings of different severity
during cross-compilation easily)

2004-05-28 08:01:56 View
[7646ae] (24.6 kB) by Daniel Barlow Daniel Barlow
Some cosmetic cleanups to make this a better place to start a
new x86-64 branch

... remove large chunks of long-float: it didn't work anyway

... parms.lisp happens fractionally earlier so that we can
defconstant nil-value slightly more cleanly

some raw 3s and 4s get made into functions of n-lowtag-bits

2004-04-05 23:16:18 View
[2912f5] (24.6 kB) by Christophe Rhodes Christophe Rhodes
Make unknown variables signal a compile-time warning.
... slightly hacky (if (eq kind :variable) ...) in the
warning logic itself;
... rearrange bits of the build to eliminate technically
undefined forward references;
... fix for multiple *CURRENT-CATCH-BLOCK* and
*CURRENT-UNWIND-PROTECT-BLOCK*: we now have one and
only one of each variable, rather than three

2004-03-09 12:08:39 View
[8cd789] (24.4 kB) by Christophe Rhodes Christophe Rhodes
Allow SET-PPRINT-DISPATCH to take symbols as arguments
... possibly violate ANSI by immediate coercion to function
... move things around so that I can add the pprinting
functions to fndb (new host-pprint file)
... also delete unused WHITESPACE-CHAR-P

2004-02-04 21:16:23 View
[c47519] (24.4 kB) by Christophe Rhodes Christophe Rhodes
Fix for PEEK-CHAR: whitespace means "according to the
readtable", not "static list of characters"
... but that's complicated for efficiency: we need WHITESPACEP
defined before peek-char so that it can be expanded
... so move peek-charish things into a new later file
... delete unused-by-core WHITESPACE-CHAR-P, and adjust
contribs to accomodate this
... also add #\page to sb-aclrepl's static whitespace characters

2004-01-20 18:10:22 View
[32e161] (24.3 kB) by William Harold Newman William Harold Newman
merged CSR's well-aged patch to make X86 port stop
complaining about register class strangeness
in array checking VOPs
added #!+ conditionalization on the hack to suppress
warnings about analogous strangeness on other
ports, hoping I didn't screw up anything I can't test

2003-11-06 23:33:11 View
[f8893c] (24.3 kB) by Christophe Rhodes Christophe Rhodes
CLISP minor issues:
... fix float-related bug: since CLISP doesn't support
denormalized single-floats, we need to construct
... we need to perform a similar trick for BOOLE as we already
do for BYTE. Rewrite the horrible package hackery to be
slightly more robust, in mitigation for the perpetuation
of this horror.

2003-10-25 21:40:48 View
[1e9966] (24.3 kB) by Alexey Dejneka Alexey Dejneka
* Change modularization of ASH
... add per-function cutter;
... s/ash-left-constant-modxx/ash-left-modxx/;
... put DEFKNOWN and modular function optimizer for
ASH-LEFT-MODxx to src/compiler/generic/sm-tran.lisp;
... compile src/compiler/generic/vm-tran.lisp before
src/compiler/target/arith.lisp (in fact, immediately
after src/compiler/srctran.lisp);
* strength reducer for * wraps LOGAND around the whole form.

2003-10-09 19:55:08 View
[580842] (24.1 kB) by Christophe Rhodes Christophe Rhodes
Fix OPTIMIZATIONS #1b on x86, at Gilbert Baumann's request (on
#lisp IRC 2003-07-01)
... new VOPs for base-char comparisons with constant second
... new transforms for CHAR< and CHAR> to ensure that any constant
argument is second;
... don't fall into the trap of assuming that the world is ASCII;
instead, define SB!XC:CODE-CHAR and SB!XC:CHAR-CODE that
deal with converting STANDARD-CHARs to and from ASCII codes;
... in the interest of the sanity of those with slow machines, refactor
tests/seq.impure.lisp slightly so that it takes somewhat less
time than the cosmological epoch to run

2003-07-02 08:36:56 View
[468020] (24.2 kB) by Christophe Rhodes Christophe Rhodes
Indeed, with a little build rearrangement, we don't need a
temporary SB!XC:DEFTYPE FIXNUM, so let's do that instead.
... move some of src/code/type-init.lisp into

2003-06-25 09:30:55 View
[9767de] (24.2 kB) by Christophe Rhodes Christophe Rhodes
The beginnings of the payoff: being sufficiently irritated by
the baroque intertwinings of the different places where array
types have to be specified, here is a beginning of a
value, and derive three other compiler-internal lists
from it. (net win so far: 3)
... but because it's made earlier so that we can use it as a
master value, SPECIFIER-TYPE gives unknown types;
a new file (and corresponding cold-init function)
fixes up unknown types (and for primitive-types too)
... there are still plenty of places left where array logic
isn't derived from *SAETP*; they will be worked on.

2003-06-24 10:56:11 View
[77c80b] (24.1 kB) by Alexey Dejneka Alexey Dejneka

IR1-convertion of lambda is separated into

2003-06-04 05:58:18 View
[c5df20] (24.0 kB) by Christophe Rhodes Christophe Rhodes
No-one's complained, so merge CSR patch "Type checking on global
variables" (sbcl-devel 2003-05-27)
... fix SB-XC:PROCLAIM to queue up TYPE and FTYPE proclamations
when the system isn't initialized, and then reproclaim them
... fix EVAL to punt to the compiler if there's a type proclamation
for FOO in (SETQ FOO ...);
... proclaim the types of the various CL:*FOO* variables, according
to the CLHS;
... fix two instances of undefined behaviour in the test suite. :-)

2003-05-30 10:44:10 View
[bd0ba0] (23.9 kB) by Christophe Rhodes Christophe Rhodes
Fix stack exhaustion stack exhaustion death
... define DEFINE-FUNCTION-NAME-SYNTAX function-name-defining macro;
... use it for SETF functions, and define LEGAL-FUNCTION-NAME-P
... also define internal PCL generalized function name syntax as
such, and test for internalness in SET-ARG-INFO1;
... OAOO bonus: delete bits of SB!PCL::CLASS-PREDICATE that were
decorating the compiler;

(note: this API is interface-compatible with CMUCL's for defining
generalized function name syntax. However, it's not currently exported
from SB-EXT because I happen to think that calling something
VALID-FUNCTION-NAME-P when it returns two values, the second of which
is syntactically significant, is a bit lame, and maybe we'll be able
to agree a better name between the two projects)

2003-05-25 22:34:23 View
[d76c81] (23.8 kB) by Christophe Rhodes Christophe Rhodes

The "uh, I thought we had users beta-testing for us" release:
Make SETQ on globals return a value (and IN-PACKAGE, and ...)
... the SET VOP and the %SET-SYMBOL-VALUE IR2 thingy are
different, so one shouldn't translate the other;
... instead, create an IR2 translator for %SET-SYMBOL-VALUE by
hand, mimicking the effect of :SET-TRANS in
... this removes the need for late-symbol.lisp, so delete it.
While we're in a deleting mood...
... delete src/pcl/fast-init.lisp, which hasn't been part of the
build for the last 5 months or so.

2003-05-08 16:17:57 View
[22b819] (23.8 kB) by Christophe Rhodes Christophe Rhodes

CLISP build megapatch
... mostly putting #-SB-XC in front of :COMPILE-TOPLEVEL,
because clisp gives a full warning for function and
macro redefinition;
... workaround clisp's buggy pretty printer by not exercising it
as much: use (INHIBIT-WARNINGS 3);
... explicit :INITIAL-ELEMENT 0 when we're using 0 to mean
"uninitialized" in MAKE-ARRAY;
... SPECIAL-OPERATOR-P isn't a good test on the host for what
can become a target macro;
... slightly more portable floating point logic:
Explicitly set *READ-DEFAULT-FLOAT-FORMAT* so that we
don't create host LONG-FLOATs by accident;
LOAD-TIME-VALUE magic for negative floating point zeros;
Minor associated text file frobbage
... braindump some unrelated TODO items
Obligatory runtime code improvement
... fix one warning in gencgc.h

2003-05-05 14:09:03 View
[02c900] (23.5 kB) by Daniel Barlow Daniel Barlow

Merge the definitely-maybe-gc branch:

Remove all the lispland logic that checks bytes-consed
thresholds to see if it's worth GCing: C does these checks
anyway. SUB-GC now always GCs unless *GC-INHIBIT* says not to

Delete the notify before/after calls and notify-stream.
(Planned future change: pass the same information to

*SOFT-HEAP-LIMIT* and MAYBE-GC are gone (unused).
*ALREADY-MAYBE-GCING* is also dead, replaced with a proper
mutex that will also prevent simultaneous GCs from multiple
threads. This entails moving gc.lisp and purify.lisp after
target-thread in the build-order

(Unithread WITH-MUTEX now honours its WAIT-P argument, so
actually works in this situation)

2003-04-21 21:06:24 View
[c3a38a] (23.5 kB) by Alexey Dejneka Alexey Dejneka

Fixed bugs caught by Paul Dietz' test suite:
* CONVERT-MORE-CALL failed on ((LAMBDA (&KEY) 1)
:ALLOW-OTHER-KEYS T) (fixed by Gerd Moellmann);
* &WHOLE and &REST arguments in a macro lambda list may be

2003-04-20 10:53:42 View
[e365f2] (23.5 kB) by Daniel Barlow Daniel Barlow

=== Threads merge, 100 metres ===

This is the first commit of experimental native threads for
SBCL. Note that thread support is by default not compiled in
- you need to add :sb-thread to target features. Note also
that non-x86 probably doesn't build in this version - that
will be fixed imminently

See log messages for dan_native_threads_branch,
dan_native_threads_2_branch, dan_native_threads_3_branch for
more information. I'm not going to type it all in again

2003-04-02 11:15:10 View
[2db3b6] (23.3 kB) by Christophe Rhodes Christophe Rhodes
The (ARRAY NIL) has landed.
... implement a SIMPLE-ARRAY-NIL primitive type, including in
garbage collection and (ROOM) logic;
... adjust implementation of array creation and reference to
deal with arrays that can't contain anything;
... (HAIRY-)DATA-VECTOR-REF are can no longer be FLUSHABLE;

2003-03-10 14:54:16 View
[40bf78] (23.3 kB) by Christophe Rhodes Christophe Rhodes
Merge mini backend-refactor, motivated by APD's
*CHECK-CONSISTENCY*/non-local-exit observations
... OAOOize MAKE-DYNAMIC-SPACE-TNS VM support routine
Also add tests for documentation in the presence of generalized
function names that should have been merged before but were
forgotten (sorry).

2003-03-07 12:15:12 View
Older >