Next | Query returned 110 messages, browsing 1 to 10 | Previous

History of commit frequency

CVS Commit History:


   2021-10-26 12:51:59 by Nia Alarie | Files touched by this commit (260)
Log message:
lang: Replace RMD160 checksums with BLAKE2s checksums

All checksums have been double-checked against existing RMD160 and
SHA512 hashes

The following distfiles could not be fetched (possibly fetched
conditionally?):

./lang/rust-bin/distinfo rust-bin-1.54.0/rust-1.54.0-aarch64-unknown-linux-gnu.tar.gz
./lang/rust-bin/distinfo \ 
rust-bin-1.54.0/rust-1.54.0-aarch64-unknown-linux-musl.tar.gz
./lang/rust-bin/distinfo rust-bin-1.54.0/rust-1.54.0-aarch64-unknown-netbsd.tar.gz
./lang/rust-bin/distinfo \ 
rust-bin-1.54.0/rust-1.54.0-armv7-unknown-netbsd-eabihf.tar.gz
./lang/rust-bin/distinfo rust-bin-1.54.0/rust-1.54.0-i686-unknown-linux-gnu.tar.gz
./lang/rust-bin/distinfo rust-bin-1.54.0/rust-1.54.0-powerpc-unknown-netbsd90.tar.gz
./lang/rust-bin/distinfo rust-bin-1.54.0/rust-1.54.0-sparc64-unknown-netbsd.tar.gz
./lang/rust-bin/distinfo rust-bin-1.54.0/rust-1.54.0-x86_64-apple-darwin.tar.gz
./lang/rust-bin/distinfo rust-bin-1.54.0/rust-1.54.0-x86_64-unknown-freebsd.tar.gz
./lang/rust-bin/distinfo rust-bin-1.54.0/rust-1.54.0-x86_64-unknown-linux-gnu.tar.gz
./lang/rust-bin/distinfo rust-bin-1.54.0/rust-1.54.0-x86_64-unknown-linux-musl.tar.gz
./lang/smlnj/distinfo smlnj-110.73/boot.ppc-unix.tgz
./lang/smlnj/distinfo smlnj-110.73/boot.sparc-unix.tgz
./lang/oracle-jre8/distinfo jce_policy-8.zip
./lang/oracle-jre8/distinfo jre-8u202-linux-i586.tar.gz
./lang/oracle-jre8/distinfo jre-8u202-linux-x64.tar.gz
./lang/oracle-jre8/distinfo jre-8u202-macosx-x64.tar.gz
./lang/oracle-jre8/distinfo jre-8u202-solaris-x64.tar.gz
./lang/oracle-jdk8/distinfo jdk-8u202-linux-i586.tar.gz
./lang/oracle-jdk8/distinfo jdk-8u202-linux-x64.tar.gz
./lang/oracle-jdk8/distinfo jdk-8u202-solaris-x64.tar.gz
./lang/ghc80/distinfo ghc-7.10.3-boot-x86_64-unknown-solaris2.tar.xz
./lang/ghc80/distinfo ghc-8.0.2-boot-i386-unknown-freebsd.tar.xz
./lang/ghc80/distinfo ghc-8.0.2-boot-x86_64-unknown-freebsd.tar.xz
./lang/gcc5-aux/distinfo ada-bootstrap.i386.freebsd.100B.tar.bz2
./lang/gcc5-aux/distinfo ada-bootstrap.i386.freebsd.84.tar.bz2
./lang/gcc5-aux/distinfo ada-bootstrap.x86_64.dragonfly.41.tar.bz2
./lang/gcc5-aux/distinfo ada-bootstrap.x86_64.freebsd.100B.tar.bz2
./lang/gcc5-aux/distinfo ada-bootstrap.x86_64.freebsd.84.tar.bz2
./lang/gcc5-aux/distinfo ada-bootstrap.x86_64.solaris.511.tar.bz2
./lang/rust/distinfo rust-1.53.0-aarch64-apple-darwin.tar.gz
./lang/rust/distinfo rust-1.53.0-aarch64-unknown-linux-gnu.tar.gz
./lang/rust/distinfo rust-1.53.0-aarch64-unknown-netbsd.tar.gz
./lang/rust/distinfo rust-1.53.0-aarch64_be-unknown-netbsd.tar.gz
./lang/rust/distinfo rust-1.53.0-arm-unknown-linux-gnueabihf.tar.gz
./lang/rust/distinfo rust-1.53.0-armv7-unknown-linux-gnueabihf.tar.gz
./lang/rust/distinfo rust-1.53.0-i686-unknown-linux-gnu.tar.gz
./lang/rust/distinfo rust-1.53.0-powerpc-unknown-netbsd.tar.gz
./lang/rust/distinfo rust-1.53.0-powerpc-unknown-netbsd90.tar.gz
./lang/rust/distinfo rust-1.53.0-sparc64-unknown-netbsd.tar.gz
./lang/rust/distinfo rust-1.53.0-x86_64-apple-darwin.tar.gz
./lang/rust/distinfo rust-1.53.0-x86_64-unknown-freebsd.tar.gz
./lang/rust/distinfo rust-1.53.0-x86_64-unknown-illumos.tar.gz
./lang/rust/distinfo rust-1.53.0-x86_64-unknown-linux-gnu.tar.gz
./lang/rust/distinfo rust-std-1.53.0-aarch64-apple-darwin.tar.gz
./lang/rust/distinfo rust-std-1.53.0-aarch64-unknown-linux-gnu.tar.gz
./lang/rust/distinfo rust-std-1.53.0-aarch64-unknown-netbsd.tar.gz
./lang/rust/distinfo rust-std-1.53.0-aarch64_be-unknown-netbsd.tar.gz
./lang/rust/distinfo rust-std-1.53.0-arm-unknown-linux-gnueabihf.tar.gz
./lang/rust/distinfo rust-std-1.53.0-armv7-unknown-linux-gnueabihf.tar.gz
./lang/rust/distinfo rust-std-1.53.0-i686-unknown-linux-gnu.tar.gz
./lang/rust/distinfo rust-std-1.53.0-powerpc-unknown-netbsd.tar.gz
./lang/rust/distinfo rust-std-1.53.0-powerpc-unknown-netbsd90.tar.gz
./lang/rust/distinfo rust-std-1.53.0-sparc64-unknown-netbsd.tar.gz
./lang/rust/distinfo rust-std-1.53.0-x86_64-apple-darwin.tar.gz
./lang/rust/distinfo rust-std-1.53.0-x86_64-unknown-freebsd.tar.gz
./lang/rust/distinfo rust-std-1.53.0-x86_64-unknown-linux-gnu.tar.gz
./lang/smlnj11072/distinfo smlnj-110.72/boot.ppc-unix.tgz
./lang/smlnj11072/distinfo smlnj-110.72/boot.sparc-unix.tgz
./lang/ghc84/distinfo ghc-8.0.2-boot-x86_64-unknown-solaris2.tar.xz
./lang/ghc84/distinfo ghc-8.4.4-boot-i386-unknown-freebsd.tar.xz
./lang/ghc84/distinfo ghc-8.4.4-boot-x86_64-apple-darwin.tar.xz
./lang/ghc84/distinfo ghc-8.4.4-boot-x86_64-unknown-freebsd.tar.xz
./lang/ghc7/distinfo ghc-7.10.3-boot-i386-unknown-freebsd.tar.xz
./lang/ghc7/distinfo ghc-7.6.3-boot-i386-unknown-solaris2.tar.xz
./lang/ghc7/distinfo ghc-7.6.3-boot-powerpc-apple-darwin.tar.xz
./lang/ghc7/distinfo ghc-7.6.3-boot-x86_64-unknown-solaris2.tar.xz
./lang/ghc90/distinfo ghc-8.10.4-boot-x86_64-unknown-solaris2.tar.xz
./lang/ghc90/distinfo ghc-9.0.1-boot-aarch64-unknown-netbsd.tar.xz
./lang/ghc90/distinfo ghc-9.0.1-boot-i386-unknown-freebsd.tar.xz
./lang/ghc90/distinfo ghc-9.0.1-boot-x86_64-apple-darwin.tar.xz
./lang/ghc90/distinfo ghc-9.0.1-boot-x86_64-unknown-freebsd.tar.xz
./lang/openjdk8/distinfo \ 
openjdk7/bootstrap-jdk-1.7.76-freebsd-10-amd64-20150301.tar.xz
./lang/openjdk8/distinfo \ 
openjdk7/bootstrap-jdk-1.7.76-netbsd-7-sparc64-20150301.tar.xz
./lang/openjdk8/distinfo \ 
openjdk7/bootstrap-jdk-1.8.181-netbsd-8-aarch64-20180917.tar.xz
./lang/openjdk8/distinfo \ 
openjdk7/bootstrap-jdk7u60-bin-dragonfly-3.6-amd64-20140719.tar.bz2
./lang/openjdk8/distinfo \ 
openjdk7/bootstrap-jdk7u60-bin-dragonfly-3.8-amd64-20140719.tar.bz2
./lang/go-bin/distinfo go1.14.2.darwin-amd64.tar.gz
./lang/go-bin/distinfo go1.14.2.linux-386.tar.gz
./lang/go-bin/distinfo go1.14.2.linux-amd64.tar.gz
./lang/go-bin/distinfo go1.14.2.linux-arm64.tar.gz
./lang/go-bin/distinfo go1.14.2.linux-armv6l.tar.gz
./lang/go-bin/distinfo go1.14.2.netbsd-arm64.tar.gz
./lang/go-bin/distinfo go1.16beta1.darwin-arm64.tar.gz
./lang/gcc6-aux/distinfo ada-bootstrap.i386.freebsd.100B.tar.bz2
./lang/gcc6-aux/distinfo ada-bootstrap.x86_64.dragonfly.41.tar.bz2
./lang/gcc6-aux/distinfo ada-bootstrap.x86_64.freebsd.100B.tar.bz2
./lang/gcc6-aux/distinfo ada-bootstrap.x86_64.freebsd.84.tar.bz2
./lang/gcc6-aux/distinfo ada-bootstrap.x86_64.solaris.511.tar.bz2
./lang/ghc810/distinfo ghc-8.8.4-boot-x86_64-unknown-solaris2.tar.xz
./lang/sun-jre7/distinfo UnlimitedJCEPolicyJDK7.zip
./lang/sun-jre7/distinfo jre-7u80-linux-x64.tar.gz
./lang/sun-jre7/distinfo jre-7u80-solaris-i586.tar.gz
./lang/sun-jre7/distinfo jre-7u80-solaris-x64.tar.gz
./lang/ghc88/distinfo ghc-8.4.4-boot-i386-unknown-freebsd.tar.xz
./lang/ghc88/distinfo ghc-8.4.4-boot-x86_64-apple-darwin.tar.xz
./lang/ghc88/distinfo ghc-8.4.4-boot-x86_64-unknown-freebsd.tar.xz
./lang/ghc88/distinfo ghc-8.4.4-boot-x86_64-unknown-solaris2.tar.xz
./lang/gcc-aux/distinfo ada-bootstrap.i386.dragonfly.36A.tar.bz2
./lang/gcc-aux/distinfo ada-bootstrap.i386.freebsd.100B.tar.bz2
./lang/gcc-aux/distinfo ada-bootstrap.i386.freebsd.84.tar.bz2
./lang/gcc-aux/distinfo ada-bootstrap.x86_64.dragonfly.36A.tar.bz2
./lang/gcc-aux/distinfo ada-bootstrap.x86_64.freebsd.100B.tar.bz2
./lang/gcc-aux/distinfo ada-bootstrap.x86_64.freebsd.84.tar.bz2
./lang/gcc-aux/distinfo ada-bootstrap.x86_64.solaris.511.tar.bz2
./lang/gcc6/distinfo ecj-4.5.jar
./lang/openjdk11/distinfo bootstrap-jdk-1.11.0.7.10-netbsd-9-aarch64-20200509.tar.xz
./lang/sun-jdk7/distinfo jdk-7u80-linux-x64.tar.gz
./lang/sun-jdk7/distinfo jdk-7u80-solaris-i586.tar.gz
./lang/sun-jdk7/distinfo jdk-7u80-solaris-x64.tar.gz
   2021-10-07 16:21:17 by Nia Alarie | Files touched by this commit (282)
