Bug fix and enhancements
Nd
. If you want to limit the range to ASCII,
there are corresponding char sets (e.g. char-set:ascii-digit)
provided.
L
, etc.
\p{category}
and \P{category}
, where category is Unicode
general category, e.g. Lu
.
\d
, \w
, \s
in regexp and char-sets are still
limited to ASCII range, for changing them would likely to break existing code.
[:alpha:]
etc., also covers ASCII range only.
To cover full Unicode, you can use [:ALPHA:]
etc.
#<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%20values.
c32
, c64
and c128
).
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
).
gosh -h
now emits help messages to stdout and exits with 0.
backward-word
and forward-word
added by @pclouds https://github.com/shirok/Gauche/pull/524
Scm_CharSetAdd
could yield inconsistent result when you add
an ASCII character to a large charset. Patch by @pclouds
https://github.com/shirok/Gauche/pull/500
~vr
didn't work. https://github.com/shirok/Gauche/issues/509
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.
define
now inserts a dummy binding at compile-time
(as a result of https://github.com/shirok/Gauche/issues/549 ).
It is consistent with the specification, but existing code that relied
on undefined behavior might be affected.
See the blog entry.
(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
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.