pkgsrc/lang/chicken
asau e0f90295cd Update to Chicken 4.9.0.1
Tests now work without installing package first.


Changes since previous package:

4.9.0.1

- Runtime library
  - C_MINOR_VERSION changed to 9; feature identifier chicken-4.8 => chicken-4.9

4.9.0

- Security fixes
  - CVE-2014-3776: read-u8vector! no longer reads beyond its buffer when
    length is #f (thanks to Seth Alves).
  - CVE-2013-4385: read-string! no longer reads beyond its buffer when
    length is #f.
  - CVE-2013-1874: ./.csirc is no longer loaded from the current directory
    upon startup of csi, which could lead to untrusted code execution.
    (thanks to Florian Zumbiehl)
  - CVE-2013-2024: On *nix, the qs procedure now single-quotes everything
    instead of relying on a blacklist of shell characters to be escaped.
    On Windows, it properly duplicates double-quote characters.  (thanks
    to Florian Zumbiehl)
  - CVE-2013-2075: Use POSIX poll() in other places where select() was
    still being used.  (thanks to Florian Zumbiehl and Joerg Wittenberger)
  - CVE-2012-6122: Use POSIX poll() on systems where available.  This avoids a
    design flaw in select(); it supports no more than FD_SETSIZE descriptors.

