1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-02 13:00:26 +02:00
guile/libguile
Tomas Volf e1690f3fd2
Add copy-on-write support to scm_copy_file.
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 automatically (see --reflink).

This commit adds support for this feature into our copy-file procedure.
Same as `cp', it defaults to 'auto, meaning the copy-on-write is
attempted, and in case of failure the regular copy is performed.

No tests are provided, because the behavior depends on the system,
underlying file-system and its configuration.  That makes it challenging
to write a test for it.  Manual testing was performed instead:

    $ btrfs filesystem du /tmp/cow*
         Total   Exclusive  Set shared  Filename
      36.00KiB    36.00KiB       0.00B  /tmp/cow

    $ cat cow-test.scm
    (copy-file "/tmp/cow" "/tmp/cow-unspecified")
    (copy-file "/tmp/cow" "/tmp/cow-always" #:copy-on-write 'always)
    (copy-file "/tmp/cow" "/tmp/cow-auto" #:copy-on-write 'auto)
    (copy-file "/tmp/cow" "/tmp/cow-never" #:copy-on-write 'never)
    (copy-file "/tmp/cow" "/dev/shm/cow-unspecified")
    (copy-file "/tmp/cow" "/dev/shm/cow-auto" #:copy-on-write 'auto)
    (copy-file "/tmp/cow" "/dev/shm/cow-never" #:copy-on-write 'never)
    $ ./meta/guile -s cow-test.scm

    $ btrfs filesystem du /tmp/cow*
         Total   Exclusive  Set shared  Filename
      36.00KiB       0.00B    36.00KiB  /tmp/cow
      36.00KiB       0.00B    36.00KiB  /tmp/cow-always
      36.00KiB       0.00B    36.00KiB  /tmp/cow-auto
      36.00KiB    36.00KiB       0.00B  /tmp/cow-never
      36.00KiB       0.00B    36.00KiB  /tmp/cow-unspecified

    $ sha1sum /tmp/cow* /dev/shm/cow*
    4c665f87b5dc2e7d26279c4b48968d085e1ace32  /tmp/cow
    4c665f87b5dc2e7d26279c4b48968d085e1ace32  /tmp/cow-always
    4c665f87b5dc2e7d26279c4b48968d085e1ace32  /tmp/cow-auto
    4c665f87b5dc2e7d26279c4b48968d085e1ace32  /tmp/cow-never
    4c665f87b5dc2e7d26279c4b48968d085e1ace32  /tmp/cow-unspecified
    4c665f87b5dc2e7d26279c4b48968d085e1ace32  /dev/shm/cow-auto
    4c665f87b5dc2e7d26279c4b48968d085e1ace32  /dev/shm/cow-never
    4c665f87b5dc2e7d26279c4b48968d085e1ace32  /dev/shm/cow-unspecified

This commit also adds to new failure modes for (copy-file).

Failure to copy-on-write when 'always was passed in:

    scheme@(guile-user)> (copy-file "/tmp/cow" "/dev/shm/cow" #:copy-on-write 'always)
    ice-9/boot-9.scm:1676:22: In procedure raise-exception:
    In procedure copy-file: copy-on-write failed: Invalid cross-device link

Passing in invalid value for the #:copy-on-write keyword argument:

    scheme@(guile-user)> (copy-file "/tmp/cow" "/dev/shm/cow" #:copy-on-write 'nevr)
    ice-9/boot-9.scm:1676:22: In procedure raise-exception:
    In procedure copy-file: invalid value for #:copy-on-write: nevr

* NEWS: Add note for copy-file supporting copy-on-write.
* configure.ac: Check for linux/fs.h.
* doc/ref/posix.texi (File System)[copy-file]: Document the new
signature.
* libguile/filesys.c (clone_file): New function cloning a file using
FICLONE, if supported.
(k_copy_on_write): New keyword.
(sym_always, sym_auto, sym_never): New symbols.
(scm_copy_file2): Renamed from scm_copy_file.  New #:copy-on-write
keyword argument.  Attempt copy-on-write copy by default.
(scm_copy_file): Call scm_copy_file2.
* libguile/filesys.h: Add scm_copy_file2 as SCM_INTERNAL.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-03-12 14:04:41 +01:00
..
lightening Add JIT capability for MinGW 2021-03-13 15:43:57 -08:00
.gitignore Fix the rule to check for new signals and errors 2016-05-22 19:50:07 +02:00
__scm.h Add __scm.h placeholder 2018-06-24 08:47:32 +02:00
alist.c Update license notices in all C files 2018-06-20 20:07:34 +02:00
alist.h Update license notices in all C files 2018-06-20 20:07:34 +02:00
array-handle.c bitvector-set-bit! / bitvector-clear-bit! replace bitvector-set! 2020-04-14 22:40:43 +02:00
array-handle.h Remove array contp flag 2021-08-16 19:02:43 +02:00
array-map.c Remove array contp flag 2021-08-16 19:02:43 +02:00
array-map.h Update license notices in all C files 2018-06-20 20:07:34 +02:00
arrays.c Remove array contp flag 2021-08-16 19:02:43 +02:00
arrays.h Revert shift of ndim in array tag from 3df3ba1a2c 2021-09-17 11:20:24 +02:00
async.c Switch to use atomic_compare_exchange_strong 2019-05-25 17:17:49 +02:00
async.h Rename scm_i_thread to scm_thread 2018-06-26 11:40:22 +02:00
atomic.c Switch to use atomic_compare_exchange_strong 2019-05-25 17:17:49 +02:00
atomic.h Update license notices in all C files 2018-06-20 20:07:34 +02:00
atomics-internal.h Switch to use atomic_compare_exchange_strong 2019-05-25 17:17:49 +02:00
backtrace.c Update license notices in all C files 2018-06-20 20:07:34 +02:00
backtrace.h Update license notices in all C files 2018-06-20 20:07:34 +02:00
bdw-gc.h Update license notices in all C files 2018-06-20 20:07:34 +02:00
bitvectors.c New function bitvector-copy (scm_bitvector_copy) 2022-01-04 12:28:41 +01:00
bitvectors.h New function bitvector-copy (scm_bitvector_copy) 2022-01-04 12:28:41 +01:00
boolean.c Improve the documentation for 'nil?'. 2019-05-23 15:53:55 +02:00
boolean.h Update license notices in all C files 2018-06-20 20:07:34 +02:00
bytevectors.c bytevector-slice: optimize trivial case 2023-06-08 09:01:59 +02:00
bytevectors.h Add 'bytevector-slice'. 2023-01-14 16:14:17 +01:00
c-tokenize.lex build: Don't include <config.h> in native programs when cross-compiling. 2014-03-12 14:35:07 +01:00
cache-internal.h Rename scm_i_thread to scm_thread 2018-06-26 11:40:22 +02:00
ChangeLog-1996-1999
ChangeLog-2000
ChangeLog-2008
ChangeLog-scm
ChangeLog-srfi
ChangeLog-threads
chars.c Revert "Revert scm_c_make_char rename" 2019-08-24 11:57:39 +02:00
chars.h Revert "Revert scm_c_make_char rename" 2019-08-24 11:57:39 +02:00
chooks.c Update license notices in all C files 2018-06-20 20:07:34 +02:00
chooks.h Update license notices in all C files 2018-06-20 20:07:34 +02:00
continuations.c Fix build on ia64. 2020-02-08 15:11:34 +01:00
continuations.h Continuations capture machine code address 2018-08-12 15:57:53 +02:00
control.c Fix use of uninstalled header by installed headers 2018-10-07 15:15:02 +02:00
control.h abort-to-prompt uses an intrinsic 2018-06-26 16:23:02 +02:00
cpp-E.syms Add Hurd signal and error constants. 2016-05-22 19:50:20 +02:00
cpp-SIG.syms Remove SIGEV constant definitions. 2016-05-22 19:50:27 +02:00
custom-ports.c Add "custom ports" 2023-06-08 09:03:10 +02:00
custom-ports.h Add "custom ports" 2023-06-08 09:03:10 +02:00
debug-malloc.c Use 'scm_from_utf8_{string,symbol,keyword}' for C string literals. 2019-05-23 16:41:53 +02:00
debug-malloc.h Update license notices in all C files 2018-06-20 20:07:34 +02:00
debug.c Update license notices in all C files 2018-06-20 20:07:34 +02:00
debug.h Update license notices in all C files 2018-06-20 20:07:34 +02:00
deprecated.c Deprecate symbol properties. 2022-02-04 11:12:28 +01:00
deprecated.h Deprecate symbol properties. 2022-02-04 11:12:28 +01:00
deprecation.c Use 'scm_from_utf8_{string,symbol,keyword}' for C string literals. 2019-05-23 16:41:53 +02:00
deprecation.h Update license notices in all C files 2018-06-20 20:07:34 +02:00
dynl.c Add windows stubs for dlopen, dlclose, dlsym, dlerror 2021-03-11 08:30:57 -08:00
dynl.h Replace libltdl with raw dlopen, dlsym 2021-02-03 23:02:21 +01:00
dynstack.c Continuations capture machine code address 2018-08-12 15:57:53 +02:00
dynstack.h Continuations capture machine code address 2018-08-12 15:57:53 +02:00
dynwind.c Rename scm_i_thread to scm_thread 2018-06-26 11:40:22 +02:00
dynwind.h Update license notices in all C files 2018-06-20 20:07:34 +02:00
elf.h add ELF loader 2012-06-22 13:40:50 +02:00
eq.c Fix scm_integer_to_double_z to always round; clean ups 2022-01-13 09:37:16 +01:00
eq.h Update license notices in all C files 2018-06-20 20:07:34 +02:00
error.c Use 'scm_from_utf8_{string,symbol,keyword}' for C string literals. 2019-05-23 16:41:53 +02:00
error.h Remove traces of 'scm_memory_error'. 2020-02-10 00:10:10 +01:00
eval.c Use 'scm_from_utf8_{string,symbol,keyword}' for C string literals. 2019-05-23 16:41:53 +02:00
eval.h Update license notices in all C files 2018-06-20 20:07:34 +02:00
evalext.c Update license notices in all C files 2018-06-20 20:07:34 +02:00
evalext.h Update license notices in all C files 2018-06-20 20:07:34 +02:00
exceptions.c Fix exn dispatch for exns within pre-unwind handlers 2023-06-08 10:26:16 +02:00
exceptions.h Rebase throw/catch on top of raise-exception/with-exception-handler 2019-11-13 22:24:19 +01:00
expand.c Fix typos throughout codebase. 2023-07-16 22:09:01 +02:00
expand.h Add "mod" field to tree-il toplevel ref, set, define 2019-08-18 22:27:12 +02:00
extensions.c Replace libltdl with raw dlopen, dlsym 2021-02-03 23:02:21 +01:00
extensions.h Fix use of uninstalled header by installed headers 2018-10-07 15:15:02 +02:00
fdes-finalizers.c Fix use of uninstalled header by installed headers 2018-10-07 15:15:02 +02:00
fdes-finalizers.h Update license notices in all C files 2018-06-20 20:07:34 +02:00
feature.c Update license notices in all C files 2018-06-20 20:07:34 +02:00
feature.h Update license notices in all C files 2018-06-20 20:07:34 +02:00
filesys.c Add copy-on-write support to scm_copy_file. 2024-03-12 14:04:41 +01:00
filesys.h Add copy-on-write support to scm_copy_file. 2024-03-12 14:04:41 +01:00
finalizers.c Finalization thread exits when it gets EOF on its pipe. 2022-10-01 16:00:05 +02:00
finalizers.h Update license notices in all C files 2018-06-20 20:07:34 +02:00
fluids.c Respect thread local fluid defaults 2020-01-12 22:04:29 +01:00
fluids.h Compile current-module as intrinsic call 2018-06-27 14:57:51 +02:00
foreign-object.c Fix use of uninstalled header by installed headers 2018-10-07 15:15:02 +02:00
foreign-object.h Update license notices in all C files 2018-06-20 20:07:34 +02:00
foreign.c Support C99 complex types in (system foreign) 2021-11-15 11:34:09 +01:00
foreign.h Support C99 complex types in (system foreign) 2021-11-15 11:34:09 +01:00
fports.c Presume ISO C90 headers are always available 2022-10-14 08:40:23 -07:00
fports.h Avoid throwing exceptions during early boot if stdin is closed 2019-12-13 13:52:58 +01:00
frames.c Add frame-local-ref / frame-local-set! support for type 'ptr 2021-10-01 11:28:22 +02:00
frames.h Update frames.h comments. 2018-07-23 11:23:18 +02:00
gc-inline.h Compiler allocates boxed flonums in unmarked space 2019-08-26 10:19:24 +02:00
gc-malloc.c Update license notices in all C files 2018-06-20 20:07:34 +02:00
gc.c Tweak to initial heap size selection 2020-08-27 14:18:44 +02:00
gc.h Replace uses of scm_t_int8, scm_t_uintmax, etc with stdint types 2018-06-21 20:18:54 +02:00
gen-scmconfig.c Presume ISO C90 headers are always available 2022-10-14 08:40:23 -07:00
gen-scmconfig.h.in improve autoconfigury for minigmp 2021-03-02 06:18:32 -08:00
generalized-vectors.c Update license notices in all C files 2018-06-20 20:07:34 +02:00
generalized-vectors.h Update license notices in all C files 2018-06-20 20:07:34 +02:00
gettext.c Update license notices in all C files 2018-06-20 20:07:34 +02:00
gettext.h Update license notices in all C files 2018-06-20 20:07:34 +02:00
goops.c Fix use of uninstalled header by installed headers 2018-10-07 15:15:02 +02:00
goops.h Update license notices in all C files 2018-06-20 20:07:34 +02:00
gsubr.c Use SCM_GSUBR_MAX in place of the hardcoded number 2023-04-27 14:07:01 +02:00
gsubr.h Provide SCM_DEFINE_STATIC 2020-01-03 12:45:07 +01:00
guardians.c Merge from stable-2.2 2019-08-02 14:57:29 +02:00
guardians.h Update license notices in all C files 2018-06-20 20:07:34 +02:00
guile-func-name-check Fix spurious warnings in net_db.c 2017-04-19 16:48:56 +02:00
guile-snarf-docs.in
guile-snarf.awk.in
guile-snarf.in guile-snarf: skip -g* arguments to avoid build failure 2017-04-19 17:19:40 +02:00
guile.c Don't force installation of GMP allocators in guile shell 2021-03-12 22:38:21 +01:00
hash.c Allow target runtime to override symbol hash 2023-11-20 14:23:14 +01:00
hash.h Update license notices in all C files 2018-06-20 20:07:34 +02:00
hashtab.c Update license notices in all C files 2018-06-20 20:07:34 +02:00
hashtab.h Update license notices in all C files 2018-06-20 20:07:34 +02:00
hooks.c Update license notices in all C files 2018-06-20 20:07:34 +02:00
hooks.h Update license notices in all C files 2018-06-20 20:07:34 +02:00
i18n.c Presume ISO C90 functions are always available 2022-10-14 08:40:23 -07:00
i18n.h Update license notices in all C files 2018-06-20 20:07:34 +02:00
init.c Rewrite soft ports in Scheme 2023-06-08 09:03:10 +02:00
init.h Update license notices in all C files 2018-06-20 20:07:34 +02:00
inline.c Add 'scm_c_make_char' and use it where appropriate. 2019-05-23 17:48:46 +02:00
inline.h Update license notices in all C files 2018-06-20 20:07:34 +02:00
instructions.c Add sign-extending make-immediate instruction 2020-07-30 17:36:11 +02:00
instructions.h Update license notices in all C files 2018-06-20 20:07:34 +02:00
integers.c Fixes arg type for scm_integer_from_mpz 2022-10-15 10:35:54 -07:00
integers.h Re-rewrite integer-expt in C 2022-01-13 09:37:17 +01:00
intrinsics.c Allow string->utf8 to constant-fold 2023-11-15 10:44:21 +01:00
intrinsics.h Allow string->utf8 to constant-fold 2023-11-15 10:44:21 +01:00
ioext.c Fix use of uninstalled header by installed headers 2018-10-07 15:15:02 +02:00
ioext.h Update license notices in all C files 2018-06-20 20:07:34 +02:00
iselect.h on MinGW, prefer winsock2.h over sys/select in iselect 2021-03-11 09:37:12 -08:00
jit.c Add logand/immediate, ulogand/immediate primcalls 2023-11-20 13:43:47 +01:00
jit.h Speed up returns in JIT 2019-06-18 21:45:29 +02:00
keywords.c Update license notices in all C files 2018-06-20 20:07:34 +02:00
keywords.h Implement hashing for keywords, i.e. (hash #:x ...) 2020-02-21 01:36:14 -06:00
libgettext.h Update license notices in all C files 2018-06-20 20:07:34 +02:00
libguile-3.0-gdb.scm gdb: Avoid accessing values that are optimized out. 2020-03-17 22:57:41 +01:00
libguile.map
list.c Fix typo in append procedure documentation 2023-04-05 20:30:11 +02:00
list.h Fix list validation of *list->bytevector procedures. 2019-05-23 16:01:13 +02:00
load.c Fix typos throughout codebase. 2023-07-16 22:09:01 +02:00
load.h Update license notices in all C files 2018-06-20 20:07:34 +02:00
loader.c missing includes for list.h 2021-01-21 15:33:43 -08:00
loader.h Add logand/immediate, ulogand/immediate primcalls 2023-11-20 13:43:47 +01:00
locale-categories.h Update license notices in all C files 2018-06-20 20:07:34 +02:00
macros.c Fix race when expanding syntax-parameterize and define-syntax-parameter 2019-02-22 15:11:29 +01:00
macros.h Update license notices in all C files 2018-06-20 20:07:34 +02:00
Makefile.am build: Error out when ‘scmconfig.h’ generation fails. 2023-12-28 12:36:11 +01:00
mallocs.c Update license notices in all C files 2018-06-20 20:07:34 +02:00
mallocs.h Update license notices in all C files 2018-06-20 20:07:34 +02:00
memoize.c Rename scm_i_thread to scm_thread 2018-06-26 11:40:22 +02:00
memoize.h Update license notices in all C files 2018-06-20 20:07:34 +02:00
mini-gmp.c Include config.h in mini-gmp.c, if present 2021-05-01 22:39:30 +02:00
mini-gmp.h Enable option to prefer mini-gmp over libgmp 2021-03-02 06:18:32 -08:00
modules.c Use 'scm_from_utf8_{string,symbol,keyword}' for C string literals. 2019-05-23 16:41:53 +02:00
modules.h Compile current-module as intrinsic call 2018-06-27 14:57:51 +02:00
net_db.c Fix typos throughout codebase. 2023-07-16 22:09:01 +02:00
net_db.h Update license notices in all C files 2018-06-20 20:07:34 +02:00
null-threads.c Fix compilation --without-threads. 2020-03-21 18:25:52 +01:00
null-threads.h in null threads, don't define sigmask stub when pthread_sigmask does not exist 2021-01-21 15:34:03 -08:00
numbers.c Fix bad arguments to range_error() in numbers.c 2022-09-30 12:02:12 +02:00
numbers.h Presume ISO C90 headers are always available 2022-10-14 08:40:23 -07:00
objprop.c Update license notices in all C files 2018-06-20 20:07:34 +02:00
objprop.h Update license notices in all C files 2018-06-20 20:07:34 +02:00
options.c Update license notices in all C files 2018-06-20 20:07:34 +02:00
options.h Update license notices in all C files 2018-06-20 20:07:34 +02:00
pairs.c Use 'scm_from_utf8_{string,symbol,keyword}' for C string literals. 2019-05-23 16:41:53 +02:00
pairs.h Update license notices in all C files 2018-06-20 20:07:34 +02:00
poll.c Fix use of uninstalled header by installed headers 2018-10-07 15:15:02 +02:00
poll.h Update license notices in all C files 2018-06-20 20:07:34 +02:00
ports-internal.h Replace uses of scm_t_int8, scm_t_uintmax, etc with stdint types 2018-06-21 20:18:54 +02:00
ports.c Invalid charset at EOF does not cause decoding error 2021-03-03 16:22:56 +01:00
ports.h Replace uses of scm_t_int8, scm_t_uintmax, etc with stdint types 2018-06-21 20:18:54 +02:00
posix-w32.c Add windows stubs for dlopen, dlclose, dlsym, dlerror 2021-03-11 08:30:57 -08:00
posix-w32.h Compile fix for x86_64-MinGW. 2021-04-12 12:18:53 +02:00
posix.c Stop signal thread before forking, restart it afterwards. 2024-01-05 18:59:58 +01:00
posix.h Add 'spawn'. 2023-01-13 16:05:30 +01:00
print.c Revert "Revert scm_c_make_char rename" 2019-08-24 11:57:39 +02:00
print.h Remove the 'simple vector' concept 2021-08-16 15:39:21 +02:00
private-options.h Clean up srcprops implementation 2020-09-03 22:55:08 +02:00
procprop.c Update license notices in all C files 2018-06-20 20:07:34 +02:00
procprop.h Update license notices in all C files 2018-06-20 20:07:34 +02:00
procs.c doc: Rephrase documentation of 'thunk?'. 2020-05-27 22:34:49 +02:00
procs.h Update license notices in all C files 2018-06-20 20:07:34 +02:00
programs.c Allow for bind-optionals without alloc-frame 2019-06-06 17:26:59 +02:00
programs.h Rewrite subr implementation 2018-07-29 15:47:07 +02:00
promises.c Update license notices in all C files 2018-06-20 20:07:34 +02:00
promises.h Update license notices in all C files 2018-06-20 20:07:34 +02:00
pthread-threads.h Update license notices in all C files 2018-06-20 20:07:34 +02:00
quicksort.i.c Move "min" and "max" macros out of _scm.h 2018-06-17 13:41:03 +02:00
r6rs-ports.c Load (ice-9 binary-ports) from C in thread-safe way 2023-06-08 10:21:28 +02:00
r6rs-ports.h Rewrite custom binary ports in Scheme, in terms of custom ports 2023-06-08 09:03:10 +02:00
random.c Avoid scm_i_mkbig outside numbers.c. 2022-01-13 09:37:17 +01:00
random.h Replace uses of scm_t_int8, scm_t_uintmax, etc with stdint types 2018-06-21 20:18:54 +02:00
rdelim.c Revert "Handle CRLF and Unicode line endings in read-line" 2021-03-12 22:08:16 +01:00
rdelim.h Update license notices in all C files 2018-06-20 20:07:34 +02:00
read.c Remove read extension support from primitive-read 2021-03-03 22:30:49 +01:00
read.h Scheme reader fully replaces C reader 2021-03-03 21:43:33 +01:00
regex-posix.c Presume ISO C90 headers are always available 2022-10-14 08:40:23 -07:00
regex-posix.h Update license notices in all C files 2018-06-20 20:07:34 +02:00
remaining-docs-needed
run-test
rw.c Update license notices in all C files 2018-06-20 20:07:34 +02:00
rw.h Update license notices in all C files 2018-06-20 20:07:34 +02:00
scm.h Modify SCM_API for DLLs 2023-07-17 18:30:26 -07:00
scmconfig.h.top Update license notices in all C files 2018-06-20 20:07:34 +02:00
scmsigs.c Test ‘scm_i_signal_delivery_thread’ with ‘scm_is_true’. 2024-01-24 15:27:41 +01:00
scmsigs.h Stop signal thread before forking, restart it afterwards. 2024-01-05 18:59:58 +01:00
script.c Copy terminating zero in 'scm_cat_path'. 2019-06-20 11:43:54 +02:00
script.h Deprecate scm_find_executable 2018-10-07 16:04:59 +02:00
simpos.c Presume ISO C90 functions are always available 2022-10-14 08:40:23 -07:00
simpos.h Update license notices in all C files 2018-06-20 20:07:34 +02:00
smob.c Update license notices in all C files 2018-06-20 20:07:34 +02:00
smob.h Update license notices in all C files 2018-06-20 20:07:34 +02:00
snarf.h Use 'scm_from_utf8_{string,symbol,keyword}' for C string literals. 2019-05-23 16:41:53 +02:00
socket.c Fix typo in documentation for (socket) 2023-08-28 11:29:42 +02:00
socket.h Merge from stable-2.2 2019-08-02 15:29:33 +02:00
sort.c Merge libguile/generalized-arrays.* into libguile/arrays.* 2021-08-03 14:21:41 +02:00
sort.h Update license notices in all C files 2018-06-20 20:07:34 +02:00
srcprop.c Clean up srcprops implementation 2020-09-03 22:55:08 +02:00
srcprop.h Clean up srcprops implementation 2020-09-03 22:55:08 +02:00
srfi-1.c srfi-1: Rewrite 'assoc' in Scheme. 2020-06-17 17:59:35 +02:00
srfi-1.h srfi-1: Rewrite 'assoc' in Scheme. 2020-06-17 17:59:35 +02:00
srfi-4.c New function srfi-4-vector-type-size in (srfi srfi-4 gnu) 2021-12-06 14:00:03 +01:00
srfi-4.h New function srfi-4-vector-type-size in (srfi srfi-4 gnu) 2021-12-06 14:00:03 +01:00
srfi-13.c doc: Fix composition describing scm_reverse_list_to_string 2021-01-17 13:15:45 -06:00
srfi-13.h Update license notices in all C files 2018-06-20 20:07:34 +02:00
srfi-14.c Fix typos throughout codebase. 2023-07-16 22:09:01 +02:00
srfi-14.h Update license notices in all C files 2018-06-20 20:07:34 +02:00
srfi-60.c Finish srfi-60 port off old scm mpz API 2022-01-13 09:37:17 +01:00
srfi-60.h Update license notices in all C files 2018-06-20 20:07:34 +02:00
stackchk.c Rename scm_i_thread to scm_thread 2018-06-26 11:40:22 +02:00
stackchk.h Update license notices in all C files 2018-06-20 20:07:34 +02:00
stacks.c Use 'scm_from_utf8_{string,symbol,keyword}' for C string literals. 2019-05-23 16:41:53 +02:00
stacks.h Update license notices in all C files 2018-06-20 20:07:34 +02:00
stime.c missing includes for list.h 2021-01-21 15:33:43 -08:00
stime.h Update license notices in all C files 2018-06-20 20:07:34 +02:00
strings.c 'string->symbol' avoids copying the underlying string. 2022-02-07 12:23:35 +01:00
strings.h Deprecate symbol properties. 2022-02-04 11:12:28 +01:00
strorder.c Update license notices in all C files 2018-06-20 20:07:34 +02:00
strorder.h Update license notices in all C files 2018-06-20 20:07:34 +02:00
strports.c Merge from stable-2.2 2019-08-02 15:02:49 +02:00
strports.h Update license notices in all C files 2018-06-20 20:07:34 +02:00
struct.c Fix incorrect allocation size in 'make-vtable-vtable'. 2020-03-09 15:22:53 +01:00
struct.h Replace uses of scm_t_int8, scm_t_uintmax, etc with stdint types 2018-06-21 20:18:54 +02:00
symbols.c Fix docstring for symbol->string, string->symbol 2023-09-18 16:03:41 +02:00
symbols.h Deprecate symbol properties. 2022-02-04 11:12:28 +01:00
syntax.c Add syntax-sourcev 2021-02-25 21:17:36 +01:00
syntax.h Add syntax-sourcev 2021-02-25 21:17:36 +01:00
syscalls.h Define Scheme bindings to ‘openat’ when available. 2022-10-21 17:42:20 +02:00
tags.h Fix typo in tags.h comment. 2019-06-18 02:05:20 -04:00
texi-fragments-to-docstrings Build guile-procedures.txt' using (texinfo) instead of makeinfo'. 2013-03-21 23:24:47 +01:00
threads.c Stop signal thread before forking, restart it afterwards. 2024-01-05 18:59:58 +01:00
threads.h Fix build on ia64. 2020-02-08 15:11:34 +01:00
throw.c Fix stack overflow if printing a pre-boot error throws an error 2019-11-25 09:46:58 +01:00
throw.h Rebase throw/catch on top of raise-exception/with-exception-handler 2019-11-13 22:24:19 +01:00
unicode.c Fix use of uninstalled header by installed headers 2018-10-07 15:15:02 +02:00
unicode.h Update license notices in all C files 2018-06-20 20:07:34 +02:00
UnicodeData.txt Create 'srfi-14.i.c' during build. 2022-03-24 14:28:46 +01:00
unidata_to_charset.awk Create 'srfi-14.i.c' during build. 2022-03-24 14:28:46 +01:00
uniform.c Replace uses of scm_t_int8, scm_t_uintmax, etc with stdint types 2018-06-21 20:18:54 +02:00
uniform.h Update license notices in all C files 2018-06-20 20:07:34 +02:00
validate.h Fix list validation of *list->bytevector procedures. 2018-10-14 02:27:23 -04:00
values.c Use 'scm_from_utf8_{string,symbol,keyword}' for C string literals. 2019-05-23 16:41:53 +02:00
values.h Give multiple-values objects a tc7 2018-06-25 17:50:29 +02:00
variable.c Update license notices in all C files 2018-06-20 20:07:34 +02:00
variable.h Update license notices in all C files 2018-06-20 20:07:34 +02:00
vectors.c Provide xxvector-copy and xxvector-copy! for srfi-4 vectors 2021-10-21 15:05:46 +02:00
vectors.h Remove the 'simple vector' concept 2021-08-16 15:39:21 +02:00
version.c Update license notices in all C files 2018-06-20 20:07:34 +02:00
version.h.in Remove (C) from copyright statements 2018-06-20 19:17:06 +02:00
vm-builtins.h Expose scm_vm_builtin_ref internally 2018-08-19 17:38:59 +02:00
vm-engine.c Add logand/immediate, ulogand/immediate primcalls 2023-11-20 13:43:47 +01:00
vm-expand.h Update license notices in all C files 2018-06-20 20:07:34 +02:00
vm.c call-with-values builtin doesn't leave garbage on the stack 2023-05-07 09:50:14 +02:00
vm.h Remove vm->sp_min_since_gc 2019-12-09 22:03:34 +01:00
vports.c Rewrite soft ports in Scheme 2023-06-08 09:03:10 +02:00
vports.h Rewrite soft ports in Scheme 2023-06-08 09:03:10 +02:00
weak-list.h Update license notices in all C files 2018-06-20 20:07:34 +02:00
weak-set.c 'resize_set' no longer allocates in a loop. 2020-03-23 22:49:47 +01:00
weak-set.h Update license notices in all C files 2018-06-20 20:07:34 +02:00
weak-table.c Update license notices in all C files 2018-06-20 20:07:34 +02:00
weak-table.h Update license notices in all C files 2018-06-20 20:07:34 +02:00
weak-vector.c Fix use of uninstalled header by installed headers 2018-10-07 15:15:02 +02:00
weak-vector.h Update license notices in all C files 2018-06-20 20:07:34 +02:00