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