sbcl Log


Commit Date  
[e84400] (27.6 kB) by Stas Boukarev Stas Boukarev

Add support for ARM Android.

The build infrastructure for easy cross-compilation with NDK is still
missing.

2014-05-28 14:53:08 View
Download
[e156d2] (27.6 kB) by Christophe Rhodes Christophe Rhodes

no more kludge-nondeterministic-catch-block-size

It turns out that the only reason for delaying objdef so late in
the build was the need to inform the compiler's info database
about functions to access slots. To resolve the ordering issues,
delay all the forms relating to the slots to the same position in
the build (with a new late-objdef source file) but execute all the
forms relating to specials, constants and primitive objects
themselves early.

This is probably the longest-standing SBCL issue, being logged in
the code by WHN 1999-01-31. It's nice to fix it before we run out
of architectures to port to.

2014-05-28 07:46:40 View
Download
[c3c0b1] (27.6 kB) by Alastair Bridgewater Alastair Bridgewater

General comment and whitespace fixups for arm-port-related damage.

* Just a few things found with canonicalize-whitespace and some
comments that were added over the course of the port that are no
longer useful.

2014-05-10 19:15:53 View
Download
[d6c2fc] (28.2 kB) by Alastair Bridgewater Alastair Bridgewater

Remove the :arm-bootstrap build-flag noise, now that it's not required.

* Every file in the build order that wasn't marked :not-target
had the flag, which means that there's no point in keeping it.

2014-05-10 19:12:22 View
Download
[ffa1ac] (33.2 kB) by Alastair Bridgewater Alastair Bridgewater

Delete arm-bootstrap.lisp, now that we no longer need it.

* We really don't need it anymore. It's come in handy a few
times over the past couple of weeks to try and get limited trace
output or to verify that a VOP is behaving correctly, but the
advent of a somewhat-working REPL rather obviates the need.

2014-05-10 19:12:22 View
Download
[acad49] (33.3 kB) by Philipp Matthias Schaefer Philipp Matthias Schaefer , pushed by Alastair Bridgewater Alastair Bridgewater

build-order.lisp-expr: marked files with float related conditionals

* Went through the git log and identified all files, that have float
related conditionals for ARM in them. The goal is to go through them
and try to remove them one by one, adding whatever is missing.

2014-05-10 19:12:20 View
Download
[d4b9a9] (33.0 kB) by Alastair Bridgewater Alastair Bridgewater

build-order.lisp-expr: Enable some more files for ARM.

* Now that we have the floating-point support largely in shape,
we can enable the files that depend on it in one way or another...
with one exception.

* The last file in build-order that isn't specific to some other
architecture or operating system is code/float-traps. Which we
haven't written the VOPs to support yet. One last file before we
can revert all of this :ARM-BOOTSTRAP noise.

2014-05-10 19:12:19 View
Download
[6a226d] (32.9 kB) by Philipp Matthias Schäfer Philipp Matthias Schäfer , pushed by Alastair Bridgewater Alastair Bridgewater

build-order: added the rest of the non float specific files

2014-05-10 19:12:18 View
Download
[8bb7c6] (29.1 kB) by Philipp Matthias Schäfer Philipp Matthias Schäfer , pushed by Alastair Bridgewater Alastair Bridgewater

build-order: added some more files to the build process

2014-05-10 19:12:16 View
Download
[0f0d2c] (28.6 kB) by Philipp Matthias Schäfer Philipp Matthias Schäfer , pushed by Alastair Bridgewater Alastair Bridgewater

build-order: added some more files to the build process

2014-05-10 19:12:16 View
Download
[4859dd] (28.5 kB) by Alastair Bridgewater Alastair Bridgewater

build-order: Add the :arm-bootstrap flag to a bunch of files.

* All of these files are observed to at least survive being
built by the cross-compiler, although they may not yet generate
correct code.

2014-05-10 19:12:15 View
Download
[283124] (27.7 kB) by Alastair Bridgewater Alastair Bridgewater

build-order: Move our bootstrapping hack towards the end of the build.

* In order that we not run into situations where we put in a
test case for some functionality only to find that the test needs
some macro that occurred later in the build sequence (such as
ALIEN-FUNCALL / EXTERN-ALIEN), move the bootstrap test file to
just before the end of the build.

2014-05-10 19:12:15 View
Download
[07679f] (27.7 kB) by Alastair Bridgewater Alastair Bridgewater

build-order.lisp-expr: Re-enable compiler/generic-vm-ir2tran on ARM.

* We now have enough backend bits defined for this file to build
cleanly.

2014-05-10 19:12:11 View
Download
[1e3d6b] (27.7 kB) by Alastair Bridgewater Alastair Bridgewater

build-order.lisp-expr: Enable building assemfiles on ARM.

