[PATCH] Add copy-on-write support to scm_copy_file.

2023-11-29 Thread Tomas Volf
On modern file-systems (BTRFS, ZFS) it is possible to copy a file using copy-on-write method. For large files it has the advantage of being much faster and saving disk space (since identical extents are not duplicated). This feature is stable and for example coreutils' `cp' does use it automatica

[PATCH] Add more detailed instructions into the HACKING file.

2023-11-29 Thread Tomas Volf
Until now, the ./meta/guile was not mentioned anywhere, and therefore it was not obvious how to run the locally compiled Guile without installing it. While modifying the file, I took the liberty to also mention a bit about compiling Guile using Guix. Finally, the header lines where cleaned up, en

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

2023-11-29 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 v5 06/15] Share features tested by cond-expand library declarations and expressions.

2023-11-29 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 v5 11/15] module: Add (scheme sort).

2023-11-29 Thread Maxim Cournoyer
* module/scheme/sort.sld: New R7RS library shim for (rnrs sorting). * am/bootstrap.am (SOURCES): Register it. * NEWS: Update NEWS. --- Changes in v5: - Update NEWS NEWS | 1 + am/bootstrap.am| 1 + module/scheme/sort.sld | 21 + 3 files changed,

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

2023-11-29 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 v5 01/15] ice-9: Fix 'include' when used in compilation contexts.

2023-11-29 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 v5 10/15] module: Add (scheme comparator).

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

[PATCH v5 09/15] module: Add SRFI 128.

2023-11-29 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 v5 12/15] module: Add SRFI 125.

2023-11-29 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 v5 05/15] (scheme base): Support non-negative SRFI integer names in cond-expand.

2023-11-29 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. --- Changes in v5: - Update NEWS NEWS

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

2023-11-29 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 v5 02/15] Use R7RS 'rename' syntax for exports.

2023-11-29 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 --- Changes in v5: - Update

[PATCH v5 15/15] module: Add SRFI 178.

2023-11-29 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 v5 08/15] module: Add SRFI 126.

2023-11-29 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

[PATCH v5 13/15] module: Add SRFI 151.

2023-11-29 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