Hi, I am running guile-2.0 and guile-2.2 alongside each other which is causing me some pain*). This is what bits of my GUILE_LOAD_COMPILED_PATH look like /gnu/store/7ml4psifv46pzxjxw56xfl7mwd47k277-profile/lib/guile/2.2/ccache --> /gnu/store/7ml4psifv46pzxjxw56xfl7mwd47k277-profile/lib/guile/2.2/ccache/ice-9/and-let-star.go /gnu/store/7ml4psifv46pzxjxw56xfl7mwd47k277-profile/share/guile/site/2.2/ --> /gnu/store/7ml4psifv46pzxjxw56xfl7mwd47k277-profile/share/guile/site/2.2/os/process.go If `/' is always used as the suffix of each path element, and we/guix/packagers do not include that suffix in GUILE_*PATH elements, then Guile can append effective-prefix and different major Guile-versions can happily share the same GUILE_LOAD[_COMPILED]_PATH, e.g., having GUILE_LOAD_COMPILED_PATH=/gnu/store/7ml4psifv46pzxjxw56xfl7mwd47k277-profile/share/guile/site then guile-2.0 would get (os process) from /gnu/store/7ml4psifv46pzxjxw56xfl7mwd47k277-profile/share/guile/site + /2.0 --> /gnu/store/7ml4psifv46pzxjxw56xfl7mwd47k277-profile/share/guile/site/2.0/os/process.go and guile-2.2 would read /gnu/store/7ml4psifv46pzxjxw56xfl7mwd47k277-profile/share/guile/site + /2.2 --> /gnu/store/7ml4psifv46pzxjxw56xfl7mwd47k277-profile/share/guile/site/2.2/os/process.go What do you think? No more pain! Find patch attached. Greetings, Jan *) Some of my pain My Debian host system has guile-2.0, guix depends on guile-2.0, guix's LD script depends on guile-2.0, the guile bits of my project depend on guile-2.2. I have some scripts to make this situation almost bearable, but still I regularly cannot find a basic library [1]13:53:25 janneke@janneke-ijzer:~ $ guile --no-auto-compile GNU Guile 2.0.11 Copyright (C) 1995-2014 Free Software Foundation, Inc. Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'. This program is free software, and you are welcome to redistribute it under certain conditions; type `,show c' for details. Enter `,help' for help. scheme@(guile-user)> (use-modules (os proccess)) While compiling expression: ERROR: no code for module (os proccess) or some guile script (guix) aborts guix environment --ad-hoc ccache coreutils git guix emacs guile-next guile-next-lib Throw without catch before boot: Throw to key misc-error with args ("make_objcode_from_file" "bad header on object file: ~s" ("\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00") #f)Aborting. Aborted or linking breaks g++ -Wall -std=c++11 -g -I. -I out/alarm.project/c++ -I check/alarm.project/ out/alarm.project/c++/main.o out/alarm.project/c++/Alarm.o out/alarm.project/c++/AlarmSystem.o out/alarm.project/c++/pump.o out/alarm.project/c++/runtime.o -lboost_system -lboost_coroutine -lboost_thread -lboost_context -pthread -o out/alarm.project/c++/test collect2: error: ld terminated with signal 6 [Afgebroken] Throw without catch before boot: Aborting. and then I juggle installed guile versions and/or manually modify GUILE_LOAD_COMPILED_PATH.