* We're still in early bootstrap, but we're at the point where
we need assem-rtns. Fortunately, only as an assemfile.

* Enable building all of the assemfiles as assemfiles during
arm-bootstrap cross-compilation. It does no harm, and will do
quite a bit of good going forwards.

2014-05-10 19:08:40 View
Download
[6b13da] (27.6 kB) by Alastair Bridgewater Alastair Bridgewater

build-order.lisp-expr: Suppress arm-bootstrap on non-ARM.

* If we don't do this, genesis complains about a duplicate FSET
for !COLD-INIT. Oops.

2014-05-10 19:08:37 View
Download
[2d6a84] (27.6 kB) by Alastair Bridgewater Alastair Bridgewater

Hack up cross-compiler build order for ARM bootstrapping.

* In order to make it easier to test the compiler output by
running it on real hardware rather than merely by inspection, and
to allow this to be done incrementally, rig the cross-build logic
to only build files marked with an :ARM-BOOTSTRAP flag.

* Add one such file to use as a starting point.

2014-05-10 19:00:48 View
Download
[7e413b] (27.5 kB) by Alastair Bridgewater Alastair Bridgewater

build-order.lisp-expr: Disable (for now) building VM-IR2TRAN on ARM.

* Too much trouble to make work right now, but will clearly have
to be made to work fairly soon.

2014-05-10 02:30:47 View
Download
[c573df] (27.5 kB) by Alastair Bridgewater Alastair Bridgewater

build-order.lisp-expr: Disable (for now) building ALIENCOMP on ARM.

* Too much trouble to deal with alien calling sequences and
number-stack allocation before we get the basic lisp-side things
working.

2014-05-10 02:27:13 View
Download
[577a5c] (27.5 kB) by Alastair Bridgewater Alastair Bridgewater

build-order.lisp-expr: Don't compile float-tran on ARM for now.

* SYS:SRC;COMPILER;FLOAT-TRAN requires a bunch of constants for
the layout of a floating-point number to be defined, and since the
current implementation plan is to defer these details for as long
as possible, the easiest thing to do is to simply prevent the file
from being built for the time being.

2014-05-10 02:22:49 View
Download
[873181] (27.5 kB) by Douglas Katzman Douglas Katzman

Make %TYPE-CHECK-ERROR use specific internal error codes when it can.

2014-04-28 20:45:41 View
Download
[d64a27] (27.5 kB) by Douglas Katzman Douglas Katzman

Make raw slots of type SB!VM:WORD usable earlier in cold-init.

2014-03-21 00:03:06 View
Download
[125910] (27.5 kB) by Douglas Katzman Douglas Katzman

Generalize the optimization to packed-info-insert.

2014-03-12 16:16:35 View
Download
[46517e] (27.5 kB) by Stas Boukarev Stas Boukarev

Don't dump sanctify-for-execution into FASLs on x86oids.

It's a no-op, removing which saves 1 byte per function.

2014-03-11 22:58:35 View
Download
[0fb6f8] (27.5 kB) by Douglas Katzman Douglas Katzman

Initial reimplementation of globaldb - fast INFO and (SETF INFO).

The main idea is that info values are stored in a vector attached to
each symbol when possible. When not possible, the storage reverts
to the volatile [sic] environment, but still using a vector as the
payload instead of the chained hashing/alist approach.

This strives to be very fast at lookup at the expense of some added
complexity during updates. Performance testing suggests that it is
at least 2x to 3x faster at (INFO :class :type name), and FBOUNDP
is almost 4x faster. In a repeatable test, a file that took 1.8 seconds
to compile now takes 1.7 seconds but with more consing (as expected).

sbcl.core itself increases in size by <1% for 64-bit architecture,
and less for 32-bit architecture because there is proportionaly less
wasted space. A compact environment's table is effectively the
concatenation of all info vectors into one, so the added overhead is
in vector headers. However the fallback hash is now smaller,
so there used to be more wasted cells in the compact env.

Eventually the compact and volatile environments will both go away,
but not until the quasi-lockfree hashtable bootstraps properly.
The problem is an inability to use raw slots in early cold init.
It's actually not a problem of using them - the compiled code is ok -
but cold-init drops into 'ldb' due to how defstruct expands.

Among the bugs fixed by this (not straightforwardly testable) is that
the compact environment would hold into symbols that became otherwise
inaccessible. It no longer does, but still holds onto other names.

This patch builds with CCL as host, and for 32-on-64 and vice-versa,
so nothing seems terribly broken in terms of assumptions made.

2014-03-07 17:51:29 View
Download
[4e0a82] (27.4 kB) by Stas Boukarev Stas Boukarev

Remove src/code/typecheckfuns.lisp.

It's no longer used.

2014-03-07 01:26:02 View
Download
Older >