Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.


sbcl Log

Commit Date  
[a18894] by Christophe Rhodes Christophe Rhodes 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

In the process, convert them to the multibyte apparatus, which has support
for the nice restarts, and remove the too-simple unibyte

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

2009-11-11 17:34:09 Tree
[314ebe] by Christophe Rhodes Christophe Rhodes 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.

2009-11-11 17:21:05 Tree
[ed53de] by Christophe Rhodes Christophe Rhodes 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

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

2009-11-11 17:10:40 Tree
[8a9352] by Nikodemus Siivola Nikodemus Siivola 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.

2009-11-11 15:06:29 Tree
[7cf582] by Christophe Rhodes Christophe Rhodes 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

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

2009-11-11 13:52:19 Tree
[75476d] by Christophe Rhodes Christophe Rhodes 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

* 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

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

2009-11-11 13:21:37 Tree
[9b2b4b] by Christophe Rhodes Christophe Rhodes 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.

2009-11-11 12:56:15 Tree
[3eae72] by Christophe Rhodes Christophe Rhodes 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.

2009-11-07 10:03:22 Tree
[2a1df4] by trittweiler trittweiler 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.

2009-11-06 22:07:57 Tree
[95591e] by Christophe Rhodes Christophe Rhodes 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).

2009-11-06 21:12:16 Tree
[e2a620] by Christophe Rhodes Christophe Rhodes 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)

2009-11-03 10:42:18 Tree
[f9b0f5] by Gabor Melis Gabor Melis fix timer starvation caused by setting the system clock back

Reported by Leslie P. Polzer.

2009-11-02 10:56:13 Tree
[576e19] by Nathan Froyd Nathan Froyd fix thinko in DEFINE-EXTERNAL-FORMAT/VARIABLE-WIDTH

Users of this OUTPUT-BYTES/FOO function must have been perfect.

2009-10-30 18:44:34 Tree
[615e83] by Nathan Froyd Nathan Froyd macroize x86-64 {8,16,32}-bit array accessors

One wonders if the profusion of array access VOPs are merely bloat...

2009-10-30 18:42:02 Tree
[e3715b] by Nathan Froyd Nathan Froyd fix open-coding of EQL in the cross-compiler

EQ-COMPARABLE-TYPE wasn't being defined properly, so things like
(EQL FOO :KEYWORD) were going through GENERIC-EQL.

Thanks to Christophe for pointing out the fix.

2009-10-30 18:22:10 Tree

* Add two new Xref functions to SB-INTROSPECT:

WHO-SPECIALIZES-DIRECTLY returns method definitions which
specialize one the designated class itself.

WHO-SPECIALIZES-GENERALLY returns methods definitions which
specialize on the designated class, or subclasses of it.

Both take CLASS-EQ, and EQL specializers into account.

* Refactor xref tests, and add tests for the two new functions.

* Fix sb-introspect.asd to perform the test-op with a *D-P-D* bound
to contrib/sb-introspect/.

2009-10-30 18:10:38 Tree
[4363cb] by Christophe Rhodes Christophe Rhodes defend against full MAKE-ARRAY before the type system is ready

This is basically defence against bugs of the form lp #316323, where the
wrong answer comes out of a make-array before SUBTYPEP is working
properly. We should be able to arrange the build so that we never have
to do a full MAKE-ARRAY before we're ready for it.

Slight modifications of a couple of macros: VOP-related and multibyte
encoding-related. There should be no user-visible change.

2009-10-30 15:23:11 Tree
[7f90f1] by Christophe Rhodes Christophe Rhodes fix INSPECT on closures

(really fix %closure-values, but the inspector was the only user of this)

2009-10-29 17:53:21 Tree
[d7eae4] by Christophe Rhodes Christophe Rhodes O_LARGEFILE support on x86-64/linux

Reported by Daniel Janus (and patch) as lp bug #453080.

2009-10-29 16:39:01 Tree
[b76a2a] by Christophe Rhodes Christophe Rhodes minor portability fix

Clozure CL issues full warnings at compile time if individual clauses in
typecases are shadowed by others; this makes writing portable
warning-free typecases for character types a little bit tricky. In the
case of the FORMAT directive finders, though, the workaround is
straightforward because the whole of the CHARACTER branch in the
typecases can be removed.

While we're at it, fix the theoretical portability bug that we were
calling the host's CHAR-CODE on BASE-CHARs to fill data structures later
to be accessed using the target's CHAR-CODE. (Theoretical because all
implementations at present agree on CHAR-CODE for BASE-CHARs).

(This commit does not suffice to allow Clozure CL to build SBCL)

CVS: ----------------------------------------------------------------------
CVS: Enter Log. Lines beginning with `CVS:' are removed automatically
CVS: Committing in .
CVS: Modified Files:
CVS: NEWS version.lisp-expr src/code/late-format.lisp
CVS: src/code/target-format.lisp
CVS: ----------------------------------------------------------------------

2009-10-29 15:36:15 Tree
[cd1e69] by Christophe Rhodes Christophe Rhodes fix MIPS build

Regression from, when %unary-truncate handling was changed.
(Actually, this might not fix the build completely; we have reports of
SIGBUS while compiling PCL, but it gets noticeably further.

2009-10-26 08:24:56 Tree
[143578] (sbcl_1_0_32) by Christophe Rhodes Christophe Rhodes

1.0.32: will be tagged as sbcl_1_0_32

2009-10-25 15:49:10 Tree
[7cb3d2] by Nikodemus Siivola Nikodemus Siivola missing --no-userinit in

Reported by Robert Brown.

2009-10-08 11:48:41 Tree
[5a9a81] by Nikodemus Siivola Nikodemus Siivola SATISFIES cannot refer to local functions

* Fix misoptimization: use SB-C::GLOBAL-FUNCTION instead of
CL:FUNCTION. (Reported by Stanislaw Halik)

* Also fix a typo in the COMPARE-AND-SWAP docstring. (Thanks to Larry

2009-10-07 18:06:35 Tree
[3ff82c] by Nikodemus Siivola Nikodemus Siivola fix IF docstring

...good thing no-one trusts a docstring, eh. A bug report to the
effect "IF is broken, executes THEN when condition true" would have
been mortifying...

2009-10-07 09:56:48 Tree
Older >