unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Federico Beffa <beffa@ieee.org>
To: "Ludovic Courtès" <ludo@gnu.org>
Cc: Guix-devel <guix-devel@gnu.org>, Alex Kost <alezost@gmail.com>
Subject: Re: Why do we use ".../share/emacs/site-lisp/guix.d/"?
Date: Fri, 20 May 2016 08:53:27 +0200	[thread overview]
Message-ID: <CAKrPhPN7N3oqfWJ3ZjOi+ck1rxjUFZ-Zup7g3OiDVsNszLTbPQ@mail.gmail.com> (raw)
In-Reply-To: <874m9uxnlw.fsf@gnu.org>

ludo@gnu.org (Ludovic Courtès) writes:

> Alex Kost <alezost@gmail.com> skribis:
>
>> Ludovic Courtès (2016-05-17 00:15 +0300) wrote:
>>
>>> Alex Kost <alezost@gmail.com> skribis:

[...]

>>> Federico suggests above that having “guix.d” makes it clear that a
>>> non-Guix-installed Emacs on a foreign distro may not be able to use
>>> those packages.
>>
>> I don't see how this makes it more clear.  Of course a
>> non-Guix-installed Emacs knows nothing about packages installed in a
>> Guix profile.  As for me, "~/.guix-profile" is already clear enough, and
>> there is no reason to add another "guix"-containing name part to the
>> file hierarchy.
>
> I see, I get your point, and I think I concur.
>
> Federico: is there anything we’re missing from your argument?

Given that the first point that I made appears to have been ignored, I
would think so.

Let me try to explain it once more:

There are packages which do have sub-directories containing only non
elisp files (note 1) and which therefore should not be included in
Emacs's load-path.  If you remove guix.d as you are suggesting, you can
end up with a directory layout as follows:

package-NOT-installed-with-emacs-build-system-a.el
package-NOT-installed-with-emacs-build-system-a/
package-NOT-installed-with-emacs-build-system-b.el
package-installed-with-emacs-build-system-c/
package-installed-with-emacs-build-system-d/

How can you tell which sub-directory to include in Emacs's load-path
without having to scan all of them or relying on heuristics?

Differently from this with the guix.d directory it is very clear:

package-NOT-installed-with-emacs-build-system-a.el
package-NOT-installed-with-emacs-build-system-a/
package-NOT-installed-with-emacs-build-system-b
guix.d/package-installed-with-emacs-build-system-c/
guix.d/package-installed-with-emacs-build-system-d/

you only include '.' (site-lisp) and one level below guix.d.

So, removing guix.d could result in additional directories being
included in Emacs's load-path, or could require a more sophisticated
heuristic strategy to decide which sub-directory to include.  These are
not catastrophic things, but in my opinion plain bad.

The proposed change is a change for the sake of changing things: it does
not provide any tangible technical improvement.  On the contrary, beside
the above, it will break existing installations where people have the
current Emacs package installed and will install a new package without
updating Emacs itself.

Fede

(note 1): If you want an example look at emacs-slime.  Because I
prepared that package, I decided to use the emacs-build-system and so
the extra sub-directory doesn't reside directly under site-lisp.  But it
is likely that there are other similar packages and somebody else may
prefer to install it with a build system other than the
emacs-build-system (using a provided Makefile).

  reply	other threads:[~2016-05-20  6:53 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-05-08 10:33 Why do we use ".../share/emacs/site-lisp/guix.d/"? Alex Kost
2016-05-08 16:23 ` Federico Beffa
2016-05-08 19:51   ` Alex Kost
2016-05-08 20:06     ` Federico Beffa
2016-05-09  6:42       ` Federico Beffa
2016-05-09  9:13         ` Alex Kost
2016-05-16 21:15           ` Ludovic Courtès
2016-05-17 18:14             ` Alex Kost
2016-05-19 12:02               ` Ludovic Courtès
2016-05-20  6:53                 ` Federico Beffa [this message]
2016-05-20 21:00                   ` Alex Kost
2016-05-21 10:47                     ` Federico Beffa
2016-05-21 21:39                       ` Alex Kost
2016-05-22 20:28                         ` Ludovic Courtès
2016-05-08 16:51 ` Ludovic Courtès
2016-05-08 19:58   ` Alex Kost

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://guix.gnu.org/

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

  git send-email \
    --in-reply-to=CAKrPhPN7N3oqfWJ3ZjOi+ck1rxjUFZ-Zup7g3OiDVsNszLTbPQ@mail.gmail.com \
    --to=beffa@ieee.org \
    --cc=alezost@gmail.com \
    --cc=guix-devel@gnu.org \
    --cc=ludo@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.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

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).