Juho Snellman | 1 Sep 04:22

sbcl 1.0.20 released


SBCL 1.0.20 has been released, the release notes follow:

changes in sbcl-1.0.20 relative to 1.0.19:
  * minor incompatible change: OPTIMIZE qualities
    SB-C::STACK-ALLOCATE-DYNAMIC-EXTENT, SB-C::STACK-ALLOCATE-VECTOR,
    and SB-C::STACK-ALLOCATE-VALUE-CELLS no longer exist. See documentation
    and SB-EXT:*STACK-ALLOCATE-DYNAMIC-EXTENT* for details.
  * documentation: some slot access efficiency guidelines have been
    added to the user manual.
  * optimization: ASSOC-IF, ASSOC-IF-NOT, MEMBER-IF, MEMBER-IF-NOT,
    RASSOC, RASSOC-IF, and RASSOC-IF-NOT are now equally efficient
    as ASSOC and MEMEBER.
  * optimization: calls to ASSOC, MEMBER, and RASSOC can be transformed
    to more efficient EQ-comparison versions more often.
  * optimization: enhanced derivation of DOLIST iteration variable type
    for constant lists.
  * optimization: constant folding of simple (LIST ...) forms as DOLIST
    arguments.
  * optimization: runtime lookup of function definitions can be
    elided in more cases, eg: (let ((x 'foo)) (funcall foo)).
  * optimization: compiler is able to derive the return type of
    (AREF (THE STRING X) Y) as being CHARACTER.
  * optimization: CLRHASH on empty hash-tables no longer does pointless
    work. (thanks to Alec Berryman)
  * optimization: REPLACE deftransforms don't punt when :START1 or
    :START2 is given
  * bug fix: compiling DESTRUCTURING-BIND on constant list arguments
    no longer emits a code deletion note. (reported by Andrew
    Gasparovic)
(Continue reading)

Nikodemus Siivola | 30 Jul 15:17

SBCL 1.0.19 released

Source is available in SourceForge CVS and on the SourceForge File
Releases page.

changes in sbcl-1.0.19 relative to 1.0.18:
  * new feature: user-customizable variable SB-EXT:*MUFFLED-WARNINGS*;
    warnings that go otherwise unhandled will be muffled if they are
    of the type that's the value of this variable.
  * optimization: stack allocation is slightly more efficient on x86
    and x86-64.
  * bug fix: DEFSTRUCT forms with user-specified :CONSTRUCTOR options,
    where a raw slot always is initialized using the initform whose
    type is not know sufficiently well a compile-time are now compiled
    correctly. (reported by John Morrison)
  * bug fix: compiler no longer makes erronous assumptions in the
    presense of non-foldable SATISFIES types.
  * bug fix: stack analysis missed cleanups of dynamic-extent
    arguments in non-let-converted calls to local functions.
  * improvements to the Windows port:
    ** adjusted address spaces for building on both Win32 and
       Win64. (thanks for John Connors)
  * fixed some bugs revealed by Paul Dietz' test suite:
    ** interval arithmetic during type derivation used inexact integer
       to single-float coercions.
    ** arithmetic operations involving large integers and single
       floats give the same results in compiled and interpreted code.
    ** deriving the result type of COERCE no longer signals an error
       if the derived type of the second argument is a MEMBER type
       containing invalid type specifiers.
    ** ADJOIN with constant NIL as second argument works correctly.
    ** FUNCTION-KEYWORDS was called SB-PCL::FUNCTION-KEYWORD-PARAMETERS.
(Continue reading)

Juho Snellman | 30 Jun 00:21

sbcl 1.0.18 released


Source is available in SourceForge CVS and on the SourceForge File
Releases page.

changes in sbcl-1.0.18 relative to 1.0.17:
  * minor incompatible change: SB-SPROF:WITH-PROFILING now by default
    profiles only the current thread.
  * minor incompatible change: changes to SYMBOL-VALUE of constants
    defined with DEFCONSTANT now signal an error.
  * enhancement: SB-SPROF now has support for wallclock profiling,
    and is also able to profile specific threads. REPORT output
    has also additional sorting options.
  * enhancement: better pretty-printing of DEFPACKAGE forms.  (Thanks
    to Michael Weber)
  * optimization: structure allocation has been improved
    ** constructors created by non-toplevel DEFSTRUCTs are ~40% faster.
    ** out of line constructors are ~10% faster.
    ** inline constructors are ~15% faster.
    ** inline constructors are capable of dynamic extent allocation
       (generally on x86 and x86-64, in some cases on other platforms
       as well.)
  * optimization: simple uses of HANDLER-CASE and HANDLER-BIND no
    longer cons.
  * optimization: file compiler is now able to coalesce non-circular
    lists, non-base strings, and bit-vectors. Additionally, constants
    are never referenced through SYMBOL-VALUE at runtime.
  * optimization: code defining methods on PRINT-OBJECT (and other
    generic functions in the COMMON-LISP package) now loads faster.
  * bug fix: EAI_NODATA is deprecated since RFC 3493. Stop using it
    in sb-bsd-sockets.
(Continue reading)

Christophe Rhodes | 28 May 15:37

sbcl-1.0.17 has been released

Source is available in SourceForge CVS and on the SourceForge File
Releases page.

Under some conditions (as yet slightly uncertain; see sbcl-devel), the
a stress-test of times in SBCL's regression test suite can cause SBCL
to deadlock.  It is currently believed that this is not in fact a
regression, but it is possible that some rearrangement of code has
caused this failure mode to become more likely: if your code depends
on timers, proceed with care (and please report any failures you
observe to sbcl-devel, to help the diagnosis and cure).

Best,

Christophe

from the NEWS file in the distribution:

changes in sbcl-1.0.17 relative to 1.0.16:
  * temporary regression: user code can no longer allocate closure
    variable storage on stack, due to bug 419 without explicitly
    requesting it. Please consult sbcl-devel for advice if you need to
    use this feature in the meanwhile.
  * new feature: runtime argument --control-stack-size can be used to
    adjust thread default control stack size.
  * enhancement: improved TIME output
    ** all times are reported using the measured accuracy (milliseconds
       for real and GC times, microseconds for everything else.)
    ** processor cycle counts on x86 and x86-64.
    ** interpreted forms are counted for both evaluator modes.
    ** number of lambdas converted by the compiler is reported.
(Continue reading)

sbcl-1.0.16 has been released (not sbcl-1.1 after all)

This was originally intended as a particularly stable release. Now,
instead, it's back to being a (more belated than usual) timeboxed
release. There's an annoying ASDF misbehavior for which we don't have
a slamdunk fix; see sbcl-devel for discussion.

from the NEWS file in the distribution:
changes in sbcl-1.0.16 relative to 1.0.15:
  * minor incompatible change: revert the changes to sb-posix's error
    signaling added in 1.0.14.
  * minor incompatible change: change PROBE-FILE back to returning
    NIL whenever we can't get a truename, as was the case before 1.0.14.
  * minor incompatible change: SB-BSD-SOCKETS:NAME-SERVICE-ERROR now
    inherits from ERROR instead of just CONDITION.
  * new feature: SB-INTROSPECT can provide source locations for instances
    as well. (thanks to Tobian Ritterweiler)
  * optimization: binding special variables now generates smaller code
    on threaded platforms.
  * optimization: MEMBER and ASSOC are over 50% faster for :TEST #'EQ
    and cases where no :TEST is given but the compiler can infer that
    the element to search is of type (OR FIXNUM (NOT NUMBER)).
  * optimization: better LOGNOT on fixnums.
  * optimization: modular arithmetic for a particular requested width
    is implemented using a tagged representation unless a better 
    representation is available.
  * fixed bug 423: TRULY-THE and *CHECK-CONSISTENCY* interaction.
  * bug fix: SB-BSD-SOCKETS:MAKE-INET-ADDRESS checks the input string
    for wellformedness and returns a specialized vector. (reported by
    Francois-Rene Rideau)
  * bug fix: FIND-CLASS was not thread-safe. (reported by Attila Lendvai)
  * bug fix: ~R was broken for vigtillions. (thanks to Luis Oliveira)
(Continue reading)

1. sbcl-1.0.15 has been released, and 2. upcoming sbcl-1.1

sbcl-1.0.15 is in the SourceForge file release system now; enjoy.

In unrelated sbcl-announce - ish news, the next release is expected to
be called sbcl-1.1. For details, see sbcl-devel. The high level
summary is:
  * Its freeze period is expected to start at the customary
    20th-of-the-month-ish time, but instead of releasing it around the
    25th, we'll probably poke at it a little longer than usual.
  * There is some interest in using it (and then occasional successive
    future releases) as the base for more-stable less-patched branches, 
    something like the Linux stable branches.

>From the NEWS file in the distribution of sbcl-1.0.15:
changes in sbcl-1.0.15 relative to sbcl-1.0.14:
  * enhancement: cleaner backtraces for interactive interrupts, as
    well as other cases where the interesting frames used to be
    obscured by interrupt handling frames.
  * enhancement: untracing a whole package using (UNTRACE "FOO") is
    now supported, and tracing a whole package using (TRACE "FOO") now
    traces SETF-functions as well.
  * enhancement: implement SB-POSIX:MKTEMP and SB-POSIX:MKDTEMP.
  * SB-DEBUG:PRINT-FRAME-CALL now prints the entry-point kind even
    when SB-DEBUG:*SHOW-ENTRY-POINT-DETAILS* is NIL.
  * unreadably printed representation of hash-tables now includes
    weakness if any.
  * bug fix: partially fixed #188: type propagation from assignments
    is now more efficient.
  * bug fix: fixed #407: (COERCE X 'SINGLE-FLOAT) and (COERCE X
    'DOUBLE-FLOAT) are not flushable.
  * bug fix: on x86 and x86-64 pointer based EQ-hashing now uses the
(Continue reading)

SBCL 1.0.14 has been released.

Source is available in SourceForge CVS and on the SourceForge File
Releases page.

from the NEWS file in the distribution:
changes in sbcl-1.0.14 relative to sbcl-1.0.13:
  * new feature: SB-EXT:*EXIT-HOOKS* are called when the process exits
    (see documentation for details.)
  * revived support for OpenBSD (contributed by Josh Elsasser)
  * partially fixed bug #108: ROOM no longer suffers from occasional
    (AVER (SAP= CURRENT END)) failures .
  * fixed bug #402: proclaimed non-standard declarations in DEFMETHOD
    bodies no longer cause a WARNING to be signalled. (reported by
    Vincent Arkesteijn)
  * bug fix: (TRUNCATE X 0) when X is a bignum now correctly signals
    DIVISION-BY-ZERO. Similarly for MOD and REM (which suffered due to
    the bug in TRUNCATE.) (reported by Michael Weber)
  * bug fix: SB-SPROF:REPORT no longer signals an error if there are
    no samples. (reported by Andy Hefner)
  * bug fix: functions compiled using (COMPILE NIL '(LAMBDA ...))
    no longer appear as (NIL ...) frames in backtraces.
  * bug fix: RESOLVE-CONFLICT (and the other name conflict machinery)
    is now actually exported from SB-EXT as documented.  (reported by
    Maciej Katafiasz)
  * bug fix: sb-aclrepl now correctly understands how to inspect
    single-floats on 64-bit platforms where single-floats are not boxed.
  * bug fix: SB-MOP:CLASS-SLOTS now signals an error if the class has not
    yet been finalized. (reported by Levente Meszaros)
  * bug fix: CLOSE :ABORT T behaves more correctly on Windows.
  * DESCRIBE and (DOCUMENTATION ... 'OPTIMIZE) describe meaning of
    SBCL-specific optimize qualities.
(Continue reading)

SBCL 1.0.13 has been released.

Sources are in CVS and on the SourceForge File Releases page, ho ho
ho.

>From the NEWS file in the distribution:
changes in sbcl-1.0.13 relative to sbcl-1.0.12:
  * minor incompatible change: RUN-PROGRAM now uses execvp(3) to find
    an executable in the search path, and does so in the child
    process's PATH.  The function FIND-EXECUTABLE-IN-SEARCH-PATH has
    been removed; it can be found in the CVS history, for somebody who
    needs that search behavior (see the manual).
  * minor incompatible change: compiler policy re. weakening type
    checks has changed: now type checks are weakened on if SAFETY < 2
    and SAFETY < SPEED.
  * SB-EXT:NATIVE-NAMESTRING takes a new keyword AS-FILE, forcing
    unparsing of directory pathnames as files. Analogously,
    SB-EXT:PARSE-NATIVE-NAMESTRING takes an AS-DIRECTORY, forcing a
    filename to parse into a directory pathname.
  * enhancement: implicit generic function creation now signals a
    specific style-warning IMPLICIT-GENERIC-FUNCTION-WARNING, which
    users can bind handlers for and muffle around calls to LOAD.
  * enhancement: RUN-PROGRAM allows unicode arguments and environments
    to be used (using the default stream external format), and allows
    non-simple strings to be used. (thanks to Harald Hanche-Olsen)
  * optimization: COPY-SEQ, FILL, and SUBSEQ are 30-80% faster for
    strings and vectors whose element-type or simplicity is not fully
    known at compile-time.
  * optimization: STRING-TRIM and related functions no longer allocate
    a new string when no trimming needs to be performed. These functions
    are also faster than before when the input string has been declared
    as a simple-string.
(Continue reading)

SBCL 1.0.12 has been released.

It is in CVS and on the File Releases webpage at SourceForge now; enjoy.

>From the NEWS file in the distribution:
changes in sbcl-1.0.12 relative to sbcl-1.0.11:
  * new feature: MAKE-HASH-TABLE now experimentally accepts a
    :SYNCHRONIZED argument, which makes the hash-table safe for
    concurrent accesses (but not iteration.) See also:
    SB-EXT:WITH-LOCKED-HASH-TABLE, and
    SB-EXT:HASH-TABLE-SYNCHRONIZED-P.
  * optimization: CONCATENATE on strings is an order of magnitue faster
    in code compiled with (> SPEED SPACE).
  * optimization: SUBSEQ is ~50% faster on lists.
  * bug fix: bug 417 fixed -- source location reporting is now more robust.
  * bug fix: SUBSEQ on a list will now correctly signal an error if if
    END is smaller then START.
  * bug fix: SB-PROFILE will no longer report extra consing for nested
    calls to profiled functions.
  * bug fix: ROOM implementation had bogus fixnum declarations which
    could cause type-errors when calling ROOM on large images.
  * bug fix: if file compilation is aborted, the partial fasl is now
    deleted, and COMPILE-FILE returns NIL as the primary value.
  * bug fix: number of thread safety issues relating to SBCL's internal
    hash-table usage have been fixed.
  * bug fix: SB-SYS:WITH-PINNED-OBJECTS could cause garbage values to
    be returned from its body when the values were being returned
    using unknown-values return convection and the W-P-O was wrapped
    inside an UNWIND-PROTECT.
  * bug fix: sb-posix should now compile again under Windows, enabling
    slime to work again.

(Continue reading)

SBCL version 1.0.11 has been released.

sbcl-1.0.11 sources are in CVS and on the SourceForge File Releases
page now; enjoy.

from the NEWS file in the distribution:
changes in sbcl-1.0.11 relative to sbcl-1.0.10:
  * incompatible change: hash-table accessor functions are no longer
    automatically protected by locks. Concurrent accesses on the same hash-table
    from multiple threads can give inconsistent results or even corrupt the
    hash-table completely. Multi-threaded applications should do their own
    locking at the correct granularity. In the current implementation it is
    still safe to have multiple readers access the same table, but it's not
    guaranteed that this property will be maintained in future releases.
  * minor incompatible change: (SETF MUTEX-VALUE) is not longer supported,
    and will signal an error at runtime.
  * enhancement: SB-THREAD package now exports a semaphore interface.
  * enhancement: CONS can now stack-allocate on x86 and
    x86-64. (Earlier LIST and LIST* supported stack-allocation, but
    CONS did not.)
  * enhancement: nested lists can now be stack allocated on
    platforms providing stack allocation support.
  * enhancement: dynamic-extent support has been extended to support
    cases where there are multiple possible sources for the stack
    allocated value.
  * optimization: RELEASE-MUTEX no longer needs to perform a syscall
    if the mutex is uncontested on Linux.
  * bug fix: symbol-macro expansion now uses the *MACROEXPAND-HOOK*
    as specified by the CLHS. (thanks to Tobias Rittweiler)
  * bug fix: NaN comparison now works on x86-64.
  * bug fix: CLOSE :ABORT T on a stream with pending output now
    works.
(Continue reading)

sbcl-1.0.10 has been released.

It is available in SourceForge CVS and on the File Releases pages.

>From the NEWS file in the distribution:
changes in sbcl-1.0.10 relative to sbcl-1.0.9:
  * minor incompatible change: the MSI installer on Windows no longer
    associates .lisp and .fasl files with the installed SBCL.
  * minor incompatible change: :UNIX is no longer present in *FEATURES*
    on Windows. (thanks to Luis Oliviera)
  * new feature: SB-CLTL2 contrib module now implements
    FUNCTION-INFORMATION. (thanks to Larry D'Anna)
  * optimization: scavenging weak pointers is now more efficient,
    requiring O(1) instead of O(N) per weak pointer to identify
    scanvenged vs. unscavenged pointers. (thanks to Paul Khuong)
  * optimization: typechecking (SETF SLOT-VALUE) is now ~5x faster in
    method bodies using constant slot-names when the first argument is
    a specializer parameter for the method.
  * optimization: SLOT-VALUE &co are now ~50% faster for variable slot
    names, when the class of the instance is a direct instance
    STANDARD-CLASS or FUNCALLABLE-STANDARD-CLASS (making them only 3x
    as slow as the constant slot-name case.)
  * optimization: member type construction is now O(N) instead
    of O(N^2).
  * optimization: UNION and NUNION are now O(N+M) for large
    inputs as long as the :TEST function is one of EQ, EQL, EQUAL, or
    EQUALP.
  * enhancement: DEFINE-MODIFY-MACRO lambda-list information is
    now more readable in environments like Slime which display it.
    (thanks to Tobias C. Rittweiler)  
  * bug fix: SB-EXT:COMPARE-AND-SWAP was non-atomic unless the compiler
    was able to infer the correct argument type for the object on which
(Continue reading)


Gmane