sbcl Log


Commit Date  
[32d3b3] by Luis Oliveira Luis Oliveira , pushed by Nikodemus Siivola Nikodemus Siivola

explicit :BIG-ENDIAN feature

Instead of implying big-endianness by lack of the :LITTLE-ENDIAN feature,
make it explicit.

2011-12-08 15:24:43 Tree
[5bb344] by Stas Boukarev Stas Boukarev

Fix transform for SEARCH on vectors with :form-end t.

When from-end is specified, start2 becomes end2 and the other way
around, so return star2 or end2 accordingly when testing for an empty
subsequence.

2011-12-08 15:22:12 Tree
[2c9e9c] by Stas Boukarev Stas Boukarev

Fix transform for SEARCH on vectors.

An empty first sequence means that (= start1 end1) and it will match
the second sequence anywhere starting from start2, so return start2
in case of (= start1 end1).

2011-12-08 14:43:09 Tree
[600df9] by Nikodemus Siivola Nikodemus Siivola

missing NEWS for the last few commits

2011-12-08 12:12:48 Tree
[d3ff5f] by Nikodemus Siivola Nikodemus Siivola

run-program leaked a pipe per call

exec-failure detection neglected to close the other side of the pipe.

2011-12-07 17:48:39 Tree
[f9d8d4] by Nikodemus Siivola Nikodemus Siivola

gencgc: bogus memory fault handling

Add more debugging information when a bogus memory fault occurs,
and two control variables:

continue_after_memoryfault_on_unprotected_page
ignore_memoryfaults_on_unprotected_pages

The first just prevents us from lose()ing. Set it in darwin_init() as we
genuinely appear to get bogus memory faults in threaded code from the kernel,
which point to unprotected boxed pages. They are possibly something we could
filter out in catch_exception_raise... but don't see how. Experimentally
continuing after such them seems harmless, so let's try that but make it
noisy.

The second one silences the debugging output completely. Not set currently at
all.

2011-12-07 17:31:28 Tree
[6e5b67] by Nikodemus Siivola Nikodemus Siivola

better deadlock reporting

Print the cycle properly, so it makes sense even after the deadlock is gone,
which is now case always by the time it is reported.

Since we now break deadlocks before signaling the error, don't barf to
stderr anymore.

2011-12-07 17:29:26 Tree
[714300] by Nikodemus Siivola Nikodemus Siivola

darwin: dladdr can deadlock the GC

Needs to be always called inside WITHOUT-GCING since it grabs locks, and is
/sometimes/ called inside WITHOUT-GCING.

2011-12-07 17:29:25 Tree
[a24e6c] by Nikodemus Siivola Nikodemus Siivola

avoid recursive errors from broken standard streams on debugger entry

Handle STREAM-ERORRS in FLUSH-STANDARD-OUTPUT-STREAMS.

2011-12-07 11:43:19 Tree
[ffd12e] by Nikodemus Siivola Nikodemus Siivola

DESCRIBE improvements

* Nicer DESCRIBE for type designators. Use TYPEXPAND-1 to get it done right.

* Bind *PRINT-CIRCLE* to NIL around lambda-list printing, but compensate with
*PRINT-LEVEL* and *PRINT-LENGTH* for sanity's sake.

2011-12-07 11:43:19 Tree
[c1fa54] by Jim Wise Jim Wise

Document --fancy.

While here, put list of features set by --fancy into $FANCY_FEATURES,
so documentation doesn't fall out of sync with what option does.

2011-12-06 16:26:48 Tree
[6e3259] by Alastair Bridgewater Alastair Bridgewater

Add :CHENEYGC feature to non-GENCGC targets.

* When I wrote 14fd5afbac525e7a2e86903070afa0e94dfa14f7 I was
under the impression that there was a :CHENEYGC feature used on
plaforms that used the cheney collector. This was logical, but
incorrect.

* The two ways forward were to back out the use of :CHENEYGC
as a feature when checking compatibility or to move forward and
add :CHENEYGC and use it in preference to (NOT :GENCGC) where
appropriate, opening the door to a third GC option.

* This is the minimal fix, adding :cheneygc to the non-gencgc
targets in make-config.sh.

2011-12-06 16:05:53 Tree
[0be4d8] by Alastair Bridgewater Alastair Bridgewater

Add src/runtime/TAGS to .gitignore.

* We build TAGS by default now, so make it not show up in git.

2011-12-06 16:00:56 Tree
[a2bef1] by Nikodemus Siivola Nikodemus Siivola

fix ONLY-ONE-BOXED-CONSTANT-FOR-MULTIPLE-USES test

Feh.

2011-12-05 23:55:30 Tree
[f7faed] by Nikodemus Siivola Nikodemus Siivola

don't stack-allocate specialized vectors on non-conservtive control stacks

...cos that would be bad. Currently affects only MIPS.

2011-12-05 23:44:55 Tree
[b8a9cf] by Nikodemus Siivola Nikodemus Siivola

