sbcl-cvs-import Log

Commit Date  
[99ec18] by Nikodemus Siivola Nikodemus Siivola fix for configurable prefixes

...that is, also include the file prefix.def, which specifies where
the system is configured to install. Now that I think of it, it might
be more elegant to be able to query the runtime about its default
SBCL_HOME, actually...

Thanks to Bruce O'Neel.

2010-08-21 09:41:15 Tree
[c22ea0] by Nikodemus Siivola Nikodemus Siivola more tweakery, part N

Aka stuff that was supposed to be in .52, but got left out.

* Create output/ if necessary for saving the prefix.

* Put back the semicolon that fell on the floor and rolled into a corner.

Scripting is hard, dammit.

2010-08-18 14:56:59 Tree
[f5fcb6] by Nikodemus Siivola Nikodemus Siivola more tweakery

* Empty string as the value for an option is treated as if the option
wasn't provided at all, which makes scripting builds easier.

* Temporary support for legacy-style xc host specifications for the
benefit of clbuild &co. Add a noisy message to the end of the build
so people will hopefully notice.

2010-08-18 14:49:27 Tree
[202dd5] by Nikodemus Siivola Nikodemus Siivola eliminate accidental bash-ism from

Thanks to Josh "Eagle Eye" Elsasser.

2010-08-17 16:06:34 Tree
[deac41] by Nikodemus Siivola Nikodemus Siivola additional error checking for DEFTYPE &co

Based on patch by Roman Marynchak.

* Make PARSE-DEFMACRO check that the lambda-list is actually a list.

* Define BAD-TYPE as an utility to signal SIMPLE-TYPE-ERRORS, instead
of having to write the keyword calls everywhere.

* Fixes

2010-08-17 12:26:24 Tree
[5942a7] by Nikodemus Siivola Nikodemus Siivola comment on patch submission formats in STYLE

Also edit the prose from I -> we at least in a few places to
avoid confusion.

2010-08-17 12:21:32 Tree
[99af56] by Nikodemus Siivola Nikodemus Siivola make work on Darwin (and presumably other BSD-clones)

* BSD readlink doesn't support -f, fall back on dirname if readlink
didn't work.

2010-08-17 11:35:24 Tree
[b56966] by Nikodemus Siivola Nikodemus Siivola (EXPT 0.0 0.0) and (EXPT 0 0.0) to signal an error

From patch by Roman Marynchack.

2010-08-16 12:53:42 Tree
[57bf8a] by Nikodemus Siivola Nikodemus Siivola further tweaks

* Remove OpenMCL and Clisp examples from help
string. Builders who need them should be able to figure them
out. From the SBCL and CMUCL examples, I think -- and this way they
won't go stale...

* Also check for empty arguments to --foo= style command line options.

2010-08-16 11:44:28 Tree
[9e4ba7] by Nikodemus Siivola Nikodemus Siivola command-line parsing

Based on patches by Daniel Herring:

* Simple --option and --option=arg command-line parser in

* Supported options:

** --xc-host=<command> to specify XC host option instead of a
positional argument. (Incompatible change!)

** --prefix=<path> to specify a non-standard install location for
both build and


** --help

Semi-related minor cleanup:

* Use --no-userinit and --no-sysinit instead of version.lisp-expr as
the default inits for self-building: they have been around long
enough now that it should not stop anyone from building, and makes
for a somewhat less magical looking "//Build options: ..." line in
the build log.

2010-08-15 13:59:00 Tree
[25b40c] by Alastair Bridgewater Alastair Bridgewater runtime: Fix build on non-threaded x86oids.

* In, I accidentally broke non-threaded x86oid builds.

* Reported by Josh Elsasser and Bruce O'Neel with patches
provided, and Harald Hanche-Olsen without a patch.

* This fix based on the patch by Josh Elsasser.

2010-08-11 14:59:01 Tree
[9152e1] by Christophe Rhodes Christophe Rhodes fix for RENAME-PACKAGE's return value

Patch from Eric Marsden (sbcl-devel 2010-07-26)

2010-08-10 10:59:04 Tree
[d84e1d] by Alastair Bridgewater Alastair Bridgewater ppc: Documentation and NEWS updates for threading.

* Threading now officially experimentally supported on Linux/PPC.

* Added PPC Linux to the list of platforms with experimental
thread support in the INSTALL file and the manual.

* Updated NEWS.

2010-08-08 01:14:39 Tree
[ede2e5] by Alastair Bridgewater Alastair Bridgewater tests: Fix tests for ppc-threading changes.

* The variable current_control_stack_pointer is no longer valid
on threaded targets. Substitute thread_control_stack_size, which
is valid on all targets, fixing alien.impure.lisp.

* Some dynamic-extent tests currently fail on threaded PPC.
Updated :fails-on information in dynamic-extent.impure.lisp.

* Test (:timer :parallel-unschedule) locked up my linux/ppc box
when running. Disabled, fixing timer.impure.lisp. Interestingly,
while the lockup in question killed the keyboard and the mouse,
briefly pressing the power button caused backlogged events to be
processed, and repeatedly pressing the power button eventually
unlocked the system completely.

* Test (:interrupt-thread :interrupt-consing-child :again) uses
sb-kernel:*pseudo-atomic-bits*, which is an x86oid-only symbol
(other ports use various parts of reg_ALLOC instead). Disabled the
test on non-x86oid ports, fixing threads.impure.lisp.

