6.0.0
- Core libraries<br>- All modules specified by the R7RS small language are now available in<br>the core system.<br>- The internal string representation has been converted to UTF-8,<br>making strings fully UNICODE capable.<br>- The (chicken blob) module has been replaced with (chicken bytevector),<br>containing R7RS compatible bytevector operations. Bytevectors are<br>now fully equivalent to SRFI-4 u8vectors.<br>- The read-syntax for blobs (`#${...}') has been removed. Bytevectors<br>can be read using `#u8(...)' or `#u8"..."'.<br>- `char-name' now allows removing a named character definition.<br>- `open-input-file' and `open-output-file' accept a file encoding,<br>supported are currently UTF-8 (the default) and Latin-1 (ISO-8859-1).<br>- `file-read', `file-write', 'set-pseudo-random-seed!' and `random-bytes'<br>require a bytevector argument and do not accept strings.<br>- `process-fork', `process-run', `process' and `process*' return now<br>a process-object instead of a PID, use process record accessors to<br>retrieve exit-status and input/output ports. `process-wait' and<br>`process-signal' accept either a PID or a process object as<br>argument.<br>- File-locking operations in the (chicken file posix) module now use the<br>flock(2) system call, operator over whole files, are thread-safe and<br>use a simpler interface. `file-test-lock' has been removed.<br>- `read-u8vector', `read-u8vector!' and `write-u8vector' have been<br>removed, use the equivalent operations from the (chicken io)<br>module instead.<br>- Added `read-bytevector', `read-bytevector!' and `write-bytevector'<br>to the (chicken io) module.<br>- Removed `set-port-name!', use the SRFI-17 setter for `port-name'<br>instead.<br>- Added `port-encoding' to the (chicken port) module.<br>- `make-input-port' and `make-output-port' take their optional<br>port methods as keyword arguments now.<br>- Added `make-binary-input-port' and `make-binary-output-port'.<br>- Locatives on strings are now indexed by code-point, not byte.<br>- `symbol-escape' now also controls whether symbols are printed in<br>escaped ("|...|") mode or not.<br>- Symbol printing is stricter in deciding when symbols should be escaped<br>or not.<br>- The following primitives have been moved from (chicken base)<br>to R7RS modules:<br>- `exact-integer?`, `exact-integer-sqrt?', `vector-copy!',<br>`make-parameter', `call/cc', `open-input-string',<br>`open-output-string', `get-output-string', `input-port-open?',<br>`output-port-open?', `parameterize' and `port?' moved from the<br>(chicken base) to the (scheme base) module.<br>- `case-lambda' moved from (chicken base) to (scheme case-lambda).<br>- `features' moved from (chicken platform) to (scheme base).<br>- `write-string' moved from (chicken io) to (scheme base) and its<br>signature changed to the R7RS one.<br>- `define-record-type' moved to (scheme base) and is generative,<br>to be compliant with R7RS.<br>- `syntax-error' has been removed from (chicken syntax) and is now a<br>macro and part of (scheme base).<br>- `record-instance?' and `make-record-instance' accept non-symbolic<br>type specifiers to support generative record types.<br>- The new (chicken number-vector) module now provides a superset of<br>SRFI-4, including 64 and 128-bit complex number vectors, the `srfi-4'<br>module is still available but exports only those procedures as are<br>specified in SRFI-4.<br>- The second (optional) parameter for `load' and `load-relative' may be<br>either an environment or an evaluation procedure.<br>- The module aliases `srfi-0', `srfi-6', `srfi-9', `srfi-11', `srfi-23',<br>`srfi-39' and `srfi-98' have been removed (all of these are covered by<br>R7RS).<br>- The modules `r4rs', `r5rs', `r4rs-null' and `r5rs-null' have been<br>renamed to `(scheme XXX)'.<br>- Hexadecimal escape sequences in strings and extended symbols must be<br>terminated by the `;' character, following R7RS.<br>- The `#ci'/`#cs' read syntaxes have been removed, use<br>`#![no-]fold-case'<br>markers instead.<br>- `include' and `include-relative' accept multiple filenames,<br>`include-ci' has been added.<br>- Added `include-path' to (chicken platform) module.<br>- Added `number-vector-data' to (chicken memory representation) module.<br>- `define-library' has been extended to support the `export-all'<br>specification.<br>- The platform-identifier "mingw32" has been renamed to "mingw".<br>- Library procedures that return paths now always convert them to<br>contain forward slashes, 'make-pathname' always uses "/" for path<br>separation.<br>- Added `expand1' to (chicken syntax) module for expanding a macro<br>only once, also added the ",x1" command to "csi" for this.<br>- Added the (chicken version) module.<br>- `delete-file*' and `delete-file' now behave consistently with<br>broken symlinks.<br>- `number->string' now accepts bases up to 36, where before it only accepted<br>bases up to 16 (thanks to Diego A. Mundo)<br>- `string->number' now handles ambiguous cases involving the character "i"<br>in bases higher than 18 more consistently.<br>- `make-rectangular' returns a complex number if the imaginary part<br>is inexact zero.<br>- `string->number' and the reader accept and handle correctly complex<br>numbers with a negative inexact zero as the imaginary...