guix-play/guix/scripts
Mathieu Othacehe f743f2046b
publish: Defer narinfo string creation to the http-write.
The "narinfo-string" procedure is expensive in term of IO operations and can
take a while under IO pressure, such a GC collecting. Defer its call to a new
thread created in the http-write procedure.

Fixes: <https://issues.guix.gnu.org/48468>
Partially fixes: <https://issues.guix.gnu.org/49089>

* guix/scripts/publish.scm (render-narinfo): Defer the narinfo string creation
to the http-write procedure.
(compression->sexp, sexp->compression): New procedures.
("X-Nar-Compression"): Use them.
("X-Narinfo-Compressions"): New custom header.
(strip-headers): Add the x-nar-path header.
(http-write): Add narinfo on-the-fly creation support. It happens in a
separated thread to prevent blocking the main thread.
2021-10-05 18:55:55 +00:00
..
container scripts: container: Fix typo. 2019-09-23 11:56:40 -07:00
git Add 'guix git authenticate'. 2020-07-11 12:33:01 +02:00
home home-services: Add missing imports and function definition. 2021-09-28 13:50:21 +03:00
import import: go: Improve error handling. 2021-09-01 23:41:42 +02:00
system gnu: bootloader: Support multiple targets. 2021-08-29 01:05:26 -04:00
archive.scm scripts: Commands warn when passed zero arguments. 2021-05-28 11:36:02 +02:00
authenticate.scm authenticate: Encode strings as ISO-8859-1. 2020-09-15 14:40:20 +02:00
build.scm Revert "guix build: Autoload (gnu packages)." 2021-06-29 00:10:54 +02:00
challenge.scm scripts: challenge: Fix regression. 2021-05-20 11:44:35 +02:00
container.scm scripts: Use 'define-command' and have 'guix help' use that. 2020-09-10 12:27:24 +02:00
copy.scm scripts: Commands warn when passed zero arguments. 2021-05-28 11:36:02 +02:00
deploy.scm reconfigure: Use 'formatted-message'. 2021-06-25 15:12:05 +02:00
describe.scm describe: Gracefully handle profiles that lack provenance info. 2021-05-09 23:46:46 +02:00
discover.scm scripts: discover: Report Avahi errors. 2021-05-22 14:04:19 +02:00
download.scm scripts: download: Replace 'args-fold*' by 'parse-command-line'. 2021-04-01 14:58:54 +02:00
edit.scm scripts: Commands warn when passed zero arguments. 2021-05-28 11:36:02 +02:00
environment.scm profiles: Add 'load-profile'. 2021-06-18 14:18:07 +02:00
gc.scm scripts: Use 'define-command' and have 'guix help' use that. 2020-09-10 12:27:24 +02:00
git.scm scripts: Use 'define-command' and have 'guix help' use that. 2020-09-10 12:27:24 +02:00
graph.scm graph: Add '--max-depth'. 2021-09-21 15:15:52 +02:00
hash.scm guix hash: Honor '-H' when used alongside '-r'. 2021-01-04 11:51:48 +01:00
home.scm scripts: home: Support dry-run. 2021-10-04 11:26:43 +03:00
import.scm scripts: import: Increase column width for pretty-printer. 2021-09-14 11:50:58 +02:00
install.scm transformations: Show '--help-transform' only where applicable. 2020-11-21 12:39:14 +01:00
lint.scm scripts: lint: Display result of checkers on stdout. 2020-11-21 10:23:08 +00:00
offload.scm ssh: Use 'guix repl' instead of 'guile'. 2020-12-23 16:03:32 +01:00
pack.scm pack: Streamline how files are included in tarballs. 2021-07-18 02:10:49 -04:00
package.scm package: Improve output appearance when listing packages. 2021-07-15 16:09:53 -04:00
perform-download.scm download: Use Disarchive as a last resort. 2021-04-29 11:24:48 -04:00
processes.scm processes: Add '--format' and the "normalized" format. 2020-11-29 23:55:57 +01:00
publish.scm publish: Defer narinfo string creation to the http-write. 2021-10-05 18:55:55 +00:00
pull.scm pull: Use SRFI-71 instead of SRFI-11. 2021-06-29 00:00:14 +02:00
refresh.scm guix: refresh: Do not use argument jumping with ngettext. 2020-11-18 20:58:51 +01:00
remove.scm scripts: Use 'define-command' and have 'guix help' use that. 2020-09-10 12:27:24 +02:00
repl.scm scripts: repl: Replace 'args-fold*' by 'parse-command-line'. 2021-04-01 14:58:54 +02:00
search.scm scripts: search: Replace 'args-fold*' by 'parse-command-line'. 2021-04-01 14:58:55 +02:00
show.scm scripts: show: Replace 'args-fold*' by 'parse-command-line'. 2021-04-01 14:58:55 +02:00
size.scm scripts: Use 'define-command' and have 'guix help' use that. 2020-09-10 12:27:24 +02:00
substitute.scm substitute: Fix handling of short option "-h". 2021-07-16 19:36:11 +02:00
system.scm system: Add hint for action typo. 2021-09-07 15:59:34 +02:00
time-machine.scm inferior: 'cached-channel-instance' no longer calls 'show-what-to-build'. 2021-08-09 18:14:37 +02:00
upgrade.scm upgrade: Allow several regexps. 2020-12-01 11:34:10 +01:00
weather.scm weather: Don't look for exported package replacements twice. 2021-09-03 10:08:27 +01:00