fix doubled unboxed constants when there is no immediate representation

The recent changes to handling of boxed constants indvertently cause them to
be duplicated when there was not immediate representation at all, and both an
unboxed and a boxed representaion would have been desirable.

2011-12-05 23:44:09 Tree
[16fa00] by Alastair Bridgewater Alastair Bridgewater

Improved undefined-function backtrace on PPC.

When there is an existing stack frame (either for a large number
of arguments or for a tail-call), undefined_tramp triggers a
strange case in build_fake_control_stack_frames() that can leave
the OCFP and LRA slots uninitialized, causing a truncated
backtrace.

* Alter undefined_tramp to always allocate and initialize a
stack frame.

* While we're here, tighten up the reg_CODE initialization
sequence.

2011-12-05 22:58:25 Tree
[65aa68] by Alastair Bridgewater Alastair Bridgewater

Improved undefined-function backtrace on non-x86oids.

* Instead of "bogus stack frame", present undefined function
frames as "undefined function".

* Implement this by checking specifically for the undefined
function trampoline function object (which otherwise fails
pointer validation) in MAKE-LISP-OBJ, and allowing the existing
logic to do what it was always supposed to do.

* Tested on PPC only, but should work on the other affected
targets.

2011-12-05 22:56:24 Tree
[f4f6c1] by Alastair Bridgewater Alastair Bridgewater , pushed by Alastair Bridgewater Alastair Bridgewater

Improved undefined-function backtrace on x86oids.

* Instead of "bogus stack frame", present undefined function
frames as "undefined function".

* Implement this by checking specifically for escaped frames
with the program counter within the range between the start of
undefined_tramp and the start of whichever function follows it
in $ARCH-assem.S.

2011-12-05 22:56:19 Tree
[035264] by Manfred Gahr Manfred Gahr , pushed by Nikodemus Siivola Nikodemus Siivola

fix make.sh --dynamic-space-size option handling

!CONFIGURE-DYNAMIC-SPACE-END actually ignored the number it read.

2011-12-05 21:42:48 Tree
[d19428] by Nikodemus Siivola Nikodemus Siivola

fix threaded PPC build, refactor new semaphore code

Refactor the recent semaphore code into nicer shape.

* No point in having these functions as inline functions.

* Move shared logic to os-common.c, and conditionalize it on
CANNOT_USE_POSIX_SEM_T, which platform specific headers can define if they
implement their own versions. (Darwin now, Windows in the future.)

* PPC needs genesis/thread.h in assembly, not thread.h.

2011-12-05 19:48:50 Tree
[a98da0] by Nikodemus Siivola Nikodemus Siivola

fix unthreaded non-x86oid builds

Better representation selection for constants broke things, since it assumed
that IMMEDIATE is the only immediate boxed SC -- which is true only on
x86oids: elsewhere there is also NULL and ZERO.

Add new VM support routine: BOXED-IMMEDIATE-SC-P.

2011-12-05 19:48:50 Tree
[de19b7] by Nikodemus Siivola Nikodemus Siivola

enable previously-broken thread tests on Darwin

WIN!?

I have not been able to make threaded SBCL on Darwin croak yet with the
semaphore implementation in the previous commit, so ... maybe.

I suspect the sb-concurrency tests can now be enabled on SunOS as well, but
since I don't have a box to test that hypothesis on, leaving them disabled
for now.

2011-12-05 16:38:39 Tree
[8340bf] by Nikodemus Siivola Nikodemus Siivola

semaphores in the runtime

Trivial refactorings:

* Rename STATE_SUSPENDED STATE_STOPPED for elegance. (Spells with the same
number of letters as STATE_RUNNING, things line up nicer.)

* Re-express make_fixnum in terms of MAKE_FIXNUM so that we can use the
latter to define STATE_* names in a manner acceptable to use in
switch-statements.

* Move Mach exception handling initialization to darwin_init from
create_initial_thread so that current_mach_task gets initialized before
the first thread struct is initialized.

The Beef:

Replace condition variables in the runtime with semaphores.

On most platforms use sem_t, but on Darwin use semaphore_t. Hide the
difference behind, os_sem_t, os_sem_init, os_sem_destroy, os_sem_post, and
os_sem_wait.

POSIX realtime semaphores are supposedly safe to use in signal handlers,
unlike condition variables -- and experimentally at least Mach semaphores
on Darwin are a lot less prone to problems.

(Our pthread mutex usage isn't quite kosher either, but it's the
pthread_cond_wait and pthread_cond_broadcast pair that seemed to be
causing most of the trouble.)

2011-12-05 16:38:38 Tree
[baa495] by Alastair Bridgewater Alastair Bridgewater

tests: fix :skipped-on clause for weak hash-table tests.

* During the original addition of :skipped-on, the condition for
skipping the weak hash-table tests was changed from "non-threaded
x86oids" to "everything but threaded non-x86oids". The actual
condition should be "non-threaded conservatively-scavenged-stack".

2011-12-05 14:35:53 Tree
Older >