On Mon, 11 Sep 2017 14:12:34 +0200 ludo@gnu.org (Ludovic Courtès) wrote: > Hello! > > Christopher Baines skribis: > > > So I'm having some trouble using the Guile json module in a gexp. > > I've added (with-imported-modules '((json)) ...), and the > > module-import-compiled builder crashes. > > > > Backtrace: > > 4 (primitive-load > > "/gnu/store/35zv0m9wwd2nz3agyywv09d3k5v?") In srfi/srfi-1.scm: > > 640:9 3 (for-each # > ice-9/eval.scm:333:13 ?> ?) In ice-9/eval.scm: > > 245:16 2 (_ #(#(# "/gn?") > > #)) In ice-9/boot-9.scm: > > 1519:24 1 (_ "./json.scm") > > In unknown file: > > 0 (stat "./json.scm" #) > > > > ERROR: In procedure stat: > > ERROR: In procedure stat: No such file or directory: "./json.scm" > > This would have the effect of importing the (json) module of the host > environment into the build environment, which is not desirable for a > couple of reasons: > > 1. It would require having Guile-JSON installed in the host > environment, and the right version of it. > > 2. It would hinder reproducibility since different users may have > different Guile-JSON variants installed on the host side. > > To overcome this, you have to do like (guix scripts package) does: > > #~(begin > (add-to-load-path #$(file-append guile-json > "/share/guile/site/" > (effective-version))) > …) > > It would be nice to simplify this somehow, though. Awesome, thanks Ludo. Your explaination makes lots of sense, and the approach you suggested worked perfectly :)