From mboxrd@z Thu Jan 1 00:00:00 1970 From: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) Subject: Re: [PATCH] Append effective version to GUILE_LOAD[_COMPILED]_PATH Date: Sat, 19 Mar 2016 22:09:56 +0100 Message-ID: <87shzmfa3f.fsf@gnu.org> References: <87oaaupes6.fsf@drakenvlieg.flower> <874mc2yg27.fsf@drakenvlieg.flower> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:57561) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ahO8d-0004RA-Fd for guix-devel@gnu.org; Sat, 19 Mar 2016 17:10:24 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ahO8c-0005He-AH for guix-devel@gnu.org; Sat, 19 Mar 2016 17:10:23 -0400 In-Reply-To: <874mc2yg27.fsf@drakenvlieg.flower> (Jan Nieuwenhuizen's message of "Sat, 19 Mar 2016 10:26:08 +0100") List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org To: Jan Nieuwenhuizen Cc: Mikael Djurfeldt , guix-devel@gnu.org, guile-devel Jan Nieuwenhuizen skribis: > in contrast, setting GUILE_LOAD_*PATH to the wrong place makes Guile > barf trying to load eval.* or boot-9.*.=20 There=E2=80=99s also =E2=80=98GUILE_SYSTEM_COMPILED_PATH=E2=80=99 and =E2= =80=98GUILE_SYSTEM_PATH=E2=80=99. > Also, guix by default sets GUILE_LOAD_PATH and > GUILE_LOAD_COMPILED_PATH, thus "ensuring" that different guile major > versions will fail to boot. > > Do we want Guile to look at environment variables to find its core > libraries? > > * Python has magic numbers and skip/recompiles if a .py[oc] does > not match > > This resembles what Ludovic suggested and what I have submitted a patch > for, to skip invalid .go files. I think core libraries are not specifically the problem. The problem is that Guile can stumble upon incompatible .go files because =E2=80=98GUILE_LOAD_COMPILED_PATH=E2=80=99 is honored by both 2.0 and 2.2. So I think the possible solutions are: 1. Have 2.2 honor only GUILE_2_2_LOAD_COMPILED_PATH. Obviously not realistic. 2. Have Guile automatically append =E2=80=9C/2.2=E2=80=9D (or =E2=80=9C/2= .0=E2=80=9D, etc.) to the GUILE_LOAD_COMPILED_PATH entries. Would be nice, but too late. 3. Change both 2.0 and 2.2 to skip invalid/incompatible .go files. Sounds like the only viable solution. Thoughts? Ludo=E2=80=99.