From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ivan Vilata i Balaguer Subject: Re: Emacs not seeing newer packages after pull Date: Tue, 31 Mar 2020 20:04:16 -0400 Message-ID: <20200401000416.GK6131@sax.terramar.selidor.net> References: <20200331044752.GJ6131@sax.terramar.selidor.net> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:470:142:3::10]:59442) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jJQtG-0003Mx-Nz for help-guix@gnu.org; Tue, 31 Mar 2020 20:05:56 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jJQtE-0004lI-LR for help-guix@gnu.org; Tue, 31 Mar 2020 20:05:54 -0400 Received: from lev.selidor.net ([2600:3c03:e001:1100::1]:40420) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1jJQtD-0004h7-LB for help-guix@gnu.org; Tue, 31 Mar 2020 20:05:51 -0400 Content-Disposition: inline In-Reply-To: List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-guix-bounces+gcggh-help-guix=m.gmane-mx.org@gnu.org Sender: "Help-Guix" To: Konrad Hinsen Cc: help-guix@gnu.org Konrad Hinsen (2020-03-31 20:25:02 +0200) wrote: > I did some experiments in the Guix REPL created by emacs-guix, but > I don't understand what's happening. Here I am exploring > emacs-caps-lock, a package that I got with today's pull: >=20 > scheme@(emacs-guix)> (%search-load-path "gnu/packages/emacs-xyz") > $4 =3D "/home/hinsen/.config/guix/current/share/guile/site/3.0/gnu/pack= ages/emacs-xyz.scm" >=20 > Looks OK. Let's look at the module and its filename: >=20 > scheme@(emacs-guix)> (resolve-module '(gnu packages emacs-xyz)) > $5 =3D # > scheme@(emacs-guix)> (module-filename (resolve-module '(gnu packages em= acs-xyz))) > $6 =3D "gnu/packages/emacs-xyz.scm" >=20 > A relative filename, but relative to what? Why isn't this an absolute > one? As for the package: >=20 > scheme@(emacs-guix)> (module-variable (resolve-module '(gnu packages em= acs-xyz)) 'emacs-caps-lock) > $7 =3D #f >=20 > It's not in there (but it is in the source code). And now for the real > surprise: >=20 > scheme@(emacs-guix)> (reload-module (resolve-module '(gnu packages emac= s-xyz))) > $8 =3D # > scheme@(emacs-guix)> (module-filename (resolve-module '(gnu packages em= acs-xyz))) > $9 =3D "/home/hinsen/.config/guix/current/share/guile/site/3.0/gnu/pack= ages/emacs-xyz.scm" > scheme@(emacs-guix)> (module-variable (resolve-module '(gnu packages em= acs-xyz)) 'emacs-caps-lock) > $10 =3D #> >=20 > What the heck has Guile been loading the first time??? Thanks Konrad for investigating this! After seeing your tests, I came ba= ck to the `guix-repl-use-latest` variable. According to info: > Set this variable to nil, if you don=E2=80=99t want to use the latest G= uix code > received with =E2=80=98guix pull=E2=80=99 command. My variable is `t` as defined at emacs-guix's `guix-repl.el`. It is used= in the `guix-repl-guile-args` to set the command line args for Guile. Accor= ding to `ps` in my system, I see these arguments: /gnu/store/=E2=80=A6-guile-2.2.6/bin/guile --no-auto-compile \ -L /gnu/store/=E2=80=A6-emacs-guix-0.5.2/share/guile/site/2.2 \ -C /gnu/store/=E2=80=A6-emacs-guix-0.5.2/lib/guile/2.2/site-ccache = \ -L /home/ivan/.config/guix/current/share/guile/site/3.0 \ -C /home/ivan/.config/guix/current/lib/guile/3.0/site-ccache \ -L /gnu/store/=E2=80=A6-guix-1.0.1-14.c2f9ea2/share/guile/site/2.2 = \ -C /gnu/store/=E2=80=A6-guix-1.0.1-14.c2f9ea2/lib/guile/2.2/site-cc= ache \ --listen=3D/tmp/emacs-guix-=E2=80=A6/repl-socket -q \ -L /gnu/store/=E2=80=A6-emacs-geiser-0.11.2/share/geiser/guile/ Please note the `-L =E2=80=A6-guix-1.0.1-14=E2=80=A6 -C =E2=80=A6-guix-1.= 0.1-14=E2=80=A6`, this is added in the `guix-repl-guile-args` function from the value of the variable `guix-config-guix-scheme-directory`, defined in emacs-guix's `guix-build-config.el` as `/gnu/store/=E2=80=A6-guix-1.0.1-14.c2f9ea2/share/guile/site/2.2`. If I run `guix package -s guix`, the version of the `guix` package (which= I assume is the same that I got after the last `guix pull`, but I may be wr= ong) is `1.0.1-15=E2=80=A6`. I guess that the Guile binary and `=E2=80=A6-guix-1.0.1-14=E2=80=A6` comi= ng from emacs-guix are unavoidable, the issue may be whether the `.config/guix/current` path= s are really taking precedence over emacs-guix's hardwired ones. Now, if I do `guix package -u guix emacs-guix emacs-magit OTHER_DEPS=E2=80= =A6`, run Emacs and invoke the package list, `ps` shows: /gnu/store/=E2=80=A6-guile-2.2.6/bin/guile --no-auto-compile \ -L /gnu/store/=E2=80=A6-emacs-guix-0.5.2/share/guile/site/2.2 \ -C /gnu/store/=E2=80=A6-emacs-guix-0.5.2/lib/guile/2.2/site-ccach= e \ -L /home/ivan/.config/guix/current/share/guile/site/3.0 \ -C /home/ivan/.config/guix/current/lib/guile/3.0/site-ccache \ --listen=3D/tmp/emacs-guix-=E2=80=A6/repl-socket -q \ -L /gnu/store/=E2=80=A6-emacs-geiser-0.11.2/share/geiser/guile/ Please note that the hardwired Guix paths are no longer there. Now the package list only shows `guix` and `emacs-magit` as "from the future" (wh= y?), and some "obsolete" packages, which is fine. Maybe I should just `guix package -u` this time and check if the problem repeats with the next pull=E2=80=A6 Thanks again! --=20 Ivan Vilata i Balaguer -- https://elvil.net/