Overview of changes from 0.7.4 to 0.7.5
==

* New features

  - Add SIOD compatibility about syntax 'if'.
  - Revise the SRFI-75 support into R6RS (R5.92RS) characters.


Overview of changes from 0.7.3 to 0.7.4
==

* New features

  - %%prealloc-heaps procedure for memory consumptive applications


Overview of changes from 0.7.2 to 0.7.3
==

* Fixes

  - [CRITICAL] Fix broken libgcroots compilation on SPARC and IA-64 (NIIBE
    Yutaka)

  - Fix broken eval_state passing in call() on possible configurations that
    (sizeof(ScmObj) != sizeof(void *))

  - Fix some build problems

  - Suppress warnings


Overview of changes from 0.7.1 to 0.7.2
==

* Fixes

  - [CRITICAL] Fix broken libgcroots (Etsushi)

  - Fix distribution making procedure

  - Fix '-no-cpp-precomp' warning on gcc

  - Change To: mail address of make-report.sh which does not have size
    limitation


Overview of changes from 0.6.1 to 0.7.1
==

* New features

  - All particular language features and behaviors have become configurable via
    --enable and --disable options of the configure script, with automated
    feature dependencies resolution and conflict detection

  - The Cutter-based C testing framework has been replaced with the new
    framework developed by Jun Inoue. Simply type 'make check' to run the
    tests. All of old contents of test-c/ have been removed, and test-c2/ has
    been renamed to test-c/. Be careful to read old logs.

  - "internal definitions" and "strict toplevel definitions validation"
    features have been configurable

  - Add optional duplicate variable check to 'let', 'let*', 'letrec' and 'do'
    (it is not required by R5RS)

  - [R6RS] R6RS (R5.91RS) compatible 'fixnum-width' procedure

  - SSCM_VERSION_REQUIRE() macro

  - Add pkg-config support

