all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
To: Chris Marusich <cmmarusich@gmail.com>
Cc: myglc2@gmail.com, 38015@debbugs.gnu.org,
	Pierre Neidhardt <mail@ambrevar.xyz>,
	help-guix@gnu.org, Alex Kost <alezost@gmail.com>
Subject: [bug#38015] Emacs in multiple profiles
Date: Mon, 18 Nov 2019 14:50:32 +0900	[thread overview]
Message-ID: <87r225u40n.fsf@gmail.com> (raw)
In-Reply-To: <87eeyc452y.fsf@gmail.com> (Chris Marusich's message of "Tue, 12 Nov 2019 23:18:29 -0800")

Hello Chris,

Chris Marusich <cmmarusich@gmail.com> writes:

[...]

I've skipped your previous questions, as I believe they were well
answered by Pierre (thank you, Pierre!).

>> Subject: [PATCH 2/3] build-system: emacs: Simplify the SET-EMACS-LOAD-PATH
>>  phase.
>>
>> +(define* (add-source-to-load-path #:key dummy #:allow-other-keys)
>> +  "Augment the EMACSLOADPATH environment variable with the source directory."
>>    (let* ((source-directory (getcwd))
>> -         (input-elisp-directories (input-directories->el-directories
>> -                                   (inputs->directories inputs)))
>> -         (emacs-load-path-value
>> -          (string-join
>> -           (append input-elisp-directories (list source-directory))
>> -           ":" 'suffix)))
>> +         (emacs-load-path-value (string-append (getenv "EMACSLOADPATH") ":"
>> +                                               source-directory)))
>>      (setenv "EMACSLOADPATH" emacs-load-path-value)
>> -    (format #t "environment variable `EMACSLOADPATH' set to ~a\n"
>> -            emacs-load-path-value)))
>> +    (format #t "source directory ~s appended to the `EMACSLOADPATH' \
>> +environment variable\n" source-directory)))
>
> It looks like the change is as follows: previously, we added multiple
> directories, including the source-directory, to the load path; after
> this change, we append just the source-directory to the EMACSLOADPATH.
> Can you remind me why we don't need to add the other elisp directories
> to the EMACSLOADPATH, too?  It seems to work, so I'm probably just
> missing something obvious.

The magic is in the set-paths phase that is inherited from the
gnu-build-system.  It uses the search path specification now specified in
the Emacs package to set the EMACSLOADPATH environment variable itself.

When building Elisp packages, it is useful to add the current source
directory to that environment variable, so that 'require' directives are
able to find the package's own modules (say, when running its test
suite).

>> Subject: [PATCH 3/3] gnu: emacs: Adapt the autoloads auxiliary code to use
>>  EMACSLOADPATH.
>
> As far as I can tell, this looks good to me, too.
>
> Finally: do you anticipate that this will cause any user-visible or
> backwards-incompatible changes that we should mention in the Guix
> channel's news file (and in the Guix NEWS file)?

Thanks for the review!  I can't anticipate any user-visible changes
except the current (incorrect) behavior.

This change is now live on master, with commit
47b3b4c2aa49e21f4cc32c97ff7bbbd069bb849c.  Thanks for testing :-).

Maxim

WARNING: multiple messages have this Message-ID (diff)
From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
To: Chris Marusich <cmmarusich@gmail.com>
Cc: myglc2@gmail.com, 38015@debbugs.gnu.org, help-guix@gnu.org,
	Alex Kost <alezost@gmail.com>
Subject: Re: [bug#38015] Emacs in multiple profiles
Date: Mon, 18 Nov 2019 14:50:32 +0900	[thread overview]
Message-ID: <87r225u40n.fsf@gmail.com> (raw)
In-Reply-To: <87eeyc452y.fsf@gmail.com> (Chris Marusich's message of "Tue, 12 Nov 2019 23:18:29 -0800")

Hello Chris,

Chris Marusich <cmmarusich@gmail.com> writes:

[...]

I've skipped your previous questions, as I believe they were well
answered by Pierre (thank you, Pierre!).

>> Subject: [PATCH 2/3] build-system: emacs: Simplify the SET-EMACS-LOAD-PATH
>>  phase.
>>
>> +(define* (add-source-to-load-path #:key dummy #:allow-other-keys)
>> +  "Augment the EMACSLOADPATH environment variable with the source directory."
>>    (let* ((source-directory (getcwd))
>> -         (input-elisp-directories (input-directories->el-directories
>> -                                   (inputs->directories inputs)))
>> -         (emacs-load-path-value
>> -          (string-join
>> -           (append input-elisp-directories (list source-directory))
>> -           ":" 'suffix)))
>> +         (emacs-load-path-value (string-append (getenv "EMACSLOADPATH") ":"
>> +                                               source-directory)))
>>      (setenv "EMACSLOADPATH" emacs-load-path-value)
>> -    (format #t "environment variable `EMACSLOADPATH' set to ~a\n"
>> -            emacs-load-path-value)))
>> +    (format #t "source directory ~s appended to the `EMACSLOADPATH' \
>> +environment variable\n" source-directory)))
>
> It looks like the change is as follows: previously, we added multiple
> directories, including the source-directory, to the load path; after
> this change, we append just the source-directory to the EMACSLOADPATH.
> Can you remind me why we don't need to add the other elisp directories
> to the EMACSLOADPATH, too?  It seems to work, so I'm probably just
> missing something obvious.

The magic is in the set-paths phase that is inherited from the
gnu-build-system.  It uses the search path specification now specified in
the Emacs package to set the EMACSLOADPATH environment variable itself.

When building Elisp packages, it is useful to add the current source
directory to that environment variable, so that 'require' directives are
able to find the package's own modules (say, when running its test
suite).

>> Subject: [PATCH 3/3] gnu: emacs: Adapt the autoloads auxiliary code to use
>>  EMACSLOADPATH.
>
> As far as I can tell, this looks good to me, too.
>
> Finally: do you anticipate that this will cause any user-visible or
> backwards-incompatible changes that we should mention in the Guix
> channel's news file (and in the Guix NEWS file)?

Thanks for the review!  I can't anticipate any user-visible changes
except the current (incorrect) behavior.

This change is now live on master, with commit
47b3b4c2aa49e21f4cc32c97ff7bbbd069bb849c.  Thanks for testing :-).

Maxim

  parent reply	other threads:[~2019-11-18  5:51 UTC|newest]

Thread overview: 53+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-03-22 16:47 Emacs in multiple profiles Konrad Hinsen
2018-03-22 21:21 ` Alex Kost
2018-03-23  7:57   ` Konrad Hinsen
2018-03-23 17:25     ` Alex Kost
2018-03-24 12:14       ` Konrad Hinsen
2018-03-24 16:07         ` Alex Kost
2018-03-26  8:24           ` Konrad Hinsen
2018-03-27 15:38             ` Alex Kost
2018-04-18 19:49               ` myglc2
2018-05-05 16:01                 ` Konrad Hinsen
2019-10-16 19:54                 ` Pierre Neidhardt
2019-10-17 15:56                   ` George Clemmer
2019-10-18  8:42                     ` Pierre Neidhardt
2019-10-18 17:13                       ` George Clemmer
2019-10-19  8:57                         ` Pierre Neidhardt
2019-10-19  8:53                       ` Pierre Neidhardt
2019-10-19 19:35                   ` Maxim Cournoyer
2019-10-19 20:19                     ` Pierre Neidhardt
2019-10-25  3:05                       ` Maxim Cournoyer
2019-10-25 11:21                         ` Pierre Neidhardt
2019-10-28  3:45                           ` Maxim Cournoyer
2019-10-28  7:49                             ` Pierre Neidhardt
2019-10-28 12:46                           ` Maxim Cournoyer
2019-10-29  1:25                           ` Maxim Cournoyer
2019-10-29 10:44                             ` Pierre Neidhardt
2019-10-31  5:29                               ` Maxim Cournoyer
2019-10-31 12:29                                 ` Pierre Neidhardt
2019-11-01  4:25                                   ` [bug#38015] " Maxim Cournoyer
2019-11-01  4:25                                     ` Maxim Cournoyer
2019-11-01 19:06                                     ` [bug#38015] " Pierre Neidhardt
2019-11-01 19:06                                       ` Pierre Neidhardt
2019-11-02  1:12                                       ` [bug#38015] " Maxim Cournoyer
2019-11-02  1:12                                         ` Maxim Cournoyer
2019-11-02  9:41                                         ` [bug#38015] " Pierre Neidhardt
2019-11-02  9:41                                           ` Pierre Neidhardt
2019-11-17 23:10                                         ` Emacs in server mode using a Shepherd user service (Was: Re: Emacs in multiple profiles) Chris Marusich
2019-11-18 20:55                                           ` brettg
2019-11-19 21:57                                             ` Emacs in server mode using a Shepherd user service Maxim Cournoyer
2019-11-19 21:58                                               ` brettg
2019-11-19 22:03                                                 ` brettg
2019-11-12  5:14                                     ` [bug#38015] Emacs in multiple profiles Chris Marusich
2019-11-12  5:14                                       ` Chris Marusich
2019-11-12  7:16                                       ` Pierre Neidhardt
2019-11-12  7:16                                         ` Pierre Neidhardt
2019-11-13  7:18                                         ` Chris Marusich
2019-11-13  7:18                                           ` Chris Marusich
2019-11-13 11:08                                           ` Pierre Neidhardt
2019-11-13 11:08                                             ` Pierre Neidhardt
2019-11-18  5:50                                           ` Maxim Cournoyer [this message]
2019-11-18  5:50                                             ` Maxim Cournoyer
2019-10-20 13:58                   ` Alex Kost
2019-10-20 16:17                     ` Pierre Neidhardt
2018-04-20 20:52           ` Ricardo Wurmus

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

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

  git send-email \
    --in-reply-to=87r225u40n.fsf@gmail.com \
    --to=maxim.cournoyer@gmail.com \
    --cc=38015@debbugs.gnu.org \
    --cc=alezost@gmail.com \
    --cc=cmmarusich@gmail.com \
    --cc=help-guix@gnu.org \
    --cc=mail@ambrevar.xyz \
    --cc=myglc2@gmail.com \
    /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 external index

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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.