Log message:
lang: Remove SHA1 hashes for distfiles
   2021-07-24 16:50:42 by Yorick Hardy | Files touched by this commit (3) | Package updated
Log message:
lang/gauche: update to Gauche-0.9.10

Announcements:

== Release 0.9.10

Major feature enhancements

New Features

R7RS Large and SRFI support

We cover R7RS-large Red and Tangerine Edition.

  * scheme.ilist: Immutable list library
  * scheme.rlist: Random access lists
  * scheme.bytevector: R6RS-compatible bytevectors
  * scheme.text: Immutable texts
  * scheme.show: Combinator formatting
  * scheme.regex: Scheme Regular Expressions: Grapheme support is
    completed by @pclouds.

  * srfi-78: Lightweight testing (now integrated with gauche.test).
  * srfi-101: Purely functional random-access pairs and lists
    (scheme.rlist)
  * srfi-116: Immutable list library (scheme.ilist)
  * srfi-130: Cursor-based string library
  * srfi-135: Immutable texts (scheme.text)
  * srfi-159: Combinator formatting (scheme.show)
  * srfi-170: POSIX API
  * srfi-174: POSIX timespecs
  * srfi-175: ASCII character library
  * srfi-176: Version flag. Supported as built-in. (version-alist)
  * srfi-178: Bitvector library
  * srfi-180: JSON
  * srfi-181: Custom ports
  * srfi-185: Linear adjustable-length strings
  * srfi-189: Maybe and either: optional container types
  * srfi-192: Port positioning
  * srfi-193: Command line
  * srfi-195: Multiple-value boxes (Boxes).

