[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v9 00/18] Add SRFI 209 and dependencies; improve support for R7RS
From: |
Maxim Cournoyer |
Subject: |
[PATCH v9 00/18] Add SRFI 209 and dependencies; improve support for R7RS libraries |
Date: |
Tue, 12 Dec 2023 23:37:39 -0500 |
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
- [PATCH v9 00/18] Add SRFI 209 and dependencies; improve support for R7RS libraries,
Maxim Cournoyer <=
- [PATCH v9 01/18] ice-9: Fix 'include' when used in compilation contexts., Maxim Cournoyer, 2023/12/12
- [PATCH v9 02/18] Use R7RS 'rename' syntax for exports., Maxim Cournoyer, 2023/12/12
- [PATCH v9 03/18] r7rs-libraries: Add support for 'else' clause in cond-expand., Maxim Cournoyer, 2023/12/12
- [PATCH v9 04/18] r7rs-libraries: Better support R7RS SRFI library names., Maxim Cournoyer, 2023/12/12
- [PATCH v9 05/18] (scheme base): Support non-negative SRFI integer names in cond-expand., Maxim Cournoyer, 2023/12/12
- [PATCH v9 06/18] Share features tested by cond-expand library declarations and expressions., Maxim Cournoyer, 2023/12/12
- [PATCH v9 07/18] build: Register '.sld' as an alternative extension to '.scm'., Maxim Cournoyer, 2023/12/12
- [PATCH v9 10/18] module: Add (scheme comparator)., Maxim Cournoyer, 2023/12/12
- [PATCH v9 11/18] module: Add (scheme sort)., Maxim Cournoyer, 2023/12/12
- [PATCH v9 08/18] module: Add SRFI 126., Maxim Cournoyer, 2023/12/12