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  
[fc0f99] (32.3 kB) by Christophe Rhodes Christophe Rhodes

fix manual build

just the wrong include for assert-version->=

2013-11-20 21:23:22 View
[69968c] (32.3 kB) by Christophe Rhodes Christophe Rhodes

relax restriction on defstruct slot names

DEFSTRUCT slot names are a bit weird, but behave basically like
strings rather than like symbols. This makes their interaction with
the MOP a little problematic, but for now simply allow things to
pass through and generally work "as expected".

Report from Eric Marsden sbcl-devel 2013-11-05

2013-11-15 09:28:22 View
[920b5e] (31.7 kB) by Paul Khuong Paul Khuong


Executing (sb-ext:assert-version->= 1 1 13) signals a continuable
error if the running SBCL is older than 1.1.13 (and an undefined
function error before that).

Based on a patch by Philip Munksgaard.

Closes lp#674372.

2013-11-14 22:32:02 View
[440baf] (31.7 kB) by Christophe Rhodes Christophe Rhodes

Document extensible sequence protocol

Based on patch by Jan Moringen from lp#994528

2013-09-05 16:30:33 View
[f1e413] (24.5 kB) by Nikodemus Siivola Nikodemus Siivola


Less confusing, and more in line with PACKAGED-NICKNAMED-BY-LIST &co.

(Thanks to Rudi Schlatte for heads-up.)

2013-02-21 10:47:56 View
[1a4f36] (24.5 kB) by Nikodemus Siivola Nikodemus Siivola

fix manual build

2013-02-07 20:18:43 View
[6129b1] (24.5 kB) by Nikodemus Siivola Nikodemus Siivola

restore old behaviour as the default for package variance

Use *on-package-variance* to adjust.


(setf *on-package-variance* '(:warn (:swank :swank-backend) :error t))

2013-02-01 19:26:12 View
[098f53] (24.0 kB) by Nikodemus Siivola Nikodemus Siivola

oops, it's :package-local-nicknams, not :local-nicknames

Also mention it in the manual.

...just couldn't get it right the first time.

2013-02-01 16:40:23 View
[b0b221] (23.9 kB) by Nikodemus Siivola Nikodemus Siivola

package local nicknames

Example terminal session using Linedit:

* (defpackage :foo (:use :cl) (:local-nicknames (:sb :sb-ext)))

* (in-package :foo)

* (sb:posix-
sb:posix-environ sb:posix-getenv
* (sb:posix-getenv "USER")



function ADD-PACKAGE-LOCAL-NICKNAME nick global &optional package
function REMOVE-PACKAGE-LOCAL-NICKNAME old-nick &optional package

DEFPACKAGE option: (:local-nicknames {(local-nick global-name)}*)


Design issues and considerations:

* "CL", "COMMON-LISP", and "KEYWORD" signal a continuable error
when used as local nicknames. I think this is good for sanity,
but not strictly required. Because of the way (find-package
:keyword) is idiomatically used to guarantee print/read
consistency across packages, I think it at least should be

* To preserve read/print consistency, we use package local nicknames
as prefixes when printing.

* The hook into FIND-PACKAGE is invisible, but built on top of
FIND-PACKAGE-USING-PACKAGE -- undocumented and unexported, but
waiting to be turned into something interesting by Christophe.

* Local nicknames are protected by package locks.

* If you want to bypass nicknames, you need to first get into
a known package without nicknames. There could be an explicit
way as well, but not sure if that's needed or a good idea.

Random crap mixed in:

Re-order DEFPACKAGE option docs in rough order of usefulness.

2013-02-01 16:22:39 View
[e35a79] (22.3 kB) by Lutz Euler Lutz Euler

Typo and other small fixes in the manuals and the man page

That is, in the texinfo files of the user manual, the internals manual,
and in sbcl.1. Fix spelling and grammar errors, put sufficiently many
dots in abbreviations and consistently write "SBCL" in all caps in
prose. Also, SIGABORT should be SIGABRT.

2012-10-13 19:11:43 View
[af1b96] (22.3 kB) 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 View
[8a33bf] (18.5 kB) by Nikodemus Siivola Nikodemus Siivola

protect against read-time package-lock circumvention from LOCKED::(BAR)

Instead of binding *PACKAGE*, bind *READER-PACKAGE* which only
affects the package READ-TOKEN interns into in the absence of a


2011-12-12 13:53:27 View
[261284] (18.3 kB) by Nikodemus Siivola Nikodemus Siivola

add support for package::form-read-in-package syntax

sb-c::(csubtypep (specifier-type 'fixnum) (specifier-type 'integer))

Isn't that lovely? The superbly fantasic thing is that this even works
*right* with package locks:

(in-package :cl-user)

sb-c::(defun some-internal-bit ...)

causes a package lock violation since the current package is back to CL-USER
by the type the code is executed.

2011-12-05 10:45:36 View
[bc24f7] (17.9 kB) by Nikodemus Siivola Nikodemus Siivola

GC documentation tweaks

* Fold documentation of (SETF GC-LOGFILE) into that of GC-LOGFILE.


* Order the dictionary entries in the manual's GC section more logically.
I hope.

2011-11-19 15:04:38 View
[b43491] (17.9 kB) by Nikodemus Siivola Nikodemus Siivola


2011-11-19 15:04:37 View
[b85af7] (17.9 kB) by Nikodemus Siivola Nikodemus Siivola , pushed by Nikodemus Siivola Nikodemus Siivola

waiting for arbitrary events SB-EXT:WAIT-FOR

While using this to wait for other threads isn't good style,
sometimes it is _much_ easier to just state the thing you're
waiting for than build the synchronization to make it nice.

And sometimes the event lives in the external world, in which case
you really need to poll anyways:

(wait-for (probe-file pathname))

2011-10-28 15:56:49 View
[f71d9c] (17.8 kB) by Nikodemus Siivola Nikodemus Siivola SB-EXT:GC-LOGFILE

GENCGC only.

(SETF SB-EXT:GC-LOGFILE) to a pathname starts logging before/after
generation statistics there. Doing the same with NIL stops logging.

2011-05-30 12:00:19 View
[838316] (17.7 kB) by Nikodemus Siivola Nikodemus Siivola export SB-PCL:+SLOT-UNBOUND+

Using STANDARD-INSTANCE-ACCESS with this provided is much nicer --
no need to muck around with SLOT-BOUNDP-USING-CLASS and such.

Also add quick SIA tests and some dependant update abuse
to tests.


2011-02-13 20:34:14 View
[ec0e9d] (17.3 kB) by Nikodemus Siivola Nikodemus Siivola implement SB-EXT:DELETE-DIRECTORY

Extend MAP-DIRECTORY with :CLASSIFY-SYMLINKS so implementing "delete
symlinks but don't follow them" behaviour for :RECURSIVE T is nice
and easy.

2010-10-15 10:16:48 View
[7e4eb6] (17.2 kB) by Nikodemus Siivola Nikodemus Siivola teach docstrings.lisp about parentheses

Kludge to get things like (SIMPLE-ARRAY T (3)) right in docstrings.


2010-10-15 09:52:58 View
[74cfbf] (17.2 kB) by Christophe Rhodes Christophe Rhodes improvements to the manual

These improvements mainly centre around better indexing, including
some nifty trickery to get suitably collated and aligned index
entries (to cope with issues like *earmuffs* and sb-foo package
prefixes). This patch also incorporates work by Robert Goldman to
document the commands for enabling and disabling the debuggers.

The remainder of this log message is a squashed version of my git
branch's log messages:

improve text relating to my support availability

Remove a stray comma in instructions for signal-related bug reporting

Patch from Robert Goldman for enable/disable-debugger documentation

trick texinfo's collation engine into producing a better index

The issue is that the sort order and what is printed (both in the
index and as the title of a definition entry) are deeply tied together
in texinfo, and there's no obvious way short of rewriting lots of TeX
code to undo that. There is one get-out clause, though: texinfo
macros are replaced by their arguments. So define a number of macros
which hide from the collation engine things that we would rather not
play a part in the sorting (package names, "(setf", *earmuffs*)

In the process, note that @deffoo in texinfo automatically produces an
index entry, so get rid of the apparently redundant extra index
entries produced by docstrings.lisp
Mostly move to using the new indexing helper macros

Only mostly: there are a few remaining issues. The first is
declarations, which are treated as types; I think they might warrant
their own index; similarly, various commands (debugger, inspector)
aren't really functions. Hardest of all is the ffi chapter, which has
handwritten function documentation which is highly similar to but not
exactly the same as the docstrings for those operators; it would be
good to merge the documentation into the docstrings, include the
autogenerated texinfo snippets into the manual, and thereby gain
complete consistency.
add some index entries from the efficiency chapter

... because why not?
manually (!) change the entries for FFI-related functions and macros

Making the docstrings match the text match reality is an exercise for
the future.
make index in info form mostly work

info readers apparently parse the formatted index to work out where to
go. This is hilariously bad if the index entries contain colons, so
define macros conditional on output format to make sure that they
don't in info.
better, more useful indexes

Now that collation is sorted (!), getting the display of index entries
to be useful is important. This not-quite-general trick is to make
the package name as small as possible, have the colon always in the
same horizontal position, and arrange that the package name extends at
most three characters ("sb-") into the left margin. This is the most
tolerable I can find.

Continue not having package information at all in info format; in
other formats, place the package information after the symbol name.
This probably goes wrong in corner cases like
(setf sb-mop:symbol-value-using-class)
deal with remaining manually-documented functions

make documentation for declarations consistent

Arbitrarily decide that declarations belong in the function index
rather than the type index; use the package prefix texinfo macros to
get them properly indented.
One more manually-documented thing which needed a package macro decoration

Fix the nopkg{} macro to align index entries in TeX mode

Use it for debugger commands.

2010-06-06 20:43:57 View
[4ec0d7] (17.7 kB) by Nikodemus Siivola Nikodemus Siivola GENCGC tuning parameters

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.

2009-11-19 16:08:37 View
[71035f] (17.0 kB) by Nikodemus Siivola Nikodemus Siivola SB-EXT:CONSTANT-FUNCTION does not exits

* Remove reference to it from the manual.

2009-07-29 15:36:58 View
[146ca8] (17.4 kB) by Nikodemus Siivola Nikodemus Siivola SB-EXT:DEFINE-HASH-TABLE-TEST

* Based on old SB-INT:DEFINE-HASH-TABLE-TEST, but:
** macro, not a function.
** only two arguments: name of the test function, and the hash function
(which can also be a lambda form.)
** :TEST accepts both 'NAME, and #'NAME as well.
** pick up redefinitions of the test and hash-function without
re-executing the D-H-T-T form.
** protected by package locks.

* MAKE-HASH-TABLE :HASH-FUNCTION supported as well. EQ-based hashing
not legal for user-provided hash functions, accidents prevented by
wrapping functions which may return a true secondary value in
a closure.

* Documentation -- other hash-table extensions as well.

* Documentation generation improvements:
** use the shortest package name available -- CL:FOO, not
** kludge around texi2pdf making &key and company bold
** add exceptions so that we don't format words ANSI and CLHS
as lowecase symbols.

2009-05-21 09:56:16 View
[fb2656] (16.9 kB) by Nikodemus Siivola Nikodemus Siivola rename SIMPLE-ARRAY-VECTOR to ARRAY-STORAGE-VECTOR

* Allow fething the underlying vector of any non-displaced array.

2008-12-05 11:31:39 View
Older >