head 1.76; access; symbols pkgsrc-2023Q4:1.76.0.20 pkgsrc-2023Q4-base:1.76 pkgsrc-2023Q3:1.76.0.18 pkgsrc-2023Q3-base:1.76 pkgsrc-2023Q2:1.76.0.16 pkgsrc-2023Q2-base:1.76 pkgsrc-2023Q1:1.76.0.14 pkgsrc-2023Q1-base:1.76 pkgsrc-2022Q4:1.76.0.12 pkgsrc-2022Q4-base:1.76 pkgsrc-2022Q3:1.76.0.10 pkgsrc-2022Q3-base:1.76 pkgsrc-2022Q2:1.76.0.8 pkgsrc-2022Q2-base:1.76 pkgsrc-2022Q1:1.76.0.6 pkgsrc-2022Q1-base:1.76 pkgsrc-2021Q4:1.76.0.4 pkgsrc-2021Q4-base:1.76 pkgsrc-2021Q3:1.76.0.2 pkgsrc-2021Q3-base:1.76 pkgsrc-2021Q2:1.75.0.12 pkgsrc-2021Q2-base:1.75 pkgsrc-2021Q1:1.75.0.10 pkgsrc-2021Q1-base:1.75 pkgsrc-2020Q4:1.75.0.8 pkgsrc-2020Q4-base:1.75 pkgsrc-2020Q3:1.75.0.6 pkgsrc-2020Q3-base:1.75 pkgsrc-2020Q2:1.75.0.4 pkgsrc-2020Q2-base:1.75 pkgsrc-2020Q1:1.75.0.2 pkgsrc-2020Q1-base:1.75 pkgsrc-2019Q4:1.73.0.14 pkgsrc-2019Q4-base:1.73 pkgsrc-2019Q3:1.73.0.10 pkgsrc-2019Q3-base:1.73 pkgsrc-2019Q2:1.73.0.8 pkgsrc-2019Q2-base:1.73 pkgsrc-2019Q1:1.73.0.6 pkgsrc-2019Q1-base:1.73 pkgsrc-2018Q4:1.73.0.4 pkgsrc-2018Q4-base:1.73 pkgsrc-2018Q3:1.73.0.2 pkgsrc-2018Q3-base:1.73 pkgsrc-2018Q2:1.71.0.4 pkgsrc-2018Q2-base:1.71 pkgsrc-2018Q1:1.71.0.2 pkgsrc-2018Q1-base:1.71 pkgsrc-2017Q4:1.70.0.12 pkgsrc-2017Q4-base:1.70 pkgsrc-2017Q3:1.70.0.10 pkgsrc-2017Q3-base:1.70 pkgsrc-2017Q2:1.70.0.6 pkgsrc-2017Q2-base:1.70 pkgsrc-2017Q1:1.70.0.4 pkgsrc-2017Q1-base:1.70 pkgsrc-2016Q4:1.70.0.2 pkgsrc-2016Q4-base:1.70 pkgsrc-2016Q3:1.69.0.6 pkgsrc-2016Q3-base:1.69 pkgsrc-2016Q2:1.69.0.4 pkgsrc-2016Q2-base:1.69 pkgsrc-2016Q1:1.69.0.2 pkgsrc-2016Q1-base:1.69 pkgsrc-2015Q4:1.68.0.2 pkgsrc-2015Q4-base:1.68 pkgsrc-2015Q3:1.67.0.6 pkgsrc-2015Q3-base:1.67 pkgsrc-2015Q2:1.67.0.4 pkgsrc-2015Q2-base:1.67 pkgsrc-2015Q1:1.67.0.2 pkgsrc-2015Q1-base:1.67 pkgsrc-2014Q4:1.66.0.2 pkgsrc-2014Q4-base:1.66 pkgsrc-2014Q3:1.65.0.2 pkgsrc-2014Q3-base:1.65 pkgsrc-2014Q2:1.62.0.14 pkgsrc-2014Q2-base:1.62 pkgsrc-2014Q1:1.62.0.12 pkgsrc-2014Q1-base:1.62 pkgsrc-2013Q4:1.62.0.10 pkgsrc-2013Q4-base:1.62 pkgsrc-2013Q3:1.62.0.8 pkgsrc-2013Q3-base:1.62 pkgsrc-2013Q2:1.62.0.6 pkgsrc-2013Q2-base:1.62 pkgsrc-2013Q1:1.62.0.4 pkgsrc-2013Q1-base:1.62 pkgsrc-2012Q4:1.62.0.2 pkgsrc-2012Q4-base:1.62 pkgsrc-2012Q3:1.61.0.4 pkgsrc-2012Q3-base:1.61 pkgsrc-2012Q2:1.61.0.2 pkgsrc-2012Q2-base:1.61 pkgsrc-2012Q1:1.58.0.2 pkgsrc-2012Q1-base:1.58 pkgsrc-2011Q4:1.57.0.4 pkgsrc-2011Q4-base:1.57 pkgsrc-2011Q3:1.57.0.2 pkgsrc-2011Q3-base:1.57 pkgsrc-2011Q2:1.55.0.6 pkgsrc-2011Q2-base:1.55 pkgsrc-2011Q1:1.55.0.4 pkgsrc-2011Q1-base:1.55 pkgsrc-2010Q4:1.55.0.2 pkgsrc-2010Q4-base:1.55 pkgsrc-2010Q3:1.54.0.6 pkgsrc-2010Q3-base:1.54 pkgsrc-2010Q2:1.54.0.4 pkgsrc-2010Q2-base:1.54 pkgsrc-2010Q1:1.54.0.2 pkgsrc-2010Q1-base:1.54 pkgsrc-2009Q4:1.52.0.2 pkgsrc-2009Q4-base:1.52 pkgsrc-2009Q3:1.51.0.2 pkgsrc-2009Q3-base:1.51 pkgsrc-2009Q2:1.50.0.14 pkgsrc-2009Q2-base:1.50 pkgsrc-2009Q1:1.50.0.12 pkgsrc-2009Q1-base:1.50 pkgsrc-2008Q4:1.50.0.10 pkgsrc-2008Q4-base:1.50 pkgsrc-2008Q3:1.50.0.8 pkgsrc-2008Q3-base:1.50 cube-native-xorg:1.50.0.6 cube-native-xorg-base:1.50 pkgsrc-2008Q2:1.50.0.4 pkgsrc-2008Q2-base:1.50 cwrapper:1.50.0.2 pkgsrc-2008Q1:1.46.0.2 pkgsrc-2008Q1-base:1.46 pkgsrc-2007Q4:1.43.0.2 pkgsrc-2007Q4-base:1.43 pkgsrc-2007Q3:1.42.0.6 pkgsrc-2007Q3-base:1.42 pkgsrc-2007Q2:1.42.0.4 pkgsrc-2007Q2-base:1.42 pkgsrc-2007Q1:1.42.0.2 pkgsrc-2007Q1-base:1.42 pkgsrc-2006Q4:1.38.0.6 pkgsrc-2006Q4-base:1.38 pkgsrc-2006Q3:1.38.0.4 pkgsrc-2006Q3-base:1.38 pkgsrc-2006Q2:1.38.0.2 pkgsrc-2006Q2-base:1.38 pkgsrc-2006Q1:1.35.0.2 pkgsrc-2006Q1-base:1.35 pkgsrc-2005Q4:1.32.0.2 pkgsrc-2005Q4-base:1.32 pkgsrc-2005Q3:1.30.0.4 pkgsrc-2005Q3-base:1.30 pkgsrc-2005Q2:1.30.0.2 pkgsrc-2005Q2-base:1.30 pkgsrc-2005Q1:1.29.0.2 pkgsrc-2005Q1-base:1.29 pkgsrc-2004Q4:1.27.0.2 pkgsrc-2004Q4-base:1.27 pkgsrc-2004Q3:1.25.0.2 pkgsrc-2004Q3-base:1.25 pkgsrc-2004Q2:1.20.0.2 pkgsrc-2004Q2-base:1.20 pkgsrc-2004Q1:1.18.0.4 pkgsrc-2004Q1-base:1.18 pkgsrc-2003Q4:1.18.0.2 pkgsrc-2003Q4-base:1.18 netbsd-1-6-1:1.9.0.2 netbsd-1-6-1-base:1.9 netbsd-1-6:1.6.0.6 netbsd-1-6-RELEASE-base:1.6 pkgviews:1.6.0.2 pkgviews-base:1.6 buildlink2:1.4.0.2 buildlink2-base:1.6 netbsd-1-5-PATCH003:1.4 pkgsrc-base:1.1.1.1 TNF:1.1.1; locks; strict; comment @# @; 1.76 date 2021.07.24.14.50.42; author yhardy; state Exp; branches; next 1.75; commitid oDZE4BpXJrL0Bf2D; 1.75 date 2020.03.22.10.50.35; author rillig; state Exp; branches; next 1.74; commitid qRIlf41rA7flZn1C; 1.74 date 2020.01.26.17.31.27; author rillig; state Exp; branches; next 1.73; commitid 4fBBvoSLJaGd0eUB; 1.73 date 2018.07.26.16.55.29; author jperkin; state Exp; branches; next 1.72; commitid tfCGzwNlY3ZOrFLA; 1.72 date 2018.07.24.14.52.18; author ryoon; state Exp; branches; next 1.71; commitid fHuORtpJxdJ0QoLA; 1.71 date 2018.01.28.20.10.53; author wiz; state Exp; branches; next 1.70; commitid QPx6fI8ZTJVRhGoA; 1.70 date 2016.10.13.00.30.13; author enami; state Exp; branches; next 1.69; commitid Ftc5Th9D1yYeVUpz; 1.69 date 2016.01.26.14.46.46; author szptvlfn; state Exp; branches; next 1.68; commitid QUIJtNqfrZOC3sSy; 1.68 date 2015.11.25.12.51.16; author jperkin; state Exp; branches; next 1.67; commitid Ttn93ogd9mszptKy; 1.67 date 2015.02.27.14.35.01; author tnn; state Exp; branches; next 1.66; commitid AxVUhTuxI6ogGEby; 1.66 date 2014.12.03.14.00.57; author joerg; state Exp; branches; next 1.65; commitid jJtJ6CO2pMNRgB0y; 1.65 date 2014.08.28.17.45.53; author jperkin; state Exp; branches; next 1.64; commitid FO8ailESuM5jD9Ox; 1.64 date 2014.07.21.08.14.47; author enami; state Exp; branches; next 1.63; commitid 3D7R4rq27rb5HdJx; 1.63 date 2014.07.21.07.40.07; author enami; state Exp; branches; next 1.62; commitid VBjA7qthLOpWudJx; 1.62 date 2012.10.02.20.11.39; author asau; state Exp; branches; next 1.61; 1.61 date 2012.05.30.02.50.11; author enami; state Exp; branches; next 1.60; 1.60 date 2012.05.13.08.56.28; author obache; state Exp; branches; next 1.59; 1.59 date 2012.05.13.06.08.10; author enami; state Exp; branches; next 1.58; 1.58 date 2012.01.24.09.11.06; author sbd; state Exp; branches; next 1.57; 1.57 date 2011.09.16.07.49.25; author enami; state Exp; branches; next 1.56; 1.56 date 2011.08.23.13.06.49; author obache; state Exp; branches; next 1.55; 1.55 date 2010.12.16.03.42.08; author asau; state Exp; branches; next 1.54; 1.54 date 2010.02.25.19.07.53; author joerg; state Exp; branches; next 1.53; 1.53 date 2010.02.20.13.51.12; author obache; state Exp; branches; next 1.52; 1.52 date 2009.11.27.09.26.06; author enami; state Exp; branches; next 1.51; 1.51 date 2009.10.06.18.30.42; author joerg; state Exp; branches; next 1.50; 1.50 date 2008.06.21.17.17.51; author joerg; state Exp; branches; next 1.49; 1.49 date 2008.05.26.22.37.30; author tnn; state Exp; branches; next 1.48; 1.48 date 2008.05.26.22.15.50; author tnn; state Exp; branches; next 1.47; 1.47 date 2008.05.14.08.05.43; author uebayasi; state Exp; branches; next 1.46; 1.46 date 2008.03.02.00.55.15; author jlam; state Exp; branches; next 1.45; 1.45 date 2008.03.01.19.50.13; author tnn; state Exp; branches; next 1.44; 1.44 date 2008.02.25.23.14.19; author tnn; state Exp; branches; next 1.43; 1.43 date 2007.11.03.22.36.49; author rillig; state Exp; branches; next 1.42; 1.42 date 2007.02.22.19.26.37; author wiz; state Exp; branches; next 1.41; 1.41 date 2007.01.26.13.07.58; author uebayasi; state Exp; branches; next 1.40; 1.40 date 2007.01.20.06.35.45; author uebayasi; state Exp; branches; next 1.39; 1.39 date 2007.01.19.12.59.00; author uebayasi; state Exp; branches; next 1.38; 1.38 date 2006.04.09.01.11.31; author jlam; state Exp; branches; next 1.37; 1.37 date 2006.03.31.18.35.22; author jlam; state Exp; branches; next 1.36; 1.36 date 2006.03.31.17.41.07; author jlam; state Exp; branches; next 1.35; 1.35 date 2006.03.05.16.27.26; author jlam; state Exp; branches; next 1.34; 1.34 date 2006.02.22.22.28.35; author wiz; state Exp; branches; next 1.33; 1.33 date 2006.01.15.07.55.28; author uebayasi; state Exp; branches; next 1.32; 1.32 date 2005.12.09.15.38.54; author uebayasi; state Exp; branches; next 1.31; 1.31 date 2005.12.05.23.55.09; author rillig; state Exp; branches; next 1.30; 1.30 date 2005.04.11.21.46.13; author tv; state Exp; branches; next 1.29; 1.29 date 2005.03.07.03.16.46; author uebayasi; state Exp; branches; next 1.28; 1.28 date 2005.01.16.08.57.55; author kei; state Exp; branches; next 1.27; 1.27 date 2004.11.26.09.39.30; author jlam; state Exp; branches; next 1.26; 1.26 date 2004.10.03.00.15.00; author tv; state Exp; branches; next 1.25; 1.25 date 2004.08.28.06.05.32; author jlam; state Exp; branches; next 1.24; 1.24 date 2004.08.18.13.51.50; author minoura; state Exp; branches; next 1.23; 1.23 date 2004.08.08.07.05.38; author minoura; state Exp; branches; next 1.22; 1.22 date 2004.07.18.10.49.49; author recht; state Exp; branches; next 1.21; 1.21 date 2004.07.18.09.38.26; author schmonz; state Exp; branches; next 1.20; 1.20 date 2004.05.09.14.23.55; author grant; state Exp; branches; next 1.19; 1.19 date 2004.03.29.09.34.26; author kei; state Exp; branches; next 1.18; 1.18 date 2003.09.17.16.52.10; author yyamano; state Exp; branches; next 1.17; 1.17 date 2003.08.09.10.59.07; author seb; state Exp; branches; next 1.16; 1.16 date 2003.08.09.09.31.25; author seb; state Exp; branches; next 1.15; 1.15 date 2003.07.17.21.44.20; author grant; state Exp; branches; next 1.14; 1.14 date 2003.07.13.13.52.20; author wiz; state Exp; branches; next 1.13; 1.13 date 2003.07.04.19.43.40; author seb; state Exp; branches; next 1.12; 1.12 date 2003.05.22.16.48.29; author jmmv; state Exp; branches; next 1.11; 1.11 date 2003.03.10.02.01.41; author salo; state Exp; branches; next 1.10; 1.10 date 2003.03.10.01.43.58; author uebayasi; state Exp; branches; next 1.9; 1.9 date 2002.10.09.17.38.02; author wiz; state Exp; branches; next 1.8; 1.8 date 2002.10.02.08.25.13; author minoura; state Exp; branches; next 1.7; 1.7 date 2002.09.10.16.06.44; author wiz; state Exp; branches; next 1.6; 1.6 date 2002.05.19.07.58.25; author minoura; state Exp; branches; next 1.5; 1.5 date 2002.05.12.10.16.47; author abs; state Exp; branches; next 1.4; 1.4 date 2002.02.01.08.10.39; author minoura; state Exp; branches 1.4.2.1; next 1.3; 1.3 date 2001.09.27.23.18.16; author jlam; state Exp; branches; next 1.2; 1.2 date 2001.07.15.13.52.28; author minoura; state Exp; branches; next 1.1; 1.1 date 2001.05.31.09.56.58; author minoura; state Exp; branches 1.1.1.1; next ; 1.4.2.1 date 2002.06.23.18.50.17; author jlam; state Exp; branches; next ; 1.1.1.1 date 2001.05.31.09.56.58; author minoura; state Exp; branches; next ; desc @@ 1.76 log @lang/gauche: update to Gauche-0.9.10 Announcements: == Release 0.9.10 Major feature enhancements New Features R7RS Large and SRFI support We cover R7RS-large Red and Tangerine Edition. * scheme.ilist: Immutable list library * scheme.rlist: Random access lists * scheme.bytevector: R6RS-compatible bytevectors * scheme.text: Immutable texts * scheme.show: Combinator formatting * scheme.regex: Scheme Regular Expressions: Grapheme support is completed by @@pclouds. * srfi-78: Lightweight testing (now integrated with gauche.test). * srfi-101: Purely functional random-access pairs and lists (scheme.rlist) * srfi-116: Immutable list library (scheme.ilist) * srfi-130: Cursor-based string library * srfi-135: Immutable texts (scheme.text) * srfi-159: Combinator formatting (scheme.show) * srfi-170: POSIX API * srfi-174: POSIX timespecs * srfi-175: ASCII character library * srfi-176: Version flag. Supported as built-in. (version-alist) * srfi-178: Bitvector library * srfi-180: JSON * srfi-181: Custom ports * srfi-185: Linear adjustable-length strings * srfi-189: Maybe and either: optional container types * srfi-192: Port positioning * srfi-193: Command line * srfi-195: Multiple-value boxes (Boxes). New modules * parser.peg: PEG parser combinator library. This module has been unofficially included for long time, but it finally became official. If you've been using it, check out the document, for API has been changed. Compatibility module is provided. * data.skew-list: Skew binary functional random-access list * data.priority-map: Priority map. * rfc.uuid: UUID generation and parsing. * text.external-editor: Running external editor. * text.pager: Display with pager. Improvements String indexing improvements In Gauche, string access using integer character index costs O(n) by default, because we store strings in multibyte format. Two improvements are incorporated to allow O(1) random string access. * String cursors (srfi-130). It is an object directly points to a specific character within a string, thus allowing O(1) access. It is supported natively, so all built-in string procedures that takes character index also accept string cursors. See String%20cursors, for the details. This is the work mostly done by @@pclouds. * String indexing (scheme.text). You can precompute a string index, which is an auxiliary data attached to a string that allows O(1) integer character index access. You need O(n) to compute a string index, but once computed, character index access in that string becomes O(1). In R7RS-large, scheme.text library provides this feature (with a distinct type text). In Gauche, a text is simply a string with a string index computed. See String indexing for the details. Note: Gauche internally had string pointers to implement some string operations efficiently. Now string cursors can be used for that purpose, we dropped string pointers. If you have code that uses string pointers, although it was undocumented, you can keep using it by defining GAUCHE_STRING_POINTER environment variable. We'll completely drop it in the next release, though. Immutable pairs Scheme defines literal pairs to be immutable, but it is up to the implementation to check it. Gauche used to not check it, allowing mutating literal pairs. Now it is no longer allowed--it throws an error. Mutating literal pairs is never correct, and if you get the error, you've been doing it wrong. Immutable pairs can also be explicitly constructed using scheme.ilist module. In Gauche, immutable pairs and lists behaves exactly like normal pairs and lists, except that they can't be modified. See Mutable and immutable pairs, for the details. If your code depends on the previous behavior and can't change swiftly, set the environment variable GAUCHE_MUTABLE_LITERALS to restore the old behavior. Input line editing The editor feature is enhanced a lot, including online help. Type M-h h to get a quick cheet sheet. The line editor isn't turn on by default yet, but you can either turn on with the command-line option -fread-edit or the environment variable GAUCHE_READ_EDIT. Parameters are now built-in You no longer need to (use gauche.parameter) to use parameters as defined in R7RS. The module still exists and provides a few obscure features. Bitvector literal and incomplete string literals We now supports bitvector type in the core. Note that there's a syntax conflict with bitvector literals and incomplete strings; now the official way of incomplete string literal is to prefix a string with #**. The older syntax is still recognized as far as it's not ambiguous. See Incomplete%20strings. The C-level Port API is overhauled This only affects for C code using ScmPort. To support future extensions flexibly, we hide the internal implementation of ScmPort. It shouldn't affect code that accesses ScmPort via API, but if the code directly refers to the members of ScmPort, it should be rewritten to use API. One notable change is that port positions no longer need to be an integer offset. TLS support improvement * With default configuration, Gauche searches several known locations of ca-certificates, so it can work mostly out of the box. See rfc.tls for the details. * With default configuration, is used if it's available. is always available but its cipher support is limited and can't connect to some https sites. * You can also configure to embed MbedTLS support into Gauche so that it will run on a system that doesn't have MbedTLS installed. (See INSTALL.adoc for the details.) Note that if you embed MbedTLS, the resulting binary is covered by MbedTLS Apache License 2.0 as well. Windows Installer version has MbedTLS embedded. Encoding conversion improvement Now we support conversion natively, between UTF (8, 16, 32) and ISO8859-n, as well as between Japanese encodings. We use iconv(3) only when we need to deal with other encodings. This is because iconv lacks a necessary API to support srfi-181 transcoded ports properly. If you just need to convert encodings, you can keep using gauche.charconv and it handles wide variety of encodings supported by iconv. If you use srfi-181, the conversion is limited between the natively supported encodings. We may enhance native support of conversions if there's need for it. Miscellaneous improvements * gauche.generator: Add giterate, giterate1. * gauche.lazy: Add literate. * format: Make ~f handle complex numbers as well, and added a bunch of new directives: ~t, , ~~, ~|, and ~$. * define-hybrid-syntax: The compiler macro feature. * current-trace-port: A parameter to keep trace output. Output of debug-print goes to this port, for example. The default is stderr. * gauche.record: Allow record types to inherit from non-record class, as long as the superclass doesn't add slots. Also allow to specify metaclasses. * gauche.unicode: Conversion procedures utf8->ucs4 etc. now takes replace strictness that replaces invalid unicode sequence with U+FFFD. utf8->string is also changed to use the replace character for invalid input sequence, instead of throwing an error. * gauche.unicode: string->utf16: Add add-bom? argument. * gauche.unicode: Add string->utf32, utf32->string. * identifier?: Now it responds #t to both symbols and wrapped identifiers. In ER-macro systems, identifiers can be a bare symbol as well. To check an object is an identifier but not a symbol, you can use wrapped-identifier? to check an object is a non-symbol identifier. * When gosh is run inside a build tree (with -frest option), make sure we link with libgauche.so in the build tree regardless of the setting of LD_LIBRARY_PATH. (PR#557) * apropos now takes a string as well as a symbol (PR#555) * Character set is now hashable with the default-hash. * Add .dir-locals.el file in the source tree. It sets up Emacs to add some Gauche-specific indentations. * If gosh is run in suid/sgid process, do not load .gaucherc file and do not load/save history files. * complete-sexp? is moved to the core (used to be in gauche.listener. * string->number: Added default-exactness optional argument to specify the exactness of the result when no exactness prefix is given in the input. * gauche-package generate can now generate template of Scheme-only package. * srfi-42: Added :collection qualifier to use a collection as a generator. * gauche.fcntl: Added sys-open, sys-statvfs, sys-fstatvfs. * sys-utime: Allow