Subject: [bug#33215] [PATCH 05/11] guix: Add clojure-utils.

From: Alex Vong <[email-masked]>
Date: Wed, 21 Nov 2018 22:35:54 +0800

Hello,

[email-masked] (Ludovic Courtès) writes:

> Hello!
>
> I’m late to the party but I think there are things worth discussing
> here.  Danny, for non-trivial bits, in particular in the (guix …) name
> space, I think we should ping people to get more detailed review before
> merging.
>
> Alex Vong <[email-masked]> skribis:
>
>> From 857cce37325f01c26f79a6e15e33d7988ea4a0a2 Mon Sep 17 00:00:00 2001
>> From: Alex Vong <[email-masked]>
>> Date: Sun, 14 Oct 2018 03:09:48 +0800
>> Subject: [PATCH 05/11] guix: Add clojure-utils.
>>
>> * guix/build/clojure-utils.scm: New file.
>> * gnu/packages/lisp.scm (clojure)[arguments]: Use it.
>> * Makefile.am (MODULES): Add it.
>
> [...]
>
>> +(define-module (guix build clojure-utils)
>> +  #:use-module (guix build utils)
>> +  #:use-module (ice-9 ftw)
>> +  #:use-module (ice-9 regex)
>> +  #:use-module (srfi srfi-1)
>> +  #:use-module (srfi srfi-26)
>> +  #:export (%clojure-regex
>> +            define-with-docs
>> +            install-doc))
>> +
>> +(define-syntax-rule (define-with-docs name docs val)
>> +  "Create top-level variable named NAME with doc string DOCS and value VAL."
>> +  (begin (define name val)
>> +         (set-object-property! name 'documentation docs)))
>
> This is not necessarily a bad idea, but in general I’m very much in
> favor of consistency: since we don’t use this anywhere else, I’d rather
> not have it here either.  We could discuss it separately, but IMO it
> shouldn’t be buried in a Clojure patch.
>
> Thus I’d be in favor of using the same style in this file as in the rest
> of Guix.
>
> WDYT?
>
No problem, I am happy to replace the doc string by a comment
instead. IMO, providing doc string for variables in addition to
procedures is more consistent [in a different way :)] since a procedure
is just a special kind of variable. For example, 'defvar' in Emacs
allows one to specify a doc string.

Besides, I thought it is okay to use custom syntactic form within a
module (as long as it doesn't break other's code). However, I can see
that the way I use it can be confusing since everyone are used to
defining variable via 'define'. Is this what you have in mind when you
wrote that you are in favor of consistency?

> Thanks,
> Ludo’.

Cheers,
Alex