unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: "Miguel Ángel Arruga Vivas" <rosen644835@gmail.com>
To: Christopher Lemmer Webber <cwebber@dustycloud.org>
Cc: guix-devel@gnu.org, Maxim Cournoyer <maxim.cournoyer@gmail.com>
Subject: Re: [PATCH] Automatically set `geiser-guile-load-path' from .dir-locals
Date: Thu, 05 Nov 2020 10:25:05 +0100	[thread overview]
Message-ID: <87tuu46tqm.fsf@gmail.com> (raw)
In-Reply-To: <87wnz05u7d.fsf@dustycloud.org> (Christopher Lemmer Webber's message of "Wed, 04 Nov 2020 23:00:22 -0500")

[-- Attachment #1: Type: text/plain, Size: 5153 bytes --]

Hi Christopher,

First of all I want to say sorry: I've tested this and reviewed the
patch, and this is the second issue that already has caused, so yes, my
tests weren't enough at all.

Christopher Lemmer Webber <cwebber@dustycloud.org> writes:

> Also, I hope this email isn't interpreted as being dismissive or negative
> about what looks like it's probably a real usability improvement for
> hacking on Guix!  I just thought my experience indicated maybe there are
> additional considerations to address.

At least from my side I see your report as something positive, I cannot
see how could it be negative at all, and I'd like to thank you for it.

> Christopher Lemmer Webber writes:
>> I'm a bit unsure what the implications fully are with this change, but
>> here was my user experience:
>>
>>  - Did a pull using magit to guix

I use magit too, so I guess this isn't the source of the error.

>>  - Suddenly every file I open in Guix is prompting me if I want to
>>    enable these dir-locals, I notice some have "eval" and I don't know
>>    what it's doing so I say no

Saying no here shouldn't be a problem, as the variables should always be
optional.

>>  - But it's asking me every file

If every file means "every file on guix project" that should be the
normal behavior of Emacs for .dir-locals.el since this file was
introduced long before the patch: you can mark the 'eval' lines to be
accepted, or to be rejected always, but they're loaded with each file.
A problem could be that the UI shows the ones you have already accepted
too, and simply marks with * the new ones.

If it means "every other file too", I'm unable to reproduce that with a
fresh Emacs session.

>>  - And oh no, it's asking me about ten times for every magit operation!
>>    (Presumably due to the reload operation.)  Fine okay fine, YES, okay
>>    cool it's quiet now... I hope that was safe.

The only effects of the new code should be:

  * First eval: Set guix-directory for emacs-guix to the folder where
    .dir-locals.el is located.  This affects the whole emacs-guix, but
    AFAIU this isn't your issue.

  * Second eval:
    - Make geiser-guile-load-path buffer-local, and optionally define it
      as empty if it was void.
    - Add the directory where .dir-locals.el is located to
      geiser-guile-load-path.

>> Later...
>>
>>  - I'm hacking on another file in another repo
>>  - C-x v = (check to see a diff of the work-in-progress changes of the
>>    file I'm working on)

Thanks, with that I reproduce the problem, but I cannot debug it right
now.  I'll be available in some hours, as soon as I have anything I'll
update about this.

>>  - Error in the minibuffer!  "Wrong type argument: stringp, nil"
>>  - wtf, okay M-x toggle-debug-on-error
>>
>> Debugger entered--Lisp error: (wrong-type-argument stringp nil)
>>   expand-file-name(nil)
>>   (let* ((root-dir (expand-file-name (locate-dominating-file default-directory ".dir-locals.el"))) (root-dir* (directory-file-name root-dir))) (unless (boundp 'geiser-guile-load-path) (defvar geiser-guile-load-path 'nil)) (make-local-variable 'geiser-guile-load-path) (require 'cl-lib) (cl-pushnew root-dir* geiser-guile-load-path :test #'string-equal))
>>   eval((let* ((root-dir (expand-file-name (locate-dominating-file default-directory ".dir-locals.el"))) (root-dir* (directory-file-name root-dir))) (unless (boundp 'geiser-guile-load-path) (defvar geiser-guile-load-path 'nil)) (make-local-variable 'geiser-guile-load-path) (require 'cl-lib) (cl-pushnew root-dir* geiser-guile-load-path :test #'string-equal)))
>>   hack-one-local-variable(eval (let* ((root-dir (expand-file-name (locate-dominating-file default-directory ".dir-locals.el"))) (root-dir* (directory-file-name root-dir))) (unless (boundp 'geiser-guile-load-path) (defvar geiser-guile-load-path 'nil)) (make-local-variable 'geiser-guile-load-path) (require 'cl-lib) (cl-pushnew root-dir* geiser-guile-load-path :test #'string-equal)))
>>   hack-local-variables-apply()
>>   hack-dir-local-variables-non-file-buffer()
>>   diff-mode()
>>   vc-diff-internal(t (Git ("/home/cwebber/devel/scribble/scribble-lib/scribble...")) nil nil t)
>>   vc-diff(nil t)
>>   funcall-interactively(vc-diff nil t)
>>   call-interactively(vc-diff nil nil)
>>   command-execute(vc-diff)
>>  
>>  - Oh... it's whatever thing I enabled earlier in the guix repo.  Well
>>    now my vc-diff is broken outside of there... :\
>>
>> I'm presuming that if I understood whatever this is doing, it's probably
>> something that gives me a better user experience if I accept it while
>> working on Guix.  But a) for whatever reason Emacs' dir-locals stuff is
>> written in such a way that it antagonizes me for not accepting it and I
>> didn't know what it eval was (maybe this is a lack of understanding in
>> how to "say no and get it to listen to me"... I didn't resist for too
>> long) and b) it seems like this change isn't scoped to Guix's checkout
>> itself somehow...

Sorry again, as soon as I have a bit of time I'll update.

Happy hacking!
Miguel

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 658 bytes --]

  reply	other threads:[~2020-11-05  9:25 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-10-25 18:08 [PATCH] Automatically set `geiser-guile-load-path' from .dir-locals Maxim Cournoyer