- Core libraries
  - Fix subvector when the TO optional argument equals the given vector
    length (#1097)
  - Unit extras now implicitly depends on ports.  ports no longer
     implicitly depends on extras.  This may break programs which don't
     use modules and forgot to require ports but use procedures from it.
  - Support has been added for the space-safe R7RS macro "delay-force".
  - Export file-type from the posix unit (thanks to Alan Post).
  - SRFI-4 s8vectors now work correctly in compiled code on PowerPC and ARM.
  - thread-join! now works correctly even if the waiting thread was
     prematurely woken up by a signal.
  - unsetenv has been fixed on Windows.
  - The process procedure has been fixed on Windows.
  - Nonblocking behaviour on sockets has been fixed on Windows.
  - Possible race condition while handling TCP errors has been fixed.
  - The posix unit will no longer hang upon any error in Windows.
  - resize-vector no longer crashes when reducing the size of the vector.
  - Distinct types for boolean true and false have been added to the
    scrutinizer.
  - Fixed bugs in string-trim-right, string-index-right and
    string-skip-right, from SRFI-13
  - read-line no longer returns trailing CRs in rare cases on TCP ports (#568)
  - write and pp now correctly use escape sequences for control characters
     (thanks to Florian Zumbiehl)
  - posix: memory-mapped file support for Windows (thanks to "rivo")
  - posix: find-file's test argument now also accepts SRE forms.
  - numerator and denominator now accept inexact numbers, as per R5RS
    (reported by John Cowan).
  - Implicit $VAR- and ~-expansion in pathnames have been deprecated (#1001)
  - Fixed EINTR handling in process-wait and when reading from file ports.
  - Irregex is updated to 0.9.2, which includes bugfixes and faster submatches.
  - Compile-time expansions for "[sf]printf" are slightly more efficient.
  - Removed the deprecated "always?", "never?", "shuffle" and "none?" procedures.
  - Fixed problem "make-pathname" that returned an absolute path if given
    a relative one without a directory argument.
  - The implementation of promises has been made more efficient.
  - Removed the deprecated "c-runtime", "null-pointer?" and "pointer-offset"
    procedures.
  - The deprecated alias "mutate-procedure" for "mutate-procedure!" has
    been removed.
  - On 64-bit systems the feature identifier "64bit" is registered.
  - "process-fork" accepts an optional argument that specifies
    wether other threads should be terminated in the child process.
  - The "signal/bus" signal identifier was missing.
  - Added setter-procedure for "signal-mask".
  - Added "recursive-hash-max-length" and "recursive-hash-max-depth"
    parameters (srfi-69).

- Platform support
  - CHICKEN can now be built on AIX (contributed by Erik Falor)
  - CHICKEN can now be built on GNU Hurd (contributed by Christian Kellermann)
  - Basic support has been added for building Android and iOS binaries (see
    the "README" file for caveats and pitfalls) (contributed by Felix Winkelmann
    from bevuta IT GmbH)
  - Added support for 64-bit Windows (consult the "README" file for more
    information).

- Runtime system
  - finalizers on constants are ignored in compiled code because compiled
    constants are never GCed (before, the finalizer would be incorrectly
    invoked after the first GC).  (Reported by "Pluijzer")
  - The call trace buffer is now also resizable at runtime via ##sys#resize-trace-buffer.
  - C_zap_strings and ##sys#zap-strings (undocumented) have been deprecated.
  - Special events in poll() are now handled, avoiding hangs in threaded apps.
  - When invoking procedures with many rest arguments directly (not via APPLY),
    raise an error when argument count limit was reached instead of crashing.
  - When the maximum allowed heap size is reached, panic instead of crashing.
  - The code generated for mutating data destructively is partially inlined
    and thus slightly more efficient.
  - Fixed incorrect code in the foreign argument conversion for
    "unsigned-integer64" (#955).  For unsigned-integer, integer64 and
    unsigned-integer64, disallow floating-point numbers.  Fix behavior
    on 32-bit systems.
  - On systems that provide sigprocmask(2), segmentation violations, illegal
    instruction signals, bus errors and floating-point exceptions are now caught
    and trigger normal error-processing (including a backtrace). The handling
    of these so called "serious" signals can be disabled by passing the
    "-:S" runtime option to executables.
  - Reclamation of unused interned symbols (enabled with the "-:w" runtime option)
    works much better now.

- Build system
  - The tests can now be run without having to first install CHICKEN.
  - Fixed a dependency problem that made it impossible to build the distribution
    tarball on Windows with the mingw compiler.
  - Increased the "binary compatibility version" to 7.

- Tools
  - "csc"
    - "-z origin" is now passed as a linker option on FreeBSD when
      compiling for deployment (thanks to Jules Altfas & Vitaly Magerya)
    - "-deploy" works now on FreeBSD (thanks to Jules Altfas and
      Vitaly Magerya), OpenBSD and NetBSD (see README for NetBSD).
    - added "-oi"/"-ot" options as alternatives to "-emit-inline-file"
       and "-emit-type-file", respectively; "-n" has been deprecated.
    - .c/.o files are no longer overwritten when they have the same basename
      as a Scheme source file (i.e. "csc foo.scm foo.c -o foo" works now).
  - "chicken-install"
    - "-deploy" now correctly installs dependencies of
      deployed eggs under the deployment directory instead of globally.
    - Full URI syntax is now supported for proxy environment variables
      (thanks to Michele La Monaca)
  - "chicken-status"
    - Added -eggs command line option to list installed eggs
  - misc
    - Removed the deprecated "-v" options (use "-version" instead) in various
      core programs.
    - The runtime linker path for compiled executables was not set correctly
      on FreeBSD systems.  This has now been fixed.
    - Removed the deprecated "make" and "make/proc" facility from the
      "setup-api" module; also removed the deprecated "required-extension-version"
      and "required-chicken-version" procedures.

- Syntax
  - Added the aliases "&optional" and "&rest" as alternatives to "#!optional"
    and "#!rest" in type-declarations (suggested by Joerg Wittenberger).
  - Vectors, SRFI-4 number vectors and blobs are now self-evaluating for
     R7RS compatibility.  Being literal constants, they are implicitly quoted.
  - For R7RS compatibility, named character literals #\escape and #\null are
     supported as aliases for #\esc and #\nul.  WRITE will output R7RS names.
  - The CASE form accepts => proc syntax, like COND (as specified by R7RS).
  - letrec* was added for R7RS compatibility.  Plain letrec no longer behaves
    like letrec*.

- Compiler
  - the "inline" declaration does not force inlining anymore as recursive
    inlining could lead to non-termination of the compiler (thanks to
    Andrei Barbu).
  - Type-analysis ("scrutiny") is enabled by default now, unless
    "-optimize-level 0" or "-no-usual-integrations" is given.
  - The "-scrutinize" compiler option has been deprecated.
  - A new lightweight flow-analysis pass ("lfa2") has been added.
    Enable by passing the "-lfa2" option to the compiler.
  - The deprecated options "-disable-warning", "-heap-growth", "-heap-shrinkage"
    and "-heap-initial-size" have been removed.
  - Removed the deprecated "constant" declaration.
  - Removed the deprecated "-lambda-lift" and "-unboxing" compiler options.
  - Removed the deprecated "-V" compiler option.
  - Generated names for formal parameters of foreign functions are slightly
    more informative.
  - Unused references to variables that name intrinsics can be removed.
  - In the flow-analysis pass, matching of combinations of "list"/"list-of" and
    "or" types with has been made more reliable.
  - Fixed various bugs in the type database.

- Syntax expander
  - added "require-extension-for-syntax" and "use-for-syntax".
  - Extended syntactic definitions are now available by default in all
    evaluated code, particularly in code evaluated at runtime in compiled
    applications.
  - Removed the deprecated variant "(define-compiler-syntax (NAME . LLIST) BODY ...)"
    of "define-compiler-syntax".

- C API
  - Deprecated C_get_argument[_2] and C_get_environment_variable[_2] functions.
  - Removed the deprecated "__byte_vector" type.
2014-06-12 07:22:12 +00:00
..
patches Update to Chicken 4.9.0.1 2014-06-12 07:22:12 +00:00
DESCR
distinfo Update to Chicken 4.9.0.1 2014-06-12 07:22:12 +00:00
Makefile Update to Chicken 4.9.0.1 2014-06-12 07:22:12 +00:00
PLIST Update to Chicken 4.9.0.1 2014-06-12 07:22:12 +00:00