New modules

  * parser.peg: PEG parser combinator library. This module has been
    unofficially included for long time, but it finally became
    official. If you've been using it, check out the document, for
    API has been changed. Compatibility module is provided.
  * data.skew-list: Skew binary functional random-access list
  * data.priority-map: Priority map.
  * rfc.uuid: UUID generation and parsing.
  * text.external-editor: Running external editor.
  * text.pager: Display with pager.

Improvements

String indexing improvements

In Gauche, string access using integer character index costs O(n)
by default, because we store strings in multibyte format. Two
improvements are incorporated to allow O(1) random string access.

  * String cursors (srfi-130). It is an object directly points
    to a specific character within a string, thus allowing O(1)
    access. It is supported natively, so all built-in string
    procedures that takes character index also accept string
    cursors. See String%20cursors, for the details. This is the
    work mostly done by @pclouds.
  * String indexing (scheme.text). You can precompute a string
    index, which is an auxiliary data attached to a string that
    allows O(1) integer character index access. You need O(n) to
    compute a string index, but once computed, character index
    access in that string becomes O(1). In R7RS-large, scheme.text
    library provides this feature (with a distinct type text). In
    Gauche, a text is simply a string with a string index computed.
    See String indexing for the details.

Note: Gauche internally had string pointers to implement some string
operations efficiently. Now string cursors can be used for that
purpose, we dropped string pointers. If you have code that uses
string pointers, although it was undocumented, you can keep using
it by defining GAUCHE_STRING_POINTER environment variable. We'll
completely drop it in the next release, though.

Immutable pairs

Scheme defines literal pairs to be immutable, but it is up to the
implementation to check it. Gauche used to not check it, allowing
mutating literal pairs. Now it is no longer allowed--it throws an
error. Mutating literal pairs is never correct, and if you get the
error, you've been doing it wrong.

Immutable pairs can also be explicitly constructed using scheme.ilist
module. In Gauche, immutable pairs and lists behaves exactly like
normal pairs and lists, except that they can't be modified. See
Mutable and immutable pairs, for the details.

If your code depends on the previous behavior and can't change
swiftly, set the environment variable GAUCHE_MUTABLE_LITERALS to
restore the old behavior.

Input line editing

The editor feature is enhanced a lot, including online help. Type
M-h h to get a quick cheet sheet.

The line editor isn't turn on by default yet, but you can either
turn on with the command-line option -fread-edit or the environment
variable GAUCHE_READ_EDIT.

Parameters are now built-in

You no longer need to (use gauche.parameter) to use parameters as
defined in R7RS. The module still exists and provides a few obscure
features.

Bitvector literal and incomplete string literals

We now supports bitvector type in the core. Note that there's a
syntax conflict with bitvector literals and incomplete strings;
now the official way of incomplete string literal is to prefix a
string with #**. The older syntax is still recognized as far as
it's not ambiguous. See Incomplete%20strings.

The C-level Port API is overhauled

This only affects for C code using ScmPort. To support future
extensions flexibly, we hide the internal implementation of ScmPort.
It shouldn't affect code that accesses ScmPort via API, but if the
code directly refers to the members of ScmPort, it should be
rewritten to use API.

One notable change is that port positions no longer need to be an
integer offset.

TLS support improvement

  * With default configuration, Gauche searches several known
    locations of ca-certificates, so it can work mostly out of
    the box. See rfc.tls for the details.

  * With default configuration, <mbed-tls> is used if it's available.
    <ax-tls> is always available but its cipher support is limited
    and can't connect to some https sites.

  * You can also configure to embed MbedTLS support into Gauche so
    that it will run on a system that doesn't have MbedTLS installed.
    (See INSTALL.adoc for the details.) Note that if you embed
    MbedTLS, the resulting binary is covered by MbedTLS Apache
    License 2.0 as well. Windows Installer version has MbedTLS
    embedded.

Encoding conversion improvement

Now we support conversion natively, between UTF (8, 16, 32) and
ISO8859-n, as well as between Japanese encodings. We use iconv(3)
only when we need to deal with other encodings.

This is because iconv lacks a necessary API to support srfi-181
transcoded ports properly. If you just need to convert encodings,
you can keep using gauche.charconv and it handles wide variety of
encodings supported by iconv. If you use srfi-181, the conversion
is limited between the natively supported encodings.

We may enhance native support of conversions if there's need for it.

