unofficial mirror of guile-devel@gnu.org 
 help / color / mirror / Atom feed
From: Mikael Djurfeldt <mikael@djurfeldt.com>
To: Jan Nieuwenhuizen <janneke@gnu.org>
Cc: guile-devel <guile-devel@gnu.org>
Subject: Re: [PATCH] Append effective version to GUILE_LOAD[_COMPILED]_PATH
Date: Wed, 16 Mar 2016 15:19:26 +0100	[thread overview]
Message-ID: <CAA2XvwLt2GzBoMNRv-0yGoYKW_9SP07G=Ayb4VGx9W1av4xpyA@mail.gmail.com> (raw)
In-Reply-To: <87oaaupes6.fsf@drakenvlieg.flower>

[-- Attachment #1: Type: text/plain, Size: 3855 bytes --]

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 <janneke@gnu.org> 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 `/<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 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 <janneke@gnu.org> | GNU LilyPond http://lilypond.org
> Freelance IT http://JoyofSource.com | Avatar®  http://AvatarAcademy.nl
>
>

[-- Attachment #2: Type: text/html, Size: 4753 bytes --]

  parent reply	other threads:[~2016-03-16 14:19 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-04 13:13 [PATCH] Append effective version to GUILE_LOAD[_COMPILED]_PATH Jan Nieuwenhuizen
2016-03-11 18:14 ` [PATCH] Skip invalid compiled file found, continue searching path Jan Nieuwenhuizen
2016-03-11 22:02   ` David Kastrup
2016-03-13 10:15     ` Jan Nieuwenhuizen
2016-03-13 11:05       ` David Kastrup
2016-03-13 11:10         ` David Kastrup
2016-03-13 10:03   ` [PATCH v3] " Jan Nieuwenhuizen
2016-03-13 10:19     ` Jan Nieuwenhuizen
2016-03-14 16:10       ` [PATCH v4] " Jan Nieuwenhuizen
2016-03-16 14:19 ` Mikael Djurfeldt [this message]
2016-03-19  9:26   ` [PATCH] Append effective version to GUILE_LOAD[_COMPILED]_PATH Jan Nieuwenhuizen
2016-03-19 21:09     ` Ludovic Courtès

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/guile/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAA2XvwLt2GzBoMNRv-0yGoYKW_9SP07G=Ayb4VGx9W1av4xpyA@mail.gmail.com' \
    --to=mikael@djurfeldt.com \
    --cc=guile-devel@gnu.org \
    --cc=janneke@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).