guix/tests
Ludovic Courtès 5a7cb59648
deduplication: Detect holes and create sparse files.
This reduces disk usage of sparse files that are substituted such as
Guile object files (ELF files).  As of Guile 3.0.9, .go files are sparse
due to ELF sections being aligned on 64 KiB boundaries.

This reduces disk usage reported by “du -sh” by 9% for the ‘guix’
package, by 23% for ‘guile’, and by 35% for ‘guile-git’.

* guix/store/deduplication.scm (hole-size, find-holes): New procedures.
(tee)[seekable?]: New variable.
[read!]: Add case when SEEKABLE? is true.
* tests/store-deduplication.scm (cartesian-product): New procedure.
("copy-file/deduplicate, sparse files (holes: ~a/~a/~a)"): New test set.

Change-Id: Iad2ab7830dcb1220e2026f4a127a6c718afa8964
2024-05-25 16:44:42 +02:00
..
keys
services
accounts.scm
base16.scm
base32.scm
base64.scm
boot-parameters.scm
bournish.scm
build-emacs-utils.scm
build-utils.scm
builders.scm
cache.scm
challenge.scm
channels.scm channels: ‘latest-channel-instances’ traverses user-provided channels first. 2024-01-31 09:07:25 +01:00
combinators.scm
composer.scm
containers.scm
cpan.scm
cpio.scm utils: Don’t re-export ‘call-with-temporary-output-file’. 2024-04-15 22:36:42 +02:00
cran.scm
crate.scm guix: import: Optionally import necessary yanked crates. 2024-01-09 09:38:38 +02:00
cve-sample.json
cve.scm
debug-link.scm
derivations.scm
discovery.scm
egg.scm utils: Don’t re-export ‘call-with-temporary-output-file’. 2024-04-15 22:36:42 +02:00
elm.scm
elpa.scm
file-systems.scm
gem.scm
gexp.scm gexp: Add #:guile parameter to ‘gexp->file’ and ‘scheme-file’. 2024-04-08 00:05:48 +02:00
git-authenticate.scm
git.scm
glob.scm
gnu-maintenance.scm
go.scm
grafts.scm
graph.scm
gremlin.scm
guix-archive.sh
guix-authenticate.sh
guix-build-branch.sh
guix-build.sh
guix-daemon.sh
guix-describe.sh
guix-download.sh tests: Remove interference from the user’s Git config. 2024-05-13 16:31:35 +02:00
guix-environment-container.sh
guix-environment.sh
guix-gc.sh
guix-git-authenticate.sh git authenticate: Record introduction and keyring in ‘.git/config’. 2024-05-01 17:26:18 +02:00
guix-graph.sh
guix-hash.sh
guix-home.sh
guix-lint.sh
guix-locate.sh
guix-pack-localstatedir.sh
guix-pack-relocatable.sh
guix-pack.sh
guix-package-aliases.sh
guix-package-net.sh
guix-package.sh
guix-refresh.sh
guix-repl.sh
guix-shell-export-manifest.sh
guix-shell.sh
guix-style.sh
guix-system.sh
guix-time-machine.sh time-machine: Allow time travels to v0.16.0. 2024-03-11 22:12:34 +01:00
hackage.scm
hexpm.scm
home-import.scm
home-services.scm
http-client.scm
import-git.scm
import-github.scm
import-utils.scm
inferior.scm
ipfs.scm
lint.scm lint: archival: Trigger “Save Code Now” for VCSes other than Git. 2024-03-09 18:55:49 +01:00
minetest.scm
modules.scm
monads.scm
nar.scm
networking.scm
npm-binary.scm import: Add binary npm importer. 2024-05-19 16:05:00 +02:00
offload.scm
opam.scm utils: Don’t re-export ‘call-with-temporary-output-file’. 2024-04-15 22:36:42 +02:00
openpgp.scm
pack.scm store: database: Rename a couple of procedures. 2024-04-03 17:30:53 +01:00
packages.scm
pki.scm
print.scm
processes.scm
profiles.scm
publish.scm utils: Don’t re-export ‘call-with-temporary-output-file’. 2024-04-15 22:36:42 +02:00
pypi.scm
read-print.scm
records.scm
rpm.scm
scripts.scm
search-paths.scm
services.scm
sets.scm
size.scm
status.scm
store-database.scm utils: Don’t re-export ‘call-with-temporary-output-file’. 2024-04-15 22:36:42 +02:00
store-deduplication.scm deduplication: Detect holes and create sparse files. 2024-05-25 16:44:42 +02:00
store-roots.scm
store.scm
style.scm
substitute.scm
swh.scm swh: ‘lookup-origin-revision’ handles branches pointing to directories. 2024-03-09 18:55:49 +01:00
syscalls.scm tests: Skip ‘terminal-string-width’ test on encodings other than UTF-8. 2024-05-13 16:31:35 +02:00
system.scm
test.drv
texlive.scm
transformations.scm
ui.scm
union.scm
upstream.scm
utils.scm utils: Don’t re-export ‘call-with-temporary-output-file’. 2024-04-15 22:36:42 +02:00
uuid.scm
workers.scm