In python, the version number is higher up in the directory hierarchy, which, hypothetically, allows newer versions to have "inventions" in the more detailed directory structure: /usr/lib/python2.6 /usr/lib/python2.7 etc Just a thought. On Fri, Mar 4, 2016 at 2:13 PM, Jan Nieuwenhuizen wrote: > 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. > > > > -- > Jan Nieuwenhuizen | GNU LilyPond http://lilypond.org > Freelance IT http://JoyofSource.com | AvatarĀ® http://AvatarAcademy.nl > >