forked from dmitryvk/sbcl-win32-threads
-
Notifications
You must be signed in to change notification settings - Fork 4
/
NEWS
5601 lines (5483 loc) · 308 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.0.36:
* enhancement: Backtrace from THROW to uncaught tag on x86oids now shows
stack frame thrown from.
* optimization: SLOT-VALUE and (SETF SLOT-VALUE) take advantage of
constraint propgation, allowing better compilation eg. when used to
access structures with WITH-SLOTS. (lp#520366)
* optimization: the compiler is now more aware of the type of the underlying
storage vector for multidimensional simple arrays resulting in better code
for accessing such arrays.
* optimization: passing NIL as the environment argument to TYPEP no longer
inhibits optimizing it. (lp#309788)
* bug fix: Fix compiler error involving MAKE-ARRAY and IF forms
in :INITIAL-CONTENTS. (lp#523612)
* bug fix: FUNCTION-LAMBDA-EXPRESSION lost declarations from interpreted
functions. (lp#524707)
* bug fix: bogus style warnings from certain (SETF SLOT-VALUE) and
WITH-SLOTS usages during compilation.
* bug fix: SB-C::CLASS-INFO now prints correctly. (lp#514762)
* enhancement: Can now build with ud2 instead of int3 as trap instruction on
all x86oid platforms with :UD2-BREAKPOINTS target feature.
* bug fix: Breakpoints now work when using ud2 instead of int3 as trap
instruction (tested on x86oid linux with ud2-breakpoints).
* bug fix: slam.sh now works on win32.
* bug fix: better differences of numeric types. (lp#309124)
* bug fix: arrays declared intersection and union types can have their
upgraded element type derived. (lp#316078)
* bug fix: SB-SPROF allocation profiling for all threads failed to profile
threads started during profiling. (lp#472499)
changes in sbcl-1.0.36 relative to sbcl-1.0.35:
* new feature: SB-EXT:TYPEXPAND-1, SB-EXT:TYPEXPAND, and
SB-EXT:TYPEXPAND-ALL behave exactly like their MACROEXPAND counterparts
but work on type specifiers.
* new feature: SB-EXT:DEFINED-TYPE-NAME-P returns whether a symbol is known
to name a type specifier.
* new feature: SB-EXT:VALID-TYPE-SPECIFIER-P returns whether a given type
specifier is valid where "valid" basically means "would be accepted as
second argument of TYPEP".
* new feature: SB-INTROSPECT:FUNCTION-TYPE takes a function-designator and
returns the function's declared, or derived FTYPE.
* new feature: SB-POSIX now supports accessing the d_ino member of
dirent structures. (Thanks to Philipp Marek and Pierre THEIRRY)
* new feature: The function SB-EXT:SEED-RANDOM-STATE has been added to
provide for seeding a RANDOM-STATE object with user-provided data or
from the operating system's PRNG. Also, (MAKE-RANDOM-STATE T) will
attempt to initialize the returned state from the operating system's
PRNG where possible. (Thanks to Fare Rideau; launchpad bug lp#310116)
* bug fix: Fix SB-SIMPLE-STREAMS:READ-VECTOR to correctly set the
FILE-POSITION of the stream being read from. (launchpad bug lp#491087)
* bug fix: Fix grammar and style issues for the docstrings of
printer-related variables and functions. (Thanks to mon_key; launchpad
bug lp#518696)
* bug fix: Fix compilation on chenygc platforms. Thanks to Larry Valkama and
Bruce O'Neel.
* bug fix: SB-THREAD:CONDITION-WAIT sometimes signaled a deadline twice
in a row even though a handler defered the deadline long into the
future. (lp#512914)
* bug fix: A deadline handler was run without interrupts enabled for a
deadline signaled within SB-THREAD:CONDITION-WAIT. That could result
in infinitely spinning, non-killable threads.
* bug fix: Backtrace from internal-errors on x86-64 os x was truncated
before reaching the erring stack frame.
* bug fix: Fix type derivation for EXPT when raising a fixnum to a
real power. (launchpad bug lp#525949)
* bug fix: Fix SB-EXT:GENERATION-* accessors for generations > 0 on
GENCGC platforms. (launchpad bug lp#529014)
* bug fix: More robust checks for invalid DEFMETHOD argument specializers.
(launchpad bug lp#525916)
* bug fix: Fix building on Darwin when sysctl is not in the user's PATH.
(Thanks to Robert Goldman)
changes in sbcl-1.0.35 relative to sbcl-1.0.34:
* optimization: ROUND with a single single-float or double-float argument
is properly inlined when possible.
* optimization: Slightly better code is generated for integer<->float
conversions and for single-float<->double-float conversions on x86-64.
* optimization: SB-ROTATE-BYTE:ROTATE-BYTE now generates more efficient
code for 32-bit and 64-bit rotations on x86-64.
* bug fix: The install script changes the ownership of directories as well
as files for contrib modules using asdf. (thanks to Eugene Ossintsev;
launchpad bug lp#508485)
* bug fix: TRUNCATE with a single single-float or double-float argument is
properly inlined when possible. (launchpad bug lp#489388)
* bug fix: Passing a rotation count of zero to SB-ROTATE-BYTE:ROTATE-BYTE
no longer causes a compiler error on x86 and ppc.
* bug fix: GET-MACRO-CHARACTER bogusly computed its second return value
always relative to *READTABLE* rather than the passed argument.
changes in sbcl-1.0.34 relative to sbcl-1.0.33:
* minor incompatible change: threading support is now enabled by default
on x86[-64] Linux.
* enhancement: SB-INTROSPECT:DEFTYPE-LAMBDA-LIST now also works on most
builtin types.
* enhancement: Errors during compile-time-too processing (i.e. EVAL-WHEN)
are now caught and reported just like errors during macroexpansion.
* enhancement: SB-POSIX now provides access to tcdrain(), tcflow(),
tcflush(), tcgetsid(), and tcsendbreak(). (thanks to Jerry James)
* enhancement: ASDF systems can now depends on SB-QUEUE.
* fixes and improvements related to Unicode and external formats:
** bug fix: error handling and restart usage in the ucs-2 external format
has been improved.
** there is now an implementation of the ucs-4 external format.
** the utf-16 and utf-32 external formats are supported.
* bug fix: SB-POSIX wrapper for putenv no longer tries to put lisp strings
in the environment. setenv() and unsetenv() are also provided. (reported by
Fare Rideau; launchpad bug lp#460455)
* bug fix: LOAD of both .fasl and .FASL type files now forces fasl-style
loading. This ensures sensible errors for .FASL files from other
implementations on case-insensitive filesystems. (reported by Willem
Broekema; launchpad bug lp#489417)
* bug fix: #p"\\\\" can now be read without error on Win32. (reported by
Willem Broekema; launchpad bug lp#489698).
* bug fix: some minor code rearrangements to reenable warning-free building
from CMUCL (reported by xme@gmx.net; launchpad bug lp#491104)
* bug fix: PRINT-OBJECT for clos instances respects the right margin when
pretty printing
* bug fix: FIND-PACKAGE & DEFPACKAGE were not thread safe. (reported by
Attila Lendvai)
changes in sbcl-1.0.33 relative to sbcl-1.0.32:
* new port: support added for x86-64 NetBSD. (thanks to Aymeric Vincent)
* improvement: support O_LARGEFILE access to files larger than 2GB on
x86-64/linux. (thanks to Daniel Janus; launchpad bug lp#453080)
* new feature: SB-INTROSPECT:WHO-SPECIALIZES-DIRECTLY to get a list of
definitions for methods specializing on the passed class itself.
* new feature: SB-INTROSPECT:WHO-SPECIALIZES-GENERALLY to get a list of
definitions for methods specializing on the passed class itself, or on
subclasses of it.
* new build flag: :sb-xref-for-internals; SBCL will collect xref information
about itself during the build (e.g. for M-? in Slime), if this flag is
enabled in customize-target-features.lisp. This will increase the core
size by about 5-6mb, though, so it's mostly interesting to SBCL
developers.
* new feature: various GENCGC tuning parameters have been experimentally
documented and exported from SB-EXT. See documentation for details.
* fixes and improvements related to Unicode and external formats:
** the Unicode character database has been upgraded to the
Unicode 5.2 standard, giving names and properties to a number of new
characters, and providing a few extra characters with case
transformations.
** improvement: restarts for providing replacement input/output on coding
errors for fd-stream external formats.
** improvement: where :<encoding> is a keyword corresponding to an
external format the system supports, it is now possible to specify
(:<encoding> :replacement <character>) as an external format which will
automatically substitute <character> on encoding or decoding errors for
streams and for STRING-TO-OCTETS and its inverse. (launchpad bug
lp#317072)
** improvement: the file streams underlying the standard streams (such as
*STANDARD-INPUT*, *TERMINAL-IO*) are opened with an external format
which uses the replacement mechanism to handle encoding errors,
preventing various infinite error chains and unrecoverable I/O
confusion.
** minor incompatible change: the utf-8 external format now correctly
refuses to encode Lisp characters in the surrogate range (char-codes
between #xd800 and #xdfff).
** fix a typo preventing conversion of strings into octet vectors
in the latin-2 encoding. (reported by Attila Lendvai; launchpad bug
lp#471689)
** fix a bug in the octet multibyte handling of decoding errors and the
USE-VALUE restart. (launchpad bug lp#314939)
** fix the bug underlying the expected failure in the FORCE-END-OF-FILE
restart on fd-stream decoding errors.
** fix a bug in the ATTEMPT-RESYNC fd-stream decoding restart when the
error is near the end of file.
** fix a double-error case in unibyte octet conversions, when the first
use of USE-VALUE is ignored.
** fix bugs in handling of undefined code points in unibyte encodings.
** fix LISTEN (and consequent hangs in READ-CHAR-NO-HANG) on bivalent
streams after an UNREAD-CHAR.
* enhancement: SB-INTROSPECT:ALLOCATION-INFORMATION also reports if the
object is allocated in a boxed region of dynamic space.
* enhancement: SB-POSIX:FORK now signals an error if an attempt to
fork with multiple Lisp threads running is made, instead of going
ahead with unpredictable consequences. (reported by Leslie Polzer)
* bug fix: uses of slot accessors on specialized method parameters within
the bodies of SLOT-VALUE-USING-CLASS methods no longer triggers a type
error while finalizing the class. This fix may cause classes with slot
accessors to be finalized later than previously. (reported by Lars Rune
Nøstdal; launchpad bug lp#473699)
* bug fix: restore buildability on the MIPS platform. (regression from
1.0.30.38, reported by Samium Gromoff)
* bug fix: inspecting closures is less likely to fail with a type error.
* bug fix: no timer starvation when setting the system clock back.
(launchpad bug lp#460283)
* bug fix: WITH-STANDARD-IO-SYNTAX now binds *PRINT-PPRINT-DISPATCH* to the
standard pprint dispatch table as specified by CLHS.
* bug fix: give CLISP a hint about a type declaration to enable it to build
the cross-compiler without warnings. (thanks to Josh Elasser; launchpad
bug lp#396597)
* bug fix: correctly dump literal objects in defaulting forms of arglists.
(reported by Attila Lendvai; launchpad bug lp#310132)
* bug fix: distinguish in type specifiers between arrays that might be
complex and arrays that are definitely complex. (launchpad bug lp#309129)
* bug fix: SUBTYPEP knows that the SYMBOL type is not SUBTYPEP the KEYWORD
type. (reported by Levente Mészáros; launchpad bug lp#485972)
* bug fix: setting the value of a symbol-macro within a method in the
presence of type declarations works properly again. (reported by Iban
Hatchondo; launchpad bug lp#485019)
changes in sbcl-1.0.32 relative to sbcl-1.0.31:
* optimization: faster FIND and POSITION on strings of unknown element type
in high SPEED policies. (thanks to Karol Swietlicki)
* optimization: faster CONCATENATE 'STRING in low SPEED policies (reported
by David Vázquez)
* improvement: better error signalling for bogus parameter specializer names
in DEFMETHOD forms (reported by Pluijzer)
* bug fix: DELETE-FILE once again works on logical pathnames (regression
since 1.0.30.49)
* bug fix: LOGICAL-PATHNAME signals a TYPE-ERROR if pathspec is specified
incorrectly.
* bug fix: redefinition of a class via DEFCLASS without :DEFAULT-INITARGS
removes previous default initargs (reported by Lars Rune Nøstdal and
Samium Gromoff)
* bug fix: correct WHO-CALLS information for inlined lambdas with complex
lambda-lists. (reported by Peter Seibel)
* bug fix: SAVE-LISP-AND-DIE option :SAVE-RUNTIME-OPTIONS did not work
correctly when starting from an executable core without saved runtime
options (reported by Faré Rideau, thanks to Zach Beane)
* bug fix: (SETF SLOT-VALUE) signalled a warning which should have been
an optimization note instead. (reported by Martin Cracauer)
* bug fix: WITH-SLOTS did not work with THE forms. (thanks to David Tolpin)
* bug fix: Have RUN-PROGRAM with :INPUT T only run the subprocess in a
new process group if it doesn't need to share stdin with the sbcl
process. (thanks to Leslie Polzer)
* bug fix: SATISFIES could be misoptimized to refer to a local function.
(reported by Stanislaw Halik)
changes in sbcl-1.0.31 relative to sbcl-1.0.30:
* improvement: stack allocation is should now be possible in all nested
inlining cases: failure to stack allocate when equivalent code is manually
open coded is now considered a bug.
* improvements related to Unicode:
** the Unicode character database has been upgraded to the
Unicode 5.1 standard, giving names and properties to a number of new
characters, and providing a few extra characters with case
transformations.
** the system now recognizes and produces names for Unicode Hangul
syllable characters.
** the EBCDIC-US external-format is now supported for octet operations
(as well as for stream operations).
* new feature: experimental :EMIT-CFASL parameter to COMPILE-FILE can
be used to output toplevel compile-time effects into a separate .CFASL
file.
* optimization: COERCE to VECTOR, STRING, SIMPLE-STRING and recognizable
one-dimenstional subtypes of ARRAY is upto 70% faster when the coercion is
actually needed.
* optimization: TRUNCATE on known single- and double-floats is upto 25%
faster.
* optimization: division of floating point numbers by constants uses
multiplication by reciprocal when an exact reciprocal exists.
* optimization: multiplication of single- and double-floats floats by
constant two has been optimized.
* optimization: ARRAY-IN-BOUNDS-P is resolved at compile-time when
sufficient type information is available. (thanks to Leslie Polzer)
* optimization: SLOT-VALUE and (SETF SLOT-VALUE) with constant slot names on
known structure objects are as efficient as defstruct generated accessors.
* optimization: unused vector creation can now be optimized away.
* improvement: ASDF systems can now depends on SB-INTROSPECT.
* improvement: a STYLE-WARNING is signalled when a generic function
clobbers an earlier FTYPE proclamation.
* improvement: the compiler is able to track the effective type of
generic function across method addition and removal even in the
absence of an explicit DEFGENERIC.
* improvement: DESCRIBE now reports on symbols naming undefined
but assumed or declared function as well.
* improvement: recompilation of systems using SB-GROVEL now works
(thanks to Leslie Polzer)
* improvements to SB-CLTL2 (thanks to Larry D'Anna):
** functions DECLARATION-INFORMATION, PARSE-MACRO, and ENCLOSE have been
documented.
** AUGMENT-ENVIRONMENT and DEFINE-DECLARATION have been implemented.
** DECLARATION-INFORMATION now supports declaration name DECLARATION as
well as user defined declaration names.
** VARIABLE-INFORMATION is now aware of alien variables.
* improvement: improved address space layout on OpenBSD (thanks to Josh
Elsasser)
* improvement: pretty-printing of various Lisp forms has been improved
(thanks to Tobias Rittweiler)
* bug fix: calls to DECODE-FLOAT and INTEGER-DECODE-FLOAT whose value was
unused were deleted in safe code. (reported by John Fremlin)
* bug fix: a failing AVER compiling certain MAKE-ARRAY forms. (reported
by James Wright)
* bug fix: some out-of-line array predicates were missing (reported by
Stelian Ionescu)
* bug fix: a failing AVER in CONVERT-MV-CALL has been fixed. (thanks to
Larry D'Anna)
* bug fix: a failing AVER in %ALLOCATE-CLOSURES conversion has been fixed
(thanks to Larry D'Anna)
* bug fix: SLEEP supports times over 100 million seconds on long on OpenBSD
as well. (reported by Josh Elsasser)
* bug fix: DELETE-FILE on streams no longer closes the stream with :ABORT T,
leading to possible attempts to delete the same file twice. See docstring
on DELETE-FILE for details. (reported by John Fremlin)
* bug fix: DELETE-FILE once again deletes the file named by the pathname
designator argument, rather than its truename. (reported by Luis
Oliveira)
* bug fix: the low-level debugger had 32-bit assumptions and was missing
information about some array types. (thanks to Luis Oliveira)
* bug fix: moderately complex combinations of inline expansions could
be miscompiled if the result was declared to be dynamic extent.
* bug fix: on x86, SAP-REF of sizes greater than 8 bits with offsets of the
form (+ <variable> <integer>) were miscompiled under certain
circumstances.
* bug fix: in some cases no compiler note about failure to stack allocate
was emitted, even if the objects were in fact heap allocated.
* bug fix: minor violation of "otherwise inaccessible" rule for stack
allocation could cause objects users might reasonably expect to
be heap allocated to be stack allocated.
* bug fix: DESCRIBE signalled an error for generic functions under
certain circumstances. (thanks to Leslie Polzer)
* bug fix: Fixed spelling of an error message.
changes in sbcl-1.0.30 relative to sbcl-1.0.29:
* minor incompatible change: SB-THREAD:JOIN-THREAD-ERROR-THREAD and
SB-THREAD:INTERRUPT-THREAD-ERROR-THREAD have been deprecated in favor
of SB-THREAD:THREAD-ERROR-THREAD.
* new contrib module: SB-QUEUE provides thread-safe lockless FIFO queues.
* new feature: docstrings for local and anonymous functions are no longer
discarded. (thanks to Leslie Polzer)
* new feature: SB-THREAD:SYMBOL-VALUE-IN-THREAD provides access to symbol
values in other threads.
* new feature: SB-INTROSPECT:ALLOCATION-INFORMATION provides information
about object allocation.
* optimization: division of a real float by a complex float is implemented
with a specialised code sequence.
* optimization: MAKE-INSTANCE with non-constant class-argument but constant
keywords is an order of magnitude faster.
* optimization: MAKE-INSTANCE with constant keyword arguments is x2-4 faster
in the presence of :AROUND or non-standard primary INITIALIZE-INSTANCE
methods, and similarly for non-standard metaclass classes as long as there
are no methods additional on MAKE-INSTANCE.
* optimization: more efficient type-checks for FIXNUMs when the value
is known to be a signed word on x86 and x86-64.
* optimization: compiler now optimizes (EXPT -1 INTEGER), (EXPT -1.0 INTEGER),
and (EXPT -1.0d0 INTEGER) into an ODDP test. (thanks to Stas Boukarev and
Paul Khuong)
* optimization: compiler is smarter about delegating argument type checks to
callees.
* optimization: several character functions are now compiled somewhat more
efficiently. (reported by Lynn Quam)
* optimization: the compiler now derives simple types for LOAD-VALUE-FORMs.
* improvement: less unsafe constant folding in floating point arithmetic,
especially for mixed complex/real -float operations.
* optimization: constant double and single floats are stored in native
unboxed format on x86[-64].
* optimization: smarter code for arithmetic operations with constant floats,
complex floats, or integers on x86[-64].
* optimization: smarter code for conjugate/multiplication of float complexes
and abs/negate of floats on x86-64.
* optimization: more efficient complex float and real float operations on
x86-64.
* improvement: complex float division is slightly more stable.
* improvement: DESCRIBE output has been reworked to be easier to read and
contains more pertinent information.
* improvement: failure to provide requested stack allocation compiler notes
provided in all cases (requested stack allocation not happening without a
note being issued is now considered a bug.)
* bug fix: SB-POSIX exports the documented types and functions
FILE-DESCRIPTOR and FILENAME, and also the corresponding -DESCRIPTOR
types. (reported by "abhi")
* bug fix: on 64 bit platforms FILL worked incorrectly on arrays with
upgraded element type (COMPLEX SINGLE-FLOAT), regression from 1.0.28.55.
(thanks to Paul Khuong)
* bug fix: looping around HANDLER-CASE could silently consume stack space
on each iteration. (reported by "foobar")
* bug fix: better error signalling when calls to functions seeking elements
from lists (eg. ADJOIN) are compiled with both :TEST and :TEST-NOT.
(reported by Tobias Rittweiler)
* bug fix: regressions in DIRECTORY from 1.0.28.61: pattern matching of
directory components now works as it used to. (various prolems reported by
Michael Becker, Gabriel Dos Reis, Cyrus Harmon, and Harald Hanche-Olsen)
* bug fix: :PTY option in RUN-PROGRAM was broken with stream arguments.
(reported by Elliot Slaughter, thanks to Stas Boukarev)
* bug fix: bogus undefined variable warnings from fopcompiled references to
global variables. (thanks to Lars Rune Nøstdal)
* bug fix: foreign function names should now appear in backtraces on
FC6 as well. (reported by Tomasz Skutnik and Tobias Rautenkranz)
* bug fix: SETF compiler macro documentation strings are not discarded
anymore.
* bug fix: GENTEMP is now unaffected by pretty printer dispatch table.
(thanks to Alex Plotnick)
* bug fix: SLEEP accepts large integer arguments, truncating them to
SIGNED-WORD on the assumption that sleeping for 68 years is sufficient
for anyone. (reported by Leslie Polzer, thanks to Stas Boukarev)
* bug fix: compiler notes for expensive slot type checks could be emitted
at runtime MAKE-INSTANCE calls. (reported by Samium Gromoff)
changes in sbcl-1.0.29 relative to 1.0.28:
* IMPORTANT: bug database has moved from the BUGS file to Launchpad
https://bugs.launchpad.net/sbcl
Bugs can be reported directly there, or by sending email to
sbcl-bugs@lists.sourceforge.net
(no subscription required.)
* minor incompatible change: under weak type checking policy integer
types are weakened less aggressively.
* minor incompatible change: SAVE-LISP-AND-DIE :TOPLEVEL function is now
allowed to return, which causes SBCL to quit with exit status 0. Previously
if the function returned with a small integer return value, that value
was accidentally reused as the exit status.
* new feature: SB-EXT:DEFINE-HASH-TABLE-TEST allows defining new arguments
to MAKE-HASH-TABLE :TEST, and MAKE-HASH-TABLE has been extended with
:HASH-FUNCTION argument. Refer to user manual for details.
* new feature: SB-EXT:DEFGLOBAL macro allows defining global non-special
variables.
* new feature: SB-EXT:GET-TIME-OF-DAY provides access to seconds and
microseconds since the Unix epoch on all platforms.
* new feature: SB-EXT:ALWAYS-BOUND proclamation inhibits MAKUNBOUND, and
allows the compiler to safely elide boundedness checks for special
variables.
* new feature: SB-EXT:GLOBAL proclamation inhibits SPECIAL proclamations for
the symbol, prohibits both lexical and dynamic binding. This is mainly an
efficiency measure for threaded platforms, but also valueable in
expressing intent.
* new feature: UNC pathnames are now understood by the system on Windows.
* optimization: the compiler uses a specialized version of FILL when the
element type is know in more cases, making eg. (UNSIGNED-BYTE 8) case
almost 90% faster.
* optimization: accesses to potentially non-simple arrays where element type
is known are 50% faster.
* optimization: compiler now generates faster array typechecking code.
* optimization: ARRAY-DIMENSION is now faster for multidimensional and
non-simple arrays.
* optimization: multidimensional array accesses in the absence of type
information regarding array rank are approximately 10% faster due to
open coding of ARRAY-RANK.
* optimization: result of (FILL (MAKE-ARRAY ...) ...) and (REPLACE
(MAKE-ARRAY ...) ...) can be stack allocated if the result of MAKE-ARRAY
form can be.
* optimization: result of call to VECTOR can now be stack allocated.
* optimization: MAKE-ARRAY with :INITIAL-CONTENTS is now vastly faster
as long as the resulting array is one-dimensional and has a known
element type. In particular, :INITIAL-CONTENTS (LIST ...) where the
length of the list matches the known length of the vector does not
allocate the list as an intermediate step. Ditto for VECTOR and simple
backquoted forms.
* optimization: MAKE-ARRAY can now stack allocate in the presence of
:INITIAL-CONTENTS and :INITIAL-ELEMENT as long as the result has a
known element type, and is known to be simple and one dimensional.
* improvement: SBCL now emits a compiler note where stack allocation was
requested but could not be provided (not in all cases, unfortunately)
* improvement: better MACHINE-VERSION responses. (thanks to Josh Elsasser)
* improvement: pretty-printing loop has been implemented properly. (thanks
to Tobias Rittweiler)
* documentation: CLOS slot typechecing policy has been documented.
* bug fix: FILE-AUTHOR no longer signals an error on Windows.
* bug fix: SB-SPROF could be foiled by foreign code not have a frame
pointer, leading to memory faults. (thanks to Bart Botta)
* bug fix: better floating point exception handling on x86/OpenBSD.
(thanks to Josh Elsasser)
* bug fix: exit status from QUIT when called under --script was lost
(reported by Hubert Kauker)
* bug fix: MAKE-ARRAY for non-zero :INITIAL-ELEMENT always used the
same implementation of FILL to initialize the array, even if a more
efficient one was available (reported by Stas Boukarev, thanks to
Paul Khuong)
* bug fix: potential miscompilation of array stack allocation on x86 and
x86-64. (reported by Time Tossavainen)
* bug fix: some forms of AND, OR, and COND resulted in expansions that could
result in their subforms being treated as top level forms. (reported by
James Knight)
* bug fix: On x86/x86-64 alien functions declared to return integers shorter
than a machine register could leave garbage in the high bits of the
result register (bug 316325).
* bug fix: disable address space randomization Linux/x86-64 as well,
not just x86-64. (reported by Ken Olum)
* bug fix: Attempting to DEREF an (ALIEN (* T)) would produce a WARNING and
generate incorrect code.
* bug fix: #201; type inference for CONS and ARRAY types could derive
wrong results in the presence of eg. RPLACA or ADJUST-ARRAY.
* bug fix: special variables with a proclaimed specific subtype of FUNCTION
could not be assigned to or bound with PROGV. (reported by Lorenz
Mösenlechner)
* bug fix: the value of CL:- in the inspector was the previous expression
evaluated rather than the expression being evaluated.
* bug fix: constants can no longer be locally declared special.
* bug fix: signals delivered to threads started from foreign land (read:
directly by pthread_create, not by MAKE-THREAD) are redirected to a Lisp
thread by blocking all signals and resignalling.
* bug fix: SHARED-INITIALIZE initialized unbound :ALLOCATION :CLASS slots
from :INITFORM, if any.
changes in sbcl-1.0.28 relative to 1.0.27:
* a number of bugs in cross-compilation have been fixed, with the ultimate
result that building under (at least) clisp should be much more reliable.
* minor incompatible changes: echo-streams now propagate unread-char to the
underlying input stream, and no longer permit unreading more than one
character.
* improvement: on x86/x86-64 Lisp call frames now have the same layout as C
frames, allowing for instance more reliable backtraces.
* improvement: the debugger REPL can now reference lexical variables
by name directly for code compiled with (DEBUG 3).
* improvement: errors from malformed declarations now have better source
paths associated with them. (thanks to Tobias Rittweiler)
* optimization: faster local calls on x86/x86-64
* bug fix: some error messages for out-of-bound array indexes confused the
index and the bound. (thanks to Stas Boukarev)
* bug fix: pretty printing malformed DEFPACKAGE forms (thanks to Sidney
Markowitz)
* bug fix: running regressions tests in shells without OSTYPE set now works.
(reported by Harald Hanche-Olsen)
* bug fix: more robust static space exhaustion signalling from
MAKE-STATIC-VECTOR (thanks to Daniel Lowe)
* bug fix: (SETF DOCUMENTATION) for anonymous function now throws the
docstring away instead of storing it under names such as (LAMBDA (X)).
(reported by Leslie Polzer)
* bug fix: timers could go off in the wrong order, be delayed indefinitely
(thanks to Ole Arndt for the patch)
* bug fix: RESTART-FRAME and RETURN-FROM-FRAME stack corruption
* bug fix: the discriminating function for PRINT-OBJECT no longer preserves
potentially-invalid effective methods in its cache.
* bug fix: SB-INTROSPECT:FIND-DEFINITION-SOURCE now works with funcallable
instances as well (thanks to Paul Khuong)
* bug fix: using RUN-PROGRAM does not interfere with SB-POSIX:WAIT,
SB-POSIX:WAITPID and their C equivalents.
* bug fix: RUN-PROGRAM does not crash on Darwin when stressed.
changes in sbcl-1.0.27 relative to 1.0.26:
* new port: support added for x86-64 OpenBSD. (thanks to Josh Elsasser)
* new port: support added for x86-64 Solaris. (thanks to Alex Viskovatoff)
* improvement: the system either recovers from stack exhaustion or dies
properly as opposed to leaving the user uncertain of whether the handler
trampled on some random memory next to the stack or having to rely on
--lose-on-corruption (which is still a good idea to use in production
because stack exhaustion can happen in signal handlers which will likely
lead to hangs.)
* bug fix: fix gc related interrupt handling bug on ppc (regression from
1.0.25.37, reported by Harald Hanche-Olsen)
* bug fix: work around signal delivery bug in darwin (regression from
1.0.25.44, reported by Sidney Markowitz)
* bug fix: fix ERROR leaking memory (reported by David Thompson)
changes in sbcl-1.0.26 relative to 1.0.25:
* incompatible change: an interruption (be it a function passed to
INTERRUPT-THREAD or a timer function) runs in an environment where
interrupts can be enabled. The interruption can use
WITH-INTERRUPTS or WITHOUT-INTERRUPTS as it sees fit. Use
WITHOUT-INTERRUPTS to avoid nesting of interruptions and
potentially running out of stack. Keep in mind that in the absence
of WITHOUT-INTERRUPTS some potentially blocking operation such as
acquiring a lock can enable interrupts.
* incompatible change: GC-OFF and GC-ON are removed, as they were
always unsafe. Use WITHOUT-GCING instead.
* new feature: runtime option --disable-ldb
* new feature: runtime option --lose-on-corruption to die at the
slightest hint of possibly non-recoverable errors: running out of
memory, stack, alien stack, binding stack, encountering a memory
fault, etc. In the absence of --lose-on-corruption a warning is
printed to stderr.
* enhancement: detect binding stack exhaustion
* enhancement: detect alien stack exhaustion on x86/x86-64
* improvement: generally more stable and reliable interrupt handling
* improvement: there is a per thread interruption queue,
interruptions are executed in order of arrival
* improvement: a repeating timer reschedules itself when the it has
finished, but expiration times are spaced equally. If an
expiration time is in the past it will trigger after a short grace
period that may give a chance to other things to run.
* optimization: slightly faster gc on multithreaded builds
* optimization: faster WITHOUT-GCING
* bug fix: when JOIN-THREAD signals an error, do it when not holding
important locks so that the debugger/handler doesn't produce
recursive errors or deadlock.
* bug fix: real-time signals are not used anymore, so no more
hanging when the system wide real-time signal queue gets full.
* bug fix: INTERRUPT-THREAD on a dying thread could produce memory
fault.
* bug fix: finalizers, gc hooks never run in a WITHOUT-INTERRUPTS
* bug fix: fix random memory faults related to interrupts on alpha
* bug fix: fix random memory faults related to interrupts on sparc
* bug fix: fix deadlocks related to starting threads
* bug fix: fix deadlines on locks on futex platforms
* bug fix: restore errno in signal handlers
* bug fix: fix deadlocks related to hash tables
* bug fix: fix deadlocks in pcl
changes in sbcl-1.0.25 relative to 1.0.24:
* incompatible change: SB-INTROSPECT:FUNCTION-ARGLIST is deprecated, to be
removed later. Please use SB-INTROSPECT:FUNCTION-LAMBDA-LIST instead.
* new feature: SB-INTROSPECT:DEFTYPE-LAMBDA-LIST allows retrieval of
DEFTYPE lambda lists. (thanks to Tobias Rittweiler)
* enhancement: MUTEX-VALUE is to be superseded by MUTEX-OWNER that has a
better name and does not return values so stale on multiprocessor systems.
Also, HOLDING-MUTEX-P was added for about the only sane usage of
MUTEX-OWNER.
* improvement: unithread builds keep track of MUTEX-VALUE.
* improvement: reading from a TWO-WAY-STREAM does not touch the output
stream anymore making it thread safe to have a concurrent reader and
a writer, for instance, in a pipe.
* improvement: GET-SETF-EXPANDER avoids adding bindings for constant
arguments, making compiler-macros for SETF-functions able to inspect
their constant arguments.
* improvement: COMPILE-FILE reports times with millisecond accuracy
(thanks to Luis Oliveira)
* optimization: CHAR-CODE type derivation has been improved, making
TYPEP elimination on subtypes of CHARACTER work better. (reported
by Tobias Rittweiler, patch by Paul Khuong)
* bug fix: setting alien structure fields of type struct by value now
computes the right offset for the memory copy.
* bug fix: compilation problem involving inlined calls to aliens with
result type VOID. (reported by Ken Olum)
* bug fix: #235a; sequential inline expasion in different policies no
longer reuses the functional from the previous expansion site.
* bug fix: DEFTYPE no longer breaks on bodies consisting of a single
unquoted symbol. Regression from 1.0.22.8. (reported by Ariel Badichi)
* bug fix: named ENUMs in multiply-referenced alien record types no longer
cause an implied type redefinition. Regression from 1.0.21.29.
* bug fix: sign-extension of small signed return values now works with C
code compiled with gcc 4.3 or newer. (reported by Liam Healy)
* improvements to the Windows port:
** SB-BSD-SOCKETS now works from saved cores as well. (reported by Stephen
Westfold, thanks to Rudi Schlatte)
changes in sbcl-1.0.24 relative to 1.0.23:
* new feature: ARRAY-STORAGE-VECTOR provides access to the underlying data
vector of a multidimensional SIMPLE-ARRAY.
* new feature: the system now signals a continuable error if standard
readtable modification is attempted. (thanks to Tobias Rittweiler)
* new feature: DIRECTORY has been extended with a non-standard keyword
argument :RESOLVE-SYMLINKS. (thanks to TC-Rucho)
* enhancement: SB-BSD-SOCKETS:MAKE-SOCKET-STREAM keyword argument handling
has been robustified and documented better. (thanks to Robert Goldman)
* optimization: faster generic arithmetic dispatch on x86 and x86-64.
* optimization: FORMAT ~D and ~F are now approximately 5% faster.
* tradeoff: constant FORMAT control strings are now compiled unless
SPACE > SPEED (previously only when SPEED > SPACE.)
* bug fix: Red Hat Enterprise 3 mmap randomization workaround. (thanks
to Thomas Burdick)
* bug fix: DEFCLASS and ENSURE-CLASS-USING-CLASS are now expected to
be thread safe.
* bug fix: lexical type declarations are now correctly reported by
SB-CLTL2. (reported by Larry D'Anna)
* bug fix: STRING-TO-OCTETS did not handle :START properly when
using UTF-8 as external format. (thanks to Luis Oliveira)
* bug fix: errors from invalid fill-pointer values to (SETF FILL-POINTER)
are signalled correctly. (thanks to Stas Boukarev)
* bug fix: SET-MACRO-CHARACTER accepts NIL as the readtable
designator. (thanks to Tobias Rittweiler)
* bug fix: SET-DISPATCH-MACRO-CHARACTER accepts NIL as the readtable
designator, and returns T instead of the function. (thanks to
Tobias Rittweiler)
* bug fix: direct superclasses of STANDARD-CLASS and
FUNCALLABLE-STANDARD-CLASS now default to STANDARD-OBJECT and
FUNCALLABLE-STANDARD-OBJECT as required by AMOP.
* bug fix: compiling a call to SLOT-VALUE with a constant slot-name
when no class with the named slot yet exists no longer causes a
compile-time style-warning.
* bug fix: :ALLOCATION :CLASS slots are type-checked properly
in safe code. (reported by Didier Verna)
* bug fix: #430; nested structure constructors can stack allocate.
* bug fix: on some 64-bit platforms dynamic space size was truncated
to #xffff0000 bytes. (reported by Benjamin Lambert)
* bug fix: setting *READ-SUPPRESS* to T no longer renders the default
REPL unusable. (reported by Daniel Herring)
* bug fix: return values of READ-SEQUENCE did not take :START into
account on file streams, regressions since 1.0.12.22. (reported by
Thomas Russ, patch by Paul Khuong)
* bug fix: using SET or (SETF SYMBOL-VALUE) to change the value of a
method specializer used to confuse permuation vector optimization.
* bug fix: system inserted bogus implicit type declarations for local
special variables in DEFMETHOD bodies.
* bug fix: #354; duplicated frames in backtraces due to
non-tail-call-optimized XEPs to functions with return type NIL
have been elimited.
* bug fix: #357; MAKE-INSTANCE/SHARED-INITIALIZE now
initializes structure object slots according to DEFSTRUCT initforms,
and DEFSTRUCT forms :INCLUDEind structure classes defined using
DEFCLASS :METACLASS STRUCTURE-CLASS now inherit their initforms.
(reported by Bruno Haible and Stephen Wilson)
* bug fix: #395; fill-pointer output streams used now support
element-type BASE-CHAR as well.
* bug fix: compiler error when attempting to derive return value of
ARRAY-ELEMENT-TYPE when the array type was a union of intersection
types.
* bug fix: address-spaces overlapped on OpenBSD. (thanks to Josh
Elsasser)
* bug fix: Mac OS X binaries should now be portable between Leopard
and Tiger.
changes in sbcl-1.0.23 relative to 1.0.22:
* enhancement: when disassembling method functions, disassembly
for the associated fast function is also produced.
* enhancement: system stores DEFTYPE lambda-lists, so DESCRIBE can
report them.
* optimization: printing with *PRINT-PRETTY* true is now more
efficient as long as the object being printed doesn't require
special handling by the pretty printer.
* bug fix: slot symbol-macros from WITH-SLOTS inside DEFMETHOD bodies
now interact correctly with type declarations.
* partial bug fix: PCL detects infinite recursion during wrapper
validation. (thanks to Attila Lendvai)
* bug fix: #426; nested function calls are inlined properly.
Previously if FOO was an inline function, in calls of the form
(FOO (FOO ...)) the outer call was not inlined.
* bug fix: long long arguments passed in registers to alien
functions on PowerPC Linux and NetBSD are now handled correctly
when preceded by SYSTEM-AREA-POINTERs. (reported by Josh Elsasser)
changes in sbcl-1.0.22 relative to 1.0.21:
* minor incompatible change: LOAD-SHARED-OBJECT no longer by default looks
for the shared object in the current directory, but passes the native
namestring of the designated pathname to the operation system's shared
object loading function as-it.
* minor incompatible change: --disable-debugger toplevel option now takes
effect before processing of initialization files and --eval or --load
options.
* new feature: new commandline argument: --script, which supports
shebang lines. See documentation for details. (based on work by
Kevin Reid)
* new feature: SAVE-LISP-AND-DIE can save current values of
--dynamic-space-size and --control-stack-size in the executable core,
causing it to skip normal runtime option processing. See documentation
for details. (thanks to Zach Beane)
* enhancement: inoccous calls to EVAL or generic functions dispatching
on subclasses of eg. STREAM no longer cause compiler notes to appear.
* enhancement: the system no longer resignals errors from --load and
--eval toplevel arguments as SIMPLE-ERRORS, which caused restarts
associated with the original error to be lost. (thanks to Ariel
Badichi)
* enhancement: :DONT-SAVE keyword argument has been added to
LOAD-SHARED-OBJECT for controlling interaction with
SAVE-LISP-AND-DIE, and UNLOAD-SHARED-OBJECT can be used to undo
the effects of an earlier LOAD-SHARED-OBJECT call.
* bug fix: ADJUST-ARRAY on multidimensional arrays used bogusly give
them a fill pointer unless :DISPLACED-TO or :INITIAL-CONTENTS were
provided. (reported by Cedric St-Jean)
* bug fix: circularity handling in the reader did not treat raw
structure slots correctly. (reported by Cedric St-Jean)
* bug fix: SERVE-EVENT occasionally signaled an error about bogus
file descriptors when there were none.
* bug fix: DEFINE-COMPILER-MACRO support of destructuring lambda-lists
was broken. (reporteed by Willem Broekema)
* bug fix: SB-EXT:NATIVE-NAMESTRING on Windows did not work on
pathnames without a directory.
* bug fix: COMPILE-FILE did not warn about undefined variable
references at toplevel, and LOAD of the resulting fasl did
not signal an error.
* bug fix: functions with non-required arguments used to end up with
(SB-C::&OPTIONAL-DISPATCH ...) as their name.
* bug fix: redefining a function with non-required arguments didn't
update the system's knowledge about its call signature properly.
* bug fix: fixed #431; incompatible alien record type redefinitions
are detected and handled. (reported by Neil Haven)
* bug fix: using RESTRICT-COMPILER-POLICY with DEBUG 3 could cause
PROGV miscompilation. (reported by Matthias Benkard, patch by Juho
Snellman)
* bug fix: on x86 and x86-64 backtraces were sometimes truncated
after alien stack frames.
* bug fix: strings passed to mk{s,d}temp lacked null termination
changes in sbcl-1.0.21 relative to 1.0.20:
* new feature: the compiler is able to track the effective type of a
generic function across method addition and removal.
* new feature: SB-EXT:ATOMIC-INCF allows atomic incrementation of
appropriately typed structure slots without locking.
* new feature: SB-EXT:CALL-WITH-TIMING provides access to timing
information like those gathered by TIME using a programming-friendly
interface.
* new feature: TIME reports time taken even if the form performs a
non-local transfer of control.
* enhancement: reduced conservativism on GENCGC platforms: on
average 45% less pages pinned (measured from SBCL self build).
* bug fix: SB-EXT:COMPARE-AND-SWAP on SYMBOL-VALUE can no longer
mutate constant symbols or violate declaimed type of the symbol.
* bug fix: SB-THREAD:SIGNAL-SEMAPHORE could fail to wakeup threads
sleeping on the semaphore in heavily contested semaphores.
* bug fix: semaphores and condition variables were not interrupt
safe.
* bug fix: SB-THREAD:CONDITION-WAIT doesn't allow waits on mutexes
owned by other threads anymore.
* bug fix: FIND on lists called KEY outside the specified
subsequence. (reported by budden)
* bug fix: LOG doesn't use single-float intermediate results when
given mixed integer and double-float arguments, leading to better
precision. (reported by Bob Felts)
* bug fix: LOG with base zero returned values of inconsistent type.
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)
* bug fix: bogus odd-number-of-keywords STYLE-WARNINGs from calls to
functions with an odd number of &OPTIONAL arguments, a &REST
argument, and one or more &KEY arguments at the call site.
* bug fix: STYLE-WARNINGs for functions with both &OPTIONAL and &KEY
arguments appeared at call sites as well.
* bug fix: fixed #425; CLOSE drops input buffers from streams, so
READ-LINE &co can no longer read from them afterwards. (reported
by Damien Cassou)
* bug fix: fixed #427: unused local aliens no longer cause compiler
breakage. (reported by Stelian Ionescu, Andy Hefner and Stanislaw
Halik)
* bug fix: non-local exit from a WITH-ALIEN form no longer causes
alien-stack leakage. (reported by Andy Hefner)
* bug fix: PROGV signals an error when an attempt to violate declared
type of a variable or bind a constant is made.
* bug fix: SET signals an error when an attempt to violate declared
type of a variable is made.
* bug fix: restart computation during the execution of a restart
test function no longer causes infinite recursion. (reported by
Michael Weber)
* bug fix: calling SB-COVER:REPORT with a non-directory pathname now
signals an error. (thanks to Pierre Mai)
* bug fix: EXPORT left symbol unexported in conflict situations.
(thanks to Michael Weber)
* bug fix: correctly handle name conflicts involving CL:NIL.
(thanks to Michael Weber)
* bug fix: RESOLVE-CONFLICT restart for name conflicts handles
conflicts arising from USEing package with conflicting symbols
correctly. (thanks to Michael Weber)
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
presence 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.
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.
* bug fix: if COMPILE-FILE aborts due to an unwind, the partial
fasl is now deleted. (reported by Attila Lendvai)
* bug fix: READ-LINE always returned NIL for the last line in files.
(reported by Yoshinori Tahara)
* bug fix: more accurate disassembly annotations of foreign function
calls. (thanks to Andy Hefner)
* bug fix: trimming non-simple strings and non-string string
designators when the there is nothing to trim works properly.
(thanks to James Knight)
* new feature: SB-POSIX bindings for mlockall, munlockall, and setsid.
(thanks to Travis Cross)
* fixed some bugs revealed by Paul Dietz' test suite:
** NIL is a valid function name (regression at 1.0.13.38)
** FILL on lists was missing its return value (regression at 1.0.12.27)
** STRING-TRIM, STRING-LEFT-TRIM, and STRING-RIGHT-TRIM did not respect
fill pointers properly (regression at 1.0.12.23)
** STRING-TRIM, STRING-LEFT-TRIM, and STRING-RIGHT-TRIM did not respect
displacement indices properly (regression at 1.0.12.23)
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.
** CPU percentage report (computed from real and total run time.)
** more comprehensive run time reporting, using a condenced format
** interperted form, lambda, and page fault counts are omitted
when zero.
* optimization: ADJOIN and PUSHNEW are upto ~70% faster in normal
SPEED policies.
* optimization: APPEND is upto ~10% faster in normal SPEED policies.
* optimization: two argument forms of LAST are upto ~10% faster
in normal SPEED policies.
* optimization: NCONC no longer needs to heap cons its &REST list
in normal SPEED policies.
* bug fix: SB-FLUID build feature no longer breaks the build. (thanks
to Sidney Markowitz)
* bug fix: UNION and NUNION work with :TEST-NOT once more,
regression since 1.0.9.1. (thanks to Eric Marsden)
* bug fix: result of MAKE-ARRAY can be stack allocated - regression
since 1.0.15.36. (thanks to Paul Khuong)
* bug fix: LAST when always returned the whole list when given a bignum
as the second argument.
* bug fix: dynamic extent allocation of nested lists and vectors
could leak to otherwise accessible parts.
* bug fix: invalid optimization of heap-allocated alien variable
reference.
* bug fix: fasl header checking is less vulnerable to different
platform word lengths.
* bug fix: more correct assembler syntax for GNU binutils
2.18.50.0.4 support. (thanks to Marijn Schouten)
* bug fix: fix ECASE warnings from CMUCL-as-xc-host. (reported by
Andreas Franke)
* bug fix: the fopcompiler can handle LOCALLY forms (with no
declarations) successfully. (reported by Attila Lendvai)
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 Tobias Rittweiler)
* 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)
* bug fix: attempt to obtain *SCHEDULER-LOCK* recursively when
unscheduling timer at the same time as another timer fires.
* bug fix: don't reschedule timers for dead threads.
* bug fix: periodic polling was broken. (thanks to Espen S Johnsen)
* bug fix: copying output from RUN-PROGRAM to a stream signalled
bogus errors if select() was interrupted.
* enhancement: add support for fcntl's struct flock to SB-POSIX.
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