[PATCH v6 00/16] Add SRFI 209 and dependencies; improve support for R7RS libraries

2023-12-02 Thread Maxim Cournoyer
This series add the SRFI 209 enumerators library and its dependencies. It fixes a few problems that prevented using the corresponding R7RS upstream libraries as-is on the way. Changes in v6: - Add SRFI 209 Changes in v5: - Generate Texinfo menu entries - Update NEWS Changes in v4: - Mention

[PATCH v6 03/16] r7rs-libraries: Add support for 'else' clause in cond-expand.

2023-12-02 Thread Maxim Cournoyer
* module/ice-9/r7rs-libraries.scm (define-library) : Add a pattern to match an 'else' clause. --- (no changes since v1) module/ice-9/r7rs-libraries.scm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/module/ice-9/r7rs-libraries.scm b/module/ice-9/r7rs-libraries.scm index 4

[PATCH v6 02/16] Use R7RS 'rename' syntax for exports.

2023-12-02 Thread Maxim Cournoyer
From: Timothy Sample * module/ice-9/r7rs-libraries.scm (define-library): Convert R7RS exports to R6RS exports before passing them on to 'library'. * NEWS: Mention bug fix. Fixes: https://bugs.gnu.org/67255 Reported-by: Maxim Cournoyer . Modified-by: Maxim Cournoyer --- (no changes since v5) C

[PATCH v6 13/16] module: Add SRFI 151.

2023-12-02 Thread Maxim Cournoyer
* module/srfi/srfi-151.scm * module/srfi/srfi-151/bitwise-33.scm * module/srfi/srfi-151/bitwise-60.scm * module/srfi/srfi-151/bitwise-other.scm * test-suite/tests/srfi-151.test * test-suite/tests/srfi-151-test.scm: New files. * am/bootstrap.am (SOURCES): Register srfi-151.scm. (NOCOMP_SOURCES): Reg

[PATCH v6 07/16] build: Register '.sld' as an alternative extension to '.scm'.

2023-12-02 Thread Maxim Cournoyer
This is useful when integrating R7RS SRFI libraries into Guile. * am/bootstrap.am (GOBJECTS_): New variable. (GOBJECTS): Compute from GOBJECTS_. : Register %.sld to vpath. (SUFFIXES): Register '.sld' extension. (.sld.go .scm.go): Add 'sld.go' target to automatic compilation rule. --- (no changes

[PATCH v6 06/16] Share features tested by cond-expand library declarations and expressions.

2023-12-02 Thread Maxim Cournoyer
This addresses a FIXME in r7rs-libraries.scm, which was about the cond-expand define-library declarations not using the same features as provided in (scheme base). * .gitignore: Register /module/ice-9/endianness.scm. * am/bootstrap.am (NOCOMP_SOURCES): Register ice-9/endianness.scm and scheme/feat

[PATCH v6 05/16] (scheme base): Support non-negative SRFI integer names in cond-expand.

2023-12-02 Thread Maxim Cournoyer
* module/scheme/base.scm (r7:cond-expand): Test for library using resolve-r6rs-interface instead of resolve-interface. Swallow any exception with false-if-exception. * test-suite/tests/r7rs-cond-expand.test: New test. * NEWS: Update news. --- (no changes since v5) Changes in v5: - Update NEWS

[PATCH v6 15/16] module: Add SRFI 178.

2023-12-02 Thread Maxim Cournoyer
* module/srfi/srfi-178.sld: New file. * am/bootstrap.am (SOURCES): Register it. * module/srfi/srfi-178/convert.scm * module/srfi/srfi-178/fields.scm * module/srfi/srfi-178/gen-acc.scm * module/srfi/srfi-178/logic-ops.scm * module/srfi/srfi-178/macros.scm * module/srfi/srfi-178/map2list.scm * module

[PATCH v6 11/16] module: Add (scheme sort).

2023-12-02 Thread Maxim Cournoyer
* module/scheme/sort.sld: New R7RS library shim for (rnrs sorting). * am/bootstrap.am (SOURCES): Register it. * NEWS: Update NEWS. --- (no changes since v5) Changes in v5: - Update NEWS NEWS | 1 + am/bootstrap.am| 1 + module/scheme/sort.sld | 21 +

[PATCH v6 16/16] module: Add SRFI 209.

2023-12-02 Thread Maxim Cournoyer
Sources retrieved from commit 9d40aaff0b788f3fd611e04a5b6aef4dfd017e8d from https://github.com/scheme-requests-for-implementation/srfi-209/. * module/srfi/srfi-209.sld: New file. * module/srfi/srfi-209/209.scm: Likewise. * module/Makefile.am (SOURCES): Register srfi-209.sld. (NOCOMP_SOURCES): Regi

[PATCH v6 01/16] ice-9: Fix 'include' when used in compilation contexts.

2023-12-02 Thread Maxim Cournoyer
Fixes bug #66046. Introduce a '%file-port-stripped-prefixes' fluid that captures the pre-canonicalized file name used when compiling a file, before it gets modified in fport_canonicalize_filename. That reference that can then used by 'include' when searching for included files. * libguile/fports

[PATCH v6 12/16] module: Add SRFI 125.

2023-12-02 Thread Maxim Cournoyer
* module/srfi/srfi-125.scm * module/srfi/srfi-125/hash-table.scm * test-suite/tests/srfi-125-test.scm * test-suite/tests/srfi-125.test: New files. * am/bootstrap.am (SOURCES): Register srfi-125.scm. (NOCOMP_SOURCES): Register hash-table.scm. * test-suite/Makefile.am (SCM_TESTS): Register srfi-128.t

[PATCH v6 09/16] module: Add SRFI 128.

2023-12-02 Thread Maxim Cournoyer
>From upstream commit 62504e3b5b01615297cf65c33ca76a474bd61dd3. * module/srfi/srfi-128.scm * module/srfi/srfi-128/128.body1.scm * module/srfi/srfi-128/128.body2.scm * test-suite/tests/srfi-128-test.scm * test-suite/tests/srfi-128.test: New files. * am/bootstrap.am (SOURCES): Register srfi-128.scm.

[PATCH v6 04/16] r7rs-libraries: Better support R7RS SRFI library names.

2023-12-02 Thread Maxim Cournoyer
* module/ice-9/r6rs-libraries.scm (resolve-r6rs-interface : Relax symbol requirements. : Add a new syntax matching clause to avoid stripping the 3rd identifier in a R7RS SRFI module name. (library): Move R7RS specifics to... * module/ice-9/r7rs-libraries.scm (define-library): ... here. r6rs-module-

[PATCH v6 10/16] module: Add (scheme comparator).

2023-12-02 Thread Maxim Cournoyer
* module/scheme/comparator.sld: New R7RS library shim for SRFI 128. * am/bootstrap.am (SOURCES): Register it. * NEWS: Update NEWS. --- (no changes since v5) Changes in v5: - Update NEWS NEWS | 1 + am/bootstrap.am | 1 + module/scheme/comparator.sld | 33

[PATCH v6 08/16] module: Add SRFI 126.

2023-12-02 Thread Maxim Cournoyer
This is not original work: it merely integrates and formats the work of Taylan Ulrich Bayırlı/Kammer into Guile, with a few adjustments to avoid warnings/fix missing imports. Thank you! * module/srfi/srfi-126.scm: New file. * test-suite/tests/srfi-126.test: New file. * test-suite/tests/srfi-126-t