From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp1 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms11 with LMTPS id oGOKOvAssF8mEAAA0tVLHw (envelope-from ) for ; Sat, 14 Nov 2020 19:16:00 +0000 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp1 with LMTPS id WFpnNvAssF8hOgAAbx9fmQ (envelope-from ) for ; Sat, 14 Nov 2020 19:16:00 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 8860B940357 for ; Sat, 14 Nov 2020 19:16:00 +0000 (UTC) Received: from localhost ([::1]:49946 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ke11j-0001oS-IS for larch@yhetil.org; Sat, 14 Nov 2020 14:15:59 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:52598) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ke11b-0001n7-Eo for guix-devel@gnu.org; Sat, 14 Nov 2020 14:15:51 -0500 Received: from relay11.mail.gandi.net ([217.70.178.231]:39697) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ke11Y-0002or-MQ; Sat, 14 Nov 2020 14:15:50 -0500 Received: from bababa (lfbn-idf2-1-1094-122.w90-92.abo.wanadoo.fr [90.92.160.122]) (Authenticated sender: mail@ambrevar.xyz) by relay11.mail.gandi.net (Postfix) with ESMTPSA id 06614100003; Sat, 14 Nov 2020 19:15:44 +0000 (UTC) From: Pierre Neidhardt To: zimoun , Ludovic =?utf-8?Q?Court=C3=A8s?= Subject: Re: Reviving Emacs-Guix In-Reply-To: <86pn4fye6l.fsf@gmail.com> References: <87ft5dzj2z.fsf@ambrevar.xyz> <87tuttci4z.fsf_-_@gnu.org> <87pn4g8eay.fsf@ambrevar.xyz> <867dqoyu34.fsf@tournier.info> <875z68x73f.fsf@ambrevar.xyz> <86sg9byj07.fsf@gmail.com> <87h7prx2ut.fsf@ambrevar.xyz> <86pn4fye6l.fsf@gmail.com> Date: Sat, 14 Nov 2020 20:15:44 +0100 Message-ID: <87zh3jvjfj.fsf@ambrevar.xyz> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" Received-SPF: pass client-ip=217.70.178.231; envelope-from=mail@ambrevar.xyz; helo=relay11.mail.gandi.net X-detected-operating-system: by eggs.gnu.org: First seen = 2020/11/14 14:15:46 X-ACL-Warn: Detected OS = Linux 3.11 and newer [fuzzy] X-Spam_score_int: 0 X-Spam_score: -0.1 X-Spam_bar: / X-Spam_report: (-0.1 / 5.0 requ) BAYES_00=-1.9, FROM_SUSPICIOUS_NTLD=0.5, PDS_OTHER_BAD_TLD=1.999, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: guix-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Development of GNU Guix and the GNU System distribution , Ryan Prior Errors-To: guix-devel-bounces+larch=yhetil.org@gnu.org Sender: "Guix-devel" X-Scanner: ns3122888.ip-94-23-21.eu Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=none; spf=pass (aspmx1.migadu.com: domain of guix-devel-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-devel-bounces@gnu.org X-Spam-Score: -1.61 X-TUID: NyZRmT8rBU42 --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Indeed, lots of misunderstandings in here. I think it's because we are not talking about the same use cases of Emacs-Guix. The main issue I was talking about (there are many other issues indeed) is that of _installing and building packages_ from Emacs Guix. Run guix-devel-build-package-definition on a package definition. If no substitute is available, it will try to build the package in a REPL. If the build output is too long (happens very often!) it will choke Geiser. WARNING: this might hang your emacs ;) Does that make more sense? > On one hand you are saying that Geiser is the issue of Emacs-Guix. You > raise issue with build (which =E2=80=99guix-popup=E2=80=99 does not do). `guix-popup` is only one of the many functions of emacs-guix. I was not talking about it. > And issues about Geiser proper, compared to SLY or SLIME, and Geiser > allows to work interactively (*Guix REPL*). Misunderstanding: many emacs-guix commands run stuff in the *Guix REPL* for the user. (E.g. guix-devel-build-package-definition.) I was not talking about the user interactive themselves with the *Guix REPL*. I think that's the confusion ;) > On the other hand, you say that =C2=AB pipe to =E2=80=9Cguix repl=E2=80= =9D =C2=BB would not tackle > the issues you raise about interactive-ness. Indeed, I was not talking about REPL interactivity. >> To answer all your points: `guix repl` woud only be used for queries, >> not for transactions. > > AFAIU, guix-popup already does that. > > The annoyance that popups time to time are not related to Geiser but > related the low-maintenance mode. IMHO. Add a breakpoint to `guix-geiser-eval`, you'll see. Almost every emacs-guix command depends on it. Geiser is at the lowest level of all of Emacs-Guix. >> Example: the user wants to build Emacs? >> Make a dedicated "M-x shell" buffer and send "guix build emacs" there. > > Euh? You can do the same with anything. Simply use something else. > I do not understand. Hmm? Why would I use something else? To be more explicit, the "build packages passed as argument" could be implemented by popping up a shell buffer and automatically executing =2D-8<---------------cut here---------------start------------->8--- $ guix install package-1 package-2... =2D-8<---------------cut here---------------end--------------->8--- in it. In short, use `M-x shell` or equivalent instead of Geiser. > What are the issues of Geiser that are blocking in guix-popup? Try building a package as I suggested in the beginning. >> emacs-guix never relies on persistence if I'm not mistaken. > > M-x guix-switch-to-repl This is not persistence that's needed for the emacs-guix commands. The commands to list generations, package info, etc. do no need persistence. >> My suggestion indeed lacks persistence, but at least it works for now >> until we figure out something better. > > Now you convinced me that Emacs-Guix needs love. Well the =E2=80=9Cit wo= rks=E2=80=9D in > =C2=AB at least it works for now =C2=BB is meaningless for me Why? A program that works is meaningful I believe. > so instead I am going to report what Emacs-Guix fails and what I would > like to have. It will be more fruitful. ;-) I've reported some of the issues, and I've concluded that some of them would be resolved by not using Geiser to talk to Guix. Of course fixing Geiser is an option, but it's a very rough road to take I believe. >>> And solving that is somehow inheriting from =E2=80=99comint-mode=E2=80= =99 and so >>> more less rewrite =E2=80=99geiser-repl.el=E2=80=99; but Guix specific o= nly. Maybe I am >>> missing the obvious. >> >> Sorry I didn't get this part. > > You are taking the part that more or less works in Emacs-Guix and want > to replace it. And the other part which is more broken, you remove it. I think there is a misunderstanding. Build a package does not work in Emacs Guix, and this is what I want to fix, among other things. I don't want to remove any feature from Emacs Guix. For instance, we can keep the feature "switch to a Geiser REPL", while at the same time not having _all_ actions depend on Geiser. To sum up: =2D Everything that needs Geiser (like "switch to REPL"), we keep. =2D Everything else can use `guix repl` or direct shell invokations. >>> Maybe =C2=ABpipe to =E2=80=9Cguix repl=E2=80=9D=C2=BB could simplify wh= at =E2=80=9Cguix-popup=E2=80=9D does. >>> Even, I am not convinced. >> >> Not just that, but listing packages, package details, output listing, >> profile listing, generation listing, etc. > > I do not know which version of Emacs-Guix you are using but all that is > already available. For example, > > M-x guix-popup p L bro RET C-s ny RET RET > M-x guix-popup p N yxt$ RET > M-x guix-popup P a > M-x guix-popop P a > M-x guix-popop P l 2 RET > > etc. And it works! Try guix-devel-build-package-definition ;) >> Emacs-Guix can't install a package a package that needs to be built >> because of Geiser. So yes, Geiser is the issue. > > The dirty-fix in the kind of =E2=80=9Cguix repl=E2=80=9D fashion is easy:= run > =E2=80=9C(guix-build args)=E2=80=9D and expose the output in a specific b= uffer. > Whatever. It won't work, because the user must be able to interrupt the process. So instead of re-inventing the wheel, it's better to let an Emacs mode that already support process interruption do the job. Cheers! =2D-=20 Pierre Neidhardt https://ambrevar.xyz/ --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQFGBAEBCAAwFiEEUPM+LlsMPZAEJKvom9z0l6S7zH8FAl+wLOASHG1haWxAYW1i cmV2YXIueHl6AAoJEJvc9Jeku8x//5kH/2DMsQsrMhlnk83KmewWoxrWrBzlp5fb jY1R8t86CfcDmn7aizd2J71NsKH2j1et/n1Z1by0PFpjx91lVVGg0/Mq94RUExkX 8Ip5cKKf2rdeToC9PJmhtnHGpwmEhqxt/Kj1fRWadfyHGt2wBgWr+Uz0bgFqAd81 HH1Fz3d/QS/oPRJbW7b4khkSrlW7zOXrhsZJQgxIRXPMTcl50wZ260zWWVRLpx9X H48Oh4HTSj0oNzlkn9l+L04sztJQzHiR+oQ5AgGLpQAC35G2b+SgfGPQ7LBu55a/ HeiQ5yct4SpoH2ozLGR58B9nRW129LtsmFNzLTvV0xtiYJOSszIkQ9c= =HHpl -----END PGP SIGNATURE----- --=-=-=--