* Specification changes

  - [R5RS] Remove 'delay' and 'force' (temporarily) since they completely
    violates R5RS definitions

  - [R5RS] Proper tail recursion conformance of 'eval' has been marked as
    'uncertain'

  - [SRFI-23] Display error message and optional objects as same as the
    reference implementation of SRFI-23

  - [SRFI-34] Add 'current handler' to error object to behave as same as the
    reference implementation of SRFI-34 'raise'

  - [SRFI-77, R6RS] The SRFI-77 procedures 'least-fixnum' and 'greatest-fixnum'
    have been upgraded to R6RS (R5.91RS) (nothing is actually changed)

  - The API for function call with GC-ready stack has been changed to resolve
    corrupted GC problem on SPARC and IA-64. It needs API change

  - Definition of dotted list length is changed to SRFI-1's from
    SigScheme-speciific one. SCM_LISTLEN_DOTTED(), SCM_DOTTED_LISTP() and other
    dotted list-related macros and functions have been changed so

  - Remove initial hyphen support for symbols (such as '-sym). Use
    (string->symbol "-sym") instead

  - Remove SIOD-compatible external representation of eof value '(eof)'

  - (scm_set_lib_path): Change to holding copied library path string

  - (scm_return_value): Removed

  - Change the low-level port API to fix the design error about error handling
    (get_byte() and peek_byte() were not able to detect read error)

  - Withdraw sigscheme-stdint.h. Use scmint.h instead

  - The --enable-configuration=CONF option of the configure is renamed to
    --enable-conf=CONF

  - The --enable-multibyte=ENCODING option of the configure is replaced with
    --enable-default-encoding=ENCODING, and --enable-ENCODING options are also
    added

* Fixes

  [R5RS] and [SRFI-n] tags indicate specification conformance fixes.

  - [CRITICAL] Fix crashes by broken va_list passing of format.c on x86_64
    platform

  - [CRITICAL] Fix corrupted GC on some architectures such as SPARC and IA-64
    with libgcroots

  - [CRITICAL] Fix crashes by corrupted GC mark on stack on specific platforms
    that have (alignof(ScmObj) < sizeof(ScmObj)), such as m68k

  - [CRITICAL] Fix potential SEGV on long string parsing

  - [CRITICAL] Fix possible crash on parsing R5RS-reserved chars |[]{}

  - [CRITICAL] Fix broken GC on systems that have 8-byte aligned malloc(3) such
    as Cygwin

  - [CRITICAL] Fix broken 64-bit data model capability of storage-compact

  - [CRITICAL] Fix broken ScmBaseCharPort inheritance of ScmSingleByteCharPort
    which may cause SEGV

  - [R5RS] Fix invalid acceptance of definition form on where neither toplevel
    nor internal definition is allowed

  - [R5RS] Fix invalid acceptance of 'begin' that contains definitions and
    expressions intermixed

  - [R5RS] Fix invalid acceptance of <body> that contains definitions and
    expressions intermixed on 'let', 'let*', 'letrec' and function form
    'define'

  - [R5RS] Fix syntactic keyword to value evaluation that only bound to syntax
    or macro (i.e. (eq? if and) has been invalidated). But binding syntactic
    keywords to first-class objects such as (define else 3) and (define do 4)
    are still allowed

  - [R5RS] Fix first-class binding objects acceptance of let-syntax,
    letrec-syntax and define-syntax

  - [R5RS] Fix invalid no-expressions <body> acceptance of 'let', 'let*',
    'letrec' and function form 'define'

  - [R5RS] Fix invalid acceptance of binding syntactic keyword as value on
    'define', 'let', 'let*', 'letrec' and 'do'

  - [R5RS] Fix broken per-iteration env isolation of 'do'

  - [R5RS] Fix proper tail recursion incapability of '=>' form of 'cond'

  - [R5RS] Fix invalid acceptance of cond-like '=>' form of 'case' which is not
    defined in R5RS

  - [R5RS] Fix broken result of 'modulo' on no-remainder cases

  - [R5RS] Fix improper list acceptance on single-arg map

  - [R5RS] Fix improper tail recursion of call-with-values on a corner case

  - [R5RS] Fix broken improper tail handling of 'list-ref'

  - [R5RS] Fix improper list acceptance of 'reverse'

  - [R5RS] Reject invalid number strings such as "0xa" and " 1" on
    'string->number'

  - [R5RS] Reject invalid number literals such as "#x0xa"

  - [SRFI-38] Fix inacceptance of optional 'optarg' argument of
    'write-with-shared-structure'

  - [SRFI-48] Fix optional port argument inacceptance of 'pretty-print'

  - [SRFI-48] Fix broken number prefix acceptance such as "~,f", "~1,f", "~,1f"

  - [SRFI-60] Fix invalid result of (logand). Now it returns -1 as same
    as the reference implementation

  - [MAJOR] Add lacking or incomplete error handlings for port operations

  - [MAJOR] Fix incomplete singlebyte charater support

  - [MAJOR] Fix broken sign extention for 8-bit char on string port read

  - [MAJOR] Fix broken out of range error detection of string->number which
    fails every conversion once after the error has occurred

  - [MAJOR] Fix possible crash on parsing script prelude longer than 64 chars

  - [MAJOR] Fix possible crash on parsing script prelude that only has
    "#! /usr/bin/env"

  - [MAJOR] Fix a broken error handling on character encoding switching when
    !SCM_USE_MULTIBYTE_CHAR

  - [MAJOR] Fix infinite loop on raising error objects that contain circular
    list when SCM_USE_HYGIENIC_MACRO

  - [MAJOR] Fix compile error on environments that lacks stdint.h -compatible
    definitions

  - [MAJOR] Fix missized-cast of 'quotient' which results a broken value on
    64-bit configurations

  - [MAJOR] Fix broken evaluation of quasiquoted vectors splicing with improper
    list

  - [MAJOR] Fix 64-bit capability of quasiquoted vectors

  - [MAJOR] Fix passing circular list into error object when SRFI-38 is not
    enabled

  - Fix '0' prefix incapability on a maximum-length binary number literal. See
    "R5RS conformance: Numbers: Literals" subsection of doc/spec.txt for
    further details

  - Fix possible crash of the broken GC protection on initialization

  - Fix a broken type handling appeares on (equal? macro1 macro2) on
    storage-compact

  - Fix broken procedure invocation appears on a minor build configuration

  - Fix broken body result of %%closure-code when body-length == 1

  - Fix possible datum index overflow of SRFI-38 write/ss on 64-bit platforms

  - Fix acceptable pathname length of a script name of sscm command previously
    one char lesser than maximum

  - Fix broken aggregated global variables handling

  - Fix writable static data feature dependency

  - Fix broken max heap size configuration

  - Fix crashes on 'make check' in test-c2/ on x86_64-unknown-linux-gnu

  - Fix unwanted test-c2/*-coll.c removal on --disable-maintainer-mode

* Others

  - The maintainer of the software has been succeeded by YAMAMOTO Kengo a.k.a
    YamaKen


Overview of changes from 0.5.0 (r3097 + private modifications) to 0.6.1
==
* New features

  - Support R5RS hygienic macros

  - Support format strings (covers SRFI-28 and SRFI-48)

  - Add global symbol exportation control method in portable way (see
    doc/global-obj.txt)

  - Add experimental support for embedded platforms that lack writable static
    data, such as BREW or Symbian OS (see doc/global-obj.txt)

* Fixes

  - Make installed libsscm and header files workable


Overview of changes from 0.5.0-alpha (r2902 + private modifications) to 0.5.0
==
* New features

  - Support 64-bit data models (storage-compact is not yet)

  - Add lacking character predicates and complete all R5RS character procedures

  - Add lacking string predicates and complete all R5RS string procedures

  - Support constant list (storage-compact does not)

  - Support constant vector (storage-compact is not yet)

  - Add quote-less vector literal check

* Fixes

  - Make behavior of internal definitions strictly conforming to R5RS

  - Make C99-dependent stdint.h unneeded
