unofficial mirror of guile-devel@gnu.org 
 help / color / mirror / Atom feed
From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
To: guile-devel@gnu.org
Cc: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Subject: [PATCH v9 00/18] Add SRFI 209 and dependencies; improve support for R7RS libraries
Date: Tue, 12 Dec 2023 23:37:39 -0500	[thread overview]
Message-ID: <20231213044217.14093-1-maxim.cournoyer@gmail.com> (raw)

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.

Building on that, our copy of SRFI 64 is upgraded to use its newer R7RS
version (contributed by Taylan), which improves and fixes a few things.

The only issue I'd like resolved before this is merge is a license issue
with SRFI 125, which uses Will D. Clinger's license text, which
restricts usage for "lawful purpose", which I assume is incompatible
with free software licenses.  On this topic, also see bug#67797, where
similar license text is found in ice-9/psyntax.scm.

Changes in v9:
 - Use R7RS library
 - Add LICENSES/MIT.txt, for REUSE compliance
 - Clarify extra licenses used in LICENSE file
 - Add SPDX identifiers for easier license tracking
 - Add SRFI 48
 - Upgrade SRFI 64 copy to R7RS version

Changes in v8:
 - Refine SPDX metadata
 - Standardize SPDX/REUSE metadata
 - Incorporate recent fix from Wolfgang (commit 6092dfb)