2020-10-25 18:13 ` Pierre Neidhardt
2020-10-25 18:42 ` [PATCH] .dir-locals.el: Automatically set the GEISER-GUILE-LOAD-PATH variable Maxim Cournoyer
2020-10-25 18:52   ` Pierre Neidhardt
2020-10-25 21:37     ` Maxim Cournoyer
2020-10-25 21:01   ` Miguel Ángel Arruga Vivas
2020-10-26  5:47     ` Maxim Cournoyer
2020-10-26  5:53     ` [PATCH v2] " Maxim Cournoyer
2020-10-26  7:56       ` Pierre Neidhardt
2020-10-26 11:38       ` Miguel Ángel Arruga Vivas
2020-10-27 16:53         ` Maxim Cournoyer
2020-10-27 18:58           ` Miguel Ángel Arruga Vivas
2020-10-27 17:44         ` [PATCH v3] " Maxim Cournoyer
2020-10-31  4:19           ` Maxim Cournoyer
2020-11-01  1:02             ` Miguel Ángel Arruga Vivas
2020-10-26 13:43 ` [PATCH] Automatically set `geiser-guile-load-path' from .dir-locals zimoun
2020-10-26 15:03   ` Pierre Neidhardt
2020-11-05  2:20 ` Christopher Lemmer Webber
2020-11-05  4:00   ` Christopher Lemmer Webber
2020-11-05  9:25     ` Miguel Ángel Arruga Vivas [this message]
2020-11-05 17:26       ` Christopher Lemmer Webber
2020-11-14 19:57       ` Christopher Lemmer Webber
2020-11-16  4:18         ` Maxim Cournoyer
2020-11-16 14:54           ` Miguel Ángel Arruga Vivas
2020-11-16 17:41             ` Christopher Lemmer Webber
2020-11-16 18:07               ` Christopher Lemmer Webber
2020-11-16 20:57                 ` Miguel Ángel Arruga Vivas
2020-11-16 23:09                   ` Christopher Lemmer Webber
2020-11-17 15:36                   ` Maxim Cournoyer
2020-11-18 10:12                     ` Miguel Ángel Arruga Vivas
2020-11-05 14:21   ` Maxim Cournoyer

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=87tuu46tqm.fsf@gmail.com \
    --to=rosen644835@gmail.com \
    --cc=cwebber@dustycloud.org \
    --cc=guix-devel@gnu.org \
    --cc=maxim.cournoyer@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 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).