From mboxrd@z Thu Jan 1 00:00:00 1970 From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Subject: bug#21829: guix import hackage failures Date: Wed, 25 Nov 2015 22:45:15 +0100 Message-ID: <87fuztda8k.fsf@gnu.org> References: <87d1vghjhk.fsf@gnu.org> <87vb971t74.fsf@gnu.org> <87lha3ufxv.fsf@gnu.org> <87h9kp1ts2.fsf@gnu.org> <87k2pjq8qu.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:48073) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1a1ht8-0006Dm-Kf for bug-guix@gnu.org; Wed, 25 Nov 2015 16:46:08 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1a1ht4-0006sR-9x for bug-guix@gnu.org; Wed, 25 Nov 2015 16:46:06 -0500 Received: from debbugs.gnu.org ([208.118.235.43]:35282) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1a1ht4-0006sL-5X for bug-guix@gnu.org; Wed, 25 Nov 2015 16:46:02 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.80) (envelope-from ) id 1a1ht3-0003Bv-SP for bug-guix@gnu.org; Wed, 25 Nov 2015 16:46:01 -0500 Sender: "Debbugs-submit" Resent-Message-ID: In-Reply-To: (Federico Beffa's message of "Wed, 25 Nov 2015 17:55:28 +0100") List-Id: Bug reports for GNU Guix List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-guix-bounces+gcggb-bug-guix=m.gmane.org@gnu.org Sender: bug-guix-bounces+gcggb-bug-guix=m.gmane.org@gnu.org To: Federico Beffa Cc: 21829@debbugs.gnu.org Federico Beffa skribis: > On Sun, Nov 15, 2015 at 9:59 PM, Ludovic Court=C3=A8s wrot= e: >> Federico Beffa skribis: >>> * guix/import/cabal.scm (lex-word): Add support for tests with no space= s. >>> (impl): Fix handling of operator "=3D=3D". >> >> LGTM, but I think it=E2=80=99d be great to add a test that illustrates t= he case >> that this fixes (and to make sure it doesn=E2=80=99t come back later.) > > I've rewritten 'impl' and the new test that I've added covers this and mo= re. Great, thanks for following up! >>> + ;; indentation based block recognition. >>> + (begin (unread-char #\newline port) (read-char port) 0) >> >> Isn=E2=80=99t this equivalent to: 0 ? > > No. This is because at the start of a new line we check if and how > many indentation blocks have ended. If the last line doesn't terminate > this check is no done. More generally, it looks like: (begin (do-effect!) (undo-effect!) val) which I thought reduces to: val Oh well, not crucial. > From d13f06383d07e0ad4096ff7eb715264463738b0c Mon Sep 17 00:00:00 2001 > From: Federico Beffa > Date: Wed, 11 Nov 2015 10:39:38 +0100 > Subject: [PATCH 1/8] import: hackage: Add recognition of 'true' and 'fals= e' > symbols. > > * guix/import/cabal.scm (is-true, is-false, lex-true, lex-false): New pro= cedures. > (lex-word): Use them. > (make-cabal-parser): Add TRUE and FALSE tokens. > (eval): Add entries for 'true and 'false symbols. OK. In general I think development, review, and quality benefit from adding a test alongside a feature or bug-fix, even a small one like this (as opposed to adding a test separately.) We try to do this for the rest of the repo. Now, I don=E2=80=99t want to bother you more ;-), and the test added by the= last patch covers some of this, so that=E2=80=99s OK. > From d96a655a232ba77d7d71a5227c6d3c8bc8b983cc Mon Sep 17 00:00:00 2001 > From: Federico Beffa > Date: Wed, 11 Nov 2015 11:22:42 +0100 > Subject: [PATCH 2/8] import: hackage: Imporve parsing of tests. > > * guix/import/cabal.scm (lex-word): Add support for tests with no spaces. > (impl): Rewrite. OK. > From 614f9a9b685bcefa4e355b8c259225b0f098bc72 Mon Sep 17 00:00:00 2001 > From: Federico Beffa > Date: Wed, 11 Nov 2015 15:31:46 +0100 > Subject: [PATCH 3/8] import: hackage: Make it resilient to missing final > newline. > > * guix/import/cabal.scm (peek-next-line-indent): Check for missing final > newline. OK. > From 81e55b496195cc9e9aa41a2cf57117326cf93245 Mon Sep 17 00:00:00 2001 > From: Federico Beffa > Date: Wed, 11 Nov 2015 16:20:45 +0100 > Subject: [PATCH 4/8] import: hackage: Make parsing of tests and fields mo= re > flexible. > > * guix/import/cabal.scm (is-test): Allow spaces between keyword and > parentheses. > (is-id): Add argument 'port'. Allow spaces between keyword and column. > (lex-word): Adjust call to 'is-id'. LGTM. > From bdd4aa18e3f3a686ceae9040c8b7404984886ace Mon Sep 17 00:00:00 2001 > From: Federico Beffa > Date: Sat, 14 Nov 2015 15:00:36 +0100 > Subject: [PATCH 5/8] utils: Add 'canonical-newline-port'. > > * guix/utils.scm (canonical-newline-port): New procedure. > * tests/utils.scm ("canonical-newline-port"): New test. OK. > From 32b848e0506d6deac0bd1130234e02fb645613ee Mon Sep 17 00:00:00 2001 > From: Federico Beffa > Date: Sat, 14 Nov 2015 15:15:00 +0100 > Subject: [PATCH 6/8] import: hackage: Handle CRLF end of line style. > > * guix/import/hackage.scm (hackage-fetch, hackage->guix-package): Use > 'canonical-newline-port'. OK. > From 507404c508774e5edb1cda1027fee12dae263592 Mon Sep 17 00:00:00 2001 > From: Federico Beffa > Date: Wed, 25 Nov 2015 14:47:16 +0100 > Subject: [PATCH 8/8] import: hackage: Assume current 'ghc' package versio= n. > > * guix/scripts/import/hackage.scm (%default-options): Do it. > (ghc-default-version): New variable. OK. > From bf0bc66ace3b2617178c28d9635dbb4bc3a89ce9 Mon Sep 17 00:00:00 2001 > From: Federico Beffa > Date: Wed, 25 Nov 2015 13:58:06 +0100 > Subject: [PATCH 7/8] import: hackage: Add new tests. > > * tests/hackage.scm (eval-test-with-cabal): Add optional argument. > (test-cabal-3): New variable and test. > (test-read-cabal-1): Exercise more parsing variants. OK. Please add =E2=80=9CPartly fixes .=E2=80=9D or = =E2=80=9CFixes .=E2=80=9D in the commit logs as appropriate (see past commits for examples.) Thank you for the hard work! Ludo=E2=80=99.