sbcl.git
14 years ago1.0.35.22: fix building on Darwin when sysctl is not in PATH
Nathan Froyd [Sat, 27 Feb 2010 16:46:05 +0000 (16:46 +0000)]
1.0.35.22: fix building on Darwin when sysctl is not in PATH

Thanks to Robert Goldman for the fix.

14 years ago1.0.35.21: ANSI-fy random-state seeding changes
Nathan Froyd [Sat, 27 Feb 2010 16:43:12 +0000 (16:43 +0000)]
1.0.35.21: ANSI-fy random-state seeding changes

Thanks to Fare for redoing his patch.

14 years ago1.0.35.20: More robust checking for DEFMETHOD argument specializers
Nathan Froyd [Sat, 27 Feb 2010 16:22:56 +0000 (16:22 +0000)]
1.0.35.20: More robust checking for DEFMETHOD argument specializers

Fixes lp#525916, reported by Reinout Stevens.

14 years ago1.0.35.19: fix SB-EXT:GENERATION-* accessors for generation > 0
Nathan Froyd [Sat, 27 Feb 2010 16:01:21 +0000 (16:01 +0000)]
1.0.35.19: fix SB-EXT:GENERATION-* accessors for generation > 0

Add the `lutexes' slot to `struct generation' as defined from Lisp.
Not paying attention to OAOO bites again.  Unfortunately, several things
are still OAOOM...

14 years ago1.0.35.18: Fix type-derivation for EXPT
Nathan Froyd [Mon, 22 Feb 2010 21:54:31 +0000 (21:54 +0000)]
1.0.35.18: Fix type-derivation for EXPT

A small thinko in the condition checking for (EXPT <RATIONAL> <RATIONAL>).

14 years ago1.0.35.17: micro-optimize x86-64 MOVE-TO-SINGLE
Nathan Froyd [Tue, 16 Feb 2010 04:45:25 +0000 (04:45 +0000)]
1.0.35.17: micro-optimize x86-64 MOVE-TO-SINGLE

Sometimes we move a descriptor -> float -> stack.  Teach MOVE-TO-SINGLE
how to do descriptor -> stack in one step.

14 years ago1.0.35.16: Whitespace damage.
Alastair Bridgewater [Sun, 14 Feb 2010 20:17:36 +0000 (20:17 +0000)]
1.0.35.16: Whitespace damage.

14 years ago1.0.35.15: Add and export various functions related to type specifiers.
Tobias C. Rittweiler [Sat, 13 Feb 2010 01:04:44 +0000 (01:04 +0000)]
1.0.35.15: Add and export various functions related to type specifiers.

  * TYPEXPAND-1, TYPEXPAND, TYPEXPAND-ALL work like their MACROEXPAND
    counterparts except that they expand type specifiers.

  * DEFINED-TYPE-NAME-P returns whether a symbol is known to name a
    type specifier.

  * VALID-TYPE-SPECIFIER-P returns whether a (possibly compound) type
    specifier is known, and syntactically / structurally correct. A
    type specifier is valid if it is to be accepted as second argument
    by TYPEP -- except that VALID-TYPE-SPECIFIER-P can also deal with
    FUNCTION and VALUES type specifiers.

  * Export these functions from SB-EXT.

14 years ago1.0.35.14: Remove unused function PRINT-CONTINUATION.
Tobias C. Rittweiler [Sat, 13 Feb 2010 00:12:52 +0000 (00:12 +0000)]
1.0.35.14: Remove unused function PRINT-CONTINUATION.

14 years ago1.0.35.12: Minor cleanup in %TARGET-DEFSTRUCT.
Tobias C. Rittweiler [Thu, 11 Feb 2010 22:11:07 +0000 (22:11 +0000)]
1.0.35.12: Minor cleanup in %TARGET-DEFSTRUCT.

  * Minor refactoring: split MAKE-DEFSTRUCT-PREDICATE and
    MAKE-DEFSTRUCT-COPIER out of %TARGET-DEFSTRUCT.

  * Remove FIXME: MAKE-DEFSTRUCT-COPIER now returns a closure which
    type checks its argument for proper layout before passing it to
    COPY-STRUCTURE.

14 years ago1.0.35.12: Add SB-INTROSPECT:FUNCTION-TYPE.
Tobias C. Rittweiler [Thu, 11 Feb 2010 22:04:03 +0000 (22:04 +0000)]
1.0.35.12: Add SB-INTROSPECT:FUNCTION-TYPE.

  * New function which takes a function designator and returns the
    function's declared, or derived FTYPE.

14 years ago1.0.35.11: Minor cleanup in MAKE-FUN-TYPE / MAKE-VALUES-TYPE
Tobias C. Rittweiler [Thu, 11 Feb 2010 18:11:20 +0000 (18:11 +0000)]
1.0.35.11: Minor cleanup in MAKE-FUN-TYPE / MAKE-VALUES-TYPE

  * MAKE-FUN-TYPE and MAKE-VALUES-TYPE took an :ARGS key parameter
    to translate from a list type-specifier to a ctype. This
    was used in the type-translators for FUNCTION and VALUES, only.
    So I removed :ARGS, and put that code into those type-translators.

  * Renamed ARGS-TYPES helper function to PARSE-ARGS-TYPES.

14 years ago1.0.35.10: d_ino access in SB-POSIX
Nathan Froyd [Thu, 11 Feb 2010 03:37:26 +0000 (03:37 +0000)]
1.0.35.10: d_ino access in SB-POSIX

Thanks to Philipp Marek and Pierre THIERRY for independent, nearly
identical patches.

