1Overview of changes from 0.9.0 to 0.9.1
2=======================================
3
4* Improvements
5
6  * Simplify getcontext() detection
7    [GitHub#3][Patch by NIIBE Yutaka]
8
9  * Add support for GNU Hurd
10    [GitHub#5][Patch by NIIBE Yutaka]
11
12  * Update the bundled libgcroots to 0.3.2
13
14* Fixes
15
16  * Fix test directory
17    [Reported by OBATA Akio]
18
19* Thanks
20
21  * NIIBE Yutaka
22
23  * OBATA Akio
24
25Overview of changes from 0.8.6 to 0.9.0
26=======================================
27
28* Just updating packaging system
29
30
31Overview of changes from 0.8.5 to 0.8.6
32=======================================
33
34* Just update configure script
35
36
37Overview of changes from 0.8.4 to 0.8.5
38=======================================
39
40* Specification changes
41
42  - Support colon separated multiple load paths with scm_set_lib_path().
43
44
45Overview of changes from 0.8.3 to 0.8.4
46=======================================
47
48* Fixes
49
50  - Fix alignment check on x86_64 when --enable-debug is set (bug #26950).
51  - Fix test-storage.c
52
53
54Overview of changes from 0.8.2 to 0.8.3
55=======================================
56
57* Fixes
58
59  - Disable some GC protection tests that produce indifinite result on make
60    check
61  - Re-enable following unintentionally disabled tests
62    * test-format.c
63    * test-storage.c
64
65
66Overview of changes from 0.8.1 to 0.8.2
67=======================================
68
69* Specification changes
70
71  - test-report-result exits with error code 70 (EX_SOFTWARE) if some tests are
72    failed
73
74* Fixes
75
76  - Fix bogus result of 'make check'. 0.8.1 and earlier passes all tests even
77    if some tests are failed
78
79
80Overview of changes from 0.8.0 to 0.8.1
81=======================================
82
83* Specification changes
84
85  - [R6RS] Remove the escape sequence "\|" invalidated in final R6RS
86
87* Fixes (also fixed in 0.7.6)
88
89  - [CRITICAL] Fix memory alighnment issue in symbol name.
90  - [CRITICAL] Fix possible bug in string buffer.
91  - Plug possible memory leak.
92  - Fix make test in test-string-cmp.
93  - Fix compilation on Mac OS X 10.5
94  - Support OpenBSD PowerPC and x86_64 in libgcroots
95
96
97Overview of changes from 0.7.x to 0.8.0
98=======================================
99
100* New features
101
102  - SRFI-0 Feature-based conditional expansion construct
103
104  - SRFI-1 List Library (full featured)
105
106  - SRFI-9 Defining Record Types
107
108  - SRFI-43 Vector library
109
110  - SRFI-55 require-extension
111
112  - SRFI-69 Basic hash tables
113
114  - SRFI-95 Sorting and Merging
115
116  - R5RS promises (delay and force)
117
118  - Legacy define-macro with some limitations (see spec.txt)
119
120  - New syntax let-optionals* compatible with Gauche, for optional argument
121    processing
122
123  - New C interface functions scm_array2list() and scm_list2array()
124
125  - unittest.scm is now installed as a library. And some SRFI-64 compatible
126    assertions are added. It is a temporary solution and will be replaced with
127    full SRFI-64 implementation in future release
128
129  - %%require-module and scm_require_module(). 'use' and scm_use() have been
130    deprecated and will be removed in SigScheme 0.9.0
131
132  - System-installed libraries written in Scheme are introduced. And to manage
133    them, scm_set_system_load_path() and %%system-load-path have been added
134
135  - New character codec related procedures %%current-char-codec,
136    %%set-current-char-codec!, with-char-codec and %%string-reconstruct!
137
138  - New port handling procedures %%current-error-port,
139    %%set-current-input-port!, %%set-current-output-port!,
140    %%set-current-error-port!
141
142  - New debugging procedures %%pair-mutable?, %%string-mutable?,
143    %%vector-mutable?
144
145  - New procedure sscm-version for version information
146
147* Specification changes
148
149  - SRFI-75 characters have been turned into R6RS (R5.92RS) characters,
150    including configuration names
151
152  - Make Shift_JIS encoding name (CES) and Unicode CCS names of the codec API
153    proper
154
155  - Accept any non-ASCII singlebyte values on integer->char, make-string and
156    string-fill! when !SCM_USE_MULTIBYTE_CHAR
157
158  - Replace implicit filler value ' ' for make-string with '?' to avoid wrong
159    assumption by user
160
161  - make-string, string-fill! and vector-fill! now returns SCM_UNDEF instead of
162    the modified object
163
164  - Second argument argv is added to scm_initialize() and thus incompatible
165    with 0.7.x.
166
167  - [R5RS] R5RS hygienic macros is disabled by default in all configurations
168    but 'dev' since it has a considerable bug (such as infinite loop on
169    test-srfi1-another.scm)
170
171  - call-with-input-file, call-with-output-file, with-input-from-file and
172    with-output-to-file are re-implemented in lib/sigscheme-init.scm. The
173    standard current ports handling on with-input-from-file and
174    with-output-to-file are now continuation-safe by dynamic-wind
175
176  - Continuation implementation now uses sigsetjmp(3) and siglongjmp(3) if
177    available
178
179* Fixes
180
181  - [CRITICAL] Fix unterminated string generation on singlebyte character codec
182
183  - [R5RS] Fix multiple values inacceptance of call-with-values continuation
184    such as (receive (x y) (call/cc (lambda (k) (k 0 1))))
185
186  - [SRFI-38] Fix broken execution by misinitialized internal hash table
187
188  - Fix string-length on multibyte string invalidly counted based on current
189    char codec. It is inconsistent with string length recorded in string object
190
191  - [R5RS] Fix error on (integer->char 0) on non-Unicode codecs
192
193  - [R6RS] Fix invalid Unicode character acception on integer->char
194
195  - Fix unexpected memory exhaustion on negative length on make-string
196
197  - [SRFI-2] Fix body-less forms rejection on and-let* such as (and-let* ())
198
199  - [R5RS] Fix overflow error by a long number on string->number with #f
200
201  - [R5RS] Fix invalid assertion on modifying optional arguments to a dotted or
202    circular list (see test-misc.scm). This bug only appeared on --enable-debug
203
204  - Fix reading unterminated quote as (quote #<eof>)
205
206  - [SIOD] Fix defining '=' as SIOD-compatible version regardless of
207    --enable-compat-siod-bugs
208
209* Others
210
211  - New document multibyte.txt about multibyte character processing has been
212    added
213
214  - Code validation for R5RS characters, all R5RS string procedures, R5RS
215    vectors, SRFI-2, SRFI-8 and Multibyte character processing have been done
216    and now can be used for production codes
217
218  - SRFI-1 List Library is partially validated, but expected as usable quality.
219    Though C part is fully validated, the Scheme part imported from the
220    reference implementation of SRFI-1 is not fully validated. See
221    test/test-srfi1-another.scm for validation status. The procedures that not
222    validated only have header comment such as ";; delete-duplicates" in the
223    file.
224
225
226Overview of changes from 0.7.5 to 0.7.6
227==
228
229* Fixes
230
231 - [CRITICAL] Fix memory alighnment issue in symbol name.
232 - [CRITICAL] Fix possible bug in string buffer.
233 - Plug possible memory leak.
234 - Fix make test in test-string-cmp.
235 - Fix compilation on Mac OS X 10.5
236 - Support OpenBSD PowerPC and x86_64 in libgcroots
237
238
239Overview of changes from 0.7.4 to 0.7.5
240==
241
242* New features
243
244  - Add SIOD compatibility about syntax 'if'.
245  - Revise the SRFI-75 support into R6RS (R5.92RS) characters.
246
247
248Overview of changes from 0.7.3 to 0.7.4
249==
250
251* New features
252
253  - %%prealloc-heaps procedure for memory consumptive applications
254
255
256Overview of changes from 0.7.2 to 0.7.3
257==
258
259* Fixes
260
261  - [CRITICAL] Fix broken libgcroots compilation on SPARC and IA-64 (NIIBE
262    Yutaka)
263
264  - Fix broken eval_state passing in call() on possible configurations that
265    (sizeof(ScmObj) != sizeof(void *))
266
267  - Fix some build problems
268
269  - Suppress warnings
270
271
272Overview of changes from 0.7.1 to 0.7.2
273==
274
275* Fixes
276
277  - [CRITICAL] Fix broken libgcroots (Etsushi)
278
279  - Fix distribution making procedure
280
281  - Fix '-no-cpp-precomp' warning on gcc
282
283  - Change To: mail address of make-report.sh which does not have size
284    limitation
285
286
287Overview of changes from 0.6.1 to 0.7.1
288==
289
290* New features
291
292  - All particular language features and behaviors have become configurable via
293    --enable and --disable options of the configure script, with automated
294    feature dependencies resolution and conflict detection
295
296  - The Cutter-based C testing framework has been replaced with the new
297    framework developed by Jun Inoue. Simply type 'make check' to run the
298    tests. All of old contents of test-c/ have been removed, and test-c2/ has
299    been renamed to test-c/. Be careful to read old logs.
300
301  - "internal definitions" and "strict toplevel definitions validation"
302    features have been configurable
303
304  - Add optional duplicate variable check to 'let', 'let*', 'letrec' and 'do'
305    (it is not required by R5RS)
306
307  - [R6RS] R6RS (R5.91RS) compatible 'fixnum-width' procedure
308
309  - SSCM_VERSION_REQUIRE() macro
310
311  - Add pkg-config support
312
313* Specification changes
314
315  - [R5RS] Remove 'delay' and 'force' (temporarily) since they completely
316    violates R5RS definitions
317
318  - [R5RS] Proper tail recursion conformance of 'eval' has been marked as
319    'uncertain'
320
321  - [SRFI-23] Display error message and optional objects as same as the
322    reference implementation of SRFI-23
323
324  - [SRFI-34] Add 'current handler' to error object to behave as same as the
325    reference implementation of SRFI-34 'raise'
326
327  - [SRFI-77, R6RS] The SRFI-77 procedures 'least-fixnum' and 'greatest-fixnum'
328    have been upgraded to R6RS (R5.91RS) (nothing is actually changed)
329
330  - The API for function call with GC-ready stack has been changed to resolve
331    corrupted GC problem on SPARC and IA-64. It needs API change
332
333  - Definition of dotted list length is changed to SRFI-1's from
334    SigScheme-speciific one. SCM_LISTLEN_DOTTED(), SCM_DOTTED_LISTP() and other
335    dotted list-related macros and functions have been changed so
336
337  - Remove initial hyphen support for symbols (such as '-sym). Use
338    (string->symbol "-sym") instead
339
340  - Remove SIOD-compatible external representation of eof value '(eof)'
341
342  - (scm_set_lib_path): Change to holding copied library path string
343
344  - (scm_return_value): Removed
345
346  - Change the low-level port API to fix the design error about error handling
347    (get_byte() and peek_byte() were not able to detect read error)
348
349  - Withdraw sigscheme-stdint.h. Use scmint.h instead
350
351  - The --enable-configuration=CONF option of the configure is renamed to
352    --enable-conf=CONF
353
354  - The --enable-multibyte=ENCODING option of the configure is replaced with
355    --enable-default-encoding=ENCODING, and --enable-ENCODING options are also
356    added
357
358* Fixes
359
360  [R5RS] and [SRFI-n] tags indicate specification conformance fixes.
361
362  - [CRITICAL] Fix crashes by broken va_list passing of format.c on x86_64
363    platform
364
365  - [CRITICAL] Fix corrupted GC on some architectures such as SPARC and IA-64
366    with libgcroots
367
368  - [CRITICAL] Fix crashes by corrupted GC mark on stack on specific platforms
369    that have (alignof(ScmObj) < sizeof(ScmObj)), such as m68k
370
371  - [CRITICAL] Fix potential SEGV on long string parsing
372
373  - [CRITICAL] Fix possible crash on parsing R5RS-reserved chars |[]{}
374
375  - [CRITICAL] Fix broken GC on systems that have 8-byte aligned malloc(3) such
376    as Cygwin
377
378  - [CRITICAL] Fix broken 64-bit data model capability of storage-compact
379
380  - [CRITICAL] Fix broken ScmBaseCharPort inheritance of ScmSingleByteCharPort
381    which may cause SEGV
382
383  - [R5RS] Fix invalid acceptance of definition form on where neither toplevel
384    nor internal definition is allowed
385
386  - [R5RS] Fix invalid acceptance of 'begin' that contains definitions and
387    expressions intermixed
388
389  - [R5RS] Fix invalid acceptance of <body> that contains definitions and
390    expressions intermixed on 'let', 'let*', 'letrec' and function form
391    'define'
392
393  - [R5RS] Fix syntactic keyword to value evaluation that only bound to syntax
394    or macro (i.e. (eq? if and) has been invalidated). But binding syntactic
395    keywords to first-class objects such as (define else 3) and (define do 4)
396    are still allowed
397
398  - [R5RS] Fix first-class binding objects acceptance of let-syntax,
399    letrec-syntax and define-syntax
400
401  - [R5RS] Fix invalid no-expressions <body> acceptance of 'let', 'let*',
402    'letrec' and function form 'define'
403
404  - [R5RS] Fix invalid acceptance of binding syntactic keyword as value on
405    'define', 'let', 'let*', 'letrec' and 'do'
406
407  - [R5RS] Fix broken per-iteration env isolation of 'do'
408
409  - [R5RS] Fix proper tail recursion incapability of '=>' form of 'cond'
410
411  - [R5RS] Fix invalid acceptance of cond-like '=>' form of 'case' which is not
412    defined in R5RS
413
414  - [R5RS] Fix broken result of 'modulo' on no-remainder cases
415
416  - [R5RS] Fix improper list acceptance on single-arg map
417
418  - [R5RS] Fix improper tail recursion of call-with-values on a corner case
419
420  - [R5RS] Fix broken improper tail handling of 'list-ref'
421
422  - [R5RS] Fix improper list acceptance of 'reverse'
423
424  - [R5RS] Reject invalid number strings such as "0xa" and " 1" on
425    'string->number'
426
427  - [R5RS] Reject invalid number literals such as "#x0xa"
428
429  - [SRFI-38] Fix inacceptance of optional 'optarg' argument of
430    'write-with-shared-structure'
431
432  - [SRFI-48] Fix optional port argument inacceptance of 'pretty-print'
433
434  - [SRFI-48] Fix broken number prefix acceptance such as "~,f", "~1,f", "~,1f"
435
436  - [SRFI-60] Fix invalid result of (logand). Now it returns -1 as same
437    as the reference implementation
438
439  - [MAJOR] Add lacking or incomplete error handlings for port operations
440
441  - [MAJOR] Fix incomplete singlebyte character support
442
443  - [MAJOR] Fix broken sign extention for 8-bit char on string port read
444
445  - [MAJOR] Fix broken out of range error detection of string->number which
446    fails every conversion once after the error has occurred
447
448  - [MAJOR] Fix possible crash on parsing script prelude longer than 64 chars
449
450  - [MAJOR] Fix possible crash on parsing script prelude that only has
451    "#! /usr/bin/env"
452
453  - [MAJOR] Fix a broken error handling on character encoding switching when
454    !SCM_USE_MULTIBYTE_CHAR
455
456  - [MAJOR] Fix infinite loop on raising error objects that contain circular
457    list when SCM_USE_HYGIENIC_MACRO
458
459  - [MAJOR] Fix compile error on environments that lacks stdint.h -compatible
460    definitions
461
462  - [MAJOR] Fix missized-cast of 'quotient' which results a broken value on
463    64-bit configurations
464
465  - [MAJOR] Fix broken evaluation of quasiquoted vectors splicing with improper
466    list
467
468  - [MAJOR] Fix 64-bit capability of quasiquoted vectors
469
470  - [MAJOR] Fix passing circular list into error object when SRFI-38 is not
471    enabled
472
473  - Fix '0' prefix incapability on a maximum-length binary number literal. See
474    "R5RS conformance: Numbers: Literals" subsection of doc/spec.txt for
475    further details
476
477  - Fix possible crash of the broken GC protection on initialization
478
479  - Fix a broken type handling appeares on (equal? macro1 macro2) on
480    storage-compact
481
482  - Fix broken procedure invocation appears on a minor build configuration
483
484  - Fix broken body result of %%closure-code when body-length == 1
485
486  - Fix possible datum index overflow of SRFI-38 write/ss on 64-bit platforms
487
488  - Fix acceptable pathname length of a script name of sscm command previously
489    one char lesser than maximum
490
491  - Fix broken aggregated global variables handling
492
493  - Fix writable static data feature dependency
494
495  - Fix broken max heap size configuration
496
497  - Fix crashes on 'make check' in test-c2/ on x86_64-unknown-linux-gnu
498
499  - Fix unwanted test-c2/*-coll.c removal on --disable-maintainer-mode
500
501* Others
502
503  - The maintainer of the software has been succeeded by YAMAMOTO Kengo a.k.a
504    YamaKen
505
506
507Overview of changes from 0.5.0 (r3097 + private modifications) to 0.6.1
508==
509* New features
510
511  - Support R5RS hygienic macros
512
513  - Support format strings (covers SRFI-28 and SRFI-48)
514
515  - Add global symbol exportation control method in portable way (see
516    doc/global-obj.txt)
517
518  - Add experimental support for embedded platforms that lack writable static
519    data, such as BREW or Symbian OS (see doc/global-obj.txt)
520
521* Fixes
522
523  - Make installed libsscm and header files workable
524
525
526Overview of changes from 0.5.0-alpha (r2902 + private modifications) to 0.5.0
527==
528* New features
529
530  - Support 64-bit data models (storage-compact is not yet)
531
532  - Add lacking character predicates and complete all R5RS character procedures
533
534  - Add lacking string predicates and complete all R5RS string procedures
535
536  - Support constant list (storage-compact does not)
537
538  - Support constant vector (storage-compact is not yet)
539
540  - Add quote-less vector literal check
541
542* Fixes
543
544  - Make behavior of internal definitions strictly conforming to R5RS
545
546  - Make C99-dependent stdint.h unneeded
547