From debbugs-submit-bounces@debbugs.gnu.org Wed Jun 29 06:15:09 2022 Received: (at 56297) by debbugs.gnu.org; 29 Jun 2022 10:15:09 +0000 Received: from localhost ([127.0.0.1]:57544 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o6Uiy-0007LP-Ie for submit@debbugs.gnu.org; Wed, 29 Jun 2022 06:15:08 -0400 Received: from mailrelay.tugraz.at ([129.27.2.202]:41839) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o6Uiw-0007LG-Hy for 56297@debbugs.gnu.org; Wed, 29 Jun 2022 06:15:07 -0400 Received: from lprikler-laptop.ist.intra (gw.ist.tugraz.at [129.27.202.101]) by mailrelay.tugraz.at (Postfix) with ESMTPSA id 4LXy526NM0z1LLyW; Wed, 29 Jun 2022 12:15:02 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 mailrelay.tugraz.at 4LXy526NM0z1LLyW DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tugraz.at; s=mailrelay; t=1656497703; bh=8kGbGjDEYPAsqPbRXMLDTxhWnFXg5pmrodsxqx8+WN4=; h=Subject:From:To:Date:In-Reply-To:References:From; b=Pq5oSHEfWXwiVBYNIJjb3PrwOuvbzLwZClkaw1ftF+Lv8/ZAQQpZULymPFfkmOYKX uEvKn6b0RR7PpBnXQQ4jvdui4G7lEjpL4QgVIcjQoubiIrBFZ8KMYw5TttpjaUY9cc Cemh7RH5cR3pTvBMgUYeoMLGaJ2tMvYhn7NTXV3Y= Message-ID: <1d570330e9811ec9327ec4f99e2baed4fd922194.camel@ist.tugraz.at> Subject: Re: Guix style imperfections From: Liliana Marie Prikler To: Maxime Devos , 56297@debbugs.gnu.org Date: Wed, 29 Jun 2022 12:15:02 +0200 In-Reply-To: <9499300db3fe4222f7126240fb2acad3cdf4371b.camel@telenet.be> References: <9499300db3fe4222f7126240fb2acad3cdf4371b.camel@telenet.be> Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.42.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-TUG-Backscatter-control: waObeELIUl4ypBWmcn/8wQ X-Spam-Scanner: SpamAssassin 3.003001 X-Spam-Score-relay: -1.9 X-Scanned-By: MIMEDefang 2.74 on 129.27.10.116 X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 56297 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Am Mittwoch, dem 29.06.2022 um 11:33 +0200 schrieb Maxime Devos: > Hi, > > "guix style" occasionally makes some decision that seem a bit > questionable to me.  More concretely, copy the definition of guile- > next, put it in a .scm and rename it, and run > "guix style -L . guile-next-styleme".  I get: Before commenting on the individual points, I do think in general guix style needs to have a "lax" mode and a "strict" mode where the latter is enabled via "--strict" and keeps certain snippets as-is. All elements that save vertical space at the cost of horizontal space should be disabled in strict mode, whereas they might be acceptable in lax mode. > > (define-module (test)) > > (use-modules (guix packages) (guix git-download) (gnu packages > > autotools) (gnu packages guile) (guix utils) > > (define-public guile-next > >  (let ((version "3.0.7") (revision "0") > >        (commit "d70c1dbebf9ac0fd45af4578c23983ec4a7da535")) > > Conventionally 'revision' is put on another line -- for these kind of > let bindings, (maybe all?), I would recommend to put all of them on > separate lines. Agree. > >    (package > >      (inherit guile-3.0) > >      (name "guile-next-styleme") > >      (version (git-version version revision commit)) > >      (source [snip, LGTM]) > >      (arguments > >       (substitute-keyword-arguments (package-arguments guile-3.0) > >         ((#:phases phases > >           '%standard-phases) `(modify-phases ,phases > > Put %standard-phases on the same line ad #:phases phases and `(modify- > phases ,phases on a new line Agree. What's even the point the current style tries to make? > >                                 (add-before 'check 'skip-failing- > > tests > >                                   (lambda _ > >                                     (substitute* "test- > > suite/standalone/test-out-of-memory" > >                                       (("!#") "!# > > > > (exit 77) > > ")) > > I'd prefer the original "!#\n\n(exit 77)\n" here, but I don't know if > that's something 'Guix style' could feasibly do (there might be > situations where a newline might be appropriate, how could "guix style" > which is the case?). I'd prefer if strict mode typed those out, but we can keep strings "as- is" in lax mode, supposing they don't grow beyond the horizontal limit. > >                                     (delete-file > >                                      "test-suite/tests/version.test") > > #t)))))) > > (Would be nice if "guix style" could be taught to remove those #t, but > that seems more a feature limitation than a bug to me.) It can still do better by not contracting them imho. > >      (native-inputs (modify-inputs (package-native-inputs guile-3.0) > >                       (prepend autoconf > >                                automake > >                                libtool > >                                flex > >                                gnu-gettext > >                                texinfo > >                                gperf))) > > I'd consider it tidier to put (modify-inputs ...) on a new line Here, it depends. I think I'd write this as (native-inputs  (modify-inputs (package-native-inputs guile-3.0) (prepend autoconf automake libtool flex gperf gnu-gettext texinfo))) > >     (synopsis "Development version of GNU Guile")))) > > Question: do people agree with these style choices? I think some people might actually be okay with a few or even all of them (juding by how many submit collapsed lets), but I'd like to point out that they break with Lisp coding guidelines for no good reason. Regarding the optimization of vertical space, I do think that guix lacks semantic information to make meaningful choices and thus ought to either step back when an "informed" user invokes the tool or strictly take the "least optimal, but correct" approach in strict mode. Cheers