* Feedback on indentation rules (was: [PATCH 0/5] Add support for the RPM format to "guix pack")
[not found] ` <871qmg5qpj.fsf@gnu.org>
@ 2023-02-23 22:20 ` Maxim Cournoyer
2023-02-27 19:14 ` Efraim Flashner
0 siblings, 1 reply; 10+ messages in thread
From: Maxim Cournoyer @ 2023-02-23 22:20 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: guix-devel
-CC bug#61255
+CC guix-devel
Hi Ludovic and guix-devel readers,
Ludovic Courtès <ludo@gnu.org> writes:
> Hi,
>
> Maxim Cournoyer <maxim.cournoyer@gmail.com> skribis:
>
>> Ludovic Courtès <ludo@gnu.org> writes:
>>
[...]
>>> I’m not convinced by the indentation rule for ‘gexp->derivation’ added
>>> in 82daab42811a2e3c7684ebdf12af75ff0fa67b99: there’s no reason to treat
>>> ‘gexp->derivation’ differently from other procedures.
>>
>> The benefit I saw was that writing
>>
>> (gexp->derivation the-name
>> #~(begin
>> (the
>> (multi-line
>> (gexp)))))
>
> I understand, but you know, it’s best to avoid unilaterally changing
> established conventions. :-)
>
> If and when there’s consensus about this change, (guix read-print)
> should be updated.
OK. I'm not against soliciting more opinions; I'm CC'ing guix-devel,
hoping some opinionated individuals tip in on this 2021
82daab42811a2e3c7684ebdf12af75ff0fa67b99 commit, more specifically, the
part that change the indentation rules for .dir-locals.el like this:
--8<---------------cut here---------------start------------->8---
+ (eval . (put 'gexp->derivation 'scheme-indent-function 1))
--8<---------------cut here---------------end--------------->8---
In the same spirit there was also
b1c25e2ce364741d1c257d3bb3ab773032807a80 (".dir-locals.el: Add
indentation rule for computed-file.") made more recently (last month).
The idea was to be able to format gexp->derivation like this:
--8<---------------cut here---------------start------------->8---
(gexp->derivation "check-deb-pack"
(with-imported-modules '((guix build utils))
#~(begin
(use-modules (guix build utils)
(ice-9 match)
(ice-9 popen)
(ice-9 rdelim)
(ice-9 textual-ports)
(rnrs base))
[...]
--8<---------------cut here---------------end--------------->8---
Rather than like this:
--8<---------------cut here---------------start------------->8---
(gexp->derivation "check-deb-pack"
(with-imported-modules '((guix build utils))
#~(begin
(use-modules (guix build utils)
(ice-9 match)
(ice-9 popen)
(ice-9 rdelim)
(ice-9 textual-ports)
(rnrs base))
--8<---------------cut here---------------end--------------->8---
(or having to use another 'builder' variable, for example).
What do you all think?
--
Thanks,
Maxim
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Feedback on indentation rules (was: [PATCH 0/5] Add support for the RPM format to "guix pack")
2023-02-23 22:20 ` Feedback on indentation rules (was: [PATCH 0/5] Add support for the RPM format to "guix pack") Maxim Cournoyer
@ 2023-02-27 19:14 ` Efraim Flashner
2023-03-01 15:17 ` Feedback on indentation rules Maxim Cournoyer
0 siblings, 1 reply; 10+ messages in thread
From: Efraim Flashner @ 2023-02-27 19:14 UTC (permalink / raw)
To: Maxim Cournoyer; +Cc: Ludovic Courtès, guix-devel
[-- Attachment #1: Type: text/plain, Size: 3914 bytes --]
On Thu, Feb 23, 2023 at 05:20:55PM -0500, Maxim Cournoyer wrote:
> -CC bug#61255
> +CC guix-devel
>
> Hi Ludovic and guix-devel readers,
>
> Ludovic Courtès <ludo@gnu.org> writes:
>
> > Hi,
> >
> > Maxim Cournoyer <maxim.cournoyer@gmail.com> skribis:
> >
> >> Ludovic Courtès <ludo@gnu.org> writes:
> >>
>
> [...]
>
> >>> I’m not convinced by the indentation rule for ‘gexp->derivation’ added
> >>> in 82daab42811a2e3c7684ebdf12af75ff0fa67b99: there’s no reason to treat
> >>> ‘gexp->derivation’ differently from other procedures.
> >>
> >> The benefit I saw was that writing
> >>
> >> (gexp->derivation the-name
> >> #~(begin
> >> (the
> >> (multi-line
> >> (gexp)))))
> >
> > I understand, but you know, it’s best to avoid unilaterally changing
> > established conventions. :-)
> >
> > If and when there’s consensus about this change, (guix read-print)
> > should be updated.
>
> OK. I'm not against soliciting more opinions; I'm CC'ing guix-devel,
> hoping some opinionated individuals tip in on this 2021
> 82daab42811a2e3c7684ebdf12af75ff0fa67b99 commit, more specifically, the
> part that change the indentation rules for .dir-locals.el like this:
>
> --8<---------------cut here---------------start------------->8---
> + (eval . (put 'gexp->derivation 'scheme-indent-function 1))
> --8<---------------cut here---------------end--------------->8---
>
> In the same spirit there was also
> b1c25e2ce364741d1c257d3bb3ab773032807a80 (".dir-locals.el: Add
> indentation rule for computed-file.") made more recently (last month).
>
> The idea was to be able to format gexp->derivation like this:
>
> --8<---------------cut here---------------start------------->8---
> (gexp->derivation "check-deb-pack"
> (with-imported-modules '((guix build utils))
> #~(begin
> (use-modules (guix build utils)
> (ice-9 match)
> (ice-9 popen)
> (ice-9 rdelim)
> (ice-9 textual-ports)
> (rnrs base))
> [...]
> --8<---------------cut here---------------end--------------->8---
>
> Rather than like this:
>
> --8<---------------cut here---------------start------------->8---
> (gexp->derivation "check-deb-pack"
> (with-imported-modules '((guix build utils))
> #~(begin
> (use-modules (guix build utils)
> (ice-9 match)
> (ice-9 popen)
> (ice-9 rdelim)
> (ice-9 textual-ports)
> (rnrs base))
> --8<---------------cut here---------------end--------------->8---
>
> (or having to use another 'builder' variable, for example).
>
> What do you all think?
The second one is waaaay to indented. For myself I sometimes end up
wrapping the lines (although I don't love it) so it looks like this:
(gexp->derivation
"check-deb-pack"
(with-imported-modules '((guix build utils))
#~(begin
(use-modules (guix build utils)
(ice-9 match)
(ice-9 popen)
(ice-9 rdelim)
(ice-9 textual-ports)
(rnrs base))
--
Efraim Flashner <efraim@flashner.co.il> אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Feedback on indentation rules
2023-02-27 19:14 ` Efraim Flashner
@ 2023-03-01 15:17 ` Maxim Cournoyer
2023-03-06 16:56 ` Ludovic Courtès
0 siblings, 1 reply; 10+ messages in thread
From: Maxim Cournoyer @ 2023-03-01 15:17 UTC (permalink / raw)
To: efraim; +Cc: Ludovic Courtès, guix-devel
Hi Efraim,
Efraim Flashner <efraim@flashner.co.il> writes:
> On Thu, Feb 23, 2023 at 05:20:55PM -0500, Maxim Cournoyer wrote:
>> -CC bug#61255
>> +CC guix-devel
>>
>> Hi Ludovic and guix-devel readers,
>>
>> Ludovic Courtès <ludo@gnu.org> writes:
>>
>> > Hi,
>> >
>> > Maxim Cournoyer <maxim.cournoyer@gmail.com> skribis:
>> >
>> >> Ludovic Courtès <ludo@gnu.org> writes:
>> >>
>>
>> [...]
>>
>> >>> I’m not convinced by the indentation rule for ‘gexp->derivation’ added
>> >>> in 82daab42811a2e3c7684ebdf12af75ff0fa67b99: there’s no reason to treat
>> >>> ‘gexp->derivation’ differently from other procedures.
>> >>
>> >> The benefit I saw was that writing
>> >>
>> >> (gexp->derivation the-name
>> >> #~(begin
>> >> (the
>> >> (multi-line
>> >> (gexp)))))
>> >
>> > I understand, but you know, it’s best to avoid unilaterally changing
>> > established conventions. :-)
>> >
>> > If and when there’s consensus about this change, (guix read-print)
>> > should be updated.
>>
>> OK. I'm not against soliciting more opinions; I'm CC'ing guix-devel,
>> hoping some opinionated individuals tip in on this 2021
>> 82daab42811a2e3c7684ebdf12af75ff0fa67b99 commit, more specifically, the
>> part that change the indentation rules for .dir-locals.el like this:
>>
>> --8<---------------cut here---------------start------------->8---
>> + (eval . (put 'gexp->derivation 'scheme-indent-function 1))
>> --8<---------------cut here---------------end--------------->8---
>>
>> In the same spirit there was also
>> b1c25e2ce364741d1c257d3bb3ab773032807a80 (".dir-locals.el: Add
>> indentation rule for computed-file.") made more recently (last month).
>>
>> The idea was to be able to format gexp->derivation like this:
>>
>> --8<---------------cut here---------------start------------->8---
>> (gexp->derivation "check-deb-pack"
>> (with-imported-modules '((guix build utils))
>> #~(begin
>> (use-modules (guix build utils)
>> (ice-9 match)
>> (ice-9 popen)
>> (ice-9 rdelim)
>> (ice-9 textual-ports)
>> (rnrs base))
>> [...]
>> --8<---------------cut here---------------end--------------->8---
>>
>> Rather than like this:
>>
>> --8<---------------cut here---------------start------------->8---
>> (gexp->derivation "check-deb-pack"
>> (with-imported-modules '((guix build utils))
>> #~(begin
>> (use-modules (guix build utils)
>> (ice-9 match)
>> (ice-9 popen)
>> (ice-9 rdelim)
>> (ice-9 textual-ports)
>> (rnrs base))
>> --8<---------------cut here---------------end--------------->8---
>>
>> (or having to use another 'builder' variable, for example).
>>
>> What do you all think?
>
> The second one is waaaay to indented. For myself I sometimes end up
> wrapping the lines (although I don't love it) so it looks like this:
>
> (gexp->derivation
> "check-deb-pack"
> (with-imported-modules '((guix build utils))
> #~(begin
> (use-modules (guix build utils)
> (ice-9 match)
> (ice-9 popen)
> (ice-9 rdelim)
> (ice-9 textual-ports)
> (rnrs base))
Thanks for the feedback. I wonder if some are of the opinion that since
gexp->derivation is a plain function rather than a syntax having a
special form for its 2nd argument, we should leave the default
indentation rules untouched for it?
My take on this would be a pragmatic one: readable code trumps
indentation rules purity, but I'm interested to gather all the views.
--
Thanks,
Maxim
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Feedback on indentation rules
2023-03-01 15:17 ` Feedback on indentation rules Maxim Cournoyer
@ 2023-03-06 16:56 ` Ludovic Courtès
2023-03-07 13:46 ` Simon Tournier
0 siblings, 1 reply; 10+ messages in thread
From: Ludovic Courtès @ 2023-03-06 16:56 UTC (permalink / raw)
To: Maxim Cournoyer; +Cc: efraim, guix-devel
Hi,
Maxim Cournoyer <maxim.cournoyer@gmail.com> skribis:
> Thanks for the feedback. I wonder if some are of the opinion that since
> gexp->derivation is a plain function rather than a syntax having a
> special form for its 2nd argument, we should leave the default
> indentation rules untouched for it?
Yes, that’s my take and current practice so far: special rules for
special forms (macros), not for procedures.
Ludo’.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Feedback on indentation rules
2023-03-06 16:56 ` Ludovic Courtès
@ 2023-03-07 13:46 ` Simon Tournier
2023-03-07 16:54 ` Maxim Cournoyer
2023-03-15 16:15 ` Ludovic Courtès
0 siblings, 2 replies; 10+ messages in thread
From: Simon Tournier @ 2023-03-07 13:46 UTC (permalink / raw)
To: Ludovic Courtès, Maxim Cournoyer; +Cc: efraim, guix-devel
Hi,
On Mon, 06 Mar 2023 at 17:56, Ludovic Courtès <ludo@gnu.org> wrote:
> Maxim Cournoyer <maxim.cournoyer@gmail.com> skribis:
>
>> Thanks for the feedback. I wonder if some are of the opinion that since
>> gexp->derivation is a plain function rather than a syntax having a
>> special form for its 2nd argument, we should leave the default
>> indentation rules untouched for it?
>
> Yes, that’s my take and current practice so far: special rules for
> special forms (macros), not for procedures.
What is the rationale? Being able to know directly at the location when
it is a plain function or a special form?
For what it is worth, I do not see an high difference between the both
indentations. So, my opinion would to keep the current practise.
Cheers,
simon
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Feedback on indentation rules
2023-03-07 13:46 ` Simon Tournier
@ 2023-03-07 16:54 ` Maxim Cournoyer
2023-03-07 17:29 ` Simon Tournier
2023-03-15 16:15 ` Ludovic Courtès
1 sibling, 1 reply; 10+ messages in thread
From: Maxim Cournoyer @ 2023-03-07 16:54 UTC (permalink / raw)
To: Simon Tournier; +Cc: Ludovic Courtès, efraim, guix-devel
Hi Simon,
Simon Tournier <zimon.toutoune@gmail.com> writes:
> Hi,
>
> On Mon, 06 Mar 2023 at 17:56, Ludovic Courtès <ludo@gnu.org> wrote:
>> Maxim Cournoyer <maxim.cournoyer@gmail.com> skribis:
>>
>>> Thanks for the feedback. I wonder if some are of the opinion that since
>>> gexp->derivation is a plain function rather than a syntax having a
>>> special form for its 2nd argument, we should leave the default
>>> indentation rules untouched for it?
>>
>> Yes, that’s my take and current practice so far: special rules for
>> special forms (macros), not for procedures.
>
> What is the rationale? Being able to know directly at the location when
> it is a plain function or a special form?
>
> For what it is worth, I do not see an high difference between the both
> indentations. So, my opinion would to keep the current practise.
Please take a look at my original message in this thread,
https://lists.gnu.org/archive/html/guix-devel/2023-02/msg00297.html,
where I gave examples of gexp->derivation indentations that should
explain the rationale allow nesting arguments more naturally, as if
gexp->derivation was a special form (although it's a simple procedure).
--
Thanks,
Maxim
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Feedback on indentation rules
2023-03-07 16:54 ` Maxim Cournoyer
@ 2023-03-07 17:29 ` Simon Tournier
2023-03-09 13:55 ` Maxim Cournoyer
0 siblings, 1 reply; 10+ messages in thread
From: Simon Tournier @ 2023-03-07 17:29 UTC (permalink / raw)
To: Maxim Cournoyer; +Cc: Ludovic Courtès, efraim, guix-devel
Hi Maxim,
On Tue, 07 Mar 2023 at 11:54, Maxim Cournoyer <maxim.cournoyer@gmail.com> wrote:
>> For what it is worth, I do not see an high difference between the both
>> indentations. So, my opinion would to keep the current practise.
>
> Please take a look at my original message in this thread,
> https://lists.gnu.org/archive/html/guix-devel/2023-02/msg00297.html,
> where I gave examples of gexp->derivation indentations that should
> explain the rationale allow nesting arguments more naturally, as if
> gexp->derivation was a special form (although it's a simple procedure).
Yeah, I have read this rationale before. :-)
My question was somehow directed to Ludo:
> Yes, that’s my take and current practice so far: special rules for
> special forms (macros), not for procedures.
What is the rationale? Being able to know directly at the location when
it is a plain function or a special form?
Sorry for having been unclear.
And I do not see a big difference between,
(gexp->derivation "check-deb-pack"
(with-imported-modules '((guix build utils))
or
(gexp->derivation "check-deb-pack"
(with-imported-modules '((guix build utils))
It is somehow personal cosmetic and I am sometimes poor person about
cosmetic. ;-)
Well, from my point of view, based on consistency with current
practises, I would be inclined to keep the status quo: special rule for
special form.
Cheers,
simon
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Feedback on indentation rules
2023-03-07 17:29 ` Simon Tournier
@ 2023-03-09 13:55 ` Maxim Cournoyer
0 siblings, 0 replies; 10+ messages in thread
From: Maxim Cournoyer @ 2023-03-09 13:55 UTC (permalink / raw)
To: Simon Tournier; +Cc: Ludovic Courtès, efraim, guix-devel
Hi Simon,
Simon Tournier <zimon.toutoune@gmail.com> writes:
> Hi Maxim,
>
> On Tue, 07 Mar 2023 at 11:54, Maxim Cournoyer <maxim.cournoyer@gmail.com> wrote:
>
>>> For what it is worth, I do not see an high difference between the both
>>> indentations. So, my opinion would to keep the current practise.
>>
>> Please take a look at my original message in this thread,
>> https://lists.gnu.org/archive/html/guix-devel/2023-02/msg00297.html,
>> where I gave examples of gexp->derivation indentations that should
>> explain the rationale allow nesting arguments more naturally, as if
>> gexp->derivation was a special form (although it's a simple procedure).
>
> Yeah, I have read this rationale before. :-)
>
> My question was somehow directed to Ludo:
>
> > Yes, that’s my take and current practice so far: special rules for
> > special forms (macros), not for procedures.
>
> What is the rationale? Being able to know directly at the location when
> it is a plain function or a special form?
>
> Sorry for having been unclear.
>
> And I do not see a big difference between,
>
> (gexp->derivation "check-deb-pack"
> (with-imported-modules '((guix build utils))
>
> or
>
> (gexp->derivation "check-deb-pack"
> (with-imported-modules '((guix build utils))
>
> It is somehow personal cosmetic and I am sometimes poor person about
> cosmetic. ;-)
In the second case, we end up busting the 80 chars limit easily, so it
usually ends up formatted as:
--8<---------------cut here---------------start------------->8---
(gexp->derivation
"check-deb-pack"
(with-imported-modules '((guix build utils))
[...]
or
(define builder
#~(the builder code))
(gexp->derivation
"name"
builder)
--8<---------------cut here---------------end--------------->8---
Which is not very natural (in fact, I had found already used
indentation like 1) in tests/pack.scm before I adjusted the
.dir-locals.el file to match it, otherwise Emacs was re-indenting them
differently).
--
Thanks,
Maxim
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Feedback on indentation rules
2023-03-07 13:46 ` Simon Tournier
2023-03-07 16:54 ` Maxim Cournoyer
@ 2023-03-15 16:15 ` Ludovic Courtès
2023-03-17 16:16 ` Maxim Cournoyer
1 sibling, 1 reply; 10+ messages in thread
From: Ludovic Courtès @ 2023-03-15 16:15 UTC (permalink / raw)
To: Simon Tournier; +Cc: Maxim Cournoyer, efraim, guix-devel
Hi,
Simon Tournier <zimon.toutoune@gmail.com> skribis:
> On Mon, 06 Mar 2023 at 17:56, Ludovic Courtès <ludo@gnu.org> wrote:
>> Maxim Cournoyer <maxim.cournoyer@gmail.com> skribis:
>>
>>> Thanks for the feedback. I wonder if some are of the opinion that since
>>> gexp->derivation is a plain function rather than a syntax having a
>>> special form for its 2nd argument, we should leave the default
>>> indentation rules untouched for it?
>>
>> Yes, that’s my take and current practice so far: special rules for
>> special forms (macros), not for procedures.
>
> What is the rationale? Being able to know directly at the location when
> it is a plain function or a special form?
Yes.
Now, it’s aesthetics so there’s no “rationale” per se but rather
established practice: in the project, but also from what I can see in
Guile and more generally Scheme (info "(guix) Formatting Code").
Ludo’.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Feedback on indentation rules
2023-03-15 16:15 ` Ludovic Courtès
@ 2023-03-17 16:16 ` Maxim Cournoyer
0 siblings, 0 replies; 10+ messages in thread
From: Maxim Cournoyer @ 2023-03-17 16:16 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: Simon Tournier, efraim, guix-devel
Hello,
Ludovic Courtès <ludo@gnu.org> writes:
> Hi,
>
> Simon Tournier <zimon.toutoune@gmail.com> skribis:
>
>> On Mon, 06 Mar 2023 at 17:56, Ludovic Courtès <ludo@gnu.org> wrote:
>>> Maxim Cournoyer <maxim.cournoyer@gmail.com> skribis:
>>>
>>>> Thanks for the feedback. I wonder if some are of the opinion that since
>>>> gexp->derivation is a plain function rather than a syntax having a
>>>> special form for its 2nd argument, we should leave the default
>>>> indentation rules untouched for it?
>>>
>>> Yes, that’s my take and current practice so far: special rules for
>>> special forms (macros), not for procedures.
>>
>> What is the rationale? Being able to know directly at the location when
>> it is a plain function or a special form?
>
> Yes.
>
> Now, it’s aesthetics so there’s no “rationale” per se but rather
> established practice: in the project, but also from what I can see in
> Guile and more generally Scheme (info "(guix) Formatting Code").
See commits d0b7858968a2c8c8cdacc3679447b250fb5b4dd9 and
933051281fbed0ae71bd40c24a701faf2a02791c, where I reverted to status quo
w.r.t. indentation rules of gexp->derivation and computed-file, given
the lack of clear consensus.
--
Thanks,
Maxim
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2023-03-17 16:17 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20230203221409.15886-2-maxim.cournoyer@gmail.com>
[not found] ` <20230203221409.15886-5-maxim.cournoyer@gmail.com>
[not found] ` <87357alp9n.fsf_-_@gnu.org>
[not found] ` <878rgxws6l.fsf@gmail.com>
[not found] ` <871qmg5qpj.fsf@gnu.org>
2023-02-23 22:20 ` Feedback on indentation rules (was: [PATCH 0/5] Add support for the RPM format to "guix pack") Maxim Cournoyer
2023-02-27 19:14 ` Efraim Flashner
2023-03-01 15:17 ` Feedback on indentation rules Maxim Cournoyer
2023-03-06 16:56 ` Ludovic Courtès
2023-03-07 13:46 ` Simon Tournier
2023-03-07 16:54 ` Maxim Cournoyer
2023-03-07 17:29 ` Simon Tournier
2023-03-09 13:55 ` Maxim Cournoyer
2023-03-15 16:15 ` Ludovic Courtès
2023-03-17 16:16 ` Maxim Cournoyer
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).