Major C API/ABI overhaul
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.
<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.
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.
system
as CA bundle path to use the system certificate store.
https://github.com/shirok/Gauche/pull/395 ,
https://github.com/shirok/Gauche/pull/398
<mbed-tls>
.
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.
glob(3)
. To avoid sorting, or supply alternative sort procedure,
use :sorter
argument.
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). https://github.com/shirok/Gauche/pull/358
info
failed to work when Gauche is built without zlib support.
element-type
keyword arguments (it was ignored before).
It only makes difference on Windows.
u8vector
as well.
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)
.