|
From: | Mikael Djurfeldt |
Subject: | Re: [PATCH] Append effective version to GUILE_LOAD[_COMPILED]_PATH |
Date: | Wed, 16 Mar 2016 15:19:26 +0100 |
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 `/<effective-version>' 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 address@hidden:~
$ 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 <address@hidden> | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | Avatar® http://AvatarAcademy.nl
[Prev in Thread] | Current Thread | [Next in Thread] |