pkgsrc-WIP-changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
wip/gauche: add COMMIT_MSG
Module Name: pkgsrc-wip
Committed By: Yorick Hardy <yorickhardy%gmail.com@localhost>
Pushed By: yhardy
Date: Sun Feb 11 22:41:16 2024 +0200
Changeset: dc88d6267ea2c9835f6920f823de330a250e541c
Added Files:
gauche/COMMIT_MSG
Log Message:
wip/gauche: add COMMIT_MSG
To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=dc88d6267ea2c9835f6920f823de330a250e541c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
diffstat:
gauche/COMMIT_MSG | 2580 +++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 2580 insertions(+)
diffs:
diff --git a/gauche/COMMIT_MSG b/gauche/COMMIT_MSG
new file mode 100644
index 0000000000..a6ea5f590e
--- /dev/null
+++ b/gauche/COMMIT_MSG
@@ -0,0 +1,2580 @@
+lang/gauche: update to Gauche-0.9.14
+
+Changelog:
+
+2024-01-25 Shiro Kawai <shiro%acm.org@localhost>
+
+ * Release 0.9.14
+
+2024-01-23 Shiro Kawai <shiro%acm.org@localhost>
+
+ * ext/charconv/jconv.c (jconv_open): If input and output encoding are
+ the same but not supported natively, use pass-through transcoder
+ instead of delegating it to iconv. Some verion of iconv doesn't
+ seem to like it.
+ https://github.com/shirok/Gauche/issues/979
+
+ * src/number.c (double_precision): Fix ratnum->flonum failure when
+ when either denominator or numerator is 2^(64n-1).
+ https://github.com/shirok/Gauche/issues/981
+
+2024-01-22 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/libnum.scm (real-ln): Fix precision loss of taking log on
+ a large bignum. https://github.com/shirok/Gauche/issues/980
+
+2024-01-21 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/data/priority-map.scm: Allow any comparator as key-comparator;
+ we switch hashtable and treemap internally. Then dict->priority-map
+ can take the given dictionary's key-comparator.
+
+2024-01-20 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/data/priority-map.scm (dictionary->priority-map),
+ (alist->priority-map): Added.
+
+ * lib/text/multicolumn.scm (display-multicolumn): Add indent keyword
+ arg.
+
+2024-01-19 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/gauche-package.in ("info"): Add 'gauche-package info' command.
+
+2024-01-16 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/data/random.scm: Switch the handling of current random source.
+ Now the procedures consistently captures the value of the
+ current random source at the time of creation of generators.
+ This is technically an incompatible change.
+ https://github.com/shirok/Gauche/issues/977
+
+2024-01-15 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/srfi/194.scm, lib/srfi/194/*.scm: Completing srfi-194 support.
+
+2024-01-12 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/compile-5.scm (pass5/$DYNENV): Fixed a bug that when KEY or
+ VALUE of with-continuation-mark is a procedure call, its result
+ becomes the result of with-continuation-mark.
+
+ * lib/data/random.scm (reals-between$): The range calculation was
+ broken.
+
+2024-01-09 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/libfmt.scm (format-internal), src/libmacro.scm: Experimentally
+ introduce formatter cache. The compiler determines "potentially
+ cacheable" call of `format`, and the runtime takes advantage of it
+ if possible. The drawback is that the compiler macro now inserts
+ reference to `format-internal`. It's embedded in the precompiled
+ code and We can't change its API across versions.
+
+2024-01-08 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/libfmt.scm (formatter-parse): Support conditional directive
+ (tilde left-bracket).
+
+2023-12-30 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/error.c (Scm_MessageConditionPrint): Extend the error message
+ truncation limit so that unexpected exception can give more info.
+
+2023-12-29 Shiro Kawai <shiro%acm.org@localhost>
+
+ * ext/tls/tls-mbed.c (mbed_write): If the data is big, single
+ mbedtls_ssl_write may return with partial write, so we need
+ to retry to send the rest of the data.
+
+2023-12-28 Shiro Kawai <shiro%acm.org@localhost>
+
+ * 0.9.14_pre1. Preparing another release to make TLS addition
+ available.
+
+2023-12-17 Shiro Kawai <shiro%acm.org@localhost>
+
+ * libsrc/file/util.scm (build-path): Allow 'cwd and 'cld as base-path
+ argument, for current workding directory and current loading
+ directory, respectively. We've seen enough of this pattern,
+ especially the latter, so it's worth having it.
+
+2023-12-10 Shiro Kawai <shiro%acm.org@localhost>
+
+ * ext/charconv: Support utf8bom encoding, which drops the optional BOM
+ at the beginning of utf8 stream. We simply implement utf8bom->utf8
+ internal routine, and use autosynthesis of other conversions.
+ We don't support utf8bom as an output encoding, at least for now
+ (see the discussion in the issue).
+ https://github.com/shirok/Gauche/issues/966
+
+ * src/librx.scm (%regexp-replace): Avoid rebinding current-output-port
+ during replacing, for the substitution procedure may output
+ and it's confusing that it is mixed into the result.
+ https://github.com/shirok/Gauche/issues/967
+
+2023-12-06 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/string.c (string_putc): Make 'write' escape control characters
+ in strings so that it's easier if hard-to-see characters are there,
+ e.g. Zero-width no-break space.
+
+2023-12-03 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/libthr.scm (run-once): Added.
+ (<mutex>, <condition-variable>, <thread-local>): Export these.
+ Class names are not in SRFI-19, but now that threads are in the
+ core, other parts of core may refer to them. (Notably, precomp
+ now needs them).
+
+2023-11-29 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/gencomp: Removed. This is an ancient script, superseded by
+ precomp long ago.
+
+2023-11-25 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/system.c (Scm_ToTimeSpec): More general interface that takes
+ the base time (t0) when relative time is given. Passing NULL
+ to t0 uses the current time.
+ Scm_GetTimeSpec() is defined on top of it. We thought to drop it,
+ but this API may have been used from other extensions, so we may
+ keep it.
+
+2023-11-24 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/builtin-sym.scm: Rearranged predefined symbols.
+ It's been for long time since we made builtin-syms.h private,
+ so no external code should depend on the order of them anymore.
+
+ * src/system.c (Scm_GetTimeSpec): Allow negative real number
+ for relative time specification. For the timeout argument,
+ we don't need that, but for general time operation it is useful.
+ Also support relative time specification with time-duration time.
+
+2023-11-21 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/control/pmap.scm (run-map): Terminate threads when
+ timeout reaches with fully-concurrent-mapper.
+ https://github.com/shirok/Gauche/issues/964
+
+ * src/libsys.scm (absolute-time): Added. Handy to canonicalize
+ 'timeout' argument.
+
+2023-11-20 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/gauche/cgen/unit.scm (<cgen-dummy-unit>): Initialize
+ cgen-current-unit with a dummy instance which issues error message
+ saying <cgen-unit> isn't set up properly. It is better than
+ 'object of class #<class <boolean>> doesn't have such slot'.
+
+2023-11-19 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/libmod.scm (module-exports?, module-binds?, module-binding-ref):
+ Introduced new names in place of global-variable-visible?,
+ global-variable-bound? and global-variable-ref.
+ See https://github.com/shirok/Gauche/issues/963
+
+2023-11-18 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/libmod.scm (global-variable-visible?): Added.
+ https://github.com/shirok/Gauche/issues/936
+
+ * ext/tls/tls.scm (tls-connect, tls-bind): Make proto argument
+ optional. DTLS is not very usable now, so there's little point
+ to allow users to specify udp here.
+ * ext/tls: Add tls-poll
+
+2023-11-17 Shiro Kawai <shiro%acm.org@localhost>
+
+ * ext/tls: Support get self/peer address, option to not verify
+ certificate.
+
+2023-11-15 Shiro Kawai <shiro%acm.org@localhost>
+
+ * doc/: Support epub generation from @qykth-git
+ https://github.com/shirok/Gauche/pull/959
+
+2023-11-14 Shiro Kawai <shiro%acm.org@localhost>
+
+ * ext/tls: Support TLS server connection.
+
+2023-11-10 Shiro Kawai <shiro%acm.org@localhost>
+
+ * ext/tls: Remove AxTLS support.
+
+ * src/module.c (Scm__InitModule): Remove obsoleted code to create
+ built-in srfi modules. Now it is done in auto-generated libsrfi.scm
+ so they're no longer needed, but had been harmless until we switch
+ srfi-N to srfi.N naming convention.
+
+ * lib/slib.scm (slib:features): Exclude srfi-0 from slib:features
+ to prevent slib initializer to load all available srfis, especially
+ srfi.29. It is mentioned in the comment immediately above, but
+ I seem to have reverted the change when I updated slib.scm based
+ on a newer template. https://github.com/shirok/Gauche/issues/960
+
+2023-11-03 Shiro Kawai <shiro%acm.org@localhost>
+
+ * libsrc/file/util.scm (remove-directory*): Add :if-does-not-exit
+ argument
+
+2023-10-27 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/system.c (Scm__WinFastLockLock): Fast lock implementation for
+ Windows (by @Hamayama, https://github.com/shirok/Gauche/pull/955)
+
+2023-10-26 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/bignum.c (bignum_mul_si): Optimize special case when bignum
+ muliplied by y=2^n (y is fixnum).
+
+2023-10-24 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/r7rs-setup.scm (open-binary-*-file): Even though Gauche
+ doesn't distinguish textual and binary ports, opening file as
+ binary may have an observable difference on Windows ('binary' mode).
+
+2023-10-22 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/core.c (Scm_ObjToExitCode): Consolidate exit code translation
+ to be shared between 'exit', 'sys-exit', and 'emergency-exit'.
+ https://github.com/shirok/Gauche/issues/947
+ * src/libeval.scm (exit), lib/r7rs-setup.scm (emergency-exit),
+ src/libsys.scm (sys-exit): Allow to take #f as code, which
+ is mapped to exit code 1.
+
+2023-10-21 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/srfi/74.scm: Fix blob-*-set! procedures.
+
+ * lib/check-script, lib/tools/check-script: Move check-script
+ to tools subdirectory.
+
+2023-10-15 Shiro Kawai <shiro%acm.org@localhost>
+
+ * Drop eucjp, sjis and none internal CES support. We use utf8
+ exclusively from now on.
+
+2023-10-14 Shiro Kawai <shiro%acm.org@localhost>
+
+ * Various files: Remove code with GAUCHE_API_VERSION < 98
+
+2023-10-11 Shiro Kawai <shiro%acm.org@localhost>
+
+ * Release 0.9.13
+
+2023-10-07 Shiro Kawai <shiro%acm.org@localhost>
+
+ * Rename gauche-default-encoding -> default-file-encoding
+
+2023-10-05 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/char.c (Scm_DefaultEncodingName, gauche-default-encoding),
+ src/libio.scm (open-input-file, open-output-file),
+ ext/charconv/convaux.scm (%open-input-file/conv),
+ (%open-output-file/conv): Add support fo gauche-default-encoding,
+ the encoding to be used when no :encoding option is given when
+ performing I/O.
+ https://github.com/shirok/Gauche/issues/944
+
+2023-10-04 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/core.c (init_cond_features): Define feature identifier
+ 'full-unicode' only when Gauche is compiled with utf8 encoding.
+
+2023-10-03 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/gauche/priv/writerP.h (SCM_WRITTEN_ELLIPSIS): Revert
+ using Unicode ellipsis to three dots for truncated output.
+ Windows terminals may not be able to handle Unicode ellipsis
+ (U+2026) depending on the OS default codepage, and it
+ triggers an error.
+
+2023-10-01 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/rfc/json.scm (print-instance): If :json-name slot definition
+ option is #t, use slot's name as the key.
+
+2023-09-26 Shiro Kawai <shiro%acm.org@localhost>
+
+ * libsrc/text/console.scm, lib/text/console/windows.scm:
+ Allow console to cache screen size. query-screen-size
+ may return cached results, unless the optional clear-cache
+ argument is true. reset-terminal clears the cache so that
+ next query-screen-size takes the actual screen size.
+ * libsrc/text/line-edit.scm: Consider screen size to show
+ completion candidates. The screen size may be cached, but
+ updetad by refresh-display.
+
+2023-09-24 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/libexc.scm, src/libthr.scm: Expose thread exception API
+ from gauche.threads module to match the document. It was
+ defined in gauche module before, but that doesn't make sense.
+
+ * src/liblazy.scm (make-promise), lib/r7rs-setup.scm:
+ Move R7RS make-promise into scheme.lazy, and make built-in
+ make-promise compatible to SRFI-226. This is technically
+ an incompatible change, but we've only documented make-promise
+ under scheme.lazy, so no code should be affected.
+
+2023-09-22 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/srfi/226/parameter.scm (parameterize-srfi-226): If you
+ use srfi.226, 'parameterize' is strictly limited to the
+ srfi-226 compatible parmeters.
+
+2023-09-20 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/gauche/cgen/literal.scm (literal-value=?): Optimized.
+
+ * src/port.c: Reduce overhead of string port creation. A significant
+ one is to omit registering finalizers, for they're not needed for
+ string ports. Also a couple of micro-optimizations.
+
+2023-09-19 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/parameter.c: Fix semantics of thread parameter. To conform
+ SRFI-226, mutation of dyncamically bound thread parameter shoudln't
+ be visible from other threads. Thus we need a fresh thread local
+ for every dynamic scope. On the other hand, legacy parameters
+ only requires thread locals for the global scope.
+
+ * src/threadlocal.c: Allow thread locals to be GC-ed and reused.
+ Each thread local storage keeps 'generation' along its value.
+ The generation is incremented when a thread local is GC-ed.
+ The next thread local which happens to use the same slot has
+ a different generation, so it can detect the slot is uninitialized,
+ even its value is not SCM_UNBOUND.
+
+2023-09-14 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/proc.c (proc_print): Allow a procedure to have a custom
+ printer. Scheme abstracts some kind of special constructs
+ as proceudres, e.g. parameters and continuations. It is nice
+ if we have a specialized printer to display info specific
+ to such construct, rather than the generic procedure printer
+ which can only show procedure-info.
+
+2023-09-13 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/write.c (write_object_fallback): If base class has print()
+ function pointer and derived class doesn't have write-object
+ method, we use base class's print() func instead of the
+ default printer.
+
+2023-09-12 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/parameter.c, src/libparam.scm (make-legacy-parameter):
+ Added. See https://github.com/shirok/Gauche/issues/935
+
+2023-09-10 Shiro Kawai <shiro%acm.org@localhost>
+
+ * libsrc/gauche/process.scm (do-process): Add :exit-code option
+ to :on-abnormal-exit keyword arg
+ https://github.com/shirok/Gauche/issues/928
+
+2023-09-09 Shiro Kawai <shiro%acm.org@localhost>
+
+ * libomega.scm: Add additional report for unbound variable error -
+ list modules that exports the name. It may help the user
+ to import necessary module.
+
+2023-09-08 Shiro Kawai <shiro%acm.org@localhost>
+
+ * libexc.scm, libomega.scm: Rename report-mixin-condition
+ to report-additional-condition, so that non-mixin condition
+ can also have customized error report.
+
+2023-09-07 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/error.c (Scm_MakeUnboundVariableError): Let evaluator throw
+ <unbound-variable> error for unbound variable.
+
+2023-09-06 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/tools/docprep: Renamed from preprocess-info. The plan is to
+ make it handle common doc preparation tasks.
+
+2023-08-31 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/tools/get-cacert: Moved from ext/tls/tls/get-cacert.scm,
+ for it's a runnable tool.
+
+ * tools/preprocess-info: Support '@c DEPRECATED' to mark deprecated
+ APIs.
+
+2023-08-29 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/port.c, src/gauche/priv/portP.h: Fix the issue that port finalizer
+ causes access to already collected object. It was the cause of
+ https://github.com/shirok/Gauche/issues/900
+ Note that a custom port's flusher and closer are no longer called
+ from the port finalizer if the custom structure is already
+ collected. If the custom port requires guaranteed cleanup,
+ it should attach its own finalizer to the custom port's heap
+ allocated object. In general, port's finalizer should be regarded
+ as a fail-safe mechanism, and explicit closing is recommended.
+
+2023-08-27 Shiro Kawai <shiro%acm.org@localhost>
+
+ * ext/gauche/bitvector.scm (bitvector-pad, bitvector-pad-right):
+ Fix to handle the case length argument is smaller than the length
+ of the given bitvector. For the consistency with string-pad,
+ the bitvector should be truncated.
+ https://github.com/shirok/Gauche/issues/922
+
+2023-08-26 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/rfc/hmac.scm: Revise API to suit for typical usage.
+
+2023-08-25 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/rfc/base64.scm, lib/rfc/quoted-printable.scm: Revise API.
+ The encoder now can take both string and u8vector, and renamed
+ to *-encode-message to reflect the generic nature.
+ The decoder now takes target class, and renamed to *-decode-string-to.
+ The latter is consistent with message digest framework.
+ The existing APIs are kept for the backward compatibility.
+
+ * src/libmacro.scm (typecase, etypecase): Added.
+
+ * lib/rfc/digest.scm: Allow digest-string-to to take predefined
+ encoding targets, e.g. base64 or hex.
+
+ * lib/rfc/base64.scm: Implement Base32, Base32hex and Base16 as
+ specified in RFC4648.
+
+2023-08-24 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/rfc/hmac.scm, lib/util/digest.scm: Add API to return digest
+ result as <u8vector>.
+
+ * src/libio.scm (%write-walk-rec): Avoid recursing into write-object
+ when obj is a <uvector>. This doesn't change the result, but
+ saves time.
+
+2023-08-22 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/rfc/json.scm (<json-mixin>): A convenient mapping from Gauche
+ instance to JSON.
+
+ * lib/rfc/base64.scm (base64-encode): Added omit-padding keyword arg.
+ Some protocol asks to do so, e.g. JWS (rfc7515).
+
+ * src/Makefile.in (clean-to-regenerate): Add a new target just to clean
+ Gauche-generated files. Useful to regenerate them, but no need to
+ start from reconfigure.
+
+2023-08-17 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/gauche/cgen/precomp.scm: Use packed debug info in the precompiled
+ C code. This reduces compiled *.o files about 10-20%.
+
+2023-08-11 Shiro Kawai <shiro%acm.org@localhost>
+
+ * doc/modutil.texi: Start documenting text.info. It is not particulary
+ featureful, but having been used for quite a while and may be worth
+ documenting.
+
+2023-08-09 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/memo.c (Scm_MemoTablePutv): Workaround for table extension
+ failure. https://github.com/shirok/Gauche/issues/914
+
+2023-08-07 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/control/scheduler.scm (scheduler-reschedule!): Allow to change
+ only time or duration argument, leaving the other intact.
+
+2023-08-04 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/compile-1.scm (pass1/extended-lambda-body): Expand :optional
+ handling hygienically.
+
+2023-08-01 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/rfc/cookie.scm (construct-cookie-string): Catch up to
+ RFC6265. We no longer need Version attribute, and both Expires
+ and Max-Age are honored unconditionally.
+ https://github.com/shirok/Gauche/issues/911
+
+2023-07-23 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/libio.scm, src/string.c, lib/gauche/interactive.scm:
+ Add string-length slot to <write-controls>, which can limit the
+ display length of strings.
+ https://github.com/shirok/Gauche/issues/908
+
+ * src/libstr.scm (string-ellipsis), lib/gauche/pputil.scm, etc.:
+ EXPERIMENTAL: If native CES is utf-8, use Unicode ellipsis (U+2026)
+ instead of three periods when the output is truncated.
+ We hope it makes easier to distinguish whether the output is actually
+ truncated, or there is indeed an ellipsis in the data.
+
+2023-07-20 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/port.c, src/portapi.c: Remove port terminal mode; it was a wrong
+ abstraction, for multiple ports can be connected to a terminal.
+ The actual issue https://github.com/shirok/Gauche/issues/877 has
+ been addressed with termios.
+
+2023-07-19 Shiro Kawai <shiro%acm.org@localhost>
+
+ * libsrc/text/console.scm (call-with-console), src/portapi.c:
+ Fix port terminal mode handling.
+
+2023-07-16 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/portapi.c: (Scm_Putc, Scm_Puts, Scm_Putz): Honor port terminal
+ mode.
+ * ext/termios/termios.scm: Switch port terminal mode along the
+ actial terminal state changes.
+
+2023-07-15 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/port.c (Scm_GetPortTerminalMode, Scm_SetPortTerminalMode):
+ Added. This is to address managing output while editable REPL
+ is active. https://github.com/shirok/Gauche/issues/877
+
+ * tools/make-export-list: Added.
+
+2023-07-14 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/libnum.scm (logset+clear): Added.
+
+2023-07-06 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/hash.c, src/libdict.scm (%current-recursive-hash), src/module.c,
+ src/libomega.scm (object-hash):
+ Make %current-recursive-hash a proper parameter.
+ https://github.com/shirok/Gauche/issues/879
+ NB: This commit drops Scm_CurrentRecursiveHash(). It has only been
+ used from libdict.scm. Technically this is incompatible change,
+ but we bet nobody else depend on this.
+
+2023-07-04 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/rfc/uuid.scm (parse-uuid): Add if-invalid keyword argument to
+ return #f for invalid uuid format, rather than raising an error.
+
+2023-07-03 Shiro Kawai <shiro%acm.org@localhost>
+
+ * doc/extract.scm, lib/tools/preprocess-info: Rename extract script
+ and make it avaialble as a tool script.
+
+2023-06-20 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/srfi/216.scm, src/srfis.scm: Support SRFI-216, SICP prerequisites.
+
+2023-06-12 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/libvec.scm, ext/uvector/uvector.scm: Move string <-> uvector
+ conversion routines to core, to avoid dependency issues.
+
+2023-06-11 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/genstub, lib/tools/genstub: Move genstub to tools subdir.
+
+ * lib/gauche/parseopt.scm: Allow omitting whitespace between
+ single-letter option and its argument.
+ https://github.com/shirok/Gauche/issues/904
+
+2023-06-09 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/precomp, lib/tools/precomp: Start moving standard scripts
+ to tools/ namespace, e.g. one will say 'gosh tools/precomp ...'
+ instead of 'gosh precomp ...'.
+ https://github.com/shirok/Gauche/issues/891
+
+2023-06-07 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/precomp, lib/gauche/cgen/precomp.scm: Add --omit-debug-source-info
+ option to drop debug-source-info from the generated compiled-code
+ literals. This can be used for: (1) The generated C file gets too
+ big, or (2) user wants to hide the source info for application
+ distribution.
+ * src/Makefile.in: Use --omit-debug-source-info to generate compile.c
+ for now. Adding source info makes compile.c too big to compile
+ on memory-tight machines. Note: We may be able to revert this
+ once we split compile.c.
+ * ext/uvector/Makefile.in: Ditto for gauche--uvector.c
+
+2023-06-06 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/precomp, lib/gauche/cgen/precomp.scm: Rename omit-source-info
+ keyword arg to omit-line-directives. We'll add option to omit
+ debug source info in the output, so the previous name is too
+ confusing.
+ Although this flag is in the output of 'usage' of precomp command,
+ it has never been implemented as a command-line option; the flag
+ can be turned on via an environment variable, which is not
+ documented. So we blatantly change the name without caring
+ the backard compatibility.
+
+ * src/code.c (Scm_CompiledCodeFinishBuilder): Revive NOSOURCE
+ compiler flag (it's been ineffective after some big compiler
+ rewrite).
+ For now, we handle source-info just the same and discard them
+ at the last moment of the code generation. We may as well ignore
+ source-info in earlier stage, but we expect using this option
+ is relatively rare so it may not worth doing so. Let's see.
+
+2023-06-05 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/gauche/procedure.scm: Renamed to procutil.scm for the
+ consistency.
+
+2023-06-04 Shiro Kawai <shiro%acm.org@localhost>
+
+ * gc/: bumped bdwgc 8.2.4
+
+2023-06-02 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/gauche/cgen/precomp.scm (serializable-debug-info): Attach
+ debug info to the precompiled codes.
+
+ * src/vm.c (Scm_VMTakeSnapshot): Added. Since VMDump calls high-level
+ output routine that may call back to Scheme code, the dump routine
+ itself may change VM state during dumping. To prevent that, we
+ take snapshot of VM before dumping.
+
+2023-05-29 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/gauche/numerical.scm, lib/gauche/logical.scm,
+ lib/gauche/signal.scm: Renamed to numutil.scm, logutil.scm and
+ sigutil.scm, respectively, for the consistency of autoloaded files.
+
+2023-05-23 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/thread.c (Scm_ThreadTerminate): Support
+ SCM_THREAD_TERMINATE_SCHEDULE flag.
+ * src/libthr.scm (thread-schedule-terminate!): Added.
+
+ * lib/r7rs-setup.scm, src/libexc.scm, src/liblazy.scm:
+ Move raise-continuable and make-promise to the core, for
+ they are exported from srfi.226 as well.
+
+2023-05-22 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/rfc/base64.scm (base64-decode): Add :strict keyword argument.
+
+2023-05-20 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/gauche/mop/typed-slot.scm: Added experimentally.
+
+2023-05-19 Shiro Kawai <shiro%acm.org@localhost>
+
+ * libsrc/gauche/sequence.scm (inverse-permuter, unpermute): Added.
+ The names can be better. Let's see.
+
+2023-05-16 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/libio.scm (port-case-fold): Drop port-case-fold-set! (previously
+ undocumented) and replace (setter port-case-fold), for the API
+ consistency. A few references to the old name in the source tree
+ are updated. NB: lib/gauche/cgen/precomp.scm is used to compile
+ 0.9.13, so it needs to work on both old and new gosh. For now,
+ we use an ugly kludge for transition.
+ Also put port-case-fold in gauche.internal. case-fold flag has
+ global effect and accidentally changing it can cause a wreak havoc.
+ There are already scope-delimited way to change the mode (#!fold-case
+ directive, or include-ci form).
+ * 0.9.13_pre4, because of the above change.
+
+2023-05-09 Shiro Kawai <shiro%acm.org@localhost>
+
+ * ext/package-templates/configure-compat: Remove compatibility hack.
+ Let's assume new modules are developed for 0.9.10 and later.
+
+2023-05-08 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/main.c, src/libeval.scm (%invoke-other-version): Extend -v option
+ so that -v:VERSION tries to run VERSION, but if it can't find one,
+ falls back to the current version.
+
+ * lib/gauche/fileutil.scm, src/libsys.scm: Move glob to libsys.scm.
+ Before, '%invoke-other-version' triggered autoload of fileutil,
+ but that caused some issue when the user use gosh -vVERSION
+ from the uninstalled source tree.
+
+2023-05-01 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/libnum.scm: Dropped hidden real-only versions of elementary
+ functions, e.g. %sin, replacing with SRFI-94 real-sin etc.
+ They were never documented. Now we document real-* version.
+ * lib/compat/real-elementary-functions: Compatibility module to
+ provide the old names such as %sin etc.
+
+2023-04-17 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/lazy.c (Scm_VMForce): Fix a race condition; there was a hazard
+ when one thread reads promise's state and goes to evaluate thunk,
+ while another thread changes them simultaneously.
+
+2023-04-14 Shiro Kawai <shiro%acm.org@localhost>
+
+ * ext/gauche/unicode.scm (string-east-asian-width, string-take-width)
+ (string-drop-width): Added.
+
+2023-04-13 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/class.c: Changed my mind. Say :immutable instead of :init-once,
+ for the option is exacly for immutable slots. Besides, init-once
+ is weird, for 'initialization' occurs once regardless of slot's
+ immutablility. (Set-once would probably have been closer.)
+
+2023-04-12 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/class.c: Support :init-once slot option. This limits slot-set!
+ to a slot that's previously unbound. If the slot already has a value,
+ an error is signaled. This effectively works as an immutable
+ slot. Note that the slot initialization calls the internal setter,
+ so we need to allow the first set!.
+
+ * ext/threads, src/thread.c, src/mutex.c, src/libthr.scm,
+ src/gauche/thread.h: Move ext/threads into core.
+ Cf. https://github.com/shirok/Gauche/issues/893
+
+2023-04-09 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/rfc/base64.scm (base64-encode-bytevector),
+ (base64-decode-bytevector): Added. They depend on gauche.vport,
+ and their tests are done separately in ext/vport.
+
+2023-04-05 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/compile-i.scm, src/vminsn.scm, src/vector.c: Allow uvector-ref
+ to be inlined. UVEC-REF can now handle generic uvector.
+
+2023-04-04 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/math/simplex.scm: Allow any sequence to be b an c vectors;
+ we copy them internally anyway.
+
+2023-03-27 Shiro Kawai <shiro%acm.org@localhost>
+
+ * 0.9.13_pre3
+
+2023-03-25 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/rfc/base64.scm: Allow :digits keyword argument to specify
+ alternative digits.
+
+ * src/vector.c (Scm_ReadUVector): Preliminary support of
+ SRFI-207 string-notated bytevectors.
+
+2023-03-20 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/math/simplex.scm: Added. There are lots of room of optimization,
+ though it's working.
+
+ * ext/uvector/matrix.scm (array-vector-mul, vector-array-mul):
+ Add (u)vector and array multiplication, for they appear frequently.
+ We may make array-mul to accept vector arguments, but it can be
+ done later.
+
+2023-03-15 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/lazy.c (Scm_VMForce): Allowing multiple threads to force
+ a promise simultaneously, as SRFI-226 semantics. We only guarantee
+ that the force value is always the same - the first delivered result
+ takes precedence.
+ * src/compile-1.scm (delay): Support mv-delivering delay.
+
+2023-03-11 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/lazy.c (Scm_MakePromise, Scm_VMForce): Run delayed thunk in
+ the parameterization of the time the promise is created.
+ This is for SRFI-226, but divergence from R7RS.
+ Note that this change breaks the current implementation of
+ SRFI-155 in a subtle way. Once SRFI-226 is adopted, however,
+ SRFI-155 semantics is supported natively. For now, we just
+ suppress the test that relies on the broken implementation.
+
+2023-03-10 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/gauche/cgen/stub.scm (if, when): Warn when these obsoleted
+ stub toplevel forms are used. These are never officially documented
+ and we switched to .if/.when for years ago, but just in case we
+ keep them a bit more.
+
+2023-03-09 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/gauche/cgen/cise.scm (.error): Add CiSE macro to
+ generate #error cpp directive. See libsys.scm for the use case.
+
+ * src/compile-0.scm (define-simple-struct): Define macros and
+ cise-exprs that expands into slot offset. This allows the
+ CiSE code to use slot offset without relying on literal numbers.
+ (See LVAR_* macros in compile.scm for the use case).
+
+2023-03-07 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/libsys.scm (seconds+): Added (srfi-226)
+
+2023-03-01 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/srfi/235.scm: Start adding.
+
+2023-02-28 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/libproc.scm (constantly): Allow to return multiple values,
+ adopting SRFI-235.
+ * lib/gauche/procedure.scm (flip, swap): Added a couple of SRFI-235
+ procedures.
+
+2023-02-27 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/libparam.scm (temporarily): 'with' -> 'temporarily', according
+ to srfi-226 revision.
+
+2023-02-25 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/control/plumbing.scm (plumbing): Add generic utility.
+ Simplify make-pump etc. just to take oports (without options).
+ If the user wants to specify options, they can use 'plumbing'.
+
+2023-02-23 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/math/const.scm: Add greek identifiers (π). UTF-8 has become
+ ubiquitous and we don't need to hesitate using them.
+
+2023-02-20 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/control/plumbing.scm: Allow optional names to inlets/outlets
+ so that ports can be extracted from a plumbing by name.
+ NB: API of add-outlet-output-port! has changed.
+ We'll likely to change convenience utilities to accept names
+ as well.
+
+2023-02-19 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/srfi/239.scm: Add srfi-239 (documented).
+
+2023-02-18 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/libsys.scm (time-comparator): Added. Although <time> can be
+ compared with default-comparator, a separate comparator is handy
+ to be used to compose more complicated comparators (cf. srfi.228).
+ We also want date-comparator, but <date> is defined in srfi.19,
+ and we don't want to add bindings not defined in the srfi to
+ the srfi module. We'll think where it should go.
+
+2023-02-16 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/Makefile.in (BUILD_GOSH_VERSION): Give -v option to BUILD_GOSH
+ so that precompilation of core is guaranteed to be done with the
+ specified version of Gauche. Without this, sometimes the changes
+ in the prerelease version caused build problems.
+
+2023-02-10 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/libeval.scm (load): Change return value - on successful loading,
+ return the actual filename loaded. It is useful, for 'load' tries
+ a few things to find the actual file (look for search paths, adding
+ file suffixes, etc.) so the actual file path may not be tha same
+ as the 'file' argument.
+ This is technically an incompatible change: Before, 'load' returns
+ #t on success, and it is documented. We think returning pathname
+ is better, and the code that treats the return value as a
+ generalized boolean still works.
+
+2023-02-09 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/portapi.c (Scm_Flush): Fix bug that stdout is locked
+ by the primoridal thread in REPL (or any thread that first
+ calls flush). https://github.com/shirok/Gauche/issues/876
+
+2023-02-07 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/srfis.scm (srfi-244): Supported (it's already in the core).
+
+2023-02-01 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/precomp, lib/gauche/cgen/precomp.scm: Allow to suppress
+ #line directives with environment variable
+ GAUCHE_PRECOMP_OMIT_SOURCE_INFO. Sometimes the error position
+ in *.scm is unreliable for troubleshooting.
+
+ * ext/file/event.scm: Start adding file event API; inotify for
+ the starter. We'll provide high-level API that hides
+ difference of subsystems.
+
+2023-01-29 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/geninsn: Add feature to load/save insn to opcode map.
+ See https://github.com/shirok/Gauche/issues/869
+
+2023-01-26 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/libfmt.scm (make-format-plural): Support ~P.
+
+2023-01-24 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/libmacro.scm (define-class, define-generic, define-method):
+ Turn them into a macro rather than compiler-builtin, finally.
+ This, however, has a little side-effect; they expand to define
+ forms, so they can now appear in the declaration context,
+ not necessarily at the top-level.
+ We don't officially support non-toplevel use of these forms yet,
+ for these forms have global effect and we're not sure how they
+ should interact with lexical scope.
+
+ * src/libobj.scm (define-method): Bind the method closure to a
+ module-local hidden toplevel variable, so that test-module
+ can find the method body and scan for undefined variable
+ references.
+ Note: This forces define-method to be on toplevel. Although
+ it hasn't been explicitly documented, it's been assumed that
+ they're toplevel forms as the name suggests. The code that has
+ been used define-method in non-toplevel raises an error after
+ this change; they should be rewritten to make define-method
+ toplevel.
+ Technically it can appear in the internal definition context,
+ but we're not sure about its semantics.
+
+2023-01-23 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/number.c (Scm_SinPi): Make sure
+ (= (real-sinpi 0.25) (real-cospi 0.25)).
+
+2023-01-22 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/data/ulid.scm (make-ulid-generator): Use internal random source
+ when random-source argument is omitted. Using default-random-source
+ causes ULID conflict for multiple runs if the user didn't randomize
+ it beforehand.
+ https://github.com/shirok/Gauche/issues/873
+
+2023-01-20 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/compile-1.scm (pass1/body-rec): Make duplicate internal
+ definitions an error.
+ https://github.com/shirok/Gauche/issues/872
+
+2023-01-19 Shiro Kawai <shiro%acm.org@localhost>
+
+ * libsrc/data/ring-buffer.scm (ring-buffer-room): API Added.
+
+2023-01-18 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/contro/plumbing.scm: Move tapping port from gauche.vport.
+
+2023-01-15 Shiro Kawai <shiro%acm.org@localhost>
+
+ * ext/vport/vport.scm (open-tapping-port): Experimentally added.
+ We might make a separate module for it, so do not count on this.
+
+2023-01-08 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/libnum.scm (negative-zero?): Rename undocumented '-zero?' to
+ 'negative-zero?' and make it official. Replaced internal use of
+ '-zero?' to 'negative-zero?'.
+
+2023-01-07 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/libnum.scm: Change %expt -> real-expt etc. The real-only
+ versions (%expt, %sin, etc.) are undocumented but used internally
+ when the domain and range are real. SRFI-94 already defines
+ real-only names, so we name them accordingly and make them official.
+ NB: If an external program uses unofficial names, they would raise an
+ error. If that causes a serious problem, we'll provide compatibility
+ layer.
+
+ * src/libsys.scm (sys-strsignal): Added.
+
+2023-01-04 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/srfi/210.scm: Added SRFI-210.
+
+ * src/libmacro.scm (set!-values): Allow improper list in the var list
+ for the consistency.
+
+2023-01-02 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/gauche/fmtutil.scm: Support ~@r roman numeral formatter.
+
+2022-12-29 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/libmacro.scm (rotate!): Added. CL's rotatef.
+
+2022-12-25 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/port.c, src/vm.c: Switch current-*-port and SCM_CUR* to
+ parameters; R7RS specifies them to be so, and we want new
+ parameterization scheme to work on these values too.
+ NB: This requires recompilation of extension modules, for
+ the code that refers to SCM_CUROUT etc. is compiled to refer
+ to the VM slots directly, which no longer exist.
+ This change may also affect performance; need to take benchmark.
+
+2022-12-24 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/compile-i.scm (dynamic-wind): Optimized version of inlined
+ dynamic-wind incorrectly omitted POP-HANDLERS. It's rare that
+ this optimization is triggered (after thunk must be a constant
+ lambda, which is not common), and probably that's why this
+ hasn't been revealed.
+ Existing code precompiled with 0.9.12 and before may contain
+ erroneous code (though it's very unlikely).
+
+2022-12-22 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/srfi/172.scm, lib/srfi/172/functional.scm: Added.
+
+2022-12-21 Shiro Kawai <shiro%acm.org@localhost>
+
+ * libsrc/text/line-edit.scm (insert-closing-paren): Change paren
+ highlight. Now it highlighs opening paren for a short period of
+ time when closing paren is inserted.
+
+2022-12-11 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/srfi-*.scm, lib/srfi/*.scm: Make srfi/*.scm main implementation
+ files https://github.com/shirok/Gauche/issues/680
+
+ * src/core.c (Scm_SimpleMain): Fix exit status alined with script
+ execution. https://github.com/shirok/Gauche/issues/861
+
+2022-12-10 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/libfmt.scm (formatter-lex): Support ~ + newline
+
+ * lib/srfi-228.scm, src/srfis.scm: Add srfi-228.
+
+2022-12-08 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/libfmt.scm: Add ~&.
+
+ * src/libio.scm (fresh-line): As a side-effect from port column
+ counting, we can now easily have CL's fresh-line.
+
+2022-12-06 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/libio.scm (port-link!, port-unlink!): Added.
+ * src/port.c: Reset output column count when linked input port
+ reads '\n', so that ~:W indent correctly during interactive REPL.
+
+2022-12-05 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/gauche/priv/portP.h, src/port.c: Add port linking.
+ Stdin and stdout is linked by default; reading from stdin
+ causes flushing stdout.
+
+2022-12-04 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/libio.scm (port-column): Expose this to Scheme (but only for
+ gauche.internal module, for now)
+
+ * src/libfmt.scm (make-format-pprint): Support ~:w (pretty print)
+ and ~@w.
+
+2022-12-01 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/write.c (Scm_Vprintf): Add provisional support of %W (pprint).
+ We still need to figure out how to set indent.
+
+2022-11-30 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/write.c, src/io.scm: Add indent slot to <write-controls>
+ * lib/gauche/pprint.scm: Add indentation according to the indent
+ value of the controls.
+
+2022-11-24 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/vm.c: Ensure dynamic handlers are invoked on a proper dynamic
+ environment. This is important to ensure 'with' and delimited
+ continuations work together.
+ The entry of dynamic handler chain is changed. They should be
+ treated opaque outside of vm.c.
+
+2022-11-23 Shiro Kawai <shiro%acm.org@localhost>
+
+ * libsrc/gauche/parameter.scm: Export parameterize as an alias of
+ parameterize/dynwind, so that the legacy code gets
+ backward-compatible parameterize. New code shouldn't use this
+ module.
+
+ * src/libparam.scm (parameterize/dynwind): Provide backward-compatible
+ parameterize under this name.
+
+2022-11-22 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/libmacro.scm (independently), src/srfis.scm (srfi-236):
+ As srfi-236 is finalized, support this officially. It's general
+ enough to be built-in.
+
+2022-11-20 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/scheme/comparator.scm: Incorporate srfi-162 as sell.
+
+ * lib/compat/chibi-test.scm (chibi-test): Support test-equal.
+
+2022-11-18 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/parameter.c, src/libparam.scm (current-parameterization),
+ (parameterization?, call-with-parameterization): Added.
+
+2022-11-15 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/gauche/test/include.scm (test-include-r7): Added. Make it easier
+ to include r7rs test script in Gauche tests.
+
+2022-11-13 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/srfi-236.scm: Added.
+
+2022-11-12 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/parameter.c: Change how parameter procedure keeps parameter
+ object. Now we emply the same way as continuation procedure;
+ that is, SCM_PROCEDURE_INFO holds a unique uninterned symbol,
+ and the extractino procedure can use SCM_SUBR_DATA.
+ NB: With this change, parameter? returns #t for primitive parameter
+ procedures as well. It should be.
+
+ * src/libparam.scm (%parameterize): Start using dynamic env to keep
+ ordinary parameters.
+
+2022-11-10 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/gauche/time.scm (time-these/report, report-time-results):
+ Allow measure/report using not only cpu times, but also real,
+ user or sys.
+
+2022-11-04 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/compaux.c, src/libmacbase.scm: Remove syntactic closure support.
+ They haven't been used at all.
+
+ * src/vm.c, src/class.c, src/libproc.scm (make-continuation-prompt-tag,
+ default-continuation-prompt-tag): Add continuation prompt tag.
+
+2022-11-02 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/vm.c: Store exception handler in DENV.
+
+2022-10-29 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/vm.c: VM inherits denv from calling thread.
+
+ * src/list.c (Scm_AlistCopy): Implement in C.
+
+2022-10-28 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/compile-*.scm: Support with-continuation-mark.
+
+2022-10-27 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/compile.scm ($DYNENV): New IForm node for supporting
+ continuation marks.
+
+2022-10-20 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/parameter.c, ext/threads/threads.scm (make-thread-local):
+ Add srfi-226 thread-local APIs.
+
+2022-10-19 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/gauche/priv/vmP.h (ScmEscapePoint),
+ src/vm.c (Scm_VMDefaultExceptionHandler, Scm_VMReraise),
+ src/libexc.scm (%reraise): Address the issue that escapePoint
+ in the floating chain loses pointer to the continuation frames.
+ https://github.com/shirok/Gauche/issues/852
+ We fell back to safe-but-slow option: Continuation chains are
+ saved as soon as default exception handler is invoked, so that
+ all active EPs point to contFrames on heap.
+
+2022-10-03 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/libmacro.scm (quasirename): Attach source info of the
+ quasirename constructed lists.
+
+2022-10-02 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/read.c (process_sharp_comma): Attach source info to the
+ output of sharp-comma constructor, if it yields a pair.
+ Notably, this results source info attached to string
+ interpolations.
+
+2022-10-01 Shiro Kawai <shiro%acm.org@localhost>
+
+ * macro.c (compile_rule1, realize_template_rec): Carry over
+ source info of macro template and macro input.
+ * libeva.scm (%show-stack-trace): Show all macro expansion
+ history along the source info.
+
+2022-09-27 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/list.c (Scm_MakeImmutablePair): C API INCOMPATIBLE CHANGE:
+ Now it takes the third argument, attrs, being parallel to
+ Scm_MakeExtendedPair, for the consistency. We expect the API
+ isn't used by external libraries, for the immutable pairs are
+ recent addition.
+ * Bug fix on debug source info of quoted literals.
+ https://github.com/shirok/Gauche/issues/847
+
+2022-09-25 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/gauche/vm/debugger.scm (debug-print-conditionally)
+ (debug-funcall-conditionally),
+ src/read.c (read_internal): Add "#??=" and "#??," debug helper
+ syntax, to print info only when condition is met.
+
+2022-09-21 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/gauche/redefutil.scm (class-redefinition): Fix redefining
+ a class with redefined metaclass
+ https://github.com/shirok/Gauche/issues/845
+
+ * src/libobj.scm (write-object <class>): Show 'redefined' for
+ class objects with custom metaclass.
+
+2022-09-18 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/data/range.scm (bitvector/bool-range, bitvector/int-range):
+ Added bitvector to range constructors. Also revised <flat-range>
+ definition to allow raw-indexer customization and optimization.
+
+2022-09-14 Shiro Kawai <shiro%acm.org@localhost>
+
+ * tools/tls/Makefile.in: Use mbedtls 3.2.1 for mbedtls-internal
+
+ * src/portapi.c (Scm_Getz): Bug fix: We've treated bufport_filler
+ returning 0 as EOF, but that's not always the case---if the requested
+ size is 0, e.g. via (read-bytevector 0), returning 0 is a valid
+ return value without meaning EOF.
+
+ * ext/tls/tls-mbed.c: Show string error message for mbedtls errors,
+ along the error code.
+
+2022-08-26 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/vm.c (Scm_VMApply0, etc.): Experimentally turn on subr
+ trampoline; if a subr is tail-called from another subr, and
+ the number of argument matches, then we skip the usual
+ argument folding & procedure dispatching sequence.
+
+2022-08-14 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/srfi-222.scm: Added.
+
+2022-08-12 Shiro Kawai <shiro%acm.org@localhost>
+
+ * libsrc/text/line-edit.scm (completion-command): Allow completion
+ with hyphenated prefxies, e.g. 'w-i-f' -> 'with-input-from-'.
+
+2022-08-11 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/text/segmented-match.scm (text.segmented-match): Added.
+
+2022-08-09 Shiro Kawai <shiro%acm.org@localhost>
+
+ * doc/modutil.texi: Start adding text.multicolumn doc
+
+ * lib/text/multicolumn.scm (layout-multicolumn): Make multicolumn
+ formatting two-step process for flexibility; layout-multicolumn
+ returns a list of text for each line, and display-multicolumn
+ uses it to print out the formatted text.
+
+2022-08-06 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/libexc.scm, src/srfis.scm: Export missing identifiers from
+ srfi-35.
+
+2022-08-04 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/libvec.scm (bitvector-any-value?, bitvector-every-value?):
+ Allow start/end optional args.
+
+2022-08-03 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/vector.scm (bitvector-any-value?, bitvector-every-value?):
+ Rename bitvector-any? and bitvector-every? and let them take the
+ bit value to search. This eliminates the need of bitvector-none?,
+ and also make it symmetric (we can test 'having at least 1 zero).
+
+2022-07-30 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/srfi-209.scm: Added, passes the tests (tests depend on
+ gauche.bitvector, so it is tested in ext/gauche).
+
+2022-07-29 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/scheme/regex.scm (scheme.regex): Export missing regex?
+ https://github.com/shirok/Gauche/pull/836
+
+2022-07-28 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/vm.c (POP_CONT): Avoid copying C continuation data into
+ machine stack. The data argument of Ccont proc now points
+ direclty to the continuation's data field. This should be ok,
+ for subrs aren't supposed to modify these fields.
+ NB: There may be an issue if void* and ScmObj are different in size,
+ though its very unlikely in modern platforms.
+
+2022-07-14 Shiro Kawai <shiro%acm.org@localhost>
+
+ * ext/srfi/srfi-178.scm, ext/gauche/bitvector.scm, lib/srfi-178.scm:
+ Move bitvector lib as gauche.bitvector, for we'll add some more
+ bitvector utilities. srfi-178 just reexport srfi procedures.
+
+2022-07-12 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/libvec.scm (bitvector-any?, bitvector-every?, bitvector-none?):
+ These are not in srfi-178 but handy to have.
+
+2022-07-06 Shiro Kawai <shiro%acm.org@localhost>
+
+ * doc/corelib.texi (format): Description of ~nR was missing.
+
+ * lib/gauche/cgen/stub.scm (define-cclass): Fix cise issue in
+ define-cclass https://github.com/shirok/Gauche/issues/832
+
+2022-07-04 Shiro Kawai <shiro%acm.org@localhost>
+
+ * ext/mt-random: Make mersenne twister RNG thread-safe by default.
+
+2022-07-03 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/data/ulid.scm (ulid): Drop record type name from export list.
+ It doesn't follow Gauche's class naming convention. We may
+ reintroduce it as <ulid> in future, but let's see.
+
+2022-06-30 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/gauche/interactive.scm (describe <generic>): Show each method's
+ source location if available.
+
+ * src/libobj.scm (%expand-define-method),
+ src/class.c (method_initialize): Set source location info to
+ the list in <method>'info, so that it can be retrieved by
+ source-info.
+
+2022-06-28 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/libmacro.scm (assume-type): support optional msg objs ...
+ arguments for the custom error message.
+ (assume): Use custom error message if provided.
+
+ * src/libtype.scm, src/number.c: Native type support for
+ <intptr_t> and <uintptr_t>.
+
+2022-06-27 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/libalpha.scm (make-case-lambda): Make procedure-info of
+ case-lambda more readable. It is for human reader, and having
+ #(#<closure ...> ...) is not helpful. Now it is
+ (<name> #(<formals> ...)).
+
+2022-06-25 Shiro Kawai <shiro%acm.org@localhost>
+
+ * Release 0.9.12
+
+2022-06-21 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/number.c (read_number): Support srfi-169, underscores in numbers.
+ Technically this introduces incompatibility:
+ - Tokens such as 1_2_3 is now read as a number 123, instead of
+ a symbol.
+ - Underscores in prefexed numeric literals must obey srfi-169
+ instead of simply being ignored. #x_dead_beef_ was ok before,
+ but no longer.
+
+2022-06-19 Shiro Kawai <shiro%acm.org@localhost>
+
+ * ext/uvector/uvlib.scm.tmpl (@vector-segment): Check arg to avoid
+ infinite loop. https://github.com/shirok/Gauche/issues/828
+
+2022-06-06 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/srfi-232.scm: Add srfi-232 Flexible curried procedures.
+
+2022-06-05 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/compile-4.scm (pass4/scan): Fix incorrect free-variable
+ propagation in $clambda node.
+ https://github.com/shirok/Gauche/issues/826
+
+2022-06-04 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/liblist.scm (num-pairs): Added.
+
+2022-05-30 Shiro Kawai <shiro%acm.org@localhost>
+
+ * test/net.scm: Recover gauche.net test
+
+2022-05-29 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/list.c (Scm_LastPair): Detect circular list. It is not required
+ in the spec (last and last-pair), but doing so is cheap and it's
+ something nice to have.
+
+2022-05-28 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/libvec.scm (make-s8vector etc.), ext/uvector/uvlib.scm.tmpl:
+ Move constructors to the core.
+
+2022-05-21 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/gauche/connection.scm, lib/gauche/netutil.scm: Moved
+ connection protocol implementation to gauche.net. Keep
+ gauche.connection just for the backward compatibility.
+
+2022-05-20 Shiro Kawai <shiro%acm.org@localhost>
+
+ * ext/net, src/libnet.scm, src/net.c, src/netaddr.c, src/netdb.c:
+ Move ext/net into core. Sometimes it's handy for the extension
+ modules to be able to call net-related C functions.
+
+2022-05-16 Shiro Kawai <shiro%acm.org@localhost>
+
+ * ext/tls/tls.ac: Do not compile axtls by default. Preparing
+ to drop axtls support in future releases.
+
+2022-05-10 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/signal.c (Scm_SigWait): Avoid using signal number 0 for
+ sigismember/sigdelset. This causes failure on OSX Monterey.
+
+2022-04-21 Shiro Kawai <shiro%acm.org@localhost>
+
+ * ext/srfi/srfi-19.scm: Define object-compare for <date>.
+
+2022-04-20 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/util/temporal-relation.scm: Added.
+
+2022-04-18 Shiro Kawai <shiro%acm.org@localhost>
+
+ * configure.ac: 0.9.12_pre1
+
+2022-04-17 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/liblist.scm (list-ref): Better error message.
+ (See comments in https://github.com/shirok/Gauche/issues/814)
+
+2022-04-16 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/libmacro.scm (push-unique!): Added, finally. CL's pushnew.
+ I've been resisting the temptation to add this, for most of the
+ times it doesn't bother me much to write out the logic explicitly.
+ However, I hit the cases where this makes code much cleaner
+ enough times.
+
+2022-04-07 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/main.c (main): Noticed *program-name* and *argv* aren't defined
+ when gosh invoked as REPL. Although they are of little use in REPL,
+ leaving them undefined may cause some inconvenience. We just
+ define "" as *program-name* and () as *argv*.
+
+2022-04-06 Shiro Kawai <shiro%acm.org@localhost>
+
+ * ext/tls/tls.c: Fix fd leak in <ax-tls>
+ https://github.com/shirok/Gauche/issues/817
+
+2022-03-21 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/control/thread-pool.scm (wait-all): Fix race condition
+ ( https://github.com/shirok/Gauche/issues/812 )
+
+2022-03-16 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/system.c (Scm_StrfTime): MinGW's strftime() returns a
+ multibyte string in system's language settings, so its handling
+ is tricky. We introduced a compatibility layer.
+
+ * src/libsys.scm (sys-setlocale): Allow #f for locale argument
+ (corresponding to passing NULL in C API). It can be used to
+ obtain the current locale.
+
+2022-03-10 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/write.c, src/libfmt.scm: If string is truncated within double
+ quotes, add '"...' (instead of ' ..."' as before). The normal
+ truncation is ' ...' (a whitespace before dots), so it gives a
+ clue that the string is truncated. We also support the same
+ format in Scm_Printf().
+
+2022-03-09 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/gauche/cgen/precomp.scm: Revert commit #f5577697cf - this
+ appears no longer needed to inline procedures within the same
+ compilation unit during precompilation.
+
+2022-03-06 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/write.c (vprintf_pass2): Fix truncation of %S and %A - it looked
+ like we were in the middle of the change and then forgot to pick
+ it up.
+
+2022-03-05 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/libfmt.scm (chop-and-out): Make 'truncation' format directive
+ recognize an open double quote and close it properly even if
+ the content is truncated. This will prevent font colorlizer
+ (e.g. Emacs Scheme mode) from being messed up by unclosed
+ double quotes caused by truncation.
+
+2022-02-26 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/compile-2.scm (pass2/$LET): Lift component closures of locally
+ defined case-lambda into the same level of environment. Expecting
+ the later stage of case-lambda optimization to become easier.
+ Note that this changes ordinary let frame to letrec frame (since
+ the newly introduced variable is referred to by the case-lambda
+ construction in the same environment). We expect such conversion
+ would occur rarely (if local case-lambda is introduced by internal
+ defines, the frame is already letrec*.)
+
+2022-02-21 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/libalpha.scm (case-lambda-decompose): Rename from case-lambda-info
+ (too vague). Use new %case-lambda-info so that it can have definite
+ info, instead of relying procedure-info slot.
+ This procedure hasn't been public, so name change shouldn't affect
+ existing code. We may come up a better name later.
+
+2022-02-20 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/compile-1.scm, src/libalpha.scm: Global case-lambda inliner.
+ Now case-lambda procedure can be define-inline'd, and if the call
+ site knows the number of arguments, it preselects the apprpricate
+ branch and direclty inlines it.
+
+2022-02-15 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/libalpha.scm (make-case-lambda): No longer look at 'formals'
+ argument; the info can be extracted from closures.
+
+2022-02-14 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/number.c (Scm_NumCmp): Make sure '=' transitivity is kept
+ in exact v inexact comparison.
+ https://github.com/shirok/Gauche/issues/805
+
+2022-02-12 Shiro Kawai <shiro%acm.org@localhost>
+
+ * text/line-edit.scm: Add whitespace after the completed word if
+ the completion returns a single definite result. It is indicated
+ by the lister callback returning a string, rather than a list.
+ Note that we need to distinguish the case when there's only one
+ candidate but further search is possible (e.g. completing a directory
+ name when searching the actula file).
+
+2022-02-11 Shiro Kawai <shiro%acm.org@localhost>
+
+ * data/ulid.scm: Added. Port from https://github.com/shirok/scheme-ulid
+
+2022-02-10 Shiro Kawai <shiro%acm.org@localhost>
+
+ * gc: Bumped bdwgc 8.0.6
+
+2022-02-09 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/gauche/libutil.scm (library-fold): Rewrote on top of glob-fold.
+ This allows extended glob pattern such as {} and **.
+
+ * lib/gauche/fileutil.scm (glob-fold): Add prefix keyword arg.
+
+2022-02-02 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/read.c (Scm_CharWordConstituent),
+ src/libio.scm (char-word-consituent?): Expose these for they are
+ generally useful to write something that deal with Scheme names.
+
+2022-01-30 Shiro Kawai <shiro%acm.org@localhost>
+
+ * libsrc/text/gap-buffer.scm
+ (gap-buffer-contains, gap-buffer-looking-at?): Added.
+
+ * src/libstr.scm (opt-substring): Rename %maybe-substring opt-substring
+ and officially support it in #<module gauche>. It is generally
+ useful.
+
+2022-01-23 Shiro Kawai <shiro%acm.org@localhost>
+
+ * libsrc/text/line-edit.scm: Some improvement of completion. Now
+ if there're multiple candidate and TAB is typed twice, the candidate
+ list is displayed.
+
+ * lib/text/multicolumn.scm: Added
+
+2022-01-21 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/srfi-227.scm: Added srfi-227.
+
+2022-01-18 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/gauche/editable-reader.scm: Implement a rudimental symbol
+ completion. We'll experiment for a while to see what's best
+ in REPL.
+
+2022-01-16 Shiro Kawai <shiro%acm.org@localhost>
+
+ * libsrc/text/line-edit.scm: Add a hook for completion.
+
+ * libsrc/text/gap-buffer: Drop gap-buffer-gap-start and
+ gap-buffer-gap-end. They reveals internals unnecessarily. They
+ weren't documented, and have only been used for testing.
+ (gap-buffer-pos-at-end?): Added.
+
+2022-01-13 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/compile-1.scm (case-lambda): Change case-lambda handling.
+ Instead of expanding to the call for make-case-lambda in pass1,
+ we create $CLAMBDA node and carry it up to pass5. This will allow
+ more optimizations.
+
+2022-01-05 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/mmap.c (Scm_SysMmapWX): Separate writable pages and executable
+ page if PaX MPROTEXT is active.
+
+2022-01-04 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/list-ext-objects.sh: Allow to take extra directories to scan
+ object files to archive.
+ * src/Makefile.in, tools/tls/Makefile.in:
+ If --with-tls=mbedtls-internal, scan tools/tls to archive mbed
+ object files in the static library.
+ Cf. https://github.com/shirok/Gauche/issues/802
+
+2021-12-28 Shiro Kawai <shiro%acm.org@localhost>
+
+ * Release 0.9.11-p1: A "patch" release fixing mbedtls-internal issue.
+
+ * ext/tls/tls.ac: Fix build defect when internal mbedtls is used
+ https://github.com/shirok/Gauche/issues/799
+
+2021-12-23 Shiro Kawai <shiro%acm.org@localhost>
+
+ * Release 0.9.11
+
+2021-12-16 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/libsys.scm (sys-mmap, <memory-region>): Improve mmap API.
+ size argument needs to be mandatory (there's no reasonable default).
+ Expose fields of <memory-region> for introspection.
+
+2021-12-14 Shiro Kawai <shiro%acm.org@localhost>
+
+ * ext/tls/tls-mbed.c: Support MbedTLS 3.0. This is a partial support:
+ we need tls-bind to allow TLS-enabled server. But at least this one
+ works as a client.
+
+2021-12-03 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/libio.scm (%write-walk-rec): Handle circular reference through
+ boxes. https://github.com/shirok/Gauche/issues/787
+
+2021-12-01 Shiro Kawai <shiro%acm.org@localhost>
+
+ * check-build-version, configure.ac, Makefile.in: Before generating
+ files by BUILD_GOSH, check if it is the latest release. With this,
+ the user who accidentally try to compile from the repo using older
+ Gauche will be told so upfront, instead of getting an misterious
+ error in the middle of building.
+ The required BUILD_GOSH version is kept in configure.ac, right
+ below the AC_INIT line. Don't forget to update when you make
+ a new release.
+
+2021-11-23 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/gauche/cgen/precomp.scm (handle-define-inline): Fix that
+ define-inline'ed procedures weren't expanded within the same
+ compilation unit. We need to let the compiling enviornment know
+ about the inlined procedures.
+
+2021-11-22 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/libmacro.scm (cond-expand): EXPERIMENTALLY add 'package'
+ clause to test package existence and its version. A special
+ package name 'gauche' can be used to check running Gauche
+ version. Let's see how it goes.
+
+2021-11-15 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/gauche.h (ScmProcedure), src/proc.c (Scm__CopyProcedure):
+ Use the reserved slot of ScmProcedure as tags-alist.
+ We can keep srfi-229 procedure tag there, and more in future.
+ INCOMPATIBLE CHANGE: We make Scm_CopyProcedure private, moved
+ to priv/procP.h and renamed to Scm__CopyProcedure. Use code
+ shouldn't need to use it, for procedures are immutable entity
+ and copying shouldn't make difference. It is only used internally
+ to do certain bookkeeping.
+
+ * lib/srfi-229.scm: Added.
+
+2021-11-11 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/gauche/cgen/stub.scm (make-array-getter-setter): Support
+ treating u8int_t array in cstruct as <u8vector>. Eventually
+ we'll extend it to other uniform vectors, and this is the first
+ step.
+ (define-cproc): Allow '_ in the arguments to indicate unused args.
+
+ * lib/gauche/cgen/cise.scm: (define-cenum): Added. This has been
+ in Gauche-gl for a while.
+
+2021-11-10 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/gauche/cgen/cise.scm: Allow '_' as an unused argument in
+ define-cfn, so that we don't need a dummy cast expression to
+ suppress 'unused argument' warnings.
+ We also need the similar stuff for define-cproc and define-cmethod,
+ but the handling of arguments differ a lot. So, maybe later.
+
+2021-11-07 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/gauche/cgen/stub.scm: Rename define-type to declare-stub-type.
+ Make it clear that it is merely a hint to the stub generator,
+ only effective during a single stub file processing.
+ (define-cclass): Let it handle declare-stub-type, even if it needs
+ custom c-predicate name or unboxer name.
+ (define-cstruct): Incorporated define-cstruct, an easier stub
+ interface for C struct.
+
+2021-11-05 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/libtype.scm (ScmNativeType): Let it keep C type name as well.
+ The long-term plan is to integrate stub types to the built-in type
+ system, though we'll still keep some info outside of the built-in
+ types (e.g. C notation of boxer/unboxer won't be used except stub
+ generators, so no need to carry it around in the <native-type>).
+
+ * lib/gauche/cgen/type.scm: Keep reference to the actual Scheme type
+ in the stub type. Changed API of make-cgen-type.
+
+2021-10-27 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/rfc/http.scm: Use new tls-connect interface that lets TLS
+ module opens the socket. This allows proper use of mbedTLS.
+
+ * ext/*/Makefile.in: Adjust GENERATED and CONFIG_GENERATED macros
+ to the src/*. The 'distcclean' target removes CONFIG_GENERATED
+ (e.g. Makefile), and 'maintainer-clean' removes GENERATED as well.
+ Before this change, a build after distclean caused an error
+ while building ext/gauche, for unicode-attr.scm is removed by
+ distclean but not regenerated since src/char_attr.c exists.
+ Also, renamed GENERATED -> PREGENERATED to avoid confusion.
+
+ * lib/rfc/http (start-connection): When no TLS module is available,
+ raise an error saying so, rather than letting rfc.tls module
+ throw an obscure error.
+ Cf. https://github.com/shirok/Gauche/issues/784
+ NB: rfc.tls is loaded by cond-expand gauche.net.tls, so we don't
+ bother to make it autoload.
+
+2021-10-24 Shiro Kawai <shiro%acm.org@localhost>
+
+ * ext/digest/sha2.c (SHA1_End): Fix strict aliasing violation.
+ The original code yields incorrect binary with gcc 11.2 when
+ compiled with -O2.
+
+2021-10-03 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/gauche/priv/bignumP.h: Make bignum.h private. It was never
+ intended for public use. Technically this is compatiblity-breaking,
+ but if the user code directly uses bignum API, there's something wrong.
+
+2021-09-28 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/data/random.scm (random-data-random-source): A parameter to
+ keep the current random source. Previous random-state thingy was
+ awkward and not compatible to srfi-194.
+
+ * ext/mt-random: Add mt-random-get-seed
+
+2021-09-07 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/gauche/vm/debugger.scm, src/read.c: Experimentally implemented
+ per-thread debug logging. #?@=expr records evaluation of expr like
+ #?=, but the output goes to per-thread file, with timestamp.
+ This prevents logs to be mixed up.
+
+ * ext/threads/threads.scm (latch-clear!): Added.
+
+2021-09-03 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/gauche/interactive.scm (describe): Add (describe <rational>).
+ * src/libnum.scm (ratnum?): Added.
+
+2021-09-01 Shiro Kawai <shiro%acm.org@localhost>
+
+ * ext/threads/threads.scm (thread-try-start!): Added. A thread can
+ be terminated before it is started. thread-start! raises an error
+ when it is applied on such a thread. However, we may want to just
+ ignore such case.
+
+2021-08-29 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/gauche/interactive.scm (describe): Add (describe <real>)
+ to describe flonum.
+
+ * ext/threads/threads.c (Scm_TerminateThread): Add flags argument, and
+ allow to choose forcible/non-forcible termination.
+ * ext/threads/threads.scm (thread-terminate!): Make non-forcible
+ termination default. Forcible termination has no guarantee the
+ process state is sane afterwards, so it should be reserved for
+ absolutely desperate situation. We expect non-forcible termination
+ shows little difference from forcible termination, for the program
+ will go on anyways---the only difference should be the hanged thread
+ remains in the process.
+
+2021-08-28 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/gauche-cesconv.in: Add --in-place option.
+
+2021-08-24 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/boolean.c (Scm_EqvP): Let (eqv? -0.0 0.0) #f. The spec of eqv?
+ has been changed since R5RS; in R7RS, it must return #f if two objects
+ are numbers and it yields different results with Scheme's standard
+ arithmetic operations.
+ Subsequently, (equal? -0.0 0.0) also returns #f.
+ * src/numebr.c: Make sure integer divisions and roundings never return
+ -0.0. It complicates things when the result is compared to 0.0
+ with equal?.
+
+2021-08-22 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/number.c (scm_abs): Fix: (abs -0.0) returned -0.0. Oops.
+
+ * ext/srfi/srfi-19.scm: Define object-equal? on <date>.
+
+2021-08-15 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/srfi-69.scm (hash-table-hash-function): The returned procedure's
+ second argument is now optional, for the compatibility with srfi-128.
+ https://github.com/shirok/Gauche/issues/777
+
+2021-08-11 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/srfi-197.scm: Added (reference implementation)
+
+2021-08-06 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/gauche/test/diff.scm (test*/diff): Renamed from test*-diff.
+ Use unified diff instead of context diff. Handle the case
+ when the result isn't a string.
+
+2021-08-05 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/util/lcs.scm (lcs-edit-list/unified),
+ lib/text/diff.scm (diff-report/unified): Also added unified diff.
+
+2021-08-03 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/gauche/cgen/stub.scm (cgen-genstub): Add output-directory
+ keyword argument.
+
+2021-08-02 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/gauche/test.scm: Save failure report procedure in
+ *discrepancy-list* as well, so that we can report in the same
+ format in the test summary. test-fail++ is enhanced to
+ take the optioanl report procedure; it's optional to keep the
+ backward compatibility.
+ Note the report procedure output is slightly changed. The prefix
+ "ERROR: GOT " and the last newline is printed by the test framework
+ now, so the report procedure only need to display the content.
+ (prim-test): Change the optional argument order. 'hook' argument will
+ be rarely used (it's to adapt other test frameworks to Gauche), so
+ it will make more sense to have it last.
+
+2021-08-01 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/text/diff.scm (diff-report/context): Added.
+
+ * lib/util/lcs.scm (lcs-edit-list/context): Add 'context diff'
+ functonality.
+
+2021-07-29 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/gauche/test/diff.scm (test*-diff): Add a utility that reports
+ diff of expected and actual results. It's a lot easier to spot
+ what went wrong than the default output.
+
+2021-07-28 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/gauche/test.scm (test-report): Add an optional 'report' arg to
+ prim-test, test and test*, to customize failure reporting.
+
+2021-07-27 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/gauche/test.scm (test-remove-files, test-with-temporary-directory):
+ Added. test-remove-files is effectively the same as remove-files in
+ file.util, and only for the tests that can't rely on file.util.
+ test-with-temporary-directory is generally useful.
+
+2021-07-24 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/gauche/priv/nativeP.h (SCM_ALIGNOF): Added.
+
+2021-07-23 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/libtype.scm: Change <stub-type> -> <native-type>. It'll be
+ the basis of FFI type system.
+
+2021-07-22 Shiro Kawai <shiro%acm.org@localhost>
+
+ * ext/srfi/srfi-19.scm (describe): Let (describe <time>) show in
+ user-friendly time units. If it's a point of time, we show it
+ in the date format, and if it's a duration, we show it in
+ days/hours/minutes/seconds.
+
+2021-07-19 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/gauche/interactive.scm (describe): Show type info when describing
+ procedures.
+
+2021-07-17 Shiro Kawai <shiro%acm.org@localhost>
+
+ * libsrc/gauche/record.scm (define-record-type, make-rtd): Set
+ defined-modules slot of the newly created record type.
+
+2021-07-16 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/gauche/cgen/stub.scm: Save cproc's type info as a vector
+ (we drop the type-string, for we need module info.)
+ * src/libproc.scm (procedure-type): Returns descriptive type of the
+ procedure. If the procedure is subr, type info is reconstructed
+ from the saved type hint.
+
+2021-07-12 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/libobj.scm (subclass?), src/libtype.scm (subtype?): Move subtype?
+ to libtype.scm, for it needs to handle types other than classes.
+ The existing class-only predicate is renamed to subclass?. It is
+ only supposed to be used internal business; the user can keep using
+ subtype?, which is upper-compatible to subclass?.
+ For now, subtype? handles <stub-type> and <proxy-type>. We'll
+ enhance it to handel <descriptive-type> later.
+
+2021-07-10 Shiro Kawai <shiro%acm.org@localhost>
+
+ * Use <double> instead of <real> as a stub-type expecting C double.
+ <real> in Scheme world includes bignums and rationals, and coercing
+ it into C double is not a right thing. Eventually we use <real>
+ type restriction to check the input is Scheme real number, but
+ pass it as ScmObj to the C world.
+
+2021-07-08 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/class.c (Scm_SubclassP): Rename Scm_SubtypeP to Scm_SubclassP;
+ now that we have types other than classes, SubtypeP does no longer
+ do what the name suggests. The Scheme API subtype? will be
+ enhanced to handle types as well.
+
+2021-07-06 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/srfi-42: Support :range qualifier (srfi-196).
+
+2021-07-05 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/data/range.scm: Move the implementation of srfi-196 here, for
+ we want to provide more range operations better integrated in
+ Gauche. Srfi-196 re-exports subset of data.range.
+
+ * lib/srfi-196.scm, test/include/srfi-196-test.scm: Finishing srfi-196.
+
+2021-07-04 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/libnum.scm (<=:<, <:<=): Added open-closed/closed-open range
+ comparator. Tired of writing (and (<= x y) (< y z)) etc. And the
+ symbol is kind of cute (like squid?).
+
+2021-06-22 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/gauche/cgen/stub.scm (cclass-emit-standard-decls): The type check
+ macro generated by define-cclass now use SCM_ISA instead of
+ SCM_XTYPEP (so it can recognize subclasses). We don't think this
+ affects existing code, but note it here just in case.
+
+2021-06-21 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/gauche.h, src/class.c, src/libtype.scm: Introduced <type>
+ abstract class and reorganize class hierarchies. Now <class>,
+ <descriptive-type>, and <proxy-type> inherits <type>, for they all
+ behave as types. <descriptive-type> (formerly <type-instance-meta>)
+ is no longer a <class>, for they don't define instances in any ways.
+
+2021-06-15 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/gauche/cgen/literal.scm: Allow class object to appear in the
+ literals of precompiled code. The class object is looked up based
+ on its name and defined-module. The descriptive type instance
+ is reconstructed in the initialization code.
+
+ * src/compile-t.scm: Start adding compile-time type handling.
+
+ * src/class.c (init_class): Make bindings of statically initialized
+ classes inlinable, to use type information at compile-time.
+
+2021-06-07 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/srfi-221.scm: Support srfi-221
+
+ * lib/srfi-217.scm: Support srfi-217
+
+2021-06-06 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/libomega.scm (object-equal? <comparator>): Fixed a long-standing
+ bug - it didn't work if the flavor is 'ordering.
+
+2021-06-04 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/gauche/treeutil.scm (tree-map->generator/key-range): Added.
+
+2021-05-30 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/gauche/treeutil.scm (tree-map-seek-right): Added.
+
+ * libsrc/gauche/dictionary.scm (dict-seek),
+ src/libdict.scm (hash-table-seek),
+ lib/gauche/treeutil.scm (tree-map-seek): Reversed failure and success
+ arguments, to match SRFI's convention (esp. *-search procedures).
+ Technically this is an incompatible change, but those
+ procedures are still unofficial and undocumented. The name '*-seek'
+ is still provisional.
+
+2021-05-28 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/data/heap.scm (binary-heap-find): Change argument order to
+ align other *-find API (except hash-table-find, which is peculiar).
+ Old API is still recognized by the argument type.
+
+2021-05-26 Shiro Kawai <shiro%acm.org@localhost>
+
+ * ext/sparse (sparse-vector-find, sparse-table-find): Added.
+ The API may be reconsidered, for there are some variations
+ in the 'find' and 'any' APIs.
+
+2021-05-23 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/compile.scm (global-call-type): Recognize type constructor expr.
+ For now, we don't do nothing in the compiler and leave it to the
+ runtime, but will switch later.
+
+ * src/libalpha.scm (%transfer-binding), src/libobj.scm, src/libtype.scm:
+ Replace the kludgy macro 'insert-bindings' with a cproc, for we
+ need to transfer binding flags as well. It is only available
+ during initialization.
+
+2021-05-21 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/class.c, src/gauche.h (SCM_CLASS_METACLASS_CPL): Added to
+ initialize builtin metaclass easier.
+
+2021-05-17 Shiro Kawai <shiro%acm.org@localhost>
+
+ * configure.ac, src/gauche.h: Bumped ABI/ABI version to 0.98.
+ We'll tweak binary ABIs in subsequent commits until 0.9.11 release.
+ Don't expect the extensions built with 0.9.10 to work; they must be
+ recompiled. If you're using HEAD with other extensions,
+ stay with 0.9.10, or configure with --with-abi-version=97
+
+ * 0.9.11_pre1
+
+2021-05-16 Shiro Kawai <shiro%acm.org@localhost>
+
+ * ext/srfi/srfi-19.scm (date->string): Fix ~V to behave as specified
+ in ISO 8601. https://github.com/shirok/Gauche/issues/763
+ NB: Srfi is vague about how date-week-number should behave. We may
+ need to change that, too.
+
+2021-05-15 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/compile-1.scm (er-macro-transformer): Experimentally enable
+ identifier macro (set! magic hasn't done yet). The public API is
+ still fluid; keyword arguments for macro seems awkward. We may
+ give a different macro name.
+
+2021-05-14 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/compile-1.scm (pass1),
+ src/libmacbase.scm (call-id-macro-expander),
+ src/gauche/priv/macroP.h (SCM_MACRO_IDENTIFIER): Basis of supporting
+ identifier macro. This is an initial step. The means to create
+ identifier macros will come next.
+
+2021-05-13 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/compile.scm (cenv-lookup): No longer distinguish 'lookup as
+ syntax' and 'lookup as variable'. This doesn't change
+ RnRS valid programs, but programs that depend on previous
+ (non-standard) behavior may be affected.
+ The distinction concerns the resolution of variable that appear
+ at non-head position. In pre-R6RS era, macro keyword can only be
+ valid when it appears at the head of the list. So when we looked
+ up a variable that doesn't appear at the head, we ignored local
+ macro bindings. As an introduction of identifier macros in R6RS
+ that's no longer the case. Although Gauche hasn't supported
+ identifier macros, we see some identifier-related srfis recently
+ and it is a good time to align the semantics.
+ Here's an example that shows the difference:
+ (let ((a 0))
+ (let-syntax ((a (syntax-rules () ((_ x) '(a x)))))
+ (list a))) ;-> used to (0), now ERROR: invalid macro use
+
+2021-05-12 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/gen-unicode.scm, ext/gauche/unicode.scm: Generate break property
+ symbols in unicode-attr.scm, instead of unicode_attr.h. With the
+ latter, those symbols won't be available until runtime, preventing
+ some compile-time compuation.
+
+ * src/precomp, lib/gauche/cgen/precomp.scm: Make precomp recognize -I
+ option. This is mainly for 'include' form in the source; when
+ the build is out-of-tree and the source includes generated files,
+ it can be that the location of includer (srcdir) and the location
+ of includee (builddir) differ.
+
+2021-05-11 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/gen-unicode.scm, ext/gauche/unicode.scm: Catch up word break
+ algorithm to Unicode 13.
+
+2021-05-04 Shiro Kawai <shiro%acm.org@localhost>
+
+ * ext/windows/windows.scm etc.: Improve windows console handling
+ by @Hamayama https://github.com/shirok/Gauche/pull/756
+ * src/libsys.scm: Fix Windows home directory handling
+ by @Hamayama https://github.com/shirok/Gauche/pull/757
+ * ext/charconv/jconv.c: Fix utf-16 surrogate handling
+ by @Hamayama https://github.com/shirok/Gauche/pull/758
+
+ * lib/text/unicode/udc.scm: Add 'ExtPict' from emoji-data.txt in
+ grapheme boundary info.
+ * ext/gauche/unicode.scm: Support new grapheme break rules
+ (GB11, GB12, GB13) for Unicode 13.
+
+2021-04-24 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/libobj.scm (%expand-define-class),
+ src/gloc.c (Scm_GlocSupersedableP): We make class definition
+ "inlinable" binding, to ease the compiler to do type-based
+ work. Class redefinition needs to alter this inlinable binding,
+ so we specially allow such rebinding.
+
+2021-04-23 Shiro Kawai <shiro%acm.org@localhost>
+
+ * ext/threads/threads.scm (<barrier>): Added.
+
+ * lib/gauche/vm/debugger.scm (debug-funcall-pre): Attach thread id
+ in funcall debug print as well.
+
+2021-04-21 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/srfi-120.scm: Added.
+
+2021-04-20 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/srfi-219.scm: Support srfi-219.
+
+ * ext/threads/threads.scm (<semaphore>. <latch>): Added.
+
+2021-04-18 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/gauche/lazy.scm (coroutine->lseq): Added, for the symmetry
+ of coroutine->cseq.
+
+ * ext/data/queue.scm: Add 'close' operation in mtqueue. This is
+ useful in producer-consumer concurrency, when the producer side
+ wants to tell consumer to stop the service. If we use a separate
+ flag, we'd need to protect the flag and the queue with another mutex.
+
+2021-04-16 Shiro Kawai <shiro%acm.org@localhost>
+
+ * libsrc/scheme/charset.scm : moved from lib/srfi-14.scm.
+
+ * src/main.c, src/libomega.scm: Make line-editing mode on by default.
+ Users can turn it off by GAUCHE_NO_READ_EDIT environment variable.
+
+2021-04-15 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/control/scheduler.scm: Added.
+
+ * lib/data/priority-map.scm (priority-map-{min|max}): Fix: It should
+ pick a single key, even when there are more than one keys with
+ the same value. Manual entry is correct. Tests got it wrong.
+ (priority-map-{min|all}-all): Added, in case user wants all keys.
+
+ * ext/srfi/srfi-19.scm (make-time, make-date): Check the range of
+ slot values. Giving out-of-range values inadvertently would result
+ hard-to-track bugs.
+
+2021-04-08 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/compile.scm (macroexpand-all, global-call-type),
+ src/gauche/vm.h (SCM_COMPILE_NOINLINE_INLINER): Allow macorexpand-all
+ to expand hybrid macro as well. We still need to suppress expansion
+ of general inliners, for they can insert $asm node, which is not
+ useful as the output of macro expansion. This is a kludge, due to
+ the current way that hybrid macro keeps macro xformer in the
+ inliner slot. If we track macro binding and runtime binding
+ separately, NOINLINE_GLOBALS flag may suffice. We may adopt
+ that solution in future, dropping NOINLINE_INLINER flag.
+
+2021-04-04 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/vminsn.scm (PUSH-HANDLERS): Change it to take one parameter,
+ an argument list for before/after procedure. This will allow
+ the compiler to lift those procedures.
+ * lib/gauche/vm/insn-core.scm: 0.9.10 compiler tries to generate
+ PUSH-HANDLERS without parameters, so we need a transient hack
+ to convert it to PUSH-HANDLERS(0).
+
+ * src/vm.c (Scm_VMDynamicWindC): Deprecate it. It has never been
+ used and not so useful anyway.
+
+2021-03-30 Shiro Kawai <shiro%acm.org@localhost>
+
+ * doc/modutil.texi: Document control.cseq. Haven't used heavily, but
+ probably it's useful enough.
+
+2021-03-29 Shiro Kawai <shiro%acm.org@localhost>
+
+ * ext/bcrypt: Rename blowfish functions so that it won't conflict
+ with system's libcrypt function.
+ Generallly we *should* use system's functions when available, but
+ we had a incompatibility case. Besides, system's crypt function
+ is available through sys-crypt.
+
+2021-03-28 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/module.c (Scm_ModuleExports): Include symbols exported from
+ the parent modules. It is probably accidental that we didn't included
+ them.
+
+2021-03-27 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/compile-4.scm (pass4/scan): Fix an issue that some closures
+ weren't lifted when they should've been.
+ As a side effect, we now reject non-internal define that doesn't
+ appear in the toplevel; e.g. (when (...) (define ...) ...).
+ Some cases of this form were tolerated previously. The code that
+ depends on this behavior will stop working.
+
+2021-03-26 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/gauche/procedure.scm (disasm): Force an object in the closed
+ environment before checking if it is a lifted closure. Such
+ 'delayed' closure can be seen in the ones created with parser.peg.
+
+ * lib/contro/cseq.scm: Added experimentally.
+
+2021-03-25 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/compile-1.scm (pass1/mark-closure-inlinable!): We didn't set
+ inlinable flag in the dummy binding, preventing inlinable procedure
+ to be expanded within the expressions in the same compiler unit.
+ This is particularly hurting performance of the precompiled modules.
+ After the fix and recompilation, for example, parsing char.c of
+ with PEG get 30% speed improvement, because the small inlinable
+ procedures such as parse-success? got inlined.
+ Fixing it revealed another bug that sets incorrect inliner procedure
+ to the dummy proc. Actually we don't need a special inliner
+ procedure at all--we can just set the packed iform.
+
+ * src/module.c, src/glob.c: Add SCM_BINDING_DUMMY flag, that indicates
+ the inlinable binding is for the dummy proc. Without this, the
+ runtime can't distinguish legit redefinition of inlinable procedures
+ (replacing dummy proc during compilation, and the proper proc
+ inserted at the runtime).
+
+2021-03-23 Shiro Kawai <shiro%acm.org@localhost>
+
+ * ext/peg/peg.scm ($binding): Allow fail procedure to yield
+ non-recoverable failure. The interface is a bit awkward (optional
+ tag argument) so we may reconsider it.
+
+2021-03-14 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/gauche/configure.scm (cf-prog-cxx): This hasn't been working
+ after we changed cf-arg-var. Now cf-arg-var sets "" if the
+ environment variable isn't defined, and other parts of the code
+ thinks it has value.
+
+2021-03-13 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/port.c, src/portapi.c, src/libio.scm: Revised port attribute
+ API. This is technically an incompatible change, but port atttribute
+ API has never been documented, so it should be OK.
+ See https://github.com/shirok/Gauche/issues/753 for the issue
+ initiated this change.
+ - We don't lock the port's main lock while accessing port attr.
+ Rather, we use a separate lock. Port attr can be accessed from
+ a thread other than the one reading from/writing to the port.
+ This eliminates *Unsafe version of C API.
+ - We dropped procedural port attributes. If we call back to the
+ Scheme, lock management gets complicated.
+ - We dropped port-attribute-create API. It is only needed for
+ procedural attributes.
+
+ * ext/peg/peg.scm ($raise, $cut): Experimentally add 'early exit'
+ means. A new failure type, fail-error, prevents parsers from
+ backtracking. This helps producing better error messages.
+ See Andre Murbach Maidl, et al., "Error Reporting in Parsing
+ Expression Grammers", https://arxiv.org/abs/1405.6646
+
+2021-03-11 Shiro Kawai <shiro%acm.org@localhost>
+
+ * ext/peg/peg.scm (<parse-error>): Add 'rest' slot to keep the rest
+ of input stream. It turned out that just keeping offending token
+ isn't enough. The 'token' slot is now redundant, but we keep it
+ for the backward compatibility.
+
+2021-03-09 Shiro Kawai <shiro%acm.org@localhost>
+
+ * ext/peg/peg.scm ($one-of, $.): Fixed symbol matching. We've doing
+ something different. ($. 'foo) should match the symbol itself
+ in the token stream.
+ ($symbol): Moved to parser.peg.deprecated. It was never documented,
+ and the name is ambiguous, for it looks like it matches input symbol
+ token.
+ ($list, $list*): Added.
+
+2021-03-06 Shiro Kawai <shiro%acm.org@localhost>
+
+ * libsrc/data/ring-buffer.scm: Rename 'flat-vector' to 'xvector',
+ and rewrote them using ring-buffer->xsubvectors.
+
+2021-03-03 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/rfc/uuid.scm (uuid-random-source): Make this a parameter.
+ Deprecate uuid-random-source-set!, for it has global effect.
+
+2021-03-02 Shiro Kawai <shiro%acm.org@localhost>
+
+ * libsrc/data/ring-buffer.scm: Add ring-buffer->flat-vector.
+ Also make-ring-buffer accepts initial indexes. It allows to
+ create a pre-filled ring-buffer.
+
+2021-02-24 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/libnum.scm (degrees->radians, radians->degrees): Added.
+ https://github.com/shirok/Gauche/issues/749
+
+2021-02-22 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/srfi-189.scm (either-guard): Fixed the recognized syntax of
+ either-guard. It has been changed during draft period but hasn't
+ been reflected.
+
+2021-02-19 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/port.c: Ensure to compute port address hash as unsigned.
+ Fix from@Hamaya https://github.com/shirok/Gauche/pull/748
+ This caused crash on Windows 64bit with recent MSYS toolchain.
+
+2021-02-16 Shiro Kawai <shiro%acm.org@localhost>
+
+ * doc/Makefile.in, doc/makedoc.scm: New target 'make htmls-head'
+ generates html docs for development HEAD: The header shows
+ "Development HEAD" instead of Gauche version. It is generated
+ in a separate directory, gauche-ref[ej]-head, from the normal
+ destination. It is maily to publis the cutting-edge documentation
+ on the web.
+
+2021-02-09 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/native.c, src/libnative.scm, ext/native: Experimenting FFI.
+ Currently only started to support amd64 ABI, with limited argument
+ types. The API isn't fixed at all. ext/native is just for
+ testing, not the real extension module.
+
+ * lib/gauche/cgen/literal.scm (<cgen-scheme-uvector>): Bug fix:
+ Needed 'static' in uvector literal content definition, otherwise
+ it caused name conflict if more than one DSOs had uvector literals.
+
+2021-02-05 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/libeval.scm (dynamic-load): Change the default value of
+ :init-function to #t, indicating using the default name derived
+ from DSO name. We use :init-function #f to indicate not to call
+ init function at all. This makes more sense than the previous
+ implicit convention that #f indicates default name.
+ The value #f was never documented, and previously there's no
+ reason that user directly use dynamic-load, so we presume
+ this won't break existing code.
+
+ (dlobj-get-entry-address): Expose Scm_DLOGetEntryAddress in
+ gauche module. When we support ffi, there'll be no reason to
+ hide this procedure. (We might want a separate namespace,
+ e.g. gauche.ffi, just to indicate this is for those who know
+ what they're doing, though. Let's see.)
+
+2021-02-03 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/load.c (Scm_DynLoad): Make it return #<dlobj>. Allow #t as
+ initfn argument _not_ to call initialization function. Preparation
+ for ffi.
+
+2021-01-31 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/control/future.scm: Added. This is a provisional impl.
+ We'd like to use implicit thread pool to avoid thread creation
+ overhead.
+
+ * src/vector.c, src/libvec.scm (make-view-uvector): Provides the means
+ to access memory region via uvector.
+
+2021-01-30 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/system.c, src/libsys.scm (sys-mmap): Added mmap interface.
+
+2021-01-29 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/gauche/cgen/type.scm (cgen-box-tail-expr): Separate box-expr
+ and box-tail-expr, the latter to be used when boxed value will
+ immediately be returned to the VM. Only <real> type needs the
+ distinction, to utilize VM flonum registers. NB: If there's a code
+ that directly accesses <cgen-type>'boxer (which it shouldn't do),
+ this change may slow it down, for boxer of <real> is now
+ Scm_MakeFlonum. It should use cgen-box-tail-expr.
+ (<cgen-type>): Change slot name of c-predicate, unboxer, boxer and
+ maybe, to make it private. Those info should be accessed via
+ cgen-pred-expr, cgen-unbox-expr, cgen-box[-tail]-expr, and
+ cgen-type-maybe?.
+
+2021-01-28 Shiro Kawai <shiro%acm.org@localhost>
+
+ * doc/modgauche.texi: Add doc of gauche.mop.instance-pool; make it
+ official.
+
+2021-01-23 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/gauche/interactive.scm (describe): Show source info for macro
+ description if available.
+
+2021-01-22 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/macro.c (Scm_MakeMacro): Switch macro internal fields; making
+ 'source' field to more general alist, and ditch 'describer' field
+ (One time I had a plan to use it for better macro debugging, but
+ now we have macro tracer and I'm no longer sure what I had in mind
+ then). We have flags field instead, but reserved for future use.
+ Technically this is API change, but noboty external should be
+ affected.
+
+2021-01-21 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/libcode.scm (<compiled-code>): Removed obsoleted 'info' and
+ 'arg-info' slots from the defintiion. They're now
+ 'debug-info' and 'signature-info'. We switched so long ago
+ so we supposed it's about time.
+ * src/libstr.scm, src/string.c: Removed string pointer code.
+
+2021-01-19 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/libalpha.scm (error): Initialize message-prefix and message-args
+ when it is invoked as (error <error> args ...).
+
+2021-01-16 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/vm.c (Scm_VMThrowException): Changed the semantics of
+ with-exception-handler from srfi-18 to srfi-34/R7RS. Srfi-18's
+ semantics aims at minimalism and the user should be responsible
+ to avoid infinite recursion of the handler; unfortunately, it seems
+ that users casually use it without being aware of the pitfall.
+ Almost all srfi-18 code should work with srfi-34 semantics.
+ A contrived counterexample may be to recurse into the current
+ exception handler via 'raise', but the same can be achieved more
+ easily and explicitly.
+
+2021-01-10 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/gauche/lazy.scm (<sequence-position>): OK, let's make it a
+ record to give it a solid interface and keep the option of future
+ extension without clients depending on internal stuff too much.
+ One concern is a performance, but we should solve it with better
+ optimization of record types.
+ At this moment, we don't expose constructor of the position, though;
+ it can still be constructed with 'make'.
+
+2021-01-09 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/gauche/lazy.scm (lseq->list): Added.
+
+2021-01-08 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/gauche/lazy.scm (port->char-lseq/position): Generating lseq
+ with input position carried in pair attributes.
+
+
+2021-01-07 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/libmacro.scm (lcons): Experimental: Allow optional attrs argument
+ to specify pair attributes.
+
+ * src/liblazy.scm, src/lazy.c (Scm_LazyCons): Further simplify
+ lazy pair protocol. Basically, we have two kinds of lazy pairs--
+ one that the generator yields next element, and the one that the
+ generator yields next pair. We can separeate two by the constructor,
+ instead of fiddling the return value(s) of the generator.
+ For the Scheme world, the former is created by generator->lseq and
+ the latter is created by lcons. How we distinguish two kinds
+ internally is hidden in lazy.c.
+
+2021-01-06 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/lazy.c: Experimentally allow the generator to generate
+ pair attributes to be attached after a lazy pair is forced.
+ Pretty kludgy, so we keep it unofficial and see how it is useful.
+ ABI INCOMPATIBLE CHANGE: Scm_MakeLazyPair now takes the third
+ argument. I presume nobody is calling such obscture API directly.
+
+ Also we changed internal protocol of generator output so that
+ eliminated Scm_DecomposeLazyPair; it is also technially an
+ incompatible ABI change, though I also presume nobody is directly
+ calling this.
+
+2021-01-05 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/liblist.scm: Make extended pairs public. Add optional arg
+ to extended-cons to specify initial attributes.
+
+ * src/lazy.c: Make a lazy pair turn into an extended pair
+ (it happens to be the case in older versions, but no longer in
+ 0.9.10 when we changed extended pair layout. Now it is the case
+ again.)
+
+2020-12-26 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/gauche/typteutil.scm: Add experimentally. Abstract type
+ utitilies for type checking.
+
+2020-12-23 Shiro Kawai <shiro%acm.org@localhost>
+
+ * src/libsys.scm (sys-ctermid): Fix a bug accessing local memory
+ out of its extent. https://github.com/shirok/Gauche/issues/740
+
+2020-12-14 Shiro Kawai <shiro%acm.org@localhost>
+
+ * lib/gauche/version-alist.scm (version-alist): Make it autoloaded
+ code, since build.configure info needs to load gauche.config and
+ gauche.process.
+ * src/main.c: Process version info output after -ftest path setup,
+ for we need to be able to load gauche.version-alist.
+# Please enter the commit message for your changes. Lines starting
+# with '#' will be ignored, and an empty message aborts the commit.
+#
+# On branch master
+# Your branch is ahead of 'origin/master' by 1 commit.
+# (use "git push" to publish your local commits)
+#
+# Changes to be committed:
+# modified: Makefile
+# modified: PLIST
+# modified: distinfo
+# modified: patches/patch-aa
+# modified: patches/patch-af
+# new file: patches/patch-doc_Makefile.in
+# deleted: patches/patch-ext_tls_axTLS_ssl_os__port.h
+# new file: patches/patch-src_Makefile.in
+#
Home |
Main Index |
Thread Index |
Old Index