2010-08-08 01:14:23 Tree
[28aaa3] by Alastair Bridgewater Alastair Bridgewater ppc: Shorten the gencgc allocation sequence.

* Rearrange the allocation sequence to avoid all branches,
relying on the runtime to manipulate the point at which
execution resumes from an allocation trap to compensate.

* Update the runtime to match the new allocation sequence.

* There is a further possible optimization here: The runtime
allocation trap handler can also accept an ADDI instruction
where the current sequence uses an ADD. In the case of a
fixed allocation size, this would save loading the temp
register with the size.

* Another optimization, along the same lines as the previous
one: With a fixed allocation size, adjusting the pointer to
point to the beginning of the data block and setting the lowtag
could be done in a single instruction.

* A third optimization, one which would entail modifying the
allocation trap handler slightly, and depends on at least the
first optimization above being in place: Once temp-tn is no
longer being used to hold the allocation size for fixed
allocations, it is available to hold the address of the
alloc region when threading is disabled, thus saving having to
reload it (two instructions).

2010-08-08 01:14:04 Tree
[0af449] by Alastair Bridgewater Alastair Bridgewater ppc: Rename reg_L2 to reg_THREAD on threaded builds.

* This is largely to make the disassembly less confusing when it
refers to TLS slots and other per-thread data.

2010-08-08 01:13:50 Tree
[42d824] by Alastair Bridgewater Alastair Bridgewater ppc: Runtime damage for threads.

* Call out to pthread_getspecific() from call_into_lisp in
order to obtain the TLS block for lisp operation.

* Tie together the runtime / gencgc version of pseudo-atomic
and the arch-specific / interrupt context version of pseudo-
atomic, to fulfill the requirements of the earlier pseudo-
atomic restructuring.

* Generally use the thread structure instead of global
variables where appropriate.

* Save our TLS block in the pthread per-thread storage area.

* SIG_STOP_FOR_GC appears to default to masked on PPC, so
unblock it in initial_thread_trampoline().

* Link with -lpthread when appropriate.

2010-08-08 01:13:36 Tree
[dad602] by Alastair Bridgewater Alastair Bridgewater ppc: allocation fixes for threaded builds.

* Use the alloc region in the thread structure instead of the
global boxed_region.

2010-08-08 01:13:20 Tree
[988c0c] by Alastair Bridgewater Alastair Bridgewater ppc: Implement atomic-{incf,decf} as atomic operations.

* ATOMIC-INCF and ATOMIC-DECF require a VOP in order to serve as
actual atomic operations. This VOP is also required to serve as a
memory barrier. Implemented.

2010-08-08 01:13:06 Tree
[5745b5] by Alastair Bridgewater Alastair Bridgewater ppc: Implement compare-and-swap-vops.

* Based roughly on the x86-64 version and the differences
between x86oid define-full-reffer and the PPC use of VOPs
instead (the VOPs seem smart enough, why do x86oids do the
whole define-full-reffer / -c VOP thing?).

* Compare-and-swap VOPs are full memory barriers.

* Left the VOPs conditionally-compiled in based on the
compare-and-swap-vops feature, more as documentation of what
is involved than anything else.

* Enabled compare-and-swap-vops for all PPC targets.

2010-08-08 01:12:49 Tree
[43a3cc] by Alastair Bridgewater Alastair Bridgewater ppc: Implement multithreaded symbol binding / unbinding.

* This is roughly based on the x86-64 version, but with TLS
allocation inline and synchronization made up with a copy of
"The PowerPC Architecture" in front of me.

* This does not have any check for TLS index overflow.

* Also implement the spinlock stuff used by the runtime to
do its TLS index allocation for dynamic binding.

2010-08-08 01:12:28 Tree
[f5c5f4] by Alastair Bridgewater Alastair Bridgewater ppc: Implement threaded symbol value accessors.

* Based on the x86-64 versions, again.

* This is just the accessors, not binding.

2010-08-08 01:12:10 Tree
[152ba3] by Alastair Bridgewater Alastair Bridgewater ppc: Random small threading bits.

* Thread-specific static symbols (these should probably be
moved to the list of common static symbols).

* The reader for random TLS data, current-thread-offset-sap.

* On threaded targets, stepping is controlled by a slot in the
thread structure, not by a static-symbol. Fixed.

* On non-threaded targets, don't hit the static-symbol value with
yet another ad-hoc method of calculating the address, use the
existing load-symbol-value macro.

2010-08-08 01:11:55 Tree
[b254f1] by Alastair Bridgewater Alastair Bridgewater ppc: Update backend to use TL symbol storage as appropriate.

* This turned out to be all of the uses of the original
-symbol-value access macros... And all to do with NLX, to two
symbols not tied to particular slots in the thread structure.

2010-08-08 01:11:41 Tree
[e55399] by Alastair Bridgewater Alastair Bridgewater ppc: Add thread-local symbol-value accessor macros.

* This is basically a straight rip of the x86-64 version.

* These macros can only be used on static-symbols, so why
aren't we pre-allocating their TLS indices and making them
available at cross-compile time? If we did, we could elide
a temp register on stores and a memory read on all accesses.

2010-08-08 01:11:27 Tree
Older >

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

No, thanks