forked from sbcl/sbcl
-
Notifications
You must be signed in to change notification settings - Fork 0
/
NEWS
7897 lines (7702 loc) · 438 KB
/
NEWS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
;;;; -*- coding: utf-8; fill-column: 78 -*-
changes relative to sbcl-1.3.16:
* enhancement: memory overhead from the garbage collector's metadata
is reduced on 64-bit architectures; no change for 32-bit.
changes in sbcl-1.3.16 relative to sbcl-1.3.15:
* 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 sbcl-1.3.15 relative to sbcl-1.3.14:
* 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)
changes in sbcl-1.3.14 relative to sbcl-1.3.13:
* 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 sbcl-1.3.13 relative to sbcl-1.3.12:
* 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 sbcl-1.3.12 relative to sbcl-1.3.11:
* 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.
changes in sbcl-1.3.11 relative to sbcl-1.3.10:
* 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 sbcl-1.3.10 relative to sbcl-1.3.9:
* 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 sbcl-1.3.9 relative to sbcl-1.3.8:
* 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 sbcl-1.3.8 relative to sbcl-1.3.7:
* 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)
changes in sbcl-1.3.7 relative to sbcl-1.3.6:
* bug fix: preserve the name of the destructive function for the destroyed
constant and important result warnings, even when declared NOTINLINE.
* optimization: faster operations on list-sets.
* optimization: better type derivation of set functions.
(lp#1592152)
* optimization: load-time TLS-INDEX assignment, and other
microoptimizations, on x86.
* optimizations in:
** APPEND;
** ECASE/ETYPECASE;
** ARRAY-DIMENSIONS;
** ARRAY-TOTAL-SIZE;
** REMOVE, REMOVE-DUPLICATES, DELETE and DELETE-DUPLICATES on lists.
changes in sbcl-1.3.6 relative to sbcl-1.3.5:
* bug fix: do not insert conditional newlines in print-unreadable-object
(lp#1398290). This reverses a change made in lp#488979 which reversed
a fix advertised in release 0.8.14 to pass the GCL ANSI Test Suite.
* bug fix: constant negative rotations of 32-bit quantities are compiled
correctly on x86-64 and arm. (lp#1586614, reported by Guillaume Le
Vaillant)
changes in sbcl-1.3.5 relative to sbcl-1.3.4:
* enhancement: the platform's strtod() is exposed as SB-POSIX:STRTOD
* enhancement: speed up debug info creation for highly nested functions.
(lp#1563355)
* enhancement: the interleaved structure slot optimization from
release 1.2.6 has been ported to all architectures.
* enhancement: support run-program I/O redirection into lisp streams on
Windows.
* bug fix: better wording in missed optimization note. (lp#1003265)
* bug fix: interpreted (CAS SVREF) was broken
* bug fix: support CLISP as build host for ARM (lp#1568256, thanks to Tomas
Hlavaty)
changes in sbcl-1.3.4 relative to sbcl-1.3.3:
* enhancement: who-sets and who-references work on DEFGLOBAL. (lp#1552997)
* enhancement: CONSTANTP understands backquote.
e.g. (CONSTANTP '`(0 (,CHAR-CODE-LIMIT))) => T
* optimization: improvements to sequence functions: CONCATENATE, SUBSTITUTE,
REVERSE.
* bug fix: SB-EVAL does not signal an error for (THE KEYWORD :FOO)
* bug fix: a DEFTYPE name that is redefined into a DEFSTRUCT name
is less likely to cause confusion in the compiler.
* bug fix: DOCUMENTATION works as intended for classes with non-standard
metaclasses
* bug fix: (TYPEP <extended-sequence> <extended-sequence-class>) no longer
returns NIL in certain situations
* bug fix: MAKE-SEQUENCE, MAP, CONCATENATE and MERGE accept class objects as
result-type
* bug fix: MAKE-SEQUENCE, MAP, CONCATENATE and MERGE expand DEFTYPEs in
result-type
changes in sbcl-1.3.3 relative to sbcl-1.3.2:
* enhancement: warn about argument mismatch for functions passed as
arguments to other functions (e.g. REDUCE, MAP) at compile-time.
* optimization: functions accepting other functions (e.g. REDUCE, FIND) can
now be constant-folded if all function arguments are declared as foldable.
* optimization: improved logical operations on integers of unknown type.
* bug fix: exception handling no longer leaks memory on OS X. (lp#326238)
changes in sbcl-1.3.2 relative to sbcl-1.3.1:
* enhancement: {READ,WRITE}-SEQUENCE are much faster for some combinations
of short sequences and stream types
* enhancement: MAKE-LIST's result can be stack-allocated on x86-64
* bug fix: WRITE-SEQUENCE no longer fails to write lists containing integers
to bivalent streams
* bug fix: LOGTEST (and hence ODDP) no longer conses when given fixnum
arguments and small bit positions. (lp#1277690)
* bug fix: READ-FROM-STRING compiler-macro does not permute its arguments
* bug fix: DEFUN of a function name that collides with a system-generated
structure accessor does not confuse the runtime. (lp#540063)
* bug fix: heap corruption from miscompiled RESTART-BIND. (lp#1530390)
changes in sbcl-1.3.1 relative to sbcl-1.3.0:
* enhancement: SB-THREAD support for ARM64.
* enhancement: compiling an out-of-line DEFSTRUCT constructor call
will warn if a defaulted value is incompatible with its slot type.
* enhancement: a local INLINE declaration on a structure constructor
will work as intended, subject to any other factors that inhibit
inlining, even if the DEFSTRUCT was not itself within a global
INLINE proclamation for the named constructor
* enhancement: SB-EXT:DYNAMIC-SPACE-SIZE is now defined for cheneygc.
* enhancement: x86[-64] platforms support SB-EXT:CAS on structure slots
of type SB-EXT:WORD
* enhancement: the interleaved structure slot optimization from
release 1.2.6 has been ported to 32-bit x86, Sparc, PowerPC, ARM64.
* enhancement: SB-THREAD:JOIN-THREAD signals a proper error when an attempt
is made to join the current thread
* bug fix: NTH-VALUE does not cause stack overflow. (lp#1511419)
* bug fix: structure constructor type checking is better. (lp#1508735)
* bug fix: supplied-p variables for unused optional or keyword variables no
longer confuse SB-DI:PARSE-COMPILED-DEBUG-FUN-LAMBDA-LIST (and thus the
backtrace machinery) (lp#1498644)
* bug fix: Backtrace correctly handles undefined-function frames on MIPS.
* bug fix: WITH-FLOAT-TRAPS-MASKED correctly clears accrued traps on MIPS
(fixes issues with floating-point type derivation in the compiler).
* bug fix: FLOAT-NAN-P and FLOAT-TRAPPING-NAN-P now work correctly on MIPS
and HPPA.
* bug fix: MIPS context register access now masks to 32 bits (fixing issues
parsing negative-fixnum values for internal-error arguments and escaped
debug variables on 64-bit CPUs).
* bug fix: (SETF SAP-REF-DOUBLE) with constant offset on big-endian MIPS
now works correctly.
* bug fix: Callback parameter (argument) handling on MIPS is now vastly
more correct.
* bug fix: %DECREMENT-SEMAPHORE adjusts the remaining timeout after a
spurious wakeup
changes in sbcl-1.3.0 relative to sbcl-1.2.16:
* minor incompatible change: the environment passed to a macro/setf/deftype
expander is not always an object of type SB-KERNEL:LEXENV.
It can be nil, as is permissible by the standard.
* 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.
* bug fix: calling COMPILE when SB-EXT:*EVALUATOR-MODE* was :INTERPRET
would fail to perform "normal semantic processing such as macro expansion"
as stipulated by X3J13 issue LOAD-TIME-EVAL.
* bug fix: SB-UNICODE:CONFUSABLE-P no longer treats "<" and the empty
string as confusable. (lp#1504739)
* bug fix: (ASSERT (COMPUTE-IT ...)) would expand incorrectly
if COMPUTE-IT was a local macro that shadowed a global function.
* bug fix: SB-POSIX:CFSETISPEED and SB-POSIX:CFSETOSPEED now work properly
on platforms that use only the minimum specified set of fields in struct
termios (verified on Linux, still known not to work on FreeBSD and NetBSD,
very probably others). (partial fix for lp#1500951)
changes in sbcl-1.2.16 relative to sbcl-1.2.15:
* enhancement: by default, timers with a repeat interval do not "catch up"
by repeatedly calling their function after a clock discontinuity such as a
suspend and resume cycle
* bug fix: correctly restore multiple values on the stack in the presence of
alien calls. (lp#1489590)
* bug fix: MAKE-STRING-OUTPUT-STREAM enforces that :ELEMENT-TYPE
is a subtype of CHARACTER.
* bug fix: an EQL method specializer no longer causes garbage retention
if there are no extant methods using the specializer. (lp#492851)
changes in sbcl-1.2.15 relative to sbcl-1.2.14:
* 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. (lp#1476867)
* enhancement: definitions within PROGN get proper source locations when
compiled (needs latest Slime to take advantage of this). (lp#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.
(lp#1370561)
* bug fix: better source locations inside backqoute. (lp#1361502)
* bug fix: HANDLER-BIND requires that the handler-function be
a function designator at the time of binding establishment. (lp#1480679)
* bug fix: inlined functions surrounded by nested macrolets are properly
inlined. (lp#309123)
changes in sbcl-1.2.14 relative to sbcl-1.2.13:
* 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.
(lp#707556, lp#707573, lp#707578, lp#708051)
* enhancement: DEFCONSTANT and DEFSTRUCT respect package locks. (lp#1186238,
lp#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. (lp#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. (lp#1472785)
* bug fix: Variable-reference elimination no longer generates incorrect code
under certain circumstances. (lp#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. (lp#1390149)
* bug fix: Windows installer generates registry key name
correctly. (lp#1476447)
changes in sbcl-1.2.13 relative to sbcl-1.2.12:
* incompatible change: on success, TRY-SEMAPHORE and WAIT-ON-SEMAPHORE
return the new count
* enhancement: WAIT-ON-SEMAPHORE accepts a decrement parameter
* enhancement: JOIN-THREAD allows distinguishing timeout vs. abort in all
situations
* enhancement: On Windows DBG_PRINTEXCEPTION_C is handled and its message is
printed. (lp#1437947)
* bug-fix: TRUENAME works properly on broken symlinks presented as
directories. (lp#1400003)
* bug fix: Inlined DPB and DEPOSIT-FIELD don't interfere with left-to-right
order of argument evaluation. (lp#1458190)
* bug fix: (SETF (LDB (BYTE 1 2 JUNK) X) 0) is rightly rejected.
* bug fix: DEFSETF lambda lists should not permit argument destructuring.
* bug fix: 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. (lp#1460381)
* bug fix: 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.
* bug fix: out of line MAP/MAP-INTO check that the results produced by the
function are of the matching sequence type. (lp#1459581)
* bug fix: pretty-printing of '(LET `((,X ,Y)) :B) is handled correctly.
changes in sbcl-1.2.12 relative to sbcl-1.2.11:
* 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.
* enhancement: EVAL errors that occur by way of LOAD report the starting
line and column number of the erring toplevel form. (lp#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. (lp#1450968)
* bug fix: short form of DEFSETF no longer allows trailing junk.
* bug fix: DEFINE-MODIFY-MACRO respects the provisions of CLHS 5.1.3
regarding argument evaluation order. (lp#1452539)
* bug fix: POP works as specified in CLHS if the setter for its
argument has a side-effect on the existing CAR value. (lp#1454021)
* bug fix: 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. (lp#1252100)
* bug fix: Malformed reader conditionals such as "(#-no-such-feature)"
and "(#+sbcl)" no longer parse as NIL. (lp#1454400)
changes in sbcl-1.2.11 relative to sbcl-1.2.10:
* 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)
* enhancement: 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")).
* enhancement: (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.
* enhancement: 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)
* bug fix: (SETF (FDEFINITION this) (FDEFINITION OTHER)) signals an error
if OTHER names either a macro or special-operator. (lp#1439921)
changes in sbcl-1.2.10 relative to sbcl-1.2.9:
* minor incompatible change: all SOCKINT::WIN32-* functions have been
deprecated with EARLY deprecation state
* minor incompatible change: 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)
* bug fix: A new dead code elimination phase removes dead code loops
that confuse stack analysis. (lp#1255782, lp#308914)
* bug fix: 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)
* bug fix: The compiler no longer signals an internal error when
encountering invalid FUNCTION forms like (function 1)
* bug fix: express proper dependencies in the ASDF contrib, to support
systems where make runs in parallel. (lp#1434768; thanks to Nikhil
Benesch)
changes in sbcl-1.2.9 relative to sbcl-1.2.8:
* 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)
* 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.
* optimization: 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)
* bug fix: DEFCLASS handles cyclic {super,meta}class relations better
(lp#1418883)
* bug fix: compiler no longer signals an error when compiling certain
function calls. (lp#1416704, lp#404441, lp#1417822, lp#1234919)
* bug fix: compiler doesn't stumble on a LOGIOR transform. (lp#1389433)
* bug fix: more robust debugger and backtraces. (lp#1413850, lp#1099500,
lp#1412881, lp#945261, lp#1419205, lp#1409402)
* bug fix: files larger than 4GB can now be compiled.
* bug fix: x86 truncated results from 64-bit foreign functions to 32 bits.
* bug fix: file-position didn't work on large files on win32. (lp#1271545)
* bug fix: callbacks from foreign threads can work without enabling
sb-safepoint.
* bug fix: sb-introspect:function-lambda-list works properly on interpeted
macros. (lp#1387404)
* bug fix: ADJUST-ARRAY properly handles non-adjustable arrays. (lp#886418)
* bug fix: compiler no longer fails to dump a multidimensional array
constant involving a circular reference to itself
* bug fix: conditional and nested DX allocation no longer confuse the
compiler in STACK analysis. (lp#1044465)
* bug fix: sb-rotate-byte constant folding bug fixed. (lp#1423682)
changes in sbcl-1.2.8 relative to sbcl-1.2.7:
* enhancement: better error and warning messages. (lp#1314767, lp#736383)
* enhancement: backtrace for invalid argument count produces the exact
supplied arguments including the extra ones, on x86, x86-64 and ARM.
* enhancement: a 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.
* optimization: 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
* bug fix: more resilience to deleted code. (lp#1308328, lp#1390544)
* bug fix: the CLHS example of MAKE-LOAD-FORM involving TREE-WITH-PARENT
did not work, and now it does.
changes in sbcl-1.2.7 relative to sbcl-1.2.6:
* optimization: returning constant values refers to preboxed constants
more reliably. (lp#1398785)
* enhancement: a 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.
* enhancement: always lose() when something goes wrong while saving a core
(instead of just printing an error on stderr in some situations).
* enhancement: frames in the debugger are now restartable by default.
* bug fix: restore error handling on Windows x86.
* bug fix: MAKE-SEQUENCE detects type errors in its :INITIAL-ELEMENT
at compile-time when possible. (lp#330299)
* bug fix: parsing of malformed type specifiers no longer results
in a memory-fault-error.
* bug fix: LOOP properly destructures nested lists in WITH.
* bug fix: MACROEXPANDing the redefinition of an alien structure type no
longer signals the wrong error.
* bug fix: PROGV doesn't get confused by forced DEBUG 3 (lp#1405456).
changes in sbcl-1.2.6 relative to sbcl-1.2.5:
* 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.
* enhancement: 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)
* bug fix: GC memory corruption during internal memory handling.
* bug fix: 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)
* bug fix: HANDLER-BIND with empty bindings works again; regression in
1.2.5. (lp#1388707)
* bug fix: ATOMIC-INCF works on structure slots in interpreted code.
(lp#1381867)
* bug fix: 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)
changes in sbcl-1.2.5 relative to sbcl-1.2.4:
* enhancement: sb-bsd-sockets now has basic support for IPv6
* enhancement: An sb-unicode package has been added, containing
many functions related to handling Unicode text
* enhancement: The reader now normalizes symbols to Normalization
Form KC (NFKC). This behavior can be disabled with
SB-EXT:READTABLE-NORMALIZATION
* enhancement: a style-warning is signaled if OPTIMIZE declarations
multiply specify a quality with differing values. (lp#310267)
* bug fix: conservatively pointed to pages wipe out unused dwords so
that they cannot act as false roots in turn.
* bug fix: the walker's handling of lexical variable and symbol-macro
bindings is improved (lp#375326, lp#1368305)
* bug fix: HANDLER-{BIND,CASE} no longer drop into ldb when a clause
contains an undefined condition type; regression in 1.1.19 (lp#1378939)
* bug fix: in interpreted code, inequality predicates did not type-check
arguments that weren't examined, and a 1-argument use of MIN or MAX
accepted a complex number. (lp#1373702)
* bug fix: APROPOS and APROPOS-LIST handle inherited symbols correctly.
(lp#1364413, thanks to Zach Beane)
changes in sbcl-1.2.4 relative to sbcl-1.2.3:
* enhancement: the sequence functions MAP, CONCATENATE and MERGE now call
the new generic functions SEQUENCE:MAP, SEQUENCE:CONCATENATE and
SEQUENCE:MERGE respectively when the specified result type designates an
extended sequence.
* bug fix: Wrong binding order of supplied-p parameters in macro lambda
lists. (lp#721135)
* bug fix: VALIDATE-SUPERCLASS returns T when the superclass is the
universal superclass (lp#1332983)
* bug fix: reading an uninterned symbol whose print name has the
syntax of an integer signals an error. (lp#310062)
* bug fix: the walker is less likely to be confused when walking LET* forms
with special bindings and use of those bindings and others of the same
name.
* bug fix: a rare bug affecting 32-bit platforms resulting in a
fatal condition with the message "Globaldb rehash failure" has been fixed.
changes in sbcl-1.2.3 relative to sbcl-1.2.2:
* enhancement: DOCUMENTATION works on instances of
FUNCALLABLE-STANDARD-CLASS
* enhancement: ASSERT reports arguments of calls to lexical functions in
additional to global functions.
* enhancement: ASDF updated to 3.1.3
* enhancement: UIOP can be loaded without ASDF.
* bug fix: some methods on CHANGE-CLASS did not finalize the new class
before accessing its class-precedence list.
* bug fix: CHANGE-CLASS no longer fails on unbound slots in the source
object.
* bug fix: CHANGE-CLASS signals an appropriate error when the destination
class is a FORWARD-REFERENCED-CLASS.
* bug fix: CHANGE-CLASS no longer signals bogus TYPE-ERRORs for slots for
which initargs have been supplied.
* bug fix: saving cores on ARM was broken since the introduction of GENCGC.
(lp#1349795)
* bug fix: macroexpanding a backquoted expression involving ",."
outside of the compiler failed. (lp#1354623)
changes in sbcl-1.2.2 relative to sbcl-1.2.1:
* incompatible change: the #\` ("backquote") reader macro was reimplemented
to support robust pretty-printing. Reading a form involving #\` produces
an invocation of the QUASIQUOTE ordinary macro which may contain subforms
that are not lists. Code that unportably attempts operations on
un-evaluated forms resulting therefrom, e.g.
(SUBST a b (read-from-string "`(x (,y))"))
might generate incorrect results and/or errors.
* enhancement: support for GNU/kFreeBSD x86.
* enhancement: ATOMIC-INCF and ATOMIC-DECF can operate on (CAR x), (CDR x)
and DEFGLOBAL variables of type fixnum.
* enhancement: arithmetic constant reduction is now performed on defconstant
constants too. (lp#1337069).
* bug fix: certain ftype proclamations containing &optional t &rest t no
longer cause subsequent definitions to signal bogus style-warnings.
* bug fix: #\Bell and #\Bel now read to different characters. (lp#1319452).
* bug fix: CAS SYMBOL-VALUE on locally special variables didn't work.
(lp#1098355)
changes in sbcl-1.2.1 relative to sbcl-1.2.0:
* enhancement: GENCGC is enabled on ARM.
* enhancement: better error reporting for invalid calls to local functions.
* enhancement: support for GNU/kFreeBSD distributions. (lp#1079954, thanks
to Christoph Egger)
* enhancement: experimental support for threads on NetBSD/x86-64. (thanks
to Robert Swindells)
* enhancement: support for DragonFly BSD. (lp#1292845, thanks to Vasily
Postnicov)
* bug fix: TYPE-OF must not return AND/OR/NOT expressions.
(lp#1317308)
* bug fix: accessing NIL arrays stopped producing errors. (lp#1311421)
* bug fix: DISASSEMBLE no longer prints unwanted stuff. (lp#1251861)
* bug fix: compiling SVREF on unknown types no longer produces scary errors.
(lp#1258716)
* bug fix: assorted LOOP fixes and enhancements. (lp#645534, lp#1322923,
lp#700538, lp#613876, lp#695286, lp#798388)
* bug fix: silence compiler notes from the SEARCH transform. (lp#1071310)
* bug fix: array type intersection handles T and unknown element types
correctly. (lp#1258716)
* bug fix: fix a corner case in array type unparsing that would result in
misleading translations from our internal type representation.
* bug fix: array-rank now sees through union and intersection types.
(lp#1310574)
* bug fix: when DECLARE expressions are in the wrong place, be careful not
to attempt to evaluate the subforms. (lp#573747; thanks to Roman
Marynchak)
* bug fix: misplaced and missing declarations in DEFTRANSFORM. (lp#1066451)
* bug fix: FBOUNDP returned NIL for a class of incorrect function names
instead of signaling an error. (lp#1095483)
* bug fix: fix a compile-time AVER in regalloc: lifetime analysis
used to (rarely) introduce duplicate conflict markers in a single
TN/block pair. (lp#1327008)
changes in sbcl-1.2.0 relative to sbcl-1.1.18:
* bug fix: read-time-eval backquote context mixup. (lp#1321047)
* enhancement: when SAVE-LISP-AND-DIE fails due multiple threads, the
report of the signaled conditions lists currently running threads.
* enhancement: ported to ARM linux.
* enhancement: sb-gmp contrib has been updated. (lp#1305266)
* enhancement: new contrib sb-mpfr by Stephan Frank.
* bug fix: MAKE-SEQUENCE works with sequence types defined via DEFTYPE
(lp#1315846, thanks to Mark Cox)
* bug fix: SET-[DISPATCH-]MACRO-CHARACTER should coerce a symbolic
function-designator to a function only as needed. (lp#1012335)
* bug fix: remove references to asdf-install from the manual. (lp#1207544,
thanks to Thomas Hlavaty)
* bug fix: handle --without-xxx options to make.sh more carefully.
(lp#1246665, thanks to Richard M Kreuter)
* bug fix: prevent maybe-delete-exit from doing semantically broken things
with local exits. (lp#309099, lp#518099, lp#533930)
* bug fix: attempts to subclass BUILT-IN-CLASSes signal errors, as required
by AMOP. (lp#861004)
changes in sbcl-1.1.18 relative to sbcl-1.1.17:
* optimization: COERCE is now more effecient for more cases when the type is
known at compile-time.
(lp#1309815)
* bug fix: correctly inherit condition initforms. (lp#1300904)
* bug fix: properly pprint literal functions inside nested lists.
(lp#1300716)
* bug fix: more-correctly handle array-type unity (broken for ages, causing
compilation problems since 1.1.13.x due to smarter TYPEP type propagation,
reported by jasom in #lisp).
changes in sbcl-1.1.17 relative to sbcl-1.1.16:
* enhancement: printing backtraces respects
SB-DEBUG:*DEBUG-PRINT-VARIABLE-ALIST* when printing call arguments
(lp#1261646)
* optimization: defstruct out-of-line accessor are now as fast as inlined.
(lp#1264924)
* bug fix: INVOKE-RESTART-INTERACTIVELY no longer refuses to invoke RESTART
instances with a test-function (reported by Vivitron in #sbcl)
* bug fix: STREAM-ERROR-POSITION-INFO fails in fewer situations (lp#1264902)
* bug fix: Change COND error message (lp#1254511)
* bug fix: LOAD is no longer confused when called on a directory.
(lp#1077996)
* bug fix: MAKE-CONDITION reports names of missing condition classes
properly (lp#1199223)
* bug fix: restore building with clang. (lp#1293643)
* bug fix: restore building on SPARC (broken since 1.1.15).
* bug fix: improved FreeBSD support.
* bug fix: PPC floating point conversion corrupted stack.
changes in sbcl-1.1.16 relative to sbcl-1.1.15:
* minor incompatible change: improve read/print consistency for pathnames on
Win32, by using the circumflex character #\^ as the escape character.
(lp#673625)
* enhancement: SB-EXT:DEFINE-LOAD-TIME-GLOBAL. (lp#1253688)
* enhancement: Loading fasls with symbols from an undefined package includes
the name of the symbol in the error message.
* bug fix: problems when redefining classes and doing TYPEP on classes
concurrently. (lp#1272742)
* bug fixes to the x86-64 XCHG instruction:
** it was misencoded when used with RAX, R8-R15 registers. (reported by
Eric Marsden)
** it was misencoded when used to exchange EAX with itself.
** the disassembler wrongly printed XCHG RAX, R8 and the corresponding
32- and 16-bit variations as NOP.
* bug fix: the disassembler outputs source annotations in the right place
and no longer randomly drops some of them. (lp#1249205)
* bug fix: fix commutative-arg-swap from introducing undumpable structures
into code, prevent code with errors from being compiled. (lp#1276282)
* bug fix: pathnames with :back in their directory component are succeffully
resolved.
* bug fix: the deterministic profiler now uses ENCAPSULATE functionality to
wrap functions around. (lp#309086)
changes in sbcl-1.1.15 relative to sbcl-1.1.14:
* new feature: the iterative spilling/coloring register allocator developed
by Alexandra Barchunova during Google Summer of Code 2013 is now merged
in. By default, it only activates for functions that optimize with
(speed 3) and (> speed compilation-speed), but setting
sb-regalloc:*register-allocation-method* to :iterative forces its
execution. The previous behaviour can be obtained by instead setting that
variable to :greedy. Thanks again to Google for their support, and, more
crucially, to Alexandra Barchunova for her hard work.
* optimization: make-array with known element-type and unknown dimensions is
much faster.
* optimization: make-array with unknown element-type is faster as well.
(lp#1004501)
* enhancement: sb-ext:save-lisp-and-die on Windows now accepts
:application-type argument, which can be :console or :gui. :gui allows
having GUI applications without an automatically appearing console window.
* enhancement: reduced conservativism on GENCGC platforms:
conservative roots must be valid-looking tagged pointers or point
within a code object, not merely point to within the allocated part
of a page, in order to pin a page.
* enhancement: support for "Mac Roman" external format.
* enhancement: encapsulation of named generic functions now happens without
altering the identity of the function bound to the name.
* bug fix: Windows applications without the console window no longer misbehave.
(patch by Wilfredo Velazquez, lp#1256034).
* bug fix: modular arithmetic optimizations do not stumble on dead branches
with bad constants. (reported by Douglas Katzman)
* bug fix: CLISP can be used again as a cross-compilation host.
(Thanks to Vasily Postnicov, lp#1261451)
* bug fix: run-program crashed with :directory nil. (lp#1265077)
changes in sbcl-1.1.14 relative to sbcl-1.1.13:
* optimization: complicated TYPEP tests are less opaque to the type
propagation pass. (lp#1229340)
* optimization: [N]BUTLAST perform a single pass over the list. (lp#1245697)
* optimization: EQUALP on structures with raw slots (double-float/complex)
no longer conses and is faster.
* optimization: RESTART-CASE expands to more compact code.
Thanks to Jan Moringen. (lp#1249055)
* enhancement: Top-level defmethod without defgeneric no longer causes
undefined-function warnings in subsequent forms. (lp#503095)
* enhancement: Better error messages for system errors on Windows.
* enhancement: run-sbcl.sh is usefully handled by rlwrap. Thanks to William
Cushing. (lp#1249183)
* enhancement: new function SB-EXT:ASSERT-VERSION->= accepts a version
specification (multiple integer arguments) and signals a continuable error
if the current SBCL version is lower (older) than the specification.
(lp#674372)
* enhancement: better ARRAY-RANK result derivation. (lp#1252108)
* bug fix: EQUALP now compares correctly structures with raw slots larger
than a single word.
* bug fix: contribs couldn't be built on Windows with MinGW.
* bug fix: Better pathname handling on Windows. (lp#922117)
* bug fix: OPEN reports a more meaningful error when an existing file is
opened for output with :if-exists :new-version. Thanks to Philip
Munksgaard. (lp#455381)
* bug fix: DEFSTRUCTs with NIL as a slot name no longer cause strange
CLOS-related errors. (lp#633911)
* bug fix: GC deadlocks caused by concurrent consing on Windows.
changes in sbcl-1.1.13 relative to sbcl-1.1.12:
* optimization: better distribution of SXHASH over small conses of related
values. (lp#309443)
* other improvements to SXHASH:
** use the whole of the positive-fixnum range for SXHASH of fixnums
* enhancement: The error message when calling an undefined alien function
includes the name of the function on x86-64.
* enhancement: sb-ext:run-program now supports :environment on Windows.
* enhancement: ASDF is no longer required to load contribs at runtime.
(lp#1132254)
* enhancement: when called with a symbol, FIND-RESTART no longer calls
COMPUTE-RESTARTS, making it faster and cons less (lp#769615)
* enhancement: FIND-RESTART and COMPUTE-RESTARTS handle huge restart
clusters better in some cases
* enhancement: SOME/ANY/other quantification higher-order functions no
longer cons. (lp#1070635)
* bug fix: forward references to classes in fasls can now be loaded.
(lp#746132)
* bug fix: don't warn on a interpreted->compiled function redefinition
from the same location. (patch by Douglas Katzman, lp#1042405)
* bug fix: Create vectors of proper internal length when reading literal
vectors from FASLs. (Reported by Jan Moringen)
* bug fix: COMPILE can now successfully compile setf functions.
(Reported by Douglas Katzman)
* bug fix: run-program performs more correct escaping of arguments on
Windows. (lp#1239242)
* bug fix: function-lambda-expression on generic functions returns the
actual name.
* bug fix: (the [type] [constant]) now warns when [constant] matches
[type] except for the number of values. (Reported by Nathan Trapuzzano
on sbcl-help)
* bug fix: signal errors in required cases of slot-definition initialization
protocol. (lp#309072)
* bug fix: run-sbcl.sh works better in the presence of symlinks on OS X.
(thanks to Stelian Ionescu, lp#1242643)
* bug fix: when given a restart object, FIND-RESTART checks whether the
restart is active and, when a condition is supplied, whether the restart
is associated to a different condition (lp#774410)
changes in sbcl-1.1.12 relative to sbcl-1.1.11:
* enhancement: Add sb-bsd-sockets:socket-shutdown, for calling
shutdown(3). (thanks to Jan Moringen, lp#1207483)
* enhancement: document extensible sequences. (thanks to Jan Moringen,
lp#994528)
* optimization: EQUAL and EQUALP transforms are smarter.
(thanks to Elias Martenson, lp#1220084)
* optimization: CHAR-EQUAL is faster for constant and base-char arguments.
* bug fix: probe-file now can access symlinks to pipes and sockets in
/proc/pid/fd on Linux. (reported by Eric Schulte)
* bug fix: SBCL can now be built on Solaris x86-64.
* bug fix: Floating point exceptions do not persist on Solaris anymore.
* bug fix: (setf . a) is pprinted correctly (reported by Douglas Katzman).
* bug fix: handle compiler-error in LOAD when it's not run from inside EVAL.
(lp#1219601)
* bug fix: SB-GMP:MPZ-POW no longer segfaults given a non-bignum base.
(thanks to Stephan Frank)
* bug fix: space allocation of result bignums in SB-GMP is more accurate.
(thanks to Stephan Frank, lp#1206191)
* bug fix: sb-safepoint can now reliably handle signal interruptions of
foreign code. (lp#1133018)
* bug fix: the compiler-macro for MAKE-INSTANCE when emitting "fallback"
constructors no longer fails to merge actual and default initargs
(thanks to Jan Moringen, lp#1179858)
* bug fix: the compiler-macro for MAKE-INSTANCE when emitting "fallback"
constructors handles non-KEYWORD initialization arguments more correctly.
* bug fix: loading the SB-SIMPLE-STREAMS contributed module no longer
clobbers FILE-NAMESTRING. (thanks to Anton Kovalenko, lp#884603)
* bug fix: class definitions with CPLs inconsistent with their metaclasses
are less likely to destroy the object system's integrity. (lp#309076)
* bug fix: restart clause parsing in RESTART-CASE is more in line with the
standard. (lp#1203585, thanks to Jan Moringen)
* bug fix: silence a note from RESTART-CASE under high-SPEED optimization
settings. (lp#1023721)
* bug fix: getting the order of arguments to
SB-MOP:SET-FUNCALLABLE-INSTANCE-FUNCTION wrong produces a sensible error
rather than a failed AVER. (reported by Paul Nathan)
* bug fix: Parsing of &optional/&key/&rest arguments now never overwrites
arguments during copying on x86 and x86-64; it may still happen on other
platforms when there are more fixed arguments than stack slots.
(reported by Jan Moringen)
changes in sbcl-1.1.11 relative to sbcl-1.1.10:
* enhancement: support building the manual under texinfo version 5.
(lp#1189146)
* enhancement: Windows builds no longer display the "Kitten of Death" message.
A warning is instead appended to the regular banner, and may be muted with
--noinform. (lp#728247)
* enhancement: support building under new linker handling of syscalls under
NetBSD. (thanks to Robert Swindells)
* bug fix: undefined function errors are now properly reported on PPC and MIPS.
(regression since 1.1.9)
* bug fix: (funcall (function X junk)) didn't causes an error when X had a
compiler macro. (thanks to Douglas Katzman).
* bug fix: signal a warning when defining a setf-function when a
setf-expander is already present. (thanks to Douglas Katzman).
* bug fix: improved threading on PPC.
* bug fix: ROOM works again on Windows. (lp#1206456)
* bug fix: Streams were flushed even when there was one byte still left in
the buffer. (lp#910213)
* bug fix: OPEN handles correctly when :if-exists and :if-does-not-exist are
either NIL or :ERROR. (reported by Jan Moringen)
changes in sbcl-1.1.10 relative to sbcl-1.1.9:
* enhancement: ASDF has been updated to 3.0.2.
* optimization: stack frames are packed more efficiently on x86oids, which
ought to reduce the frequency of Methuselahn conservative references (it
certainly helps with gc.impure.lisp / BUG-936304 on x86).
* optimization: on x86 and x86-64, integer negation forms like (- x) are now
recognized in modular arithmetic contexts, and compile to native negate,
rather than going through bignums only to keep the low bits.
* bug fix: Compiling potential modularic arithmetic forms does not cause type
errors when some integer types lack lower or upper bounds. (lp#1199127)
* bug fix: Non-trivial modular arithmetic forms are always cut to the right
bitwidth before being used in a non-modular context. (lp#1199428)
* bug fix: Multiple catch/unwind blocks in a single function are now
allocated in the right stack order on win32. (lp#1072739)
changes in sbcl-1.1.9 relative to sbcl-1.1.8:
* new feature: the contrib SB-GMP links with libgmp at runtime to speed
up arithmetic on bignums and ratios. (contributed by Stephan Frank)
* enhancement: disassemble now annotates some previously missing static
functions, like LENGTH.
* enhancement: clean.sh now also cleans doc/internals.
* enhancement: SB-EXT:PRINT-SYMBOL-WITH-PREFIX can be used within ~// to
print a symbol with a package prefix.
* enhancement: The debugger and backtracing are more robust against buggy
PRINT-OBJECT methods.
* optimization: calls to static functions on x86-64 use less instructions.
* optimization: compute encode-universal-time at compile time when possible.
* optimization: when referencing internal functions as #'x, don't go through
an indirect fdefn structure.
* optimization: SLEEP doesn't cons on non-immediate floats and on ratios.
* optimization: (mod fixnum) type-checks are performed using one unsigned
comparison, instead of two.
* optimization: enable more modular arithmetic transforms in the presence of
conditionals.
* optimization: bitwise OR forms can now trigger modular arithmetic as well,
when the result is known to be negative.
* optimization: recognize more cases of useless LOGAND/LOGIOR with constants.
* optimization: comparisons between rationals and constant floats or between
integers and constant ratios are now converted to rationals/integers at
compile time.
* optimization: Smaller and faster DOUBLE-FLOAT-LOW-BITS on x86-64.
* bug fix: problems with NCONC type derivation (reported by Jerry James).
* bug fix: EXPT type derivation no longer constructs bogus floating-point
types. (reported by Vsevolod Dyomkin)
* bug fix: sb-bsd-sockets has correct declaration of the canonname field of
addrinfo. (lp#1187041, patch by Jerry James)
* bug fix: uninitialized type-error conditions can now be printed.
(lp#1184586)
* bug fix: tests for sb-bsd-sockets no longer use a predefined port for
listening, allowing several tests to run in parallel.
* bug fix: during disassembly to *COMPILER-TRACE-OUTPUT* instruction
prefixes as used on x86 and x86-64 no longer sometimes print incorrectly.
(lp#1085729)
* bug fix: Specialised SIMD-PACK types can be negated.
* bug fix: Modular arithmetic is more robust. (incidentally fixes another bug
reported by Eric Marsden)
* bug fix: FP return values from foreign calls are always rounded to single
or double float precision on x87.
* bug fix: Known-safe vector access on x86oids should not fail spuriously
when the index is of the form (+ x constant-positive-integer).
* bug fix: Remove GPL-licensed files from source distribution. (lp#1185668)
* bug fix: backtrace printer no longer tries to create very large lists when
the arg-count register is clobberred by other code. (lp#1192929)
* bug fix: x86 should never signal an FP exception while boxing an FP value,
a situation that lands us into ldb.
changes in sbcl-1.1.8 relative to sbcl-1.1.7:
* notice: The implementation of MAP-ALLOCATED-OBJECTS (the heart of
ROOM, plus a few SB-INTROSPECT functions) has been completely
rewritten; it may now exhibit different bugs than before.
* new feature: minimal runtime/compiler intrastructure support for SSE
SIMD values, as SB-EXT:SIMD-PACK. Enabled on x86-64 via the build-time
feature :sb-simd-pack. This should enable intrinsics extensions as
libraries, without patching SBCL itself. Thanks to Alexander Gavrilov
for maintaining a branch for so long.
* enhancement: RUN-PROGRAM supports a :DIRECTORY argument to set
the working directory of the spawned process.
(lp#791800) (patch by Matthias Benkard)
* enhancement: boxed vectors (vectors of T or of FIXNUM) can now be
stack-allocated on PPC.
* enhancement: "fixed objects" can now be stack-allocated on PPC.
* enhancement: WITH-PINNED-OBJECTS no longer conses on PPC/GENCGC.
* enhancement: (sb-introspect:find-definition-sources-by-name x :vop) now
also returns VOPs which do not translate any functions, and finds
defoptimizer types ir2convert and stack-allocate-result.
* enhancement: better type derivation for APPEND, NCONC, LIST.
(lp#538957)
* enhancement: MAP-ALLOCATED-OBJECTS (the heart of ROOM) now walks the
heap in a manner similar to the GC rather than its previous ad-hoc
scheme, and is therefore no less and possibly more accurate.
* fixes and enhancements related to Unicode:
** the character database information has been updated to Unicode 6.2;
** support for canonical and compatibility decomposition of characters has