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 cve: Update feed URL. 2018-08-26 01:47:40 +02:00
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 Add 'guix describe'. 2018-09-07 11:40:22 +02:00
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 glob: Add an extra glob pattern compilation stage. 2018-03-18 22:57:17 +01:00
gnu-maintenance.scm gnu-maintenance: Base kernel.org updater on HTML directory listings. 2018-11-10 23:33:46 +01:00
gnupg.scm gnupg: Change default keyserver. 2018-09-25 18:45:50 +02:00
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 ui: Introduce (guix i18n). 2017-11-08 22:31:58 +01:00
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 profiles: Use 'with-extensions'. 2018-06-01 15:21:28 +02:00
memoization.scm memoization: Add 'invalidate-memoization!. 2017-12-13 23:11:53 +01:00
modules.scm modules: Report the search path in &missing-dependency-error. 2018-04-08 17:41:08 +02:00
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 Switch to Guile-Gcrypt. 2018-09-04 17:25:11 +02:00
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 scripts: Suggest running 'guix gc' when we're short on disk space. 2018-10-23 01:04:39 +02:00
search-paths.scm search-paths: Add 'set-search-paths'. 2018-05-10 14:53:57 +02:00
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 workers: Display backtrace in pre-unwind handler. 2017-11-17 10:47:56 +01:00
zlib.scm zlib: Fix race condition when closing gzip ports. 2017-11-19 23:09:01 +01:00