Changes in v7:
 - Register prerequisites for srfi/srfi-126.scm in am/bootstrap.am
 - Register prerequisites for srfi/srfi-128.scm in am/bootstrap.am
 - Register prerequisites for scheme/comparator.go in am/bootstrap.am
 - Register prerequisites for srfi/srfi-125.go in am/bootstrap.am
 - Register prerequisites for srfi/srfi-160/*.go in am/bootstrap.am
 - Register prerequisites for srfi/srfi-160/*.go in am/bootstrap.am
 - Register prerequisites for srfi/srfi-209.go in am/bootstrap.am

Changes in v6:
 - Add SRFI 209

Changes in v5:
 - Generate Texinfo menu entries
 - Update NEWS

Changes in v4:
 - Mention Expat license of SRFI 126 in guile.tex copying section
 - Fix invalid module references (e.g. (srfi 69) -> (srfi srfi-69))
 - Use .sld for srfi-128 library file extension
 - Mention Expat license of SRFI 128 in guile.tex copying section
 - Add copyright line in srfi-modules.texi
 - Mention Expat license of SRFI 125 in guile.tex copying section
 - Rename srfi-125.scm to srfi-125.sld and use upstream copy
 - Streamline import of (srfi srfi-125)
 - Use R7RS 'import' for srfi-125-test.scm
 - Mention Expat license of SRFI 151 in guile.tex copying section
 - Update copyright line for John Cowan in srfi-modules.texi
 - Rename srfi/srfi-151.scm to srfi/srfi-151.sld

Changes in v3:
 - Rename SRFI-126 to SRFI 126 in text
 - Rename SRFI-128 to SRFI 128 in text
 - Replace srfi-128.scm with upstream srfi/128.sld
 - Add menu entries.
 - Rename SRFI-125 to SRFI 125 in text
 - Rename included file to upstream name (125.body.scm)
 - Add copyright/license header 125.body.scm
 - Add SRFI 151

Changes in v2:
 - Remove extraneous (ice-9 hash-table) import
 - Rename SRFI-69 to SRFI 69, SRFI-125 to SRFI 125 in text
 - Remove string-hash and symbol-hash from exports (they are already
 listed in #:rename)

Maxim Cournoyer (17):
  ice-9: Fix 'include' when used in compilation contexts.
  r7rs-libraries: Add support for 'else' clause in cond-expand.
  r7rs-libraries: Better support R7RS SRFI library names.
  (scheme base): Support non-negative SRFI integer names in cond-expand.
  Share features tested by cond-expand library declarations and
    expressions.
  build: Register '.sld' as an alternative extension to '.scm'.
  module: Add SRFI 126.
  module: Add SRFI 128.
  module: Add (scheme comparator).
  module: Add (scheme sort).
  module: Add SRFI 125.
  module: Add SRFI 151.
  module: Add SRFI 160.
  module: Add SRFI 178.
  module: Add SRFI 209.
  module: Add SRFI 48.
  module: Upgrade SRFI 64 to modern R7RS library implementation.

Timothy Sample (1):
  Use R7RS 'rename' syntax for exports.

 .gitignore                                    |    1 +
 LICENSE                                       |    5 +
 LICENSES/LGPL-3.0-or-later.txt                |  304 +
 LICENSES/LicenseRef-Clinger.txt               |   10 +
 LICENSES/LicenseRef-Public-Domain.txt         |    2 +
 LICENSES/LicenseRef-SLIB.txt                  |   17 +
 LICENSES/MIT.txt                              |    9 +
 NEWS                                          |   49 +
 am/bootstrap.am                               |  117 +-
 configure.ac                                  |    7 +-
 doc/ref/guile.texi                            |   25 +-
 doc/ref/srfi-modules.texi                     | 5623 ++++++++++++++++-
 libguile/fports.c                             |   41 +-
 module/ice-9/boot-9.scm                       |  123 +-
 module/ice-9/endianness.scm.in                |    1 +
 module/ice-9/psyntax.scm                      |    8 +-
 module/ice-9/r6rs-libraries.scm               |   88 +-
 module/ice-9/r7rs-libraries.scm               |   68 +-
 module/scheme/base.scm                        |   15 +-
 module/scheme/comparator.sld                  |   21 +
 module/scheme/features.scm                    |   44 +
 module/scheme/sort.sld                        |    9 +
 module/srfi/srfi-125.sld                      |   87 +
 module/srfi/srfi-125/125.body.scm             |  590 ++
 module/srfi/srfi-126.sld                      |   44 +
 module/srfi/srfi-126/126.body.scm             |  286 +
 module/srfi/srfi-128.sld                      |   42 +
 module/srfi/srfi-128/128.body1.scm            |  363 ++
 module/srfi/srfi-128/128.body2.scm            |  148 +
 module/srfi/srfi-151.sld                      |   38 +
 module/srfi/srfi-151/bitwise-33.scm           |  113 +
 module/srfi/srfi-151/bitwise-60.scm           |   73 +
 module/srfi/srfi-151/bitwise-other.scm        |   44 +
 module/srfi/srfi-160/base.sld                 |   68 +
 .../srfi/srfi-160/base/c128-vector2list.scm   |   19 +
 module/srfi/srfi-160/base/c64-vector2list.scm |   19 +
 module/srfi/srfi-160/base/complex.scm         |  112 +
 module/srfi/srfi-160/base/f32-vector2list.scm |   19 +
 module/srfi/srfi-160/base/f64-vector2list.scm |   19 +
 module/srfi/srfi-160/base/r7rec.scm           |   12 +
 module/srfi/srfi-160/base/s16-vector2list.scm |   19 +
 module/srfi/srfi-160/base/s32-vector2list.scm |   19 +
 module/srfi/srfi-160/base/s64-vector2list.scm |   19 +
 module/srfi/srfi-160/base/s8-vector2list.scm  |   19 +
 module/srfi/srfi-160/base/u16-vector2list.scm |   19 +
 module/srfi/srfi-160/base/u32-vector2list.scm |   19 +
 module/srfi/srfi-160/base/u64-vector2list.scm |   19 +
 module/srfi/srfi-160/base/u8-vector2list.scm  |   19 +
 module/srfi/srfi-160/base/valid.scm           |   27 +
 module/srfi/srfi-160/c128-impl.scm            |  601 ++
 module/srfi/srfi-160/c128.sld                 |   49 +
 module/srfi/srfi-160/c64-impl.scm             |  601 ++
 module/srfi/srfi-160/c64.sld                  |   49 +
 module/srfi/srfi-160/f32-impl.scm             |  601 ++
 module/srfi/srfi-160/f32.sld                  |   49 +
 module/srfi/srfi-160/f64-impl.scm             |  601 ++
 module/srfi/srfi-160/f64.sld                  |   49 +
 module/srfi/srfi-160/s16-impl.scm             |  601 ++
 module/srfi/srfi-160/s16.sld                  |   49 +
 module/srfi/srfi-160/s32-impl.scm             |  601 ++
 module/srfi/srfi-160/s32.sld                  |   49 +
 module/srfi/srfi-160/s64-impl.scm             |  601 ++
 module/srfi/srfi-160/s64.sld                  |   49 +
 module/srfi/srfi-160/s8-impl.scm              |  601 ++
 module/srfi/srfi-160/s8.sld                   |   49 +
 module/srfi/srfi-160/u16-impl.scm             |  601 ++
 module/srfi/srfi-160/u16.sld                  |   49 +
 module/srfi/srfi-160/u32-impl.scm             |  601 ++
 module/srfi/srfi-160/u32.sld                  |   49 +
 module/srfi/srfi-160/u64-impl.scm             |  601 ++
 module/srfi/srfi-160/u64.sld                  |   49 +
 module/srfi/srfi-160/u8-impl.scm              |  601 ++
 module/srfi/srfi-160/u8.sld                   |   49 +
 module/srfi/srfi-178.sld                      |  106 +
 module/srfi/srfi-178/convert.scm              |   84 +
 module/srfi/srfi-178/fields.scm               |   89 +
 module/srfi/srfi-178/gen-acc.scm              |   26 +
 module/srfi/srfi-178/logic-ops.scm            |  106 +
 module/srfi/srfi-178/macros.scm               |   27 +
 module/srfi/srfi-178/map2list.scm             |   28 +
 module/srfi/srfi-178/quasi-ints.scm           |   55 +
 module/srfi/srfi-178/quasi-strs.scm           |   89 +
 module/srfi/srfi-178/unfolds.scm              |   45 +
 module/srfi/srfi-178/wrappers.scm             |  286 +
 module/srfi/srfi-209.sld                      |   64 +
 module/srfi/srfi-209/209.scm                  |  693 ++
 module/srfi/srfi-48.sld                       |   14 +
 module/srfi/srfi-48/48.upstream.scm           |  409 ++
 module/srfi/srfi-64.scm                       |   56 -
 module/srfi/srfi-64.sld                       |   63 +
 module/srfi/srfi-64/execution.body.scm        |  426 ++
 module/srfi/srfi-64/execution.exports.sld     |   18 +
 module/srfi/srfi-64/execution.sld             |   23 +
 module/srfi/srfi-64/source-info.body.scm      |   90 +
 module/srfi/srfi-64/source-info.sld           |   14 +
 .../srfi/srfi-64/test-runner-simple.body.scm  |  170 +
 .../srfi-64/test-runner-simple.exports.sld    |   12 +
 module/srfi/srfi-64/test-runner-simple.sld    |   13 +
 module/srfi/srfi-64/test-runner.body.scm      |  167 +
 module/srfi/srfi-64/test-runner.exports.sld   |   54 +
 module/srfi/srfi-64/test-runner.sld           |   11 +
 module/srfi/srfi-64/testing.scm               | 1044 ---
 test-suite/Makefile.am                        |   26 +
 test-suite/tests/r7rs-cond-expand.test        |   24 +
 test-suite/tests/rnrs-libraries.test          |   12 +-
 test-suite/tests/srfi-125-test.scm            |  891 +++
 test-suite/tests/srfi-125.test                |   33 +
 test-suite/tests/srfi-126-test.scm            |  271 +
 test-suite/tests/srfi-126.test                |   37 +
 test-suite/tests/srfi-128-test.scm            |  323 +
 test-suite/tests/srfi-128.test                |   35 +
 test-suite/tests/srfi-151-test.scm            |  363 ++
 test-suite/tests/srfi-151.test                |   34 +
 test-suite/tests/srfi-160-base-test.scm       |  168 +
 test-suite/tests/srfi-160-base.test           |   35 +
 test-suite/tests/srfi-160-test.scm            |  263 +
 test-suite/tests/srfi-160.test                |   36 +
 .../tests/srfi-178-test/constructors.scm      |   89 +
 .../tests/srfi-178-test/conversions.scm       |  109 +
 test-suite/tests/srfi-178-test/fields.scm     |   99 +
 test-suite/tests/srfi-178-test/gen-accum.scm  |   73 +
 test-suite/tests/srfi-178-test/iterators.scm  |  151 +
 test-suite/tests/srfi-178-test/logic-ops.scm  |  126 +
 test-suite/tests/srfi-178-test/mutators.scm   |   80 +
 test-suite/tests/srfi-178-test/quasi-ints.scm |   42 +
 .../tests/srfi-178-test/quasi-string.scm      |   63 +
 test-suite/tests/srfi-178-test/selectors.scm  |   14 +
 test-suite/tests/srfi-178.test                |  149 +
 test-suite/tests/srfi-209-test.scm            |  467 ++
 test-suite/tests/srfi-209.test                |   38 +
 test-suite/tests/srfi-48.test                 |  320 +
 test-suite/tests/srfi-64-test.scm             |    4 +
 132 files changed, 23762 insertions(+), 1557 deletions(-)
 create mode 100644 LICENSES/LGPL-3.0-or-later.txt
 create mode 100644 LICENSES/LicenseRef-Clinger.txt
 create mode 100644 LICENSES/LicenseRef-Public-Domain.txt
 create mode 100644 LICENSES/LicenseRef-SLIB.txt
 create mode 100644 LICENSES/MIT.txt
 create mode 100644 module/ice-9/endianness.scm.in
 create mode 100644 module/scheme/comparator.sld
 create mode 100644 module/scheme/features.scm
 create mode 100644 module/scheme/sort.sld
 create mode 100644 module/srfi/srfi-125.sld
 create mode 100644 module/srfi/srfi-125/125.body.scm
 create mode 100644 module/srfi/srfi-126.sld
 create mode 100644 module/srfi/srfi-126/126.body.scm
 create mode 100644 module/srfi/srfi-128.sld
 create mode 100644 module/srfi/srfi-128/128.body1.scm
 create mode 100644 module/srfi/srfi-128/128.body2.scm
 create mode 100644 module/srfi/srfi-151.sld
 create mode 100644 module/srfi/srfi-151/bitwise-33.scm
 create mode 100644 module/srfi/srfi-151/bitwise-60.scm
 create mode 100644 module/srfi/srfi-151/bitwise-other.scm
 create mode 100644 module/srfi/srfi-160/base.sld
 create mode 100644 module/srfi/srfi-160/base/c128-vector2list.scm
 create mode 100644 module/srfi/srfi-160/base/c64-vector2list.scm
 create mode 100644 module/srfi/srfi-160/base/complex.scm
 create mode 100644 module/srfi/srfi-160/base/f32-vector2list.scm
 create mode 100644 module/srfi/srfi-160/base/f64-vector2list.scm
 create mode 100644 module/srfi/srfi-160/base/r7rec.scm
 create mode 100644 module/srfi/srfi-160/base/s16-vector2list.scm
 create mode 100644 module/srfi/srfi-160/base/s32-vector2list.scm
 create mode 100644 module/srfi/srfi-160/base/s64-vector2list.scm
 create mode 100644 module/srfi/srfi-160/base/s8-vector2list.scm
 create mode 100644 module/srfi/srfi-160/base/u16-vector2list.scm
 create mode 100644 module/srfi/srfi-160/base/u32-vector2list.scm
 create mode 100644 module/srfi/srfi-160/base/u64-vector2list.scm
 create mode 100644 module/srfi/srfi-160/base/u8-vector2list.scm
 create mode 100644 module/srfi/srfi-160/base/valid.scm
 create mode 100644 module/srfi/srfi-160/c128-impl.scm
 create mode 100644 module/srfi/srfi-160/c128.sld
 create mode 100644 module/srfi/srfi-160/c64-impl.scm
 create mode 100644 module/srfi/srfi-160/c64.sld
 create mode 100644 module/srfi/srfi-160/f32-impl.scm
 create mode 100644 module/srfi/srfi-160/f32.sld
 create mode 100644 module/srfi/srfi-160/f64-impl.scm
 create mode 100644 module/srfi/srfi-160/f64.sld
 create mode 100644 module/srfi/srfi-160/s16-impl.scm
 create mode 100644 module/srfi/srfi-160/s16.sld
 create mode 100644 module/srfi/srfi-160/s32-impl.scm
 create mode 100644 module/srfi/srfi-160/s32.sld
 create mode 100644 module/srfi/srfi-160/s64-impl.scm
 create mode 100644 module/srfi/srfi-160/s64.sld
 create mode 100644 module/srfi/srfi-160/s8-impl.scm
 create mode 100644 module/srfi/srfi-160/s8.sld
 create mode 100644 module/srfi/srfi-160/u16-impl.scm
 create mode 100644 module/srfi/srfi-160/u16.sld
 create mode 100644 module/srfi/srfi-160/u32-impl.scm
 create mode 100644 module/srfi/srfi-160/u32.sld
 create mode 100644 module/srfi/srfi-160/u64-impl.scm
 create mode 100644 module/srfi/srfi-160/u64.sld
 create mode 100644 module/srfi/srfi-160/u8-impl.scm
 create mode 100644 module/srfi/srfi-160/u8.sld
 create mode 100644 module/srfi/srfi-178.sld
 create mode 100644 module/srfi/srfi-178/convert.scm
 create mode 100644 module/srfi/srfi-178/fields.scm
 create mode 100644 module/srfi/srfi-178/gen-acc.scm
 create mode 100644 module/srfi/srfi-178/logic-ops.scm
 create mode 100644 module/srfi/srfi-178/macros.scm
 create mode 100644 module/srfi/srfi-178/map2list.scm
 create mode 100644 module/srfi/srfi-178/quasi-ints.scm
 create mode 100644 module/srfi/srfi-178/quasi-strs.scm
 create mode 100644 module/srfi/srfi-178/unfolds.scm
 create mode 100644 module/srfi/srfi-178/wrappers.scm
 create mode 100644 module/srfi/srfi-209.sld
 create mode 100644 module/srfi/srfi-209/209.scm
 create mode 100644 module/srfi/srfi-48.sld
 create mode 100644 module/srfi/srfi-48/48.upstream.scm
 delete mode 100644 module/srfi/srfi-64.scm
 create mode 100644 module/srfi/srfi-64.sld
 create mode 100644 module/srfi/srfi-64/execution.body.scm
 create mode 100644 module/srfi/srfi-64/execution.exports.sld
 create mode 100644 module/srfi/srfi-64/execution.sld
 create mode 100644 module/srfi/srfi-64/source-info.body.scm
 create mode 100644 module/srfi/srfi-64/source-info.sld
 create mode 100644 module/srfi/srfi-64/test-runner-simple.body.scm
 create mode 100644 module/srfi/srfi-64/test-runner-simple.exports.sld
 create mode 100644 module/srfi/srfi-64/test-runner-simple.sld
 create mode 100644 module/srfi/srfi-64/test-runner.body.scm
 create mode 100644 module/srfi/srfi-64/test-runner.exports.sld
 create mode 100644 module/srfi/srfi-64/test-runner.sld
 delete mode 100644 module/srfi/srfi-64/testing.scm
 create mode 100644 test-suite/tests/r7rs-cond-expand.test
 create mode 100644 test-suite/tests/srfi-125-test.scm
 create mode 100644 test-suite/tests/srfi-125.test
 create mode 100644 test-suite/tests/srfi-126-test.scm
 create mode 100644 test-suite/tests/srfi-126.test
 create mode 100644 test-suite/tests/srfi-128-test.scm
 create mode 100644 test-suite/tests/srfi-128.test
 create mode 100644 test-suite/tests/srfi-151-test.scm
 create mode 100644 test-suite/tests/srfi-151.test
 create mode 100644 test-suite/tests/srfi-160-base-test.scm
 create mode 100644 test-suite/tests/srfi-160-base.test
 create mode 100644 test-suite/tests/srfi-160-test.scm
 create mode 100644 test-suite/tests/srfi-160.test
 create mode 100644 test-suite/tests/srfi-178-test/constructors.scm
 create mode 100644 test-suite/tests/srfi-178-test/conversions.scm
 create mode 100644 test-suite/tests/srfi-178-test/fields.scm
 create mode 100644 test-suite/tests/srfi-178-test/gen-accum.scm
 create mode 100644 test-suite/tests/srfi-178-test/iterators.scm
 create mode 100644 test-suite/tests/srfi-178-test/logic-ops.scm
 create mode 100644 test-suite/tests/srfi-178-test/mutators.scm
 create mode 100644 test-suite/tests/srfi-178-test/quasi-ints.scm
 create mode 100644 test-suite/tests/srfi-178-test/quasi-string.scm
 create mode 100644 test-suite/tests/srfi-178-test/selectors.scm
 create mode 100644 test-suite/tests/srfi-178.test
 create mode 100644 test-suite/tests/srfi-209-test.scm
 create mode 100644 test-suite/tests/srfi-209.test
 create mode 100644 test-suite/tests/srfi-48.test


base-commit: d8df317bafcdd9fcfebb636433c4871f2fab28b2
-- 
2.41.0




             reply	other threads:[~2023-12-13  4:37 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-12-13  4:37 Maxim Cournoyer [this message]
2023-12-13  4:37 ` [PATCH v9 01/18] ice-9: Fix 'include' when used in compilation contexts Maxim Cournoyer
2023-12-13  4:37 ` [PATCH v9 02/18] Use R7RS 'rename' syntax for exports Maxim Cournoyer
2023-12-13  4:37 ` [PATCH v9 03/18] r7rs-libraries: Add support for 'else' clause in cond-expand Maxim Cournoyer
2023-12-13  4:37 ` [PATCH v9 04/18] r7rs-libraries: Better support R7RS SRFI library names Maxim Cournoyer
2023-12-13  4:37 ` [PATCH v9 05/18] (scheme base): Support non-negative SRFI integer names in cond-expand Maxim Cournoyer
2023-12-13  4:37 ` [PATCH v9 06/18] Share features tested by cond-expand library declarations and expressions Maxim Cournoyer
2023-12-13  4:37 ` [PATCH v9 07/18] build: Register '.sld' as an alternative extension to '.scm' Maxim Cournoyer
2023-12-13  4:37 ` [PATCH v9 08/18] module: Add SRFI 126 Maxim Cournoyer
2023-12-13  4:37 ` [PATCH v9 09/18] module: Add SRFI 128 Maxim Cournoyer
2023-12-13  4:37 ` [PATCH v9 10/18] module: Add (scheme comparator) Maxim Cournoyer
2023-12-13  4:37 ` [PATCH v9 11/18] module: Add (scheme sort) Maxim Cournoyer
2023-12-13  4:37 ` [PATCH v9 12/18] module: Add SRFI 125 Maxim Cournoyer
2023-12-13  4:37 ` [PATCH v9 13/18] module: Add SRFI 151 Maxim Cournoyer
2023-12-13  4:37 ` [PATCH v9 14/18] module: Add SRFI 160 Maxim Cournoyer
2023-12-13  4:37 ` [PATCH v9 15/18] module: Add SRFI 178 Maxim Cournoyer
2023-12-13  4:37 ` [PATCH v9 16/18] module: Add SRFI 209 Maxim Cournoyer
2023-12-13  4:37 ` [PATCH v9 17/18] module: Add SRFI 48 Maxim Cournoyer
2023-12-13  4:37 ` [PATCH v9 18/18] module: Upgrade SRFI 64 to modern R7RS library implementation Maxim Cournoyer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/guile/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20231213044217.14093-1-maxim.cournoyer@gmail.com \
    --to=maxim.cournoyer@gmail.com \
    --cc=guile-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).