sbcl Log


Commit Date  
[ebb604] by David Lichteblau David Lichteblau

Add odxprint, a replacement for FSHOW which can be configured at run-time

- A new macro odxprint(flag, "fmt", ...) performs the equivalent of
a printf("fmt", ...), but only if `flag' has been enabled at
run-time.

- Environment variables can be used to set flags, using either
SBCL_DYNDEBUG="flag1 flag2 flag3" syntax, or
SBCL_DYNDEBUG__FLAG1="nonempty string" syntax.

- Lisp feature SB-QSHOW enables support for odxprint-based FSHOW.
(Users who prefer to edit runtime.h to enable QSHOW can still do
so...) SB-QSHOW is enabled by default on Windows, where the
odxprint mechanism was first used.

- Implement FSHOW, FSHOW_SIGNAL on top of odxprint. Corresponding
flags are called fshow, fshow_signal.

- For gencgc_verbose, support a flag of the same name, since it is
conditional on QSHOW (inspite of not being implemented on top of
FSHOW).

- Does not yet support odxprint features specific to Windows debugger
integration; output is currently directed to stderr unconditionally.

This commit backports Anton Kovalenko's Windows-specific odxprint to
POSIX and integrates it with FSHOW.

2012-09-11 10:14:50 Tree
[0285aa] by David Lichteblau David Lichteblau

win32-os.c: Split up handle_exception

In preparation for various changes to exception handling, split up
handle_exception into separate functions for each kind of exception.

This change is entirely cosmetic in nature.

2012-09-11 09:21:22 Tree
[31a554] by Nikodemus Siivola Nikodemus Siivola

fix bug in SYMBOL-VALUE CAS expansion for constant arguments

2012-09-10 22:52:16 Tree
[8cef5f] by David Lichteblau David Lichteblau

Mention sb-safepoint, sb-thruption in base-target-features.lisp-expr

2012-09-10 16:32:02 Tree
[137710] by David Lichteblau David Lichteblau

Fix a corner case in RUN-INTERRUPTION

Loop in C, not Lisp, if only to appease the test suite.

2012-09-07 18:24:08 Tree
[8f4444] by David Lichteblau David Lichteblau

interrupt.h: Remove rtmin[01]_handler forward declarations

Left in accidentally from an earlier POSIX safepoint idea.

2012-09-07 18:24:08 Tree
[08efbe] by David Lichteblau David Lichteblau

Ignore an argument in x86's EMIT-CONSTANT-SEGMENT-HEADER

Fixes the build on this platform.

2012-09-07 14:09:35 Tree
[9d17f7] by Nathan Froyd Nathan Froyd

make SOCKET-RECEIVE work correctly when receiving overly-long UDP packets

Only copy as much data as the provided buffer can hold. Continue to return
the length provided from recvfrom as per documentation.

Fixes lp#1023438. Thanks to Robert Uhl for the fix.

2012-09-05 02:45:03 Tree
[c8ef1a] by Nathan Froyd Nathan Froyd

align inline constant section with long nops

Makes the disassembly much nicer, particularly at speed > space.

2012-09-05 02:24:37 Tree
[2357d3] by Nathan Froyd Nathan Froyd

add SSE instructions with two opcode bytes

This patch just introduces the formats, some helper functions, and most
of, if not all of, the xmm-xmm/mem ones. There's still quite some
interesting instructions left to add.

2012-09-03 00:38:09 Tree
[b8359d] by Stas Boukarev Stas Boukarev

Reading floats with large exponents no longer takes too much time.

Reading 1.0s1000000000000000 will attempt to construct a very large
bignum, which takes a considerable amount of time just to report in
the end that it cannot be represented as a float. Truncate the
exponent to manageable size before raising it.

Fixes lp#309070. Thanks to Paul Khuong for the help.

2012-08-31 21:38:13 Tree
[34d75f] by Stas Boukarev Stas Boukarev

Define _GNU_SOURCE when building contribs on Linux.

sb-posix:o-direct doesn't get grovelled without it.

2012-08-25 04:57:11 Tree
[6d9e22] by Stas Boukarev Stas Boukarev

disassemble: New customization variable sb-ext:*disassemble-annotate*.

sb-ext:*disassemble-annotate*: Controls whether to annotate
DISASSEMBLE output with source forms, defaults to T.

Also remove an unused function.

2012-08-24 23:35:26 Tree
[28346e] by Stas Boukarev Stas Boukarev

sb-bsd-sockets: Package clean up.

sb-bsd-sockets-internal: Don't use sb-c-call package, it's a
deprecated nickname for sb-alien, and sb-alien is already
used.
sb-win32-sockets-internal: Remove, not used anywhere.

2012-08-24 23:18:17 Tree
[b14aef] by Stas Boukarev Stas Boukarev

Fix test-case for bug-511072 in packages.impure.lisp

It was creating an error in an additional thread and didn't handle it
properly, which caused SBCL to bail out.
Reported by Mirko Vukovic.

2012-08-15 18:09:16 Tree
[c64c82] by Paul Khuong Paul Khuong

Add type declarations in stable-sort-list

* I'd copied some code from a preliminary development version.

2012-08-13 20:06:50 Tree
[088583] by Paul Khuong Paul Khuong

More efficient (stable) sort of lists

* (Reverse-) Sorted runs are mostly processed in linear time;

* Calls to the :key function are cached;

* Base cases now include specialised sorts for lists of
length 3 and shorter.

* Minimal test case for stable sorting.

2012-08-13 06:46:00 Tree
[9ec385] by Paul Khuong Paul Khuong

Fix the build on Darwin

* Darwin's assembler doesn't have default values for .fill directives.

* Only use call_into_lisp_tramp on darwin/x86, not darwin.

* Edit NEWS to note that threads have been OK on 10.8 since 1.0.58,
while we're here.

2012-08-13 06:45:51 Tree
[af1b96] by Lutz Euler Lutz Euler

Add a section about random number generation to the manual.

Document initial random state consistency, how to achieve or avoid
repeatability of random numbers, extensions with respect to seeding,
generation of random floats, and the currently used PRNG algorithm.

Move the docstring of SEED-RANDOM-STATE over from the "Miscellaneous
Extensions" section.

2012-08-12 18:56:40 Tree
[2af760] by Lutz Euler Lutz Euler

Add some missing launchpad references to NEWS.

2012-08-12 18:17:17 Tree
[3f8a69] by Jan Moringen Jan Moringen , pushed by Stas Boukarev Stas Boukarev

Mention SB-EXT:EXIT instead of SB-EXT:QUIT in docstrings, etc.

Suggest SB-EXT:EXIT instead of SB-EXT:QUIT in help string in
%INVOKE-DEBUGGER

Refer to SB-EXT:EXIT instead of SB-EXT:QUIT in docstring of
SB-EXT:SAVE-LISP-AND-DIE

Refer to SB-EXT:EXIT instead of SB-EXT:QUIT in docstring of
SB-EXT:*EXIT-HOOKS*

2012-08-12 04:05:16 Tree
[e38636] by David Lichteblau David Lichteblau

Remove executable mode from several source files

2012-08-10 19:05:40 Tree
[baf305] by David Lichteblau David Lichteblau

Factor out most x86 code using the FS prefix into a macro WITH-TLS-EA.

The macro expands into the exact same forms it replaces at the moment.

Windows threading will be able to plug into this macro with few changes,
and notably much reduced read-time conditionals.

2012-08-10 18:54:30 Tree
[dd54f9] by David Lichteblau David Lichteblau

Use safepoints for INTERRUPT-THREAD

* In INTERRUPT-THREAD, stop threads using safepoints instead of
signals.

* Currently not used by default. Users need to set feature
SB-THRUPTION to enable this code. SB-THRUPTION should only be set
when SB-SAFEPOINT is also enabled.

* This feature should ultimately be rolled into SB-SAFEPOINT, but
remains as a separate build option until both versions are equally
well-tested, and until other avoidable uses of signals have also
been replaced by safepoints.

* On the term "thruption": Earlier work on this feature sometimes
used "interrupt" to refer to INTERRUPT-THREAD, causing confusion
with the traditional meaning of "interrupt" as POSIX signal or WIN32
exception. To avoid such confusion, the runtime now refers to
INTERRUPT-THREAD as a "thruption", short for th(read) (inter)ruption.

* SIGPIPE is not used for threads running Lisp code, but a low-level
handler for SIGPIPE still exists which arranges for threads running
FFI code (in particular, threads blocked in poll, select,
futex_wait) to be interrupted.

* OS support: Minor changes to signal handling required, currently
implemented for Linux and Solaris.

Credits: This is a POSIX backport of Windows threading changes by
Anton Kovalenko and Dmitry Kalyanov.

2012-08-10 18:54:28 Tree
[e6f4c7] by David Lichteblau David Lichteblau

Add safepoint mechanism

* Stop threads for GC at safepoints only.

* Replaces use of SIG_STOP_FOR_GC.

* Currently not used by default. Users need to set feature
SB-SAFEPOINT to enable this code. SB-SAFEPOINT should only be set
when SB-THREAD is also enabled.

* ISA support: Each architecture needs VOP support, and changes to
foreign call-out assembly; only x86 and x86-64 implemented at this
point.

* OS support: Minor changes to signal handling required, currently
implemented for Linux and Solaris.

* Performance note: Does not currently replace pseudo-atomic entirely,
except on Windows. Only once further work has been done to reduce
use of signals will pseudo-atomic become truly redundant. Therefore
use of safepoints on POSIX currently still implies the combined
performance overhead of both mechanisms.

* Design alternatives exist for some choices made here. In particular,
this commit places the safepoint trap page into the SBCL binary for
simplicity. It is likely that future changes to allow slam-free
runtime changes will have to go back to a hand-crafted address
parameter.

* This feature has been extracted from work related to Windows
support and backported to POSIX.

Credits: Uses the CSP-based stop-the-world protocol by Anton Kovalenko,
based on the safepoint and threading work by Dmitry Kalyanov. Use of
safepoints for SBCL originally researched by Paul Khuong.

2012-08-10 12:51:45 Tree
Older >