Miscellaneous improvements

  * gauche.generator: Add giterate, giterate1.
  * gauche.lazy: Add literate.
  * format: Make ~f handle complex numbers as well, and added a bunch
    of new directives: ~t, , ~~, ~|, and ~$.
  * define-hybrid-syntax: The compiler macro feature.
  * current-trace-port: A parameter to keep trace output. Output of
    debug-print goes to this port, for example. The default is stderr.
  * gauche.record: Allow record types to inherit from non-record
    class, as long as the superclass doesn't add slots.  Also allow
    to specify metaclasses.
  * gauche.unicode: Conversion procedures utf8->ucs4 etc. now takes
    replace strictness that replaces invalid unicode sequence with
    U+FFFD. utf8->string is also changed to use the replace character
    for invalid input sequence, instead of throwing an error.
  * gauche.unicode: string->utf16: Add add-bom? argument.
  * gauche.unicode: Add string->utf32, utf32->string.
  * identifier?: Now it responds #t to both symbols and wrapped
    identifiers. In ER-macro systems, identifiers can be a bare
    symbol as well. To check an object is an identifier but not a
    symbol, you can use wrapped-identifier? to check an object is
    a non-symbol identifier.
  * When gosh is run inside a build tree (with -frest option), make
    sure we link with libgauche.so in the build tree regardless of
    the setting of LD_LIBRARY_PATH. (PR#557)
  * apropos now takes a string as well as a symbol (PR#555)
  * Character set is now hashable with the default-hash.
  * Add .dir-locals.el file in the source tree. It sets up Emacs to
    add some Gauche-specific indentations.
  * If gosh is run in suid/sgid process, do not load .gaucherc file
    and do not load/save history files.
  * complete-sexp? is moved to the core (used to be in gauche.listener.
  * string->number: Added default-exactness optional argument to
    specify the exactness of the result when no exactness prefix is
    given in the input.
  * gauche-package generate can now generate template of Scheme-only
    package.
  * srfi-42: Added :collection qualifier to use a collection as a
    generator.
  * gauche.fcntl: Added sys-open, sys-statvfs, sys-fstatvfs.
  * sys-utime: Allow <time> object for timestamp.
  * sys-nice: Added nice() interface.
  * make-hash-table: If a comparator whose equalily predicate is
    eq?/eqv?, we use eq-hash/eqv-hash regardless of comparator's hash
    function. It is permitted by srfi-125, and it allows objects that
    doesn't have hash method can still be used with eq/eqv based
    hashtables (#708).
  * gauche.vport: Add bidirectional virtual port. Add
    open-output-accumulator.
  * gauche.process: Allow command pipeline in process port API (#717).
    Also :error keyword argument accepts :merge, to tell run-process
    that stderr should be merged into stdout.
  * gauche.process: Added process-wait/poll, process-shutdown.
  * gauche.threads: atomic-update!: Allow proc to return more values
    than the atom holds. It is useful if one wants to update atom
    state and compute something using before-update values.
  * gosh: -e option can accept multiple S-expressions.
  * gauche.dictionary: Add <stacked-map>.

Bug fixes

  * Fix double-rounding bug when converting ratnum to flonum.
    Originall reported in Ruby, it is a common issue that first
    convert numerator and denominator to double and then divide.
    (blog entry).
  * math.mt-random: (Incompatible change) When the given seed is
    bignum, we use all bits now to initialize the RNG. The previous
    versions only used the lowest word, but that loses the entropy.
    Technically this causes RNG to produce different sequence if the
    seed is bignum. For typical usage, though, seed is within fixnum
    or at most as wide as a machine word and we think it's rare that
    the change becomes an issue.
  * Some macro-defining-macro issues are fixed, including #532 .
  * file.util: make-directory*: Fixed timing hazard.
  * www.css: construct-css: Fix :not pseudo class rendering (PR#645),
    added missing an+b syntax (PR#648).
  * gauche.process: High-level utilities didn't handle :encoding
    keyword argument (#651).
  * load-from-port: Fixed a bug that didn't reset literal reader
    context (#292).
  * apply detects if the argument list is circular and throws an error.
  * copy-list detects the circular list and throws an error.
  * scheme.list: lset=: Argument order to invoke the equality
    predicate was incorrect.
  * math.prime: native-factorize: Reject other than positive exact
    integers. Factorizing 1 returns ().
  * assume: Fix to return the value of the expression.
  * and-let*: Fix 20-year old bug - and-let* is allowed to take an
    empty body.
  * let-optionals*: There was a bug that inserts reference of
    undefined hygienically, causing an error when used in R7RS code
    that doesn't inherit gauche module.
  * rfc.json: construct-json: Allow non-aggregate toplevel value. It
    was prohibited in rfc4627, but allowed in rfc7159.
  * pprint: Fix circular structure printing in case when the cycle
    begins in the middle of a list (#713).

== Release 0.9.9

Bug fix and enhancements

  * New features
      - More R7RS-large and SRFI support
      - Charset enhancements to Full Unicode range
      - Macro tracer
      - Checking use of undefined result in conditionals
  * Improvements
  * Bug fixes
  * Potential incompatibilities

New features

More R7RS-large and SRFI support

  * scheme.stream: Streams (formerly srfi-41).
  * scheme.ephemeron: Ephemeron (formerly srfi-124).
  * scheme.regex: Scheme Regular Expression (formerly srfi-125).
    Contributed from @pclouds. Grapheme support is still missing.
  * scheme.vector.u8 etc.: Homogeneous numeric vector libraries
    (srfi-160).

  * srfi-162: Comparators sublibrary.
  * srfi-173: Hooks.

Charset enhancements to Full Unicode range

  * Predefined char-sets (srfi-14) are enhanced to the entire Unicode
    range, e.g. char-set:digit now includes all Unicode characters
    with general category Nd. If you want to limit the range to ASCII,
    there are corresponding char sets (e.g. char-set:ascii-digit)
    provided.
  * 'Umbrella' general category char-set: char-set:L includes
    characters from general categories that begin with L, etc.
  * In regexps and char-set literals, you can use \p{category} and
    \P{category}, where category is Unicode general category, e.g. Lu.
  * The \d, \w, \s in regexp and char-sets are still limited to ASCII
    range, for changing them would likely to break existing code.
  * POSIX notation [:alpha:] etc., also covers ASCII range only. To
    cover full Unicode, you can use [:ALPHA:] etc.

Macro tracer

  * trace-macro: You can now trace macro expansion.

Checking use of undefined result in conditionals

  * Return value of procedures that return "undefined result"
    shouldn't be used in portable code. However, Gauche usually
    returns #<undef> from such procedures, and it counts to true as
    a boolean test in conditionals. We found quite a few code that
    branches based on the result of undefined return value. Such code
    is fragile, for it may break with unintentional change of return
    values of such procedures. Gauche can now warn such cases when
    the environment variable GAUCHE_CHECK_UNDEFINED_TEST is set. See
    the blog entry and Undefined values.

Improvements

  * Partial continuation support is overhauled w.r.t interaction with
    dynamic environment and full continuations. Contributed by
    @Hamayama.
  * gauche.uvector: Support uniform complex vectors (c32, c64 and c128).
  * gauche.test: New compile-only option to test-script, so that it
    can perform syntax check without executing the actual script
    (useful if the script is written without using main).
  * gauche.generator: Add negative step value support to grange.
  * regexp-replace etc.: It used to be an error when regexp matches
    zero-length string. Which wasn't wrong, but in practice it was
    annoyance. Now if regexp matches zero-length string we advance
    one character and repeat matching.  This behavior is also adopted
    by Perl and Ruby.
  * gosh -h now emits help messages to stdout and exits with 0.
  * Experimental line editor: backward-word and forward-word added by
    @pclouds PR#524

Bug fixes

  * Keyword argument handling wasn't hygienic.
  * pprint: Prettyprint emits negative labels (#484)
  * Extend the limit of environment frame size (#487)
  * Scm_CharSetAdd could yield inconsistent result when you add an
    ASCII character to a large charset. Patch by @pclouds PR#500
  * import: Only/rename import qualifiers didn't work with transitiev
    export (#472)
  * Some system calls shouldn't be restarted when interrupted. #504
  * format: ~vr didn't work. #509
  * sort!, stable-sort!: We implemented them as if they were
    linear-updating, that is, we didn't guarantee if the argument
    still pointed to the head of the sequence after the call.
    However, srfi-95 didn't explicitly mentions linear updating
    semantics, so we guaranteed that caller can call them purely
    for side-effects.

Potential incompatibilities

  * Scm_RegExec now takes two more arguments specifying start and
    end of the range of input string. I overlooked this change and
    missed to add a proper transition macro. You can use #ifdef
    SCM_REGEXP_MULTI_LINE to switch the new interface vs the old one.
  * Toplevel define now inserts a dummy binding at compile-time
    (as a result of #549). It is consistent with the specification,
    but existing code that relied on undefined behavior might be
    affected. See the blog entry.
  * The (scheme base) library inadvertently exported Gauche's define
    instead of R7RS define; Gauche's define recognizes extended lambda
    arguments, while R7RS's not. This was a bug and fixed now, but
    if your R7RS code happens to use Gauche's extended argument
    notation, it'll break.
  * macroexpand: Now it strips syntactic information from the return
    values (with renaming macro-inserted identifiers, so that different
    identifiers with the same name won't be confused). This generally
    improves interactive use when you check how macros are expanded.
    If you're using the output of macroexpand programatically, this
    may break hygiene; you can pass an optional argument to preserve
    syntactic information.
  * parser.peg: This module is still unofficial, but in case you're
    using it: $do is now obsoleted. Use $let and $let*.  $parameterize
    is added by @SaitoAtsushi.

== Release 0.9.8

Bug fixes and enhancements

  * Major changes
      - The syntax of quasirename is changed
      - Keywords are symbols by default.
      - Some support of R7RS-Large Tangerine Edition.
      - Prettyprinting is now default on REPL.
  * Bug fixes
  * Other notable changes

Major changes

The syntax of quasirename is changed

The template was implicitly quasiquoted before, but it turned out
it interferes when quasiquote and quasirename were nested. Now the
template needs to be explicitly quasiquoted. The old syntax is also
supported for the backward compatibility. You can change the
supported compatibility level by an environment variable
GAUCHE_QUASIRENAME_MODE. See the manual entry of quasirename and
the blog post for more details.

Keywords are symbols by default.

There can be some corner cases that causes backward compatibility.
You can revert to the old behavior by setting an environment variable
GAUCHE_KEYWORD_DISJOINT. See the "Keyword" section of the manual
for how to adapt to the new way.

Some support of R7RS-Large Tangerine Edition.

We have scheme.mapping, scheme.mapping.hash, scheme.generator,
scheme.division, scheme.bitwise, scheme.fixnum, scheme.flonum. See
Gauche:R7RS-large for which libraries in R7RS-Large have been
supported.

Prettyprinting is now default on REPL.

If it bothers you, set an environment variable GAUCHE_REPL_NO_PPRINT.

Bug fixes

  * The identifiers _ and ... are bound to syntax, to be friendly to
    hygienic macros.
  * floor/ and ceiling/ returned incorrect values when remainder is zero.
  * During compilation, feature identifiers are considered according
    to the target platform, so that cross compilation work (#407).
  * A finite inexact number multiplied by an exact zero now yields an
    exact zero consistently.
  * Precompiled uniform vectors had lost infinities, NaNs and minus
    zeros. Now they are handled properly.
  * The record accessor accidentally leaked #<unbound> to the Scheme
    world.

Other notable changes

  * GC version is bumped to 8.0.4, thanks to @qykth-git.
  * Unicode support is bumped to 12.1.0, thanks to @qykth-git (#471).
  * Numerous enhancements on Windows/MinGW version, thanks to @Hamayama.
  * Now gauche-package compile command has --keep-c-files and --no-line
    options, for easier troubleshooting with generated C files (#427).
  * gauche.cgen.cise: Enhanced support for C procedure declaration,
    C struct and union type definition, and function type notation.
  * Default hash function works on uniform vector (#440)
  * The gauche.interactive module now doesn't load ~/.gaucherc---that
    feature is splitted to gauche/interactive/ init.scm. Thus, when
    you start gosh it still reads ~/.gaucherc, but if you use
    gauche.interactive as an ordinary module, it doesn't load
    .gaucherc (#448).
  * gauche.array: New procedures array-negate-elements!,
    array-reciprocate-elements!.
  * disasm: Now it shows lifted closures as well.
  * When the number of arguments passed to apply is fixed at the
    compile time, the compiler now optimize apply away.  For example,
    (apply f 'a '(b c)) now becomes exactly the same as (f 'a 'b 'c).
    If this optimization somehow causes a problem, pass
    -fnodissolve-apply option to gosh.
  * srfi-42: Uniform vectors are supported just like vectors.
  * Now we have predefined char-set for each of Unicode general
    category, e.g. char-set:Lu.
  * New flonum procedures: approx=?, flonum-min-normalized,
    fronum-min-denormalized.
  * gauche.vport: Virtual port constructors accept :name argument.

== Release 0.9.7

Major C API/ABI overhaul

  * Changes of C API/ABI
  * New modules and procedures
  * Bug fixes and improvements
  * Incompatible changes in unofficial module

Changes of C API/ABI

This release includes several C API/ABI changes that breaks the
backward compatibilities, in order to have clean API towards 1.0.
Although we haven't officially defined C API/ABI, we kept the de
facto backward compatible as much as possible. Some turned out to
be design shortcomings. We don't want them to hinder future
developments, so we decided to change them now.

In most cases, all you need to do is to recompile the extensions.
We checked existing extensions being compilable with the new version
as much as possible. If you find an extension breaks, let us know.
See API Changes in 0.9.7 for the details. We bumped ABI version
from 0.9 to 0.97, so the extensions compiled up to 0.9.6 won't be
linked with the new version of Gauche. If necessary, you can install
0.9.6 and 0.9.7 Gauche in parallel, and switch them using -v VERSION
option.

If you're not sure what extensions you've installed, check the
directory ${prefix}/share/gauche-0.9/site/lib/.packages /. It
contains gpd (Gauche Package Description) files of the extensions
you've installed for 0.9.6 and before.

New modules and procedures

  * srfi-154: First-class dynamic extents
  * gauche.connection: An interface that handles connection-based
    full-dupex communication channel. The <socket> (gauche.net)
    class implements it, as well as a couple of other classes. It
    allows to write a communication code (e.g. server request
    handlers) without knowing the underlying connection implementation.
  * text.edn: Parse and write Clojure's EDN representation.
  * compat.chibi-test: A small adapter module to run tests written
    for Chibi Scheme (some srfi reference implementations use it)
    within gauche.test.
  * text.html-lite: HTML5 elements are added. PR#363
  * gauche.array: Export array-copy.
  * gauche.configure: Add more feature tests: cf-check-lib,
    cf-check-libs, cf-check-type, cf-check-types, cf-check-func,
    cf-check-funcs, cf-check-decl, cf-check-decls, cf-check-member,
    cf-check-members. Also added cf-init-gauche-extension and
    cf-output-default, which takes care of common task of Gauche
    extensions so that the configure script can now be very terse.
  * gauche-package make-tarball is updated to read package.scm. Used
    with gauche.configure, this eliminates the need of DIST script
    for the extensions.
  * file.util: Added call-with-temporary-file,
    call-with-temporary-directory.
  * assoc-adjoin, assoc-update-in: A couple of new assoc-list procedures.

Bug fixes and improvements

  * rfc.tls: If CA bundle path is set, axTLS connection also
    validates server certificates (mbedTLS rejects connection
    when CA bundle path is not set). PR#362
  * rfc.tls: On Windows, you can specify system as CA bundle
    path to use the system certificate store.  PR#395 , PR#398
  * rfc.tls: If Gauche is configured with mbed-tls but without
    axtls, the default tls class is set to <mbed-tls>.
  * Bumped to bdwgc 7.6.8. PR#373
  * Experimentally turned on generic function dispatcher
    optimization for ref and object-apply by default. It could
    boost the performance of these generic function calls up to
    5x. We keep monitoring the effect of optimization and will
    enhance it in future.
  * Now glob sorts the result by default (consistent of glob(3).
    To avoid sorting, or supply alternative sort procedure, use
    :sorter argument.
  * REPL's info uses the value of the PAGER environemnt variable
    for paging. Now you can put command-line arguments in it (not
    only the command name). PR#358
  * REPL's info failed to work when Gauche is built without zlib
    support.
  * sxml.serializer: If the attribute value is the same as attribute
    name, we took it as a boolean attribute and just rendered with
    attribute name only. It interferes with an attribute with the
    value that happens to be the same as the name, so we changed it.
    This is backward-compatible change. PR#359
  * sxml.ssax: Fix whitespace handling. PR#360
  * We had a kludge to handle a setter of a slot accessor method,
    that causes confusion when you use the module that implements a
    base class then define slot accessor in the derived class. It
    is fixed. See the thread
      https://sourceforge.net/p/gauche/mailman/message/36363814/
    for the details.
  * Now we handle utf-8 source file that has BOM at the beginning.
  * open-input-file, open-output-file, etc.: We now honor element-type
    keyword arguments (it was ignored before). It only makes
    difference on Windows.
  * scheme.set: Fix set<? etc.
  * util.digest: digest-hexify can now take u8vector as well.
  * A bug in hash-table-copy caused inconsistent hash table state. #400

Incompatible changes in unofficial module

  * parser.peg: Removed pre-defined character parsers (anychar,
    upper, lower, letter, alphanum, digit, hexdigit, newline, tab,
    space, spaces, and eof) and shorthands ($s, $c, and $y). Those
    names are easy to conflict (esp.  'newline') yet not so much
    useful, for it's quite easy to define. If existing code relies
    on these procedures, say (use parser.peg.deprecated).
   2020-03-22 11:50:35 by Roland Illig | Files touched by this commit (1)
Log message:
lang/gauche: skip check for unknown configure options
   2020-01-26 18:32:28 by Roland Illig | Files touched by this commit (981)
Log message:
all: migrate homepages from http to https

pkglint -r --network --only "migrate"

As a side-effect of migrating the homepages, pkglint also fixed a few
indentations in unrelated lines. These and the new homepages have been
checked manually.
   2018-07-26 18:55:29 by Jonathan Perkin | Files touched by this commit (6)
Log message:
gauche: Various fixes.

This package can only have possibly worked on NetBSD/x86_64 previously, now it
at least works on SunOS too.
   2018-07-24 16:52:18 by Ryo ONODERA | Files touched by this commit (3) | Package updated
Log message:
Update to 0.9.6

* Use gmake for pattern rules

Changelog:
Release 0.9.6

Major feature upgrade

  * Notable feature enhancement:
  * New modules and procedures
      + R7RS-Large Red Edition support (WiLiKi:Gauche:R7RS-RedEdition)
      + New srfi support:
      + Other new modules and procedures:
  * Incompatible changes
  * Other bug fixes

Notable feature enhancement:

  * Static linking and standalone executable support: Now you can create a
    standalone executable from Gauche program. See blog entry and "Building
    standalone executables" section.
  * Single shell-script installer (blog entry).
  * REPL enhancement: Pretty printing (blog entry), online document display (
    blog entry) and search (blog entry).
  * Method dispatch optimizations (1, 2).
  * Procedure inlining optimizations (1, 2)
  * Windows console Japanese handling: Thanks to @hamayama, numerous fixes to
    use Japanese on Windows command prompt is incorporated.
  * Bump to Boehm gc 7.6.6, thanks to @qykth-git.
  * Support mbedTLS as an additional TLS support, thanks to @qykth-git. See
    rfc.tls for the details.
  * format finally supports floating number formatting ~f. It also supports a
    subtle rounding mode switch regarding binary to decimal conversion (blog
    post).
  * Support of using multiple versions of Gauche in parallel---from 0.9.6 and
    after, you can invoke a different version of Gauche by gosh -vVERSION, as
    far as VERSION of Gauche is also installed. This isn't much useful now
    (VERSION must be 0.9.6 or later), but will be handy with future releases.
  * Sampling profiler now works on Windows, thanks to Saito Atsushi and
    @hamayama (although it can only sample the attached thread).

New modules and procedures

R7RS-Large Red Edition support (WiLiKi:Gauche:R7RS-RedEdition)

12 libraries (out of 17) are supported:

  * scheme.list List library (formerly srfi-1)
  * scheme.vector Vector library (formerly srfi-133)
  * scheme.sort Sort libraries (formerly srfi-132)
  * scheme.set Sets and bags (formerly srfi-113)
  * scheme.charset Character-set library (formerly srfi-14)
  * scheme.hash-table Intermediate hash tables (formerly srfi-125)
  * scheme.ideque Immutable deques (formerly srfi-134
  * scheme.generator Generators (formerly srfi-121)
  * scheme.lseq Lazy sequences (formerly srfi-127)
  * scheme.box Boxes (formerly srfi-111)
  * scheme.list-queue Mutable queues (formerly srfi-117)
  * scheme.comparator Comparators (formerly srfi-128)

Those are still accessible as srfi-* names, but new code is recommended to use
the scheme.* names.

New srfi support:

  * srfi-64 A Scheme API for test suites
  * srfi-66 Octet vectors
  * srfi-74 Octet-addressed binary blocks
  * srfi-96 SLIB prerequisites
  * srfi-129 Titlecase procedures
  * srfi-141 Integer division
  * srfi-143 Fixnums
  * srfi-145 Assumptions (built-in)
  * srfi-146 Mappings
      + srfi-146.hash Hashmaps
  * srfi-149 Basic Syntax-rules template extensions (built-in)
  * srfi-151 Bitwise operations
  * srfi-152 String library (reduced)
  * srfi-158 Generators and accumulators

Other new modules and procedures:

  * pprint - pretty printer.
  * assume-type macro and type-error procedure.
  * define-inline is now official.
  * hash-table-compare-as-sets, tree-map-compare-as-sets - compare those
    mappings as sets
  * let-values, let*-values: now built-in.
  * In gauche.process: do-process!, do-pipeline, run-pipeline!.
  * In gauche.unicode: char-east-asian-width
  * In gauche.uvector: uvector-binary-search, u8vector=? ..., u8vector-compare
    ....
  * In gauche.charconv: Conversion routines accepts u8vector as well as
    strings.
  * In gauche.sequence: delete-neighbor-dups, delete-neighbor-dups!,
    delete-neighbor-dups-squeeze!, group-contiguous-sequence
  * In gauche.threads: atomic and atomic-update! allows more than one timeout
    values.
  * text.template: Simple template expander, based on built-in string
    interpolation feature.
  * Char-set can be immutable. char-set-freeze and char-set-freeze! are used to
    make a char set immutable. Literal char-sets are immutable, as other
    literal objects.
  * rfc.http: You can now use stunnel process to do https connection instead of
    Gauche's rfc.tls module. Note that it only works with command mode of
    stunnel---which isn't available on Windows.
  * rfc.tls: Now that we support mbedTLS and server certificate authentication,
    a minimal document is added.
  * binary.io: get-uint, get-sint, put-uint!, put-sint!.
  * gauche.generator: generator->uvector, generator->uvector!, generator->
    bytevector, generator->bytevector!.
  * data.random: regular-string$ - creates a generator that generates random
    strings that match the given regexp.
  * string-incomplete->complete: Add :escape mode to escape illegal bytes in
    lossless way.

Incompatible changes

Some change undocumented behaviors; others change because of bug fix.

  * Literal character sets (#[chars]) are now immutable, as other literal
    objects; it will raise an error if you try to mutate it.
  * getter-with-setter now associates the setter to the getter in immutable way
    ('locked'); it will raise an error if you try to change it. It is the way
    specified in srfi-17. It also allows Gauche to inline setters. (NB: Many
    predefined setters are now locked. If your existing code alters them it
    will cause an error.)
  * list*, cons* - Requires at least one arg, as specified in srfi-1. Zero
    argument doesn't make sense, although previous versions of Gauche allowed
    it.
  * append, append! - Now it is an error if the arguments except the last one
    is a dotted list. We've tolerated it before, but it's rather error prone.
  * util.match: The way to match record instance with positional variables are
    changed for more reasonable way. We hope no code depends on the previous
    way, which was broken anyway. See the blog entry for the details.
  * twos-complement-factor: We fix the behavior when 0 is passed; it used to
    return 0, now it returns -1. The latter is consistent with srfi-60.
    Unfortunately we documented the former behavior, so it breaks
    compatibility.
  * string-split: Splitting an empty string now yields an empty list instead of
    (""), as srfi-152 specifies

Other bug fixes

There are too many; we list up some notable ones.

  * The behavior of guard when no clauses are satisfied and the exception is
    reraised is now R7RS-compatible ( https://github.com/shirok/Gauche/pull/335
    ). When using R7RS, with-exception-handler is R7RS compatible (which is
    slightly different from built-in with-exception-handler, compatible to
    srfi-18).
  * unwind-protect: Fix bug with interaction of call/cc.
  * rfc.tls: axTLS interface had MT-hazard.
  * er-macro-transformer: Fix hygienity issue ( https://github.com/shirok/
    Gauche/issues/250 )
   2018-01-28 21:11:10 by Thomas Klausner | Files touched by this commit (462)
Log message:
Bump PKGREVISION for gdbm shlib major bump
   2016-10-13 02:30:13 by enami tsugutomo | Files touched by this commit (6)
Log message:
Update gauche to 0.9.5

Release Notes:

Better R7RS conformance

  * Keyword-symbol integration: Gauche keywords (e.g. :key) can be symbols
    that are automatically bound to itself. It breaks the backward
    compatibility in some corner cases, however, so we haven't make the
    change in effect by default in 0.9.5. Setting the environment variable
    GAUCHE_KEYWORD_IS_SYMBOL turns on this feature. See Keywords, for the
    details. We urge you to test your code with this feature turned on,
    for pretty soon (probably in the next release) we'll make this feature
    effective by default.
  * R7RS raise is now conformant of R7RS (which is slightly different from
    Gauche's builtin raise, which is srfi-18 conformant).

New modules and procedures

  * Renamed modules (old names are still valid, but new code should use
    the new names):
      + Data structure implementations are now named data.*; so
        util.queue, util.sparse, util.trie are renamed to data.queue,
        data.sparse, data.trie.
      + Module text.unicode is renamed to gauche.unicode, for it's
        essential for R7RS support.
  * New modules:
      + data.cache - Cache
      + data.heap - Heap
      + data.ring-buffer - Ring buffer
      + data.imap - Immutable map
      + data.ideque - Immutable deque
      + text.console: Simple console control module, works on both
        vt100-ish terminals and Windows console. Try examples/snake.scm to
        see it in action.
      + util.dominator - Find a dominator tree of a directed graph.
      + util.levenshtein - Calculate various edit-dinstances.
      + util.unification - Unification algorithm.
  * Low-level hygienic macro support by er-macro-transformer.
  * New builtin macros and procedures:
      + and-let1.
      + macroexpand-all - Expands everything in the given form.
      + sys-available-processors - query # of processor cores at runtime.
      + symbol-append.
      + sys-getgroups, sys-mkdtemp.
      + debug-label - Get unique label of an object.
      + length<?, length>?, length>=?, length=? - We had length<=?, \ 
so why
        not?
      + encode-float, inverse of decode-float.
  * In gauche.uvector:
      + New procedures:string->u32vector!, string->s32vector!,
        make-uvector, port->uvector
      + Generic accessor and mutator uvector-ref, uvector-set!.
  * In gauche.sequence:
      + New searching procedures - sequence-contains,
        break-list-by-sequence, break-list-by-sequence!, sequence->
        kmp-stepper.
      + New utilities - common-prefix, common-prefix-io.
  * In gauche.array: Add constructors u8array, etc., for the consistency.
  * In gauche.lazy: lappend-map
  * In gauche.generator: gflatten, uvector->generator.
  * In gauche.process:
      + run-process-pipeline - for easier pipelining.
      + shell-tokenize-string.
  * In gauche.termios: sys-termios-copy
  * In gauche.test:
      + test-none-of - As an expected value.
      + test-script - To test script files.
  * In gauche.vport: List ports are added. See open-input-char-list,
    open-input-byte-list.
  * In data.queue: mtqueue-num-waiting-readers.
  * In data.trie: trie-longest-match.
  * In data.random: samples$, for random sampling.
  * In text.csv: Middle-layer procedures: csv-rows->tuples,
    make-csv-header-parser, make-csv-record-parser.
  * In rfc.uri: uri-ref to access components of uri conveniently.
  * In rfc.http: http-status-code->description.

Added srfi supports

  * srfi-69: Basic hash tables
  * srfi-111: Boxes
  * srfi-112: Environment inquiry
  * srfi-113: Sets and Bags
  * srfi-114: Comparators
  * srfi-117: Mutable queues
  * srfi-118: Simple adjustable-size strings
  * srfi-121: Generators - Covered by gauche.generator.
  * srfi-128: Comparators (reduced) - the comparator is actually built-in
    to Gauche's core, so that other built-in mechanism such as hashtables,
    treemaps, sort, etc. can take comparators.
  * srfi-131: ERR5RS Record Syntax (reduced) - Subset of gauche.record.
  * srfi-133: Vector library
  * srfi-134: Immutable deques - Covered by data.ideque.

More pleasant interactive experience

  * Better error message while loading/compiling, using <mixin-condition>
    mechanism. Details.
  * Improved describe.
  * Toplevel REPL commands. See blog entry, or see the manual section
    "Working in REPL"
  * Scheme-defined procedures maintain source code and source location. It
    can be queried by source-code and source-location. The source location
    is also shown by describe. (Source code isn't kept for precompiled
    Scheme code for now.)
  * Online REPL document (info procedure, or ,info/,doc toplevel command)
    now shows just the named entry.
  * Experimental support of line-editing. If the environment variable
    GAUCHE_READ_EDIT is set and the terminal is capable, you can use line
    editing (with emacs-like key binding). This feature still in early
    development stage and has number of known issues---especially,
    multiline edit only partially work. If you're brave, give it a shot,
    but don't blame me if your REPL explodes.
  * You can invoke editor from repl by (ed file-or-procedure) (see ed). If
    the source location is known, you can directly jump to the source of
    the procedure, edit, and reload it.
  * Now REPL consumes the trailing newline of input S-expr; that is, when
    you type (read-line) on REPL, it waits for your input. Before, REPL
    didn't consume the trailing newline, so (read-line) immediately
    returned when it sees the newline character left in the input buffer,
    but that confused users.
  * use, select-module, export, import - Now these forms evaluate to zero
    values instead of #<undef>, for less cluttering of REPL.

Other notable improvements

  * gauche.configure: More feature tests on compilers and linking. Start
    using package.scm for the source of package metainformation.
  * Extended number syntax:
      + You can insert _ in prefixed numeric literal for readability, e.g.
        #b1101_1000_0001_1101.
      + Polar notation of numeric literal recognize pi suffix, e.g.
        2@0.5pi => 0.0+2.0i.
      + The reader recognizes CL-ish #<radix>r syntax, e.g. #3r121 for 121
        on base 3 (which is 16 in decimal).
  * Hashtables are now salted, meaning, it uses different hash functions
    at least for each invocation of the program, so that it is immune to
    the hash collision attack. The hash function is deprecated, replaced
    by default-hash, portable-hash and legacy-hash. See the manual entry
    for the details.
  * sys-sleep, sys-nanosleep: Changed to retry sleep/nanosleep by default
    if it is interrupted by as signal.
  * A new debug special reader macro: #?,, which can be used as #?,(proc
    arg ...). When evaluated, it displays the form (proc arg ...) and each
    value of arg, then calls proc with those arguments and displays the
    return value(s). Similar to #?= but you can also check the actual
    value of arguments. The #?= stub is also improved to show the thread
    from which it is displaying.
  * gauche.vport: open-output-uvector now takes an option to make the
    output buffer extendable.
  * load searches .sld suffix as well, as some other R7RS implementations
    do.
  * Stack trace now works for threads (but you have to call report-error
    within guard clauses explicitly, for by default unhandled error is
    propagated to the thread that calls thread-join!).
  * gauche.uvector: s8vector->string and u8vector->string now take
    optional 'terminator' argument, convenient to extract NUL-terminated
    string from fixed size buffer.
  * gauche.net: More flexible port number selection in make-server-socket
    and make-server-sockets.
  * data.sparse: Allow default value per vector (a sparse vector returns
    its default value when unset element is accessed).
  * rfc.http: Handles ipv6-style server address spec, e.g. [::1]:8888.
  * file.util: copy-file - Now takes :if-exists and :append keyword
    arguments.
  * crypt.bcrypt: Update bcrypt implementation and changed the default
    from 2a to 2b.
  * gauche.termios: Support mintty on MSYS.
  * rfc.tls: Add basic server-side certificate support.

Changes that may alter the behavior of existing code

  * gauche.generator: gtake - changed optional argument spec to match
    srfi-121. Existing code that needs the old behavior can use a new
    procedure gtake*.
  * If a hygienic macro inserts a fresh toplevel identifier, that
    identifier is renamed. E.g. if you say

    (define-syntax define-x (syntax-rules () ((_) (define x #t))))

    and then

    (define-x)

    the toplevel x is renamed and can't be referred to from outside. This
    is not explicitly specified in R7RS, but renaming is consistent with
    hygiene.
  * U+180e Mongolian Vowel Separator is no longer treated as a whitespace
    character, since Unicode 6.3.0 changed its category from Zs to Cf.
  * when, unless - Now they require at least one expr in their body.
  * require: Now loads a file into a special module, instead of #<module
    gauche>. This may catch an error that was previously ignored. See the
    manual entry for the details.
  * include, include-ci: Now relative pathnames, including ones that begin
    with ./ or ../, are taken relative to the includer file. Before, files
    beginning with ./ and ../ are treated specially, just like load. But
    it is less useful for include and just increases confusion.

Bug fixes

  * Fixed numerous bugs in hygienic macro expander.
  * When a module exports an inherited binding from renaming, it wasn't
    searched properly.
  * util.match: Fixed a bug that doesn't handle match expressions
    generated by hygienic macros.
  * Make -fcase-fold option affect REPL as well.
  * fixnum-width: It returned a number one smaller than the correct value.
  * Fixed a number reader bug handling very big or very small exponent.
  * srfi-13: Fixed a bug in xsubstring when 'from' argument is negative.
  * parameterize: Fixed a bug that failed to restore parameter values in
    some edge cases.
   2016-01-26 15:46:46 by Ryosuke Moro | Files touched by this commit (1)
Log message:
set LICENSE

Next | Query returned 110 messages, browsing 1 to 10 | Previous