Subject: CVS commit: pkgsrc/lang/gauche
From: Aleksej Saushev
Date: 2010-12-16 04:42:09
Message id: 20101216034209.A178B175DD@cvs.netbsd.org

Log Message:
Update to Gauche 0.9.1

New in Gauche 0.9.1: Major Feature Enhancements

+ New Features
  o Extended formals: Built-in lambda, define etc. can
    recognize optional and keyword arguments, a la Common Lisp.
  o Enhanced module mechanism: Now you can rename, choose,
    or add prefix to the symbols when importing other modules.
  o Efficient record types: A new module gauche.record provides
    ERR5RS (srfi-99) compatible record types. It is also upper
    compatible to srfi-9 records.
  o More support for multithreaded applications: Thread-safe
    queue is added to util.queue, and thread-pool feature is
    provided by the new module control.thread-pool.
    Continuations can be passed between threads.
  o Partial continuations.
  o Enhanced Windows support.
  o New module: crypt.bcrypt: A module for Blowfish password hashing.
  o New module: srfi-98: portable environment variable lookup support.
  o New module: gauche.mop.propagate: Making object composition simpler.
  o New module: rfc.json: JSON parsing and construction.
+ Changes
  o The directory structure for Gauche installation has changed so
    that we can keep binary compatibility for the extension
    modules throughout 0.9.x releases.
  o Now it is an error to pass a keyword argument that isn't
    expected by the callee. It used to be a warning.
  o Regular expression re{,M} now means the same as re{0,M},
    which is compatible to Oniguruma.
+ Improvements
  o The compiler and the runtime got optimized more.
    The compiler now knows more about built-in procedures, and tries
    compile-time constant folding and/or inlining more aggressively.
    For example, sxml.ssax can parse XML document a lot faster.
  o ^ can be used in place of lambda, allowing more concise code.
    There's also convenience macros ^a, ^b, ... ^z and ^_ as
    abbreviations of lambda (a) etc.
  o ~ is added for universal accessing operator. (~ x y) is the same
    as (ref x y), and (~ x y z) is the same as (ref (ref x y) z),
    and so on. It can be used with generalized setter, e.g.
    (set! (~ array i) x).
  o define-syntax, let-syntax, and letrec-syntax are enhanced so that
    they can take a general expression in rhs, as far as it yields
    a syntactic transformer.
  o gauche.process: I/O redirection handling in run-process becomes
    more flexible.
  o rfc.http module now supports https connection (unix platforms only).
    Currently it relies on an external program (stunnel).
  o A new procedure current-load-path allows the program to know
    the file name it is being loaded from.
  o A new procedure .$ is introduced as an alternative name of compose.
  o Regular expressions now got read-write invariance. Some internal
    regexp routines are made public, giving users an easy way
    to construct and analyze regexp programatically.
  o rfc.822: New procedure: rfc822-date->date.
  o file.util: The procedure temporary-directory now became a parameter
    so that you can switch it when necessary. The default value is taken
    from (sys-tmpdir), which determines temporary directory in the
    recommended way of the platform; esp., it works on Windows native
    platforms. home-directory works on Windows, too.
    Procedures null-device and console-device are added to make it easier
    to write portable script across Unix and Windows platforms.
  o util.queue: New proceduers: any-in-queue, every-in-queue.
  o gauche.parseopt: When let-args encounters a command-line option
    that doesn't match any spec, it now raises a condition of type
    <parseopt-error> instead of <error>. The application can capture
    the condition to handle invalid command-line arguments.
  o gauche.uvector: New procedure uvector-size to obtain number of octets
    actually to be written out when the given uvector is written out
    by write-block.
  o dbm: A new procedure dbm-type->class allows an application to load
    appropriate dbm implementation at runtime. Utility scripts dbm/dump
    and dbm/restore are provided for easier backup and migration.
  o Procedure slot-pop! is added for the consistency with other
    *-push!/pop! API pairs.
  o When ref is used for object slot access, it can take default value
    in case the slot is unbound.
  o Made (set! (ref list k) value) work.
  o New procedures delete-keywords, delete-keywords!, tree-map-map,
    tree-map-for-each.
  o unwind-protect allows multiple handlers, as in CL.
  o sqrt now returns an exact number if the argument is exact and
    the result can be computed exactly. Also, R6RS's exact-integer-sqrt
    is added.
  o gauche.parameter: Parameters can be used with generalized set!.
  o The default-endian parameter is moved from binary.io module
    to the core, so that this parameter controls default endian
    of binary I/O in general. For example, read-block! and write-block
    of the gauche.uvector module now uses the value of this parameter
    as the default. A new procedure native-endian is added to retrieve
    the platform's native endianness.
  o More R6RS procedures: inexact, exact, real-valued?, rational-valued?,
    integer-valued?, div, mod, div0, mod0.

A number of bug fixes.

Files:
RevisionActionfile
1.55modifypkgsrc/lang/gauche/Makefile
1.24modifypkgsrc/lang/gauche/PLIST
1.27modifypkgsrc/lang/gauche/distinfo
1.11modifypkgsrc/lang/gauche/patches/patch-aa
1.9removepkgsrc/lang/gauche/patches/patch-ab
1.7removepkgsrc/lang/gauche/patches/patch-ah