guix-devel/guix
Ludovic Courtès 8245bb74fc
monads, gexp: Prevent redefinition of syntax parameters.
Fixes <https://bugs.gnu.org/27476>.

This fixes multi-threaded compilation of this code where syntax
parameters could end up being redefined and where a race condition could
lead a thread to see the "wrong" value of the syntax parameter.

* guix/monads.scm (define-syntax-parameter-once): New macro.
(>>=, return): Use it.
* guix/gexp.scm (define-syntax-parameter-once): New macro.
(current-imported-modules, current-imported-extensions): Use it.
2019-02-06 23:06:18 +01:00
..
build gnu: dune: Update to 1.6.3. 2019-02-04 22:03:22 +01:00
build-system guix: scons: Fix module reference. 2019-01-15 18:15:07 +01:00
import import: opam: Work around janestreet version numbers. 2019-02-05 22:33:13 +01:00
scripts guix package: '-A' no longer lists deprecated packages. 2019-02-01 19:28:49 +01:00
store deduplication: Ignore EMLINK. 2019-01-23 23:35:12 +01:00
tests
base16.scm
base32.scm
base64.scm
build-system.scm
cache.scm
channels.scm channels: Do not offload package cache derivation. 2019-01-29 12:09:52 +01:00
ci.scm ci: Add procedures to access evaluations. 2018-11-10 23:33:46 +01:00
combinators.scm
config.scm.in daemon: Rename 'NIX_STATE_DIR' and 'NIX_DB_DIR' environment variables. 2019-02-04 00:03:30 +01:00
cpio.scm
cve.scm
cvs-download.scm
deprecation.scm deprecation: Send warnings to (current-error-port) by default. 2019-01-21 23:09:55 +01:00
derivations.scm store: Rename '&nix-error' to '&store-error'. 2019-01-21 23:09:55 +01:00
describe.scm
discovery.scm discovery: Add 'fold-module-public-variables*'. 2019-01-15 20:24:09 +01:00
docker.scm docker: Hide scary-looking but harmless tar failure messages. 2018-11-29 09:30:00 +01:00
download.scm download: 'built-in-builders*' relies on the functional cache. 2018-12-19 23:52:25 +01:00
elf.scm
ftp-client.scm Remove most uses of the _IO*F constants. 2019-01-09 14:47:53 +01:00
gexp.scm monads, gexp: Prevent redefinition of syntax parameters. 2019-02-06 23:06:18 +01:00
git-download.scm git-download: Download from Software Heritage as a last resort. 2018-11-26 11:10:20 +01:00
git.scm git: Nicely report '--with-commit' errors. 2018-11-30 17:03:04 +01:00
glob.scm
gnu-maintenance.scm gnu-maintenance: Base kernel.org updater on HTML directory listings. 2018-11-10 23:33:46 +01:00
gnupg.scm
grafts.scm store: Rename '&nix-error' to '&store-error'. 2019-01-21 23:09:55 +01:00
graph.scm
hg-download.scm
http-client.scm Remove most uses of the _IO*F constants. 2019-01-09 14:47:53 +01:00
i18n.scm
inferior.scm store: Rename <nix-server> to <store-connection>. 2019-01-21 23:09:55 +01:00
licenses.scm licenses: Add lppl1.1+. 2019-01-24 13:46:39 +01:00
man-db.scm
memoization.scm
modules.scm
monad-repl.scm
monads.scm monads, gexp: Prevent redefinition of syntax parameters. 2019-02-06 23:06:18 +01:00
nar.scm nar: Access the database instead of connecting to the daemon. 2018-11-13 14:59:45 +01:00
packages.scm packages: 'package-input-rewriting' can take a promise. 2019-01-28 15:45:48 +01:00
pki.scm
profiles.scm profiles: 'manual-database' hook reports progress. 2019-02-01 19:31:34 +01:00
profiling.scm profiling: Add a "gc" profiling component. 2019-01-15 20:24:08 +01:00
progress.scm progress: Do not display the last 0B transfer when size is unknown. 2018-11-16 14:53:44 +01:00
records.scm records: Make 'report-duplicate-field-specifier' available at expansion-time. 2019-01-24 20:48:14 +01:00
scripts.scm
search-paths.scm
self.scm self: Ensure the daemon refers to the right 'guix' command. 2019-02-04 00:03:30 +01:00
serialization.scm store: Rename '&nix-error' to '&store-error'. 2019-01-21 23:09:55 +01:00
sets.scm
ssh.scm store: Rename '&nix-error' to '&store-error'. 2019-01-21 23:09:55 +01:00
status.scm status: Display the current build phase. 2019-02-05 12:03:25 +01:00
store.scm store: 'log-file' honors 'GUIX_LOG_DIRECTORY'. 2019-02-04 00:03:30 +01:00
svn-download.scm
swh.scm swh: Export 'save-origin' and related bindings. 2018-11-27 12:12:33 +01:00
tests.scm tests: Remove duplicate field initializers. 2019-01-24 20:47:21 +01:00
ui.scm ui: Don't report "build failed:" for daemon error messages. 2019-01-23 23:35:12 +01:00
upstream.scm refresh: Suggest input changes when updating. 2019-01-12 23:35:11 +01:00
utils.scm utils: Memoize 'absolute-dirname'. 2018-12-19 23:52:25 +01:00
workers.scm
zlib.scm