14 years ago1.0.35.9: Add support for non-trivial random seeds
Nathan Froyd [Thu, 11 Feb 2010 03:26:58 +0000 (03:26 +0000)]
1.0.35.9: Add support for non-trivial random seeds

SBCL is using the popular MT19937 PRNG algorithm, but up until now,
was only seeding the initial random state with a 32-bit seed, and
choosing a seed subject to a lot of collisions (a second-precise timer)
when called with (MAKE-RANDOM-STATE T).

This patch adds and documents an SBCL extension to MAKE-RANDOM-STATE
that supports initializing a random-state based on an arbitrary UNSIGNED-BYTE
or a (SIMPLE-ARRAY (UNSIGNED-BYTE 8)). Also supported (but documented as
not officially so) is a (SIMPLE-ARRAY (UNSIGNED-BYTE 32)). Last but not least,
(MAKE-RANDOM-STATE T) will try to initialize the random state by reading
256 bits from /dev/urandom, which should eliminate the collision problem and
make SBCL's PRNG suitable for more applications than before.

Finally, we use in our random-state initialization routines the very same
algorithms that the author of MT19937 recommends in the latest version
of his C source, and we have tested the output to be identical (see
November 2009 discussion in the sbcl-devel mailing-list).

14 years ago1.0.35.8: Fix FILE-POSITION on simple-streams after READ-VECTOR
Nathan Froyd [Mon, 8 Feb 2010 17:42:25 +0000 (17:42 +0000)]
1.0.35.8: Fix FILE-POSITION on simple-streams after READ-VECTOR

Patch ported from CMUCL; independent testcase that doesn't rely on Unixisms
added instead of the one from CMUCL.

14 years ago1.0.35.7: fix docstrings for printing-releated things
Nathan Froyd [Mon, 8 Feb 2010 16:13:14 +0000 (16:13 +0000)]
1.0.35.7: fix docstrings for printing-releated things

This fixes Launchpad bug #518696.

14 years ago1.0.35.6: Fix typo in make-config.sh
Tobias C. Rittweiler [Sat, 6 Feb 2010 10:30:36 +0000 (10:30 +0000)]
1.0.35.6: Fix typo in make-config.sh

on ppc: :stacka-allocatable-lists -> :stack-allocatable-lists

14 years ago1.0.35.5: Fix backtrace from internal-error on x86-64 OS X.
Alastair Bridgewater [Sat, 6 Feb 2010 05:03:13 +0000 (05:03 +0000)]
1.0.35.5: Fix backtrace from internal-error on x86-64 OS X.

  * Backtraces from internal-error traps were truncated before reaching
the erring stack frame due to an invalid frame pointer value being set
up in the mach exception handler.  Fixed.

14 years ago1.0.35.4: fix compilation on chenygc platforms
Gabor Melis [Thu, 4 Feb 2010 23:27:00 +0000 (23:27 +0000)]
1.0.35.4: fix compilation on chenygc platforms

Thanks to Larry Valkama and Bruce O'Neel.

14 years ago1.0.35.3: Give initial thread function an explicit name..
Tobias C. Rittweiler [Thu, 4 Feb 2010 21:13:04 +0000 (21:13 +0000)]
1.0.35.3: Give initial thread function an explicit name..

...for slightly improved backtrace experience.

14 years ago1.0.35.2: Fix CONDITION-WAIT to signal deadline with interrupts enabled.
Tobias C. Rittweiler [Mon, 1 Feb 2010 18:55:13 +0000 (18:55 +0000)]
1.0.35.2: Fix CONDITION-WAIT to signal deadline with interrupts enabled.

14 years ago1.0.35.1: Fix CONDITION-WAIT not to signal a deadline twice (LP #512914)
Tobias C. Rittweiler [Sun, 31 Jan 2010 20:25:30 +0000 (20:25 +0000)]
1.0.35.1: Fix CONDITION-WAIT not to signal a deadline twice (LP #512914)

14 years ago1.0.35: will be tagged as sbcl_1_0_35
Christophe Rhodes [Sun, 31 Jan 2010 11:10:39 +0000 (11:10 +0000)]
1.0.35: will be tagged as sbcl_1_0_35

14 years ago1.0.34.16: Test case for ROUND brokenness
Christophe Rhodes [Sat, 30 Jan 2010 21:30:50 +0000 (21:30 +0000)]
1.0.34.16: Test case for ROUND brokenness

14 years ago1.0.34.15: Fix DERIVE-TYPE optimizer for %UNARY-ROUND
Paul Khuong [Sat, 30 Jan 2010 16:16:13 +0000 (16:16 +0000)]
1.0.34.15: Fix DERIVE-TYPE optimizer for %UNARY-ROUND

Handle exclusive bounds conservatively by treating them as inclusive
(instead of dying).

14 years ago1.0.34.14: fix permissions of directories of asdf-using contribs
Christophe Rhodes [Thu, 28 Jan 2010 11:36:26 +0000 (11:36 +0000)]
1.0.34.14: fix permissions of directories of asdf-using contribs

Report (lp #508485, sbcl-devel variously) and fix from Eugene Ossintsev

14 years ago1.0.34.13: add DERIVE-TYPE optimizer for %UNARY-ROUND
Nathan Froyd [Wed, 27 Jan 2010 01:57:12 +0000 (01:57 +0000)]
1.0.34.13: add DERIVE-TYPE optimizer for %UNARY-ROUND

This change enables %UNARY-ROUND to be inlined on several platforms.

14 years ago1.0.34.12: slightly better code generation for x86-64 float conversions
Nathan Froyd [Wed, 27 Jan 2010 00:45:11 +0000 (00:45 +0000)]
1.0.34.12: slightly better code generation for x86-64 float conversions

%{SINGLE,DOUBLE}-FLOAT required an unnecessary temporary stack slot.
Float->integer and float->float conversions also suffered from not being
able to take arguments in stack SCs.

14 years ago1.0.34.11: properly inline %UNARY-TRUNCATE/{SINGLE,DOUBLE}-FLOAT
Nathan Froyd [Tue, 26 Jan 2010 15:42:42 +0000 (15:42 +0000)]
1.0.34.11: properly inline %UNARY-TRUNCATE/{SINGLE,DOUBLE}-FLOAT

Add DERIVE-TYPE optimizers for them so the compiler can see that VOPs
are applicable.  Add a testcase that should be valid everywhere.

14 years ago1.0.34.10: New chapter for internals manual.
Alastair Bridgewater [Mon, 25 Jan 2010 03:47:20 +0000 (03:47 +0000)]
1.0.34.10: New chapter for internals manual.

  * Chapter: Objects In Memory, describing type tags and heap object
layouts.

14 years ago1.0.34.9: darwin/x86-64 sb-posix:stat fixes from Kei Suzuki
Cyrus Harmon [Thu, 21 Jan 2010 05:09:43 +0000 (05:09 +0000)]
1.0.34.9: darwin/x86-64 sb-posix:stat fixes from Kei Suzuki

* sb-unix:unix-stat/lstat/fstat return the 32bit inode with x86 and
  the 64bit inode with x86-64,

* sb-posix:stat/lstat/fstat get stat values using the old stat calls
  with x86 and the new ones with x86-64

* re-enable now-working sb-posix stat tests

14 years ago1.0.34.8: Cosmetic improvements to error output on compilation abort.
Tobias C. Rittweiler [Wed, 20 Jan 2010 22:51:19 +0000 (22:51 +0000)]
1.0.34.8: Cosmetic improvements to error output on compilation abort.

* Make sure that error output is printed on a fresh line.

* Add mandatory newline before and after so the abortion
  stands out visually.

* Make sure to report the actual condition (fatal-compiler-error
  is just an encapsulation.)

14 years ago1.0.34.7: add missing x86-64-vm.lisp file from previous commit
Nathan Froyd [Fri, 8 Jan 2010 16:29:31 +0000 (16:29 +0000)]
1.0.34.7: add missing x86-64-vm.lisp file from previous commit

14 years ago1.0.34.6: improvements to SB-ROTATE-BYTE on x86-64
Nathan Froyd [Fri, 8 Jan 2010 02:21:15 +0000 (02:21 +0000)]
1.0.34.6: improvements to SB-ROTATE-BYTE on x86-64

- Generate ROL/ROR instructions for 32-bit rotates, rather than shifts,
  ands, and ors;
- Generate ROL/ROR instructions for 64-bit rotates.

While we're here, we might as well fix the FIXME about the ordering of
DEFTRANSFORMS to ensure we do the right thing for identity rotates.

14 years ago1.0.34.5: remove dead DATA-VECTOR-{REF,SET} transforms
Nathan Froyd [Wed, 6 Jan 2010 16:56:22 +0000 (16:56 +0000)]
1.0.34.5: remove dead DATA-VECTOR-{REF,SET} transforms

The transforms for (SIMPLE-ARRAY (UNSIGNED-BYTE N)) where (< N 8) have
never been used.  Consign them to the version control bitbucket.

14 years ago1.0.34.4: micro-optimize widetag checking on x86oids
Nathan Froyd [Wed, 6 Jan 2010 05:05:43 +0000 (05:05 +0000)]
1.0.34.4: micro-optimize widetag checking on x86oids

If we are checking a range of widetags and there are no more widetags to
check, we can tweak the widetag and do a single, unsigned comparison.

14 years ago1.0.34.3: Fix second return value of GET-MACRO-CHARACTER.
Tobias C. Rittweiler [Mon, 4 Jan 2010 15:55:21 +0000 (15:55 +0000)]
1.0.34.3: Fix second return value of GET-MACRO-CHARACTER.

GET-MACRO-CHARACTER always refered to *READTABLE* when computing its
second return value (the non-terminating-p flag) rather than to the
readtable that may have been passed explicitly.

14 years ago1.0.34.2: Make threads.pure.lisp symbol-value-in-thread.[78] tests more reliable.
Alastair Bridgewater [Wed, 30 Dec 2009 22:54:27 +0000 (22:54 +0000)]
1.0.34.2: Make threads.pure.lisp symbol-value-in-thread.[78] tests more reliable.

  * Actually assert that an error occurred (setf won't signal an
unbound-variable if the thread still lives).

  * Join the thread before attempting to access the value (no more race
condition).

14 years ago1.0.34.1: Kludge reduction in debug-int.
Alastair Bridgewater [Wed, 30 Dec 2009 22:53:37 +0000 (22:53 +0000)]
1.0.34.1: Kludge reduction in debug-int.

  * We can't dump packages in the cross-compiler, but we can use
load-time-value, which is sufficient.

14 years ago1.0.34: will be tagged as sbcl_1_0_34
Christophe Rhodes [Wed, 30 Dec 2009 20:09:45 +0000 (20:09 +0000)]
1.0.34: will be tagged as sbcl_1_0_34

14 years ago1.0.33.30: Fix sb-posix build on win32.
Alastair Bridgewater [Thu, 24 Dec 2009 00:08:11 +0000 (00:08 +0000)]
1.0.33.30: Fix sb-posix build on win32.

  * This was entirely symbol-export issues between win32 and non-win32.

14 years ago1.0.33.29: Fix x86oid backtrace on sigaltstack in LDB.
Alastair Bridgewater [Tue, 22 Dec 2009 17:22:50 +0000 (17:22 +0000)]
1.0.33.29: Fix x86oid backtrace on sigaltstack in LDB.

  * altstack_pointer_p() derives the location of the altstack from the
value of arch_os_get_current_thread(), which returns a struct thread *.
This caused the subsequent offset calculation to be off by a factor of
sizeof(struct thread), thus completely overshooting the altstack area.

14 years ago1.0.33.28: Display descriptions for internal errors in the runtime.
Alastair Bridgewater [Mon, 21 Dec 2009 16:30:08 +0000 (16:30 +0000)]
1.0.33.28: Display descriptions for internal errors in the runtime.

  * In genesis, output a define with the descriptions of internal
errors.

  * In interr.c, create an array with said descriptions and use it when
describing an internal error.

14 years ago1.0.33.27: fix regressions in DESCRIBE from 1.0.33.5
Gabor Melis [Mon, 21 Dec 2009 13:12:47 +0000 (13:12 +0000)]
1.0.33.27: fix regressions in DESCRIBE from 1.0.33.5

14 years ago1.0.33.26: enabled threads by default on x86[-64] Linux
Nikodemus Siivola [Fri, 18 Dec 2009 14:26:33 +0000 (14:26 +0000)]
1.0.33.26: enabled threads by default on x86[-64] Linux

 I'll let FreeBSD folks make the judgement if threads should be
 default there as well.

 Also: update INSTALL documentation regarding *FEATURES* a bit, and
 make the documentation clear about availability of threads on
 different builds.

14 years ago1.0.33.25: switch SB-QUEUE into using ASDF
Nikodemus Siivola [Fri, 18 Dec 2009 13:21:44 +0000 (13:21 +0000)]
1.0.33.25: switch SB-QUEUE into using ASDF

 ...so that other systems can :depends-on it.

14 years ago1.0.33.24: both .FASL and .fasl force fasl-loading
Nikodemus Siivola [Fri, 18 Dec 2009 09:42:23 +0000 (09:42 +0000)]
1.0.33.24: both .FASL and .fasl force fasl-loading

 Bug with case-insensitive filesystems cause other implementations
 .FASL files to be loaded as source reported by Willem Broekema.

14 years ago1.0.33.23: nuke trailing newline from error string
Nikodemus Siivola [Fri, 18 Dec 2009 09:11:26 +0000 (09:11 +0000)]
1.0.33.23: nuke trailing newline from error string

 Thanks to Stas Boukarev.

14 years ago1.0.33.22: fix WITH-MUTEX docstring
Nathan Froyd [Fri, 18 Dec 2009 02:19:30 +0000 (02:19 +0000)]
1.0.33.22: fix WITH-MUTEX docstring

Noted on sbcl-devel 2009-12-17 by William Halliburton.

14 years ago1.0.33.21: safe SB-POSIX:PUTENV
Nikodemus Siivola [Thu, 17 Dec 2009 23:25:04 +0000 (23:25 +0000)]
1.0.33.21: safe SB-POSIX:PUTENV

 Reported by Fare Rideau: POSIX putenv() puts the actual string it is
 passed into environ, which is definitely wrong for any lisp string.

 Since we don't want to leak memory either, implement our own putenv()
 on top of setenv() -- and the other way around on Windows which
 doesn't have setenv().

 Messed up is what this is -- to keep a semblance of sanity add
 test-cases.

14 years ago1.0.33.20: MORE CONSTANTIFICATION
Nathan Froyd [Thu, 17 Dec 2009 21:01:47 +0000 (21:01 +0000)]
1.0.33.20: MORE CONSTANTIFICATION

Use FIXNUM-TAG-MASK and N-FIXNUM-TAG-BITS where appropriate.

14 years ago1.0.33.19: post-fact correct commit log message
Nikodemus Siivola [Thu, 17 Dec 2009 13:12:00 +0000 (13:12 +0000)]
1.0.33.19: post-fact correct commit log message

 Previous commit should have said:

 "1.0.33.18: termios additions to SB-POSIX

    Thanks to Jerry James"

 ...and the one before that should have called its version 1.0.33.17,
 but otherwise has the correct text.

 ...sorry about the noise.

14 years ago1.0.33.11: thread-safe FIND-PACKAGE & DEFPACKAGE
Nikodemus Siivola [Thu, 17 Dec 2009 12:13:56 +0000 (12:13 +0000)]
1.0.33.11: thread-safe FIND-PACKAGE & DEFPACKAGE

 * Must use WITH-PACKAGES around the GETHASH *PACKAGE-NAMES*.

14 years ago1.0.33.11: thread-safe FIND-PACKAGE & DEFPACKAGE
Nikodemus Siivola [Thu, 17 Dec 2009 11:42:22 +0000 (11:42 +0000)]
1.0.33.11: thread-safe FIND-PACKAGE & DEFPACKAGE

 * Must use WITH-PACKAGES around the GETHASH *PACKAGE-NAMES*.

14 years ago1.0.33.16: implement UTF external formats
Christophe Rhodes [Wed, 16 Dec 2009 22:12:35 +0000 (22:12 +0000)]
1.0.33.16: implement UTF external formats

UTF-16 and UTF-32, being strict about handling of surrogates and noncharacters
according to Unicode.

14 years ago1.0.33.15: preparation for UTF external formats
Christophe Rhodes [Wed, 16 Dec 2009 21:54:05 +0000 (21:54 +0000)]
1.0.33.15: preparation for UTF external formats

On input, there are potentially two non-constant sizes of data that need
to be read; for variable-width formats, there are both the number of bytes
for a particular character, and the number of bytes that need to be read in
order to know how many bytes need to be read for a character (previously
hardwired to 1).  Separate out these two sizes in preparation for UTF-16 and
UTF-32 external formats.

14 years ago1.0.33.14: improve UCS external formats
Christophe Rhodes [Wed, 16 Dec 2009 21:39:30 +0000 (21:39 +0000)]
1.0.33.14: improve UCS external formats

Fix a simple bug in the CHAR->UCS-2BE error case.

Fix error-handling UCS-2 cases, by actually being careful about using the
return values of the encoding-error/decoding-error octet functions, and by
using adjustable vectors.  Include tests for this.

Implement UCS-4, as a straight-through 32-bit encoding of the char-code.

Move external-formats/ucs-2.lisp to external-formats/enc-ucs.lisp, and include
a comment header explaining the distinction in our terms between UCS and UTF
external formats.

14 years ago1.0.33.13: Catch errors during compile-time-too processing.
Tobias C. Rittweiler [Wed, 16 Dec 2009 09:58:54 +0000 (09:58 +0000)]
1.0.33.13: Catch errors during compile-time-too processing.

  * Errors signaled within an (EVAL-WHEN (:COMPILE-TOPLEVEL) ...),
    i.e. during ``compile-time-too' processing, are now caught and
    reported just like errors at macroexpansion time.

    Previously, we landed in the debugger from within the compiler and
    thus provided pretty much no information about the actual source
    context to the user.

    Now, we won't land in the debugger, and the appropriate source
    context is reported along the error.

  * Some slight generalization in the test suite.

  * So we can add tests for errors in EVAL-WHEN and during
    macroexpansion.

14 years ago1.0.33.12: Less ugly html manuals
Rudi Schlatte [Tue, 15 Dec 2009 16:09:02 +0000 (16:09 +0000)]
1.0.33.12: Less ugly html manuals
... add some light css styling
... also create single-file manual for easier grepping
... unilaterally deciding on light blue as our new corporate colour

14 years ago1.0.33.11: fix detection of tls exhaustion
Gabor Melis [Tue, 15 Dec 2009 15:22:22 +0000 (15:22 +0000)]
1.0.33.11: fix detection of tls exhaustion

... that was added in 1.0.16.21 and whose ways were shown to be wrong
by the additional pseudo atomic asserts added later.

With this fix the user gets to see the tls exhausted message instead
of a random complaint about pa.

14 years ago1.0.33.10: Make slam.sh usable to obtain a trace-file post-build.
Alastair Bridgewater [Sat, 12 Dec 2009 20:55:15 +0000 (20:55 +0000)]
1.0.33.10: Make slam.sh usable to obtain a trace-file post-build.

  * Have slam.lisp re-load build-order.lisp-expr in order to obtain new
flags as needed.

  * Also check for outdated/non-extant trace file for stems flagged as
requiring one.

14 years ago1.0.33.9: LDB stability improvements.
Alastair Bridgewater [Sat, 12 Dec 2009 20:52:13 +0000 (20:52 +0000)]
1.0.33.9: LDB stability improvements.

  * Make sure that a struct object is actually in the lisp heap space
before attempting to access its memory.

  * We have a perfectly good is_lisp_pointer() function, use it in
print_obj().

14 years ago1.0.33.8: Fix x86-64 interrupt context display in ldb.
Alastair Bridgewater [Sat, 12 Dec 2009 20:49:55 +0000 (20:49 +0000)]
1.0.33.8: Fix x86-64 interrupt context display in ldb.

  * Half of the register names were missing, causing random failures
from using words past the end of the register name array as string
pointers.

14 years ago1.0.33.7: Indicate *DEBUGGER-HOOK* / SB-EXT:*INVOKE-DEBUGGER-HOOK* in backtrace.
Tobias C. Rittweiler [Thu, 10 Dec 2009 23:32:18 +0000 (23:32 +0000)]
1.0.33.7: Indicate *DEBUGGER-HOOK* / SB-EXT:*INVOKE-DEBUGGER-HOOK* in backtrace.

14 years ago1.0.33.6: prettier PRINT-OBJECT default method
Gabor Melis [Fri, 4 Dec 2009 17:59:48 +0000 (17:59 +0000)]
1.0.33.6: prettier PRINT-OBJECT default method

If *PRINT-PRETTY*, the default method of PRINT-OBJECT now establishes
a logical block around PRINT-UNREADABLE-OBJECT that, in turn, adds a
few PPRINT-NEWLINES to allow for the stuff between #< and > be broken
into multiple lines as the pretty printer sees fit. This allows #<...>
to be wrapped properly.

https://bugs.launchpad.net/sbcl/+bug/488979

14 years ago1.0.33.5: improve DESCRIBE (#lp488976)
Gabor Melis [Fri, 4 Dec 2009 16:07:38 +0000 (16:07 +0000)]
1.0.33.5: improve DESCRIBE (#lp488976)

Instead of printing the object type and address in an around method on
DESCRIBE-OBJECT, make it a normal method that all other methods are
supposed to call via CALL-NEXT-METHOD if they wish. This makes it
possible to completely change the output of DESCRIBE for one class
while leaving other classes alone.

Also, kill the unused *IN-DESCRIBE* var in the process.

14 years ago1.0.33.4: rewriting history, the regexp way
Christophe Rhodes [Wed, 2 Dec 2009 21:07:14 +0000 (21:07 +0000)]
1.0.33.4: rewriting history, the regexp way

The html generation in sbcl-page now supports automatic linking to launchpad
bug IDs mentioned in NEWS, given a certain format.  Convert existing
references to launchpad bugs to that format.

14 years ago1.0.33.3: restore buildability from CMUCL
Christophe Rhodes [Wed, 2 Dec 2009 08:54:43 +0000 (08:54 +0000)]
1.0.33.3: restore buildability from CMUCL

- Add extra keyword in the ftype declaration for %DEFKNOWN (oh, the irony);
- move the THREAD structure into the cross-compiler, so that MUTEX slots
  can be declared to have type (OR NULL THREAD);
- IGNORE on non-binding in saptran

(build failure reported by xme@gmx.net)

14 years ago1.0.33.2: Fix bug 489698 (reading #p"\\\\" on windows).
Alastair Bridgewater [Sat, 28 Nov 2009 22:53:45 +0000 (22:53 +0000)]
1.0.33.2: Fix bug 489698 (reading #p"\\\\" on windows).

  * Actual bug was a missed range check prior to calling POSITION in
EXTRACT-DEVICE in src;code;win32-pathname.  Fixed.

  * Added test case.

14 years ago1.0.33.1: DEFTYPE-LAMBDA-LIST for builtin types.
Tobias C. Rittweiler [Sat, 28 Nov 2009 13:25:21 +0000 (13:25 +0000)]
1.0.33.1: DEFTYPE-LAMBDA-LIST for builtin types.

Make SB-INTROSPECT:DEFTYPE-LAMBDA-LIST also work on most builtin
types.

14 years ago1.0.33: will be tagged as sbcl_1_0_33
Christophe Rhodes [Fri, 27 Nov 2009 17:59:15 +0000 (17:59 +0000)]
1.0.33: will be tagged as sbcl_1_0_33

14 years ago1.0.32.39: Win32 build fix
Alastair Bridgewater [Fri, 27 Nov 2009 16:59:28 +0000 (16:59 +0000)]
1.0.32.39: Win32 build fix

  * Because both sbcl and <rpcndr.h> define a boolean type,
grovel-headers was failing to build on win32.  Copied the kludge for
working around this issue from src/runtime/runtime.h to
tools-for-build/grovel-headers.c.

14 years ago1.0.32.38: liberalize WHO-SPECIALIZES-DIRECTLY/GENERALLY
trittweiler [Tue, 24 Nov 2009 16:31:19 +0000 (16:31 +0000)]
1.0.32.38: liberalize WHO-SPECIALIZES-DIRECTLY/GENERALLY

Other Xref functions (WHO-CALLS etc.) are very liberal at what they
accept as input. Adjust the two new Xref functions
WHO-SPECIALIZES-DIRECTLY and WHO-SEPCIALIZES-GENERALLY accordingly.

14 years ago1.0.32.37: declarations and symbol-macros in methods
Christophe Rhodes [Fri, 20 Nov 2009 21:40:04 +0000 (21:40 +0000)]
1.0.32.37: declarations and symbol-macros in methods

A stray backquote caused compilation warnings and run-time errors if, within
a method, a symbol macro with a type declaration was given a new value with
SETQ.

Fixes bug #485019, reported by Iban Hatchondo

14 years ago1.0.32.36: (subtypep 'symbol 'keyword) must be NIL, T
Christophe Rhodes [Fri, 20 Nov 2009 21:33:51 +0000 (21:33 +0000)]
1.0.32.36: (subtypep 'symbol 'keyword) must be NIL, T

Special-case the hairy type (SATISFIES KEYWORDP) and its interaction with the
SYMBOL type.  (We could potentially be cleverer at this point and additionally
tell the system that all non-symbols are non-(SATISFIES KEYWORDP) types, but
we're somewhat late in the development cycle now)

Fixes bug #485972

14 years ago1.0.32.35: SB-POSIX:FORK guards against forking with multiple threads
Nikodemus Siivola [Fri, 20 Nov 2009 11:48:12 +0000 (11:48 +0000)]
1.0.32.35: SB-POSIX:FORK guards against forking with multiple threads

  * It wasn't going to work right in any case, so better to refuse up
    front.

  * Remove invalid FIXME from globaldb.lisp: DO-INFO is also used by
    SB-INTROSPECT.

14 years ago1.0.32.34: remove curious-hacker-cruft from constraints.lisp
Nikodemus Siivola [Thu, 19 Nov 2009 16:35:50 +0000 (16:35 +0000)]
1.0.32.34: remove curious-hacker-cruft from constraints.lisp

 ...that was not supposed to go in!

 *blush*

14 years ago1.0.32.33: GENCGC tuning parameters
Nikodemus Siivola [Thu, 19 Nov 2009 16:08:37 +0000 (16:08 +0000)]
1.0.32.33: GENCGC tuning parameters

 * Define +HIGHEST-NORMAL-GENERATION+ and +PSEUDO-STATIC-GENERATION+
   in lisp, and let genesis tell C about them.

 * Make various generations[gen].foo tweakable from lisp, give them
   nice interface functions and document the same.

 * Bits of manual prettification in related parts.

14 years ago1.0.32.32: add support for x86-64/NetBSD
Christophe Rhodes [Thu, 19 Nov 2009 15:38:50 +0000 (15:38 +0000)]
1.0.32.32: add support for x86-64/NetBSD

Patch from Aymeric Vincent.

14 years ago1.0.32.31: type system now understands (and <array-type> (not simple-array))
Christophe Rhodes [Thu, 19 Nov 2009 11:50:42 +0000 (11:50 +0000)]
1.0.32.31: type system now understands (and <array-type> (not simple-array))

Taken to mean the <array-type> with COMPLEXP T (rather than :MAYBE).
Adjust the type test transform to use the old technique for testing for
complex arrays (using an explicit (NOT SIMPLE-ARRAY) test rather than a
full call to %TYPEP, as you would otherwise get; this is a KLUDGE, but
no worse than before).

Include a test case for bug #309129, which this fixes.

14 years ago1.0.32.30: Fix breakage from 1.0.32.26.
Alastair Bridgewater [Thu, 12 Nov 2009 16:07:49 +0000 (16:07 +0000)]
1.0.32.30: Fix breakage from 1.0.32.26.

  * Use FIND-CONSTANT instead of MAYBE-EMIT-MAKE-LOAD-FORMS to prepare
arglists for dumping, thus unbreaking compilation to core.

  * Add a test case for in-core case.

14 years ago1.0.32.29: Add build flag :sb-xref-for-internals.
trittweiler [Thu, 12 Nov 2009 15:10:04 +0000 (15:10 +0000)]
1.0.32.29: Add build flag :sb-xref-for-internals.

Enabling :sb-xref-for-internals in customize-target-features.lisp,
will make Sbcl collect Xref data about itself during the build. This
increases the core size drastically by about 5-6mb, but it's useful
for SBCL developers because they can now use M-? (slime-edit-uses) to
get a list of call/expansion/reference sites for internal stuff.

It may be interesting to Lisp advocacy who can now show off with
finding the use sites of standardized functions like CONS, etc. :-)

Additionally -- regardless of :sb-xref-for-internals --, we now also
collect xref data for keywords because they're "fine" names for
functions and macros, and I know of people who use MACROLET on
keywords for their DSLs.

14 years ago1.0.32.28: fix listen / read-char-no-hang
Christophe Rhodes [Thu, 12 Nov 2009 11:29:23 +0000 (11:29 +0000)]
1.0.32.28: fix listen / read-char-no-hang

Whoops.  The external-format changes broke read-char-no-hang after an
unread-char: very noticeable indeed just as soon as an error occurs in
slime.  In my defence, this was already broken on bivalent streams; I just
propagated that brokenness to all fd-streams.

Include a run-program-based test, because that produces the kind of streams
that can have no data and yet not be at EOF.  In the slime context, they're
sockets, so it's a bit difficult to test the slime case exactly; ideas for
good simulations welcome.

14 years ago1.0.32.27: Add test case for 1.0.32.26.
trittweiler [Thu, 12 Nov 2009 10:42:50 +0000 (10:42 +0000)]
1.0.32.27: Add test case for 1.0.32.26.

14 years ago1.0.32.26: Fix fasdumping of function arglists with instances as default values
Alastair Bridgewater [Thu, 12 Nov 2009 00:10:21 +0000 (00:10 +0000)]
1.0.32.26: Fix fasdumping of function arglists with instances as default values

  Fasdumping of a function arglist was breaking if there was a structure
or other instance as a default value because the arglist wasn't
processed for dumping as a literal constant.

  * Process the arglist for dumping as a literal constant when creating
entry-info for external entry points.

  This is https://bugs.launchpad.net/sbcl/+bug/310132 .

14 years ago1.0.32.25: save page table allocation information into core files
Nikodemus Siivola [Wed, 11 Nov 2009 19:01:20 +0000 (19:01 +0000)]
1.0.32.25: save page table allocation information into core files

 * Allows unboxed objects in saved cores to be written to without
   write-protection & later scavenging.

14 years ago1.0.32.24: document stream external-formats and :replacement option
Christophe Rhodes [Wed, 11 Nov 2009 18:20:34 +0000 (18:20 +0000)]
1.0.32.24: document stream external-formats and :replacement option

14 years ago1.0.32.23: use :replacement in the external format for standard IO streams
Christophe Rhodes [Wed, 11 Nov 2009 18:08:31 +0000 (18:08 +0000)]
1.0.32.23: use :replacement in the external format for standard IO streams

For *terminal-io*, a bidirectional stream, we have to make an arbitrary
choice on Windows, where in theory the input and output code pages can
differ.  We arbitrarily choose the output format; I have no idea whether
this matters.

14 years ago1.0.32.22: implement output restarts for UCS2
Christophe Rhodes [Wed, 11 Nov 2009 17:52:39 +0000 (17:52 +0000)]
1.0.32.22: implement output restarts for UCS2

Most of the work was done; we just had to actually turn the catch tag
on, and write tests that are correct rather than wrong.

14 years ago1.0.32.21: compress most unibyte-external-format definitions
Christophe Rhodes [Wed, 11 Nov 2009 17:34:09 +0000 (17:34 +0000)]
1.0.32.21: compress most unibyte-external-format definitions

All the unibyte-mapper-based external-formats had huge amounts of
cut-and-pasted code, differing only in names of functions.  This is,
oddly enough, a clear case for abstracting away the repeated code into a
macro.

In the process, convert them to the multibyte apparatus, which has support
for the nice restarts, and remove the too-simple unibyte
DEFINE-EXTERNAL-FORMAT (and EXTERNAL-FORMAT-DECODING-ERROR) which are now
unused.

Include a far-from-comprehensive set of tests, which are mostly for
iso-8859-x formats

14 years ago1.0.32.20: bug fixes in unibyte external formats
Christophe Rhodes [Wed, 11 Nov 2009 17:21:05 +0000 (17:21 +0000)]
1.0.32.20: bug fixes in unibyte external formats

* handling undefined codepoints:

  There's a difference between "unassigned codepoint", represented as
  (<code> nil), and "codepoint mapping to character with that codepoint",
  represented by the absence of an entry in the exceptions list.  Simply
  testing for trueness of (cadr (assoc <code> exceptions)) isn't good
  enough; test for trueness of (cdr (assoc ...)) and use the car if so.

* undefined codepoints as the first exception:

  If the first exception to code<->byte is an undefined character, as for
  example in iso-8859-8, the lowest-code exception was computed wrongly,
  leading to incorrect encoding.

14 years ago1.0.32.19: Support for :REPLACEMENT external-format / encoding modifier
Christophe Rhodes [Wed, 11 Nov 2009 17:10:40 +0000 (17:10 +0000)]
1.0.32.19: Support for :REPLACEMENT external-format / encoding modifier

For a given keyword :foo naming an encoding, allow an external-format
(:foo :replacement <character>) such that any stream or octet coding
errors are automatically treated by using the <character> as replacement
instead.

To do this, wrap each of the functions in the external-format object
named by the keyword with a function establishing handlers for the
exceptional conditions. At the moment, the output restarts for c-string
external format conversion are not implemented (so handle specific condition
types like STREAM-FOOCODING-ERROR, not general FOOCODING-ERROR).

14 years ago1.0.32.18: additional allocation information
Nikodemus Siivola [Wed, 11 Nov 2009 15:06:29 +0000 (15:06 +0000)]
1.0.32.18: additional allocation information

 * SB-INTROSPECT:ALLOCATION-INFORMATION also reports on boxedness of
   the page the object resides on.

 * When heap statistics are printed, always print the details of the
   pseudo-static generation. Make print_generation_stats extern so it
   can be called from lisp.

14 years ago1.0.32.17: make the utf-8 external format more robust
Christophe Rhodes [Wed, 11 Nov 2009 13:52:19 +0000 (13:52 +0000)]
1.0.32.17: make the utf-8 external format more robust

Detect all malformed sequences, including attempts to decode or encode
Unicode surrogate codepoints (disallowed by the Unicode definition of
UTF-8).  Some error tests change behaviour, and some (unexported)
condition classes are not triggered under the same circumstances any
more.

Also, handle null-termination on a successful conversion of an empty range of
a nil array.

14 years ago1.0.32.16: external-format restart enhancements
Christophe Rhodes [Wed, 11 Nov 2009 13:21:37 +0000 (13:21 +0000)]
1.0.32.16: external-format restart enhancements

* OUTPUT-REPLACEMENT restart for fd-stream external-formats, taking a
  string designator argument and attempting to encode that instead of the
  erroneous output;

* fixes for the FORCE-END-OF-FILE fd-stream external-format restart, using
  a somewhat involved call / return protocol for communicating out-of-band
  information between output routines and drivers;

* INPUT-REPLACEMENT restart for fd-stream external-formats, again with
  complicated out-of-band information communication.  This also interacts
  with UNREAD-CHAR;

* fix the ATTEMPT-RESYNC restart (and similar) at or near the end of file,
  ensuring that there is always a valid CATCH tag to be THROWN to;

* fix a double-error case in the USE-VALUE restart for unibyte octet
  conversions;

* bandage fix for mb-util decoding-error USE-VALUE restart -- there's more
  factoring to be done, but this fixes lp #314939

14 years ago1.0.32.15: update Unicode data files to Unicode 5.2
Christophe Rhodes [Wed, 11 Nov 2009 12:56:15 +0000 (12:56 +0000)]
1.0.32.15: update Unicode data files to Unicode 5.2

We do still need also to update a small bit of code, but at least the
explanatory comment now makes it obvious which bits.

14 years ago1.0.32.14: fix build under clisp
Christophe Rhodes [Sat, 7 Nov 2009 10:03:22 +0000 (10:03 +0000)]
1.0.32.14: fix build under clisp

It already worked with 'clisp -on-error -abort', but since there's only one
type declaration in the whole system that clisp doesn't understand, we might
as well fix it.  Report and patch by Josh Elasser, lp #396597.

14 years ago1.0.32.13: WITH-STANDARD-IO-SYNTAX must also bind *PRINT-PPRINT-DISPATCH*...
trittweiler [Fri, 6 Nov 2009 22:07:57 +0000 (22:07 +0000)]
1.0.32.13: WITH-STANDARD-IO-SYNTAX must also bind *PRINT-PPRINT-DISPATCH*...

...'cuz CLHS says so. We bind it to the standard pprint dispatch
table, and guard against its modification in SET-PPRINT-DISPATCH,
mimicking the guard against modification of the standard readtable
introduced in 1.0.24.

14 years ago1.0.32.12: Fix slot-value on specialized parameters in SVUC methods
Christophe Rhodes [Fri, 6 Nov 2009 21:12:16 +0000 (21:12 +0000)]
1.0.32.12: Fix slot-value on specialized parameters in SVUC methods

The slot accessors' functions were being computed too early, requiring a
wrapper (for the PV optimization) when none was available.  The fix
delays the computation by the usual trick of installing a closure that
will perform the slot accessor computation on demand.

Include a correct MOP test for this (slightly hard because of
constraints about order of instantiation: see lp #473699, reported by
Lars Rune Nodstal).

14 years ago1.0.32.11: fix octets portion of latin-2/iso-8859-2 external-format
Christophe Rhodes [Tue, 3 Nov 2009 10:42:18 +0000 (10:42 +0000)]
1.0.32.11: fix octets portion of latin-2/iso-8859-2 external-format

Typo in the external format definition.  Include a test case; reported
by Attila Lendvai (in lp #471689)