Version: 1.4.1-bp150.2.7
* Thu Nov 09 2017 sweet_f_a@gmx.de
- Update to version 1.4.1
* optimization: faster foreign callbacks.
* enhancement: complex arrays can be stack allocated.
* enhancement: PROCESS-KILL now exists on win32 and PROCESS-PID
actually returns the PID.
* optimization: the register allocation method used by the
compiler when optimizing for speed is now faster for functions
with large bodies.
* bug fix: SB-INTROSPECT:ALLOCATION-INFORMATION works on
big-endian CPUs (fixes #490490 for real rather than by
disabling a test)
* bug fix: code objects and bignums of large enough size to be
placed on GC pages without any other object no longer cause
accidental copying during garbage collection. (gencgc only)
* bug fix: sb-fasteval failure with 0-argument lambdas (#1722715)
* bug fix: RUN-PROGRAM doesn't leak handles on win32 and
PROCESS-CLOSE doesn't crash. (#1724472)
- Changes in version 1.4.0
* minor incompatible change: DESTRUCTURING-BIND treats non-toplevel
() as nested empty pattern. This seems to be what the standard
mandates, so conforming code should not be affected.
* ehancement: (GC :GEN 7) with gencgc will zero-fill dead
pseudo-static objects so that they do not spuriously cause
reachability of objects that would have been otherwise dead.
* enhancement: PROCESS-STATUS now tracks stopped and continued
processes properly (also fixes #1624941, based on patch by Elias
Pipping).
* bug fix: INSPECT handles errors signaled while printing slot
values. (#454682)
* bug fix: DESCRIBE works on classes like it used to.
* bug fix: *LOAD-PATHNAME* and *LOAD-TRUENAME* are bound to
pathnames when processing a sysinit or userinit file
* bug fix: save-lisp-and-die is able to collect more garbage on
non-x86oid gencgc targets.
* bug fix: fixed out-of-bounds array read in optimized POSITION
on bit-vectors
* bug fix: signal emulation respects the 128-byte stack red zone
on x86-64 macOS.
* Fri Aug 11 2017 sweet_f_a@gmx.de
- Update to version 1.3.20
* minor incompatible change: DEF{GENERIC,METHOD} no longer accept
some illegal lambda lists such as (defgeneric bar (foo &key
foo)) or (defgeneric baz (t)) that were accepted before.
* optimization: a valueless &AUX binding in a BOA constructor
does not force all slots reads in safe code to perform a full
type check.
* optimization: ATOMIC-PUSH and ATOMIC-POP generate better code
* bug fix: the low-level debugger would erroneously print - or
not print as the case may be - "(bad-address)" for some objects
depending whether the --dynamic-space-size argument was used at
Lisp startup
* bug fix: a DEFCONSTANT with a non non-eql-comparable object as
the value could cause miscompilation if that constant appeared
as the default expression for an &OPTIONAL binding
* bug fix: generic function lambda lists are now checked for
repeated and otherwise illegal entries. (#1704114)
* bug fix: setting gencgc_verbose = 1 could cause deadlock in
fprintf() depending on the platform's stdio implementation. The
relevant code has been changed to use snprintf() and write()
instead.
* Tue Jul 11 2017 sweet_f_a@gmx.de
- Update to version 1.3.19
* enhancement: specialized arrays can be printed readably without using
* read-eval*
* enhancement: SB-DEBUG:PRINT-BACKTRACE truncates huge string arguments.
The full string remains available for inspection via (SB-DEBUG:ARG).
* bug fix: backtracing from several threads at once could fail
* bug fix: floating-point infinities could not be used as keys
in EQUALP hash tables. (lp#1696274)
* bug fix: random sb-fasteval failures. (lp#1642708)
* bug fix: align the stack in callback wrappers to defend against C
compiler over-aggressive use of SIMD. (lp#1697528)
* bug fix: don't try to find the class when reporting that a class does
not exist for a primitive type. (lp#1697226)
- Changes in version 1.3.18
* minor incompatible change: existing values of CFLAGS, ASFLAGS,
CPPFLAGS, and LINKFLAGS will be incorporated into C compiler
invocations when building from source.
* minor incompatible change: the result of WRITE-TO-STRING may be
a BASE-STRING if all characters written are of type BASE-CHAR.
* minor incompatible change: the broadcast stream with no output
streams is a singleton object. That object satisfies OPEN-STREAM-P
regardless of how many times CLOSE is invoked on it.
* enhancement: x86[-64] backends contain an experimental feature
which aids in demonstrating reachability of any object starting
from a tenured object or a thread stack by producing a proof
as a sequence of pointers to follow.
The file "tests/traceroot.test.sh" contains an example usage.
* enhancement: if the alien symbol "gc_coalesce_string_literals" is
set to 1 prior to SAVE-LISP-AND-DIE, then similar string constants
loaded from different fasl files may be collapsed to one object.
If the variable is set to 2, then additionally strings which are
STRING= in code resulting from COMPILE can be coalesced.
For instance, two functions returning the literal string "HI"
might return EQ strings after collapsing, which may be undesired
in a particular use. The flag pertains to gencgc only.
* enhancement: SXHASH values on pathnames are better distributed
* bug fix: MAKE-PATHNAME removes empty strings as components of a
directory, as is permitted: "Whenever a pathname is constructed
the components may be canonicalized if appropriate."
* optimization: various printer and FORMAT performance enhancements.
* bug fix: GET-FOREGROUND no longer fails in case all other interactive
threads exit (lp#1682671, reported by Syll)
* bug fix: RELEASE-FOREGROUND always removes the current thread from the
list of interactive threads. (lp#1682867, reported by Syll)
- Changes in version 1.3.17
* enhancement: memory overhead from the garbage collector's metadata
is reduced on 64-bit architectures; no change for 32-bit.
* enhancement: further garbage collector speedups affecting
pinned objects on conservative backends, and simple-vectors.
* enhancement: on Linux a custom handler for SIGSEGV can be called
for page faults outside of dynamic space by changing the C symbol
"sbcl_fallback_sigsegv_handler".
* bug fix: sb-cover does not lose source positions for AND/OR/COND.
* bug fix: random disassembler failures. (lp#1527931)
* The bundled sb-md5 contrib has been updated to release 2.0.4
which is licensed under Creative Commons CC0 per author's statement
https://github.com/pmai/md5/commit/fd134e71b71a10ab78905833a7cb9d4d6817c589
(Refer to NEWS and COPYING in the contrib/sb-md5 subdirectory)
- add fix-tests.patch, bnc#1041271
- rebase 0003-Add-RPM_OPT_FLAGS-to-CFLAGS-for-Linux-builds.patch
* Sun May 07 2017 meissner@suse.com
- Added #!BuildIgnore gcc-PIE to make it build in the Global PIE
support project.
- move info deinstall from %postun to %preun
* Tue Mar 28 2017 sweet_f_a@gmx.de
- Update to version 1.3.16
* optimization: various small tweaks give around 5% faster garbage
collection
* bug fix: better detection of when an impossible code path does
not need a warning. (lp#1668619)
* bug fix: stronger attempts to disable position-independent
executable building. (lp#1668986, patch from Mark Wright)
* bug fix: OPEN :IF-EXISTS NIL signalled a condition on Windows.
(lp#1674437, reported by Jan Idzikowski)
- Changes in version 1.3.15
* minor incompatible change: the reader will when feasible create
new symbols using a BASE-STRING for the print name. Additionally,
string literals can favor the base-string type if desired, though
the default is to always return UTF-32 strings for compatibility.
A preference for base-string does not disable reading Unicode.
The choice is controlled via (SETF READTABLE-BASE-CHAR-PREFERENCE).
If Unicode was disabled at build time, this setting does nothing.
* enhancement: SBCL generates more debug information by default.
* enhancement: type errors provide context information, such as which
variable is being bound, which slot of which structure is being set.
* enhancement: if #+immobile-symbols is in build-time *FEATURES* (not
enabled by default), then symbols will never be moved in memory
except by SAVE-LISP-AND-DIE. Immobility has helpful implications for
code generation as well as interaction with foreign routines.
This feature can only be enabled if #+immobile-space is enabled.
* enhancement: undefined function errors can be restarted on x86-64, to
either retry calling the function again or call a user supplied function.
* enhancement: sb-ext:restrict-compiler-policy accepts an upper bound in
addition to a lower bound.
* enhancement: #+immobile-code improves the speed of function calling.
Some delay may be noticed when redefining an existing function
from a saved core file however.
* defaults change: sb-ext:*disassemble-annotate* default to NIL, due to its
poor reliability.
* new feature: SB-LINKABLE-RUNTIME, allowing linking with extra object
files to help with delivery of executables. (Thanks to François-René
Rideau)
* bug fix: data race in GENTEMP fixed - it can no longer return the
same interned symbol to multiple threads if called concurrently
* bug fix: interrupting LOADing of FASLs does not leave functions without
source locations. (lp#540276)
* bug fix: DYNAMIC-EXTENT-declared results of NOTINLINE local functions were
treated as if they were actually stack allocated (lp#1659964)
* bug fix: correctly handle the case of a non-local exit within a function
terminating the extent of dynamic-extent, dynamic-bound variables in the
presence of multiple-values (lp#1655011)
* bug fix: handling of SB-SYS:WITH-PINNED-OBJECTS in the interpreters (both
sb-eval and sb-fasteval) now actually pins objects on gencgc.
* bug fix: AVX registers are preserved during exceptions on x86-64 macOS.
* bug fix: (directory "SOMETHING/*/**/MORE") is no longer equivalent to
(directory "SOMETHING/**/MORE")
* bug fix: better console IO on Windows (lp#1660906)
- rebase 0003-Add-RPM_OPT_FLAGS-to-CFLAGS-for-Linux-builds.patch
- rebase sbcl-1.1.2-install.patch
- remove sbcl-disable-frlock-test.patch
* Wed Feb 22 2017 sweet_f_a@gmx.de
- Update to version 1.3.14
* minor incompatible change: the SB-PCL walker no longer recognizes
macros expanding into a DECLARE expression. This is not a language change,
since ANSI forbids such usage (X3J13 issue DECLARE-MACROS:FLUSH).
* enhancement: for several macros such as MULTIPLE-VALUE-{BIND,SETQ}, COND,
DO{,*,LIST}, {RESTART,HANDLER}-{BIND,CASE}, *CASE, conditions signaled
during macroexpansion point to the form that caused the problem more
accurately.
* enhancement: the "--noinform" command-line option inhibits output from
save-lisp-and-die in addition to removing the startup banner.
* bug fix: PROCESS-KILL failed to return errno if the system call failed
* optimization: slightly more comprehensive treatment of the keyword
arguments to MAKE-ARRAY in compiler transformations.
- Changes in version 1.3.13
* enhancement: SET triggers package locks on undefined variables.
(lp#1645152)
* enhancement: new Windows specific option to run-program, :escape-arguments
(lp#1503496)
* enhancement: recompiling a MAKE-INSTANCE form with an initarg :INITARG
CONSTANT where CONSTANT names a constant variable picks up the new value
of CONSTANT in case it has been redefined. (lp#1644944)
* optimization: faster TYPEP on undefined at compile-time types and upcoming
class definitions. (lp#1082967)
* optimization: memory consumption of each STANDARD-OBJECT instance is
reduced by 2 words if the compact-instance-header feature is enabled.
* optimization: CONDITION instances are quicker to allocate.
* optimization: unoptimized calls to FILL on specialized vectors are now
just as fast as T vectors.
* bug fix: get-timezone returns corret DST on 64-bit Windows. (lp#1641058)
* bug fix: cross reference information in fasls is no longer incompatible
between different cores (lp#1648186)
- Changes in version 1.3.13
* enhancement: on x86-64, compiled functions loaded from fasl files
can not be moved, but can be freed, by GC. Additionally, COMPILE will
produce immobile code if SB-C::*COMPILE-TO-MEMORY-SPACE* is set to
:IMMOBILE. (Caution: the flag is experimental and subject to change.)
The benefits are better physical separation of code from data,
and potentially easier examination of live images by external tools.
* enhancement: the docstring for SAVE-LISP-AND-DIE has been amended to
say that the :ROOT-STRUCTURES parameter is not meaningless on gencgc,
depending on the platform.
* bug fix: calling a named function (e.g. a DEFUN) concurrently with
redefining that same function could lead to execution of random bytes.
* bug fix: yes-or-no-p accepts formatter functions (lp#1639490)
* bug fix: better handling of exceptions on macOS.
- rebase 0003-Add-RPM_OPT_FLAGS-to-CFLAGS-for-Linux-builds.patch
- remove sbcl-cast.patch (it's upstream now)
* Thu Nov 03 2016 sweet_f_a@gmx.de
- Update to version 1.3.11
* minor incompatible change: SB-EXT:*INTEXP-MAXIMUM-EXPONENT* is
removed.
* enhancement: TRACE ... :REPORT {TRACE,NIL} now work as
advertised in the documentation string (based on patch by
Patrick Stein)
* enhancement: support unboxed signed-word structure slots on
x86, x86-64 and ARM64. (lp#377616)
* optimization: faster logical bit-array operations on
multidimensional arrays.
* optimization: better GC performance in the presence of many
threads. (patch by Ilya Perminov, lp#1339924)
* optimization: multiple-value-call is optimized with multiple
argument forms, not just one. (lp#753803)
* bug fix: MAKE-ALIEN-STRING returns the number of allocated
bytes as a second value as advertised (reported by Johann
'Myrkraverk' Oskarsson)
* bug fix: when TO-READTABLE is supplied to COPY-READTABLE, it
will contain only the macros in FROM-READTABLE and no others.
(lp#1631506)
* enhancement: gencgc has been modified for x86-64 on Linux and
macOS to a support mark-and-sweep as well as the traditional
copying strategy. It is conceivable that some applications
might be adversely affected. Please see ':immobile-space' in
'base-target-features.lisp-expr' for further details, and
possible reasons to disable this feature.
* enhancement: x86-64 supports shrinking the fixed overhead in a
structure from 2 words to 1 word, reducing memory consumption
in applications which create many small structures.
- Changes in version 1.3.10
* enhancement: more compact low-level error signaling code
* enhancement: more compact encoding of cross-reference
information
* optimization: faster out of line fixnum-float comparisons.
* optimization: filling a known simple-vector with a constant
value is about as fast in unoptimized code as in code compiled
with (SPEED 3), and the x86-64 implementation is able to use
SSE instructions.
* bug fix: correctly handle the case of a non-local exit within a
function terminating the extent of dynamic-extent functions and
variables in the presence of multiple-values (lp#1563127)
* bug fix: restore builds on the latest OSX with the latest
Xcode (lp#1470996)
- Changes in version 1.3.9
* minor incompatible change: NAMESTRING prefers to return a
BASE-STRING instead of (ARRAY CHARACTER (*)) when possible.
* enhancement: cached make-instance/allocate-instance
constructors can now get garbage collected.
* optimization: better performance for some unoptimized
operations on complex numbers.
* bug fix: using the options :LOCAL-NICKNAMES and :LOCK in the
same DEFPACKAGE form no longer signals a bogus error
- Changes in version 1.3.8
* minor incompatible change: the system now understands that the
CONDITION type is disjoint with many other system types.
* minor incompatible change: argument types in condition report
functions are now declared (in combination with the above
change, this can result in early detection of erroneous code).
* enhancement: simple arrays of any rank can be stack-allocated
on platforms supporting stack allocation of vectors.
* optimization: improved type derivation for FIND, POSITION,
COUNT, SEARCH, MISMATCH and other array and sequence functions.
* optimization: ALLOCATE-INSTANCE is now as fast as
MAKE-INSTANCE.
* optimization: more efficient CHANGE-CLASS.
* bug fix: versions of getresuid() and getresgid() in SB-POSIX no
longer cause memory faults, and should work properly
(lp#1603806, reported by Kieran Grant)
* bug fix: handle ENOENT from getprotobyname() (lp#1596043,
reported by Stephen Hassard)
- remove upstream patches:
* 0001-Handle-ENOENT-from-getprotobyname.patch
* 0002-sb-posix-Fix-getresuid-and-getresgid.patch
- rebase 0003-Add-RPM_OPT_FLAGS-to-CFLAGS-for-Linux-builds.patch
* Wed Oct 19 2016 sweet_f_a@gmx.de
- always build with clisp, no bootstrapping required
* Sun Jul 24 2016 kgronlund@suse.com
- Update to version 1.3.7
+ enhancement: ported to ARM64 Linux.
+ enhancement: a new interpreter is included which has many
benefits over sb-eval. It is disabled by default. See
src/interpreter/README for instructions to enable it, and
further details.
+ enhancement: SB-THREAD support for ARM64.
+ enhancement: the platform's strtod() is exposed as
SB-POSIX:STRTOD
+ enhancement: speed up debug info creation for highly nested
functions. (#1563355)
+ enhancement: the interleaved structure slot optimization from
release 1.2.6 has been ported to all architectures.
- Add $(RPM_OPT_FLAGS) to CFLAGS for Linux builds
- Handle ENOENT from getprotobyname()
- sb-posix: Fix getresuid() and getresgid()
- Remove sbcl-1.1.17-optflags.patch
- Add 0001-Handle-ENOENT-from-getprotobyname.patch
- Add 0002-sb-posix-Fix-getresuid-and-getresgid.patch
- Add 0003-Add-RPM_OPT_FLAGS-to-CFLAGS-for-Linux-builds.patch
* Mon Mar 28 2016 dvaleev@suse.com
- ExcludeArch POWER64 architecture, no POWER64 port available
* Wed Sep 30 2015 kgronlund@suse.com
- Update to version 1.2.15
+ new feature: DEPRECATION declaration for functions, variables
and types causes {EARLY,LATE,FINAL}-DEPRECATION-WARNING to be
signaled when subject of the declaration is used. Integrated
with DESCRIBE, DOCUMENTATION and
SB-CLTL2:{VARIABLE,FUNCTION}-INFORMATION. Documented in the
"Deprecation" section of the manual.
+ enhancement: ASDF updated to 3.1.5. (#1476867)
+ enhancement: definitions within PROGN get proper source
locations when compiled (needs latest Slime to take advantage
of this). (#1473147)
+ enhancement: source locations for DEFCLASS slots now point
directly to the slot definitions, not the whole DEFCLASS form.
+ bug fix: better source location in the presence of quoted
forms. (#1370561)
+ bug fix: better source locations inside backqoute. (#1361502)
+ bug fix: HANDLER-BIND requires that the handler-function be a
function designator at the time of binding establishment.
(#1480679)
+ bug fix: inlined functions surrounded by nested macrolets are
properly inlined. (#309123)
- Changes in version 1.2.14
+ minor incompatible change: The name of a compiled anonymous
lambda as returned by the third value of
FUNCTION-LAMBDA-EXPRESSION can have a lambda-list-like list
following the introductory LAMBDA that is not in general a
syntactically valid lambda list. Specifically, it won't retain
default values, supplied-p variables, or &KEY or &AUX bindings.
+ enhancement: DESTRUCTURING-BIND has been totally reimplemented
from scratch to address a handful of performance and correctness
issues. Some minor behavioral differences exist regarding order of
evaluation of default forms for unsupplied &OPTIONAL and &KEY
arguments when nested destructuring patterns are involved.
(#707556, #707573, #707578, #708051)
+ enhancement: DEFCONSTANT and DEFSTRUCT respect package locks.
(#1186238, #1036716)
+ enhancement: sb-unicode:normalize-string has a new optional
argument, FILTER, a callback which controls which decomposed
characters are collected. Useful for stripping away diacritics
more efficiently.
+ bug fix: (TYPE-OF ARRAY) for a non-simple array is subject to
change after a call of ADJUST-ARRAY. (#1333731)
+ bug fix: Dynamic-extent allocation with a loop between
allocating a value and the start of its environment no longer
discards the allocated data when the loop is taken. (#1472785)
+ bug fix: Variable-reference elimination no longer generates
incorrect code under certain circumstances. (#1446891)
+ bug fix: variables with EQL types are no longer treated as
constants by VOPs, which caused problems with closures being
allocated for such variables, but they remained unused. (#1390149)
+ bug fix: Windows installer generates registry key name
correctly. (#1476447)
* Tue Jul 14 2015 toganm@opensuse.org
- Update to version 1.2.13
* Incompatible change:
+ on success, TRY-SEMAPHORE and WAIT-ON-SEMAPHORE return the new
count
* Enhancement:
+ WAIT-ON-SEMAPHORE accepts a decrement parameter
+ JOIN-THREAD allows distinguishing timeout vs.
abort in all situations
+ On Windows DBG_PRINTEXCEPTION_C is handled and its
message is printed. (#1437947)
* Bug-fix:
+ TRUENAME works properly on broken symlinks presented
as directories. (#1458164)
+ Inlined DPB and DEPOSIT-FIELD don't interfere with
left-to-right order of argument evaluation. (#1458190)
+ (SETF (LDB (BYTE 1 2 JUNK) X) 0) is rightly rejected.
+ DEFSETF lambda lists should not permit argument
destructuring.
+ calls to (SETF SLOT-VALUE) on a missing slot would in
certain situations incorrectly return the result of a
SLOT-MISSING method instead of always returning the new
value. (#1460381)
+ a DEFMACRO occurring not at toplevel and capturing
parts of its lexical environment (thus being a closure)
caused expressions involving the macro name to cause corruption
in the pretty-printer due to faulty introspection of the lambda
list of a closure.
+ out of line MAP/MAP-INTO check that the results produced by the
function are of the matching sequence type. (#1459581)
+ pretty-printing of '(LET `((,X ,Y)) :B) is handled correctly.
* Wed Jun 17 2015 toganm@opensuse.org
- Update to version 1.2.12
* Minor incompatible change:
+ the SB-C::*POLICY* variable is no longer a list. Code which
manipulated it as such (including but not limited to non-bundled
releases of ASDF) will need to be revised.
* Enhancement:
+ The input stream for COMPILE-FILE implements STREAM-LINE-COLUMN.
+ EVAL errors that occur by way of LOAD report the starting line
and column number of the erring toplevel form. (#565247)
* Optimization:
+ Better MAP and MAP-INTO on known vector result types.
* Bug fix:
+ Read/modify/write macros accessing a place which is a composition
of CAR+CDR operations, such as (SHIFTF (CADR X) (ELT V 0)), do
not access subforms more than once. (#1450968)
+ Short form of DEFSETF no longer allows trailing junk.
+ DEFINE-MODIFY-MACRO respects the provisions of CLHS 5.1.3
regarding argument evaluation order. (#1452539)
+ POP works as specified in CLHS if the setter for its argument has
a side-effect on the existing CAR value. (#1454021)
+ Reading "#()" with a positive numeric argument signals a reader
error. As specified, reading "#1()" has undefined consequences,
so correct portable code should be indifferent to this.
(#1252100)
+ Malformed reader conditionals such as "(#-no-such-feature)"
and "(#+sbcl)" no longer parse as NIL. (#1454400)
* Sat May 02 2015 toganm@opensuse.org
- Update to version 1.2.11
* Enhancement:
+ SET-PPRINT-DISPATCH will warn when given an expression in
which any part is unrecognizable as a legal type-specifier.
The dispatch table will be altered, but the new entry is
disabled. Subsequent type-defining forms will cause
pprint-dispatch tables to re-examine whether any disabled
entries should be enabled. (lp#1429520)
+ Loading code containing calls to a deprecated function will,
under most circumstances, signal warnings similar to compiling
such code. The usual caveat holds about not detecting calls
through a computed name, as in (funcall
(intern "DEPRECATED-FUN" "SB-EXT")).
+ (SB-EXT:COMPILE-FILE-LINE) is a new macro that expands to a
constant (VALUES integer integer) indicating the source
line/column from which it was read, intended for logging Lisp
runtime errors in a style similar to that afforded by the C
preprocessor __LINE__ macro. Similarly
(SB-EXT:COMPILE-FILE-POSITION) returns a position in characters.
+ improved source locations for VOPs, alien types and declarations.
* Bug fix:
+ Functions in :FINAL deprecation have the correct docstring.
No visible change, as no such functions presently exist.
(lp#1439151)
+ (SETF (FDEFINITION this) (FDEFINITION OTHER)) signals an error
if OTHER names either a macro or special-operator. (lp#1439921)
- Rebase all patches.
* Wed Apr 01 2015 toganm@opensuse.org
- Update to version 1.2.10
* One thing that is not mentioned in the release notes, but which
has been exercising developers recently, is a warning for the near
future: some interfaces which are currently in "early" deprecation
status (and so are emitting style-warnings at compilation-time)
will in the next release cycle or two start emitting full warnings,
either at compilation time or at load time. Particular interfaces
signalling warnings causing problems to some users include:
SB-EXT:QUIT, and the SB-THREAD:SPINLOCK API. If anyone is using
those, now is the time to update to SB-EXT:EXIT and
SB-THREAD:MUTEX respectively. (See also the "Deprecated Interfaces"
chapter in the manual).
* minor incompatible change:
+ all SOCKINT::WIN32-* functions have been deprecated with
EARLY deprecation state
+ performing introspection via the system-internal SB-INT:INFO
function could expose that :TYPE :TRANSLATOR is not
necessarily a function, as it always was before. (Affects
swank-fancy-inspector)
* enhancement:
+ The value of SXHASH on bit-vectors of length equal to the
word size now depends on the vector's contents instead of
being constant; its value on bit-vectors of length divisible
by the word size now depends also on the contents of the
vector's last word.
* bug-fix:
+ sb-bsd-sockets on win32 uses proper C function declarations.
(lp#1426667)
+ A new dead code elimination phase removes dead code loops
that confuse stack analysis. (lp#1255782, lp#308914)
+ A toplevel form which was simple enough to bypass the main
compiler in COMPILE-FILE, and which contained an empty SETQ or
PROGN would produce an invalid fasl file. (lp#1427050)
+ The compiler no longer signals an internal error when
encountering invalid FUNCTION forms like (function 1)
+ express proper dependencies in the ASDF contrib, to support
systems where make runs in parallel. (lp#1434768; thanks to
Nikhil Benesch)
- Apply disable-localport-bsd-sockets-test.patch for all since
without it random build failures are happening in OBS even though
local builds are just fine without disabling the bsd-socket-tests
* Sat Feb 28 2015 toganm@opensuse.org
- Update to version 1.2.9
* Bug Fix:
+ minor incompatible change and bug fix: unboxed numeric
constants on x86oids are arranged in memory differently, and
the disassembler does not show them separately in DISASSEMBLE,
but does if DISASSEMBLE-CODE-COMPONENT is used. (lp#1421987)
+ DEFCLASS handles cyclic {super,meta}class relations better
(lp#1418883)
+ compiler no longer signals an error when compiling certain
function calls. (lp#1416704, lp#404441, lp#1417822, lp#1234919)
+ compiler doesn't stumble on a LOGIOR transform.
(lp#1389433)
+ more robust debugger and backtraces. (lp#1413850,
lp#1099500, lp#1412881, lp#945261, lp#1419205, lp#1409402)
+ files larger than 4GB can now be compiled.
+ x86 truncated results from 64-bit foreign functions to
32 bits.
+ file-position didn't work on large files on win32.
(lp#1271545)
+ callbacks from foreign threads can work without enabling
sb-safepoint.
+ sb-introspect:function-lambda-list works properly on
interpeted macros. (lp#1387404)
+ ADJUST-ARRAY properly handles non-adjustable arrays.
(lp#886418)
+ compiler no longer fails to dump a multidimensional
array constant involving a circular reference to itself
+ conditional and nested DX allocation no longer confuse
the compiler in STACK analysis. (lp#1044465)
+ sb-rotate-byte constant folding bug fixed. (lp#1423682)
* Optimization:
+ The compiler's treatment of type specifiers makes
it slightly faster and more memory-efficient. Portable code
should be indifferent to this change, however, users of
SB-INTROSPECT:FUNCTION-TYPE might notice that (MEMBER T NIL)
and (MEMBER NIL T) are both internally collapsed to the former,
so that the latter can never be obtained as part of an FTYPE.
+ a TYPEP call in which the second argument is not
a QUOTE form but nevertheless recognized as a compile-time
constant might open-code the test. One scenario for this involves
backquote, such as (TYPEP x `(my-type ,some-arg)). Code which relied upon
deferring until runtime should declare (NOTINLINE TYPEP).
[Due to the sematic constraints of DEFTYPE etc in in CLHS
3.2.2.3, code requiring delayed evaluation could be unportable though.]
* Enhancement:
+ unused variables at the top-level are now reported.
(lp#492200)
* Mon Feb 02 2015 toganm@opensuse.org
- The release (source) tarball of sbcl-1.2.8 contained an error in
the build script, which in some circumstances (chiefly when /bin/sh is
bash) would lead to the sbcl built from that tarball to have a
lisp-implementation-version of "-dirty".
* Sat Jan 31 2015 toganm@opensuse.org
- Update to version 1.2.8
* Enhancement:
+better error and warning messages. (lp#1314767,
lp#736383)
+ backtrace for invalid argument count produces the
exact supplied arguments including the extra ones, on x86,
x86-64 and ARM.
+ STYLE-WARNING is signaled for DEFSTRUCT accessors which
are used before the structure is defined; similarly for the
predicate.
* Optimization
+ FORMAT NIL with only ~a and string arguments is transformed
into CONCATENATE.
+ POSITION and FIND when inlined into code that is compiled
with qualities of safety < 2 and speed > space will no longer
signal an error on circular lists, but will potentially loop
forever if given no :END constraint. As was always the case,
calls that are not inlined are safe regardless of lexical
policy.
* Bug Fix:
+ CLOS methods compiled with (OPTIMIZE (DEBUG 0))no longer
cause debugger failure when printing a backtrace
+ more resilience to deleted code. (lp#1308328, lp#1390544)
+ the CLHS example of MAKE-LOAD-FORM involving TREE-WITH-PARENT
did not work, and now it does.
* Thu Jan 08 2015 toganm@opensuse.org
- Update to version 1.2.7
* Optimization:
+ returning constant values refers to preboxed
constants more reliably. (lp#1398785)
* Enhancement:
+ STYLE-WARNING is produced if a compiler-macro is
defined for a function after at least one ordinary (not inlined)
call to that function was compiled, indicating a likely
compilation order problem. Likewise a warning ensues if a call
is compiled to a function that is subsequently proclaimed INLINE.
+ always lose() when something goes wrong while saving a core
(instead of just printing an error on stderr in some situations).
+ frames in the debugger are now restartable by default.
* Bug Fix:
+ restore error handling on Windows x86.
+ MAKE-SEQUENCE detects type errors in its :INITIAL-ELEMENT
at compile-time when possible. (lp#330299)
+ parsing of malformed type specifiers no longer results in a
memory-fault-error.
+ LOOP properly destructures nested lists in WITH.
+ MACROEXPANDing the redefinition of an alien structure type no
longer signals the wrong error.
+ PROGV doesn't get confused by forced DEBUG 3 (lp#1405456).
* Tue Dec 02 2014 toganm@opensuse.org
- Update to version 1.2.6
* enhancement:
+ SERVE-EVENTS uses the poll() system call in lieu
of select() if the OS has the former. Previously poll() was
used only if waiting on exactly one file descriptor.
+ efficiency of access to untagged structure slots
is improved on x86-64, and the order of slots in memory is
exactly as specified by defstruct, simplifying use of
structures as arguments to foreign calls.
* bug fix:
+ SB-DEBUG:ARG now works in all TRACE options which
evaluate forms. (lp#1357826)
+ GC memory corruption during internal memory handling.
+ duplicate effective-slot-definition objects as compared
by EQ on name could be present in CLASS-SLOTS of a class whose
metaclass was structure-class or condition-class. (lp#1049423)
+ HANDLER-BIND with empty bindings works again; regression in
1.2.5. (lp#1388707)
+ ATOMIC-INCF works on structure slots in interpreted code.
(lp#1381867)
+ MAKE-ARRAY properly handles character types like (eql
[#]\a) and (member #\a #\c). (lp#1392068)
+ bug fix: READ sometimes accidentally preserved a whitespace
character after a token when it should not have. (lp#327790)