Subject: Re: bug#62206: "guix import hackage" not working

From: Simon Tournier <[email-masked]>
Date: Mon, 03 Apr 2023 18:48:08 +0200

Hi,

On mer., 15 mars 2023 at 16:04, Philip Kaludercic <[email-masked]> wrote:

> --8<---------------cut here---------------start------------->8---
> $ guix import hackage haskell-language-server
> Backtrace:
> In guix/import/cabal.scm:
>    875:28 19 (eval _)
>    875:28 18 (eval _)
>    875:28 17 (eval _)
>    875:28 16 (eval _)
>    875:28 15 (eval _)
>    875:28 14 (eval _)
>    875:28 13 (eval _)
>    875:28 12 (eval _)
>    875:28 11 (eval _)
>    875:28 10 (eval _)
>    875:28  9 (eval _)
>    875:28  8 (eval _)
>    875:28  7 (eval _)
>    875:28  6 (eval _)
>    875:28  5 (eval _)
>    875:28  4 (eval _)
>    875:13  3 (eval _)
>    868:32  2 (eval (section library #f (("import" ("common-d…")) …)))
>    872:13  1 (eval _)
> In unknown file:
>            0 (append #f (("exposed-modules" ("Ide.Arguments Id…")) …))
>
> ERROR: In procedure append:
> In procedure append: Wrong type argument in position 1 (expecting empty list): #f
> --8<---------------cut here---------------end--------------->8---
>
> What can I do to debug this?

That’s probably because something is missing in the Cabal parser.
Well, I have not investigated but considering bug#38946 [1] which reads
something very similar,

--8<---------------cut here---------------start------------->8---
$ guix import hackage cabal-helper
Backtrace:
In guix/import/cabal.scm:
   875:28 19 (eval _)
   875:28 18 (eval _)
   875:28 17 (eval _)
   875:28 16 (eval _)
   875:28 15 (eval _)
   875:28 14 (eval _)
   875:28 13 (eval _)
   875:28 12 (eval _)
   875:28 11 (eval _)
   875:28 10 (eval _)
   875:28  9 (eval _)
   875:28  8 (eval _)
   875:28  7 (eval _)
   875:28  6 (eval _)
   875:28  5 (eval _)
   875:28  4 (eval _)
   875:13  3 (eval _)
   868:32  2 (eval (section common "c-h-internal" (("import" ("build-deps, extensions")) ("other-modules" ("CabalHelper.Compiletime.Cabal CabalHe…")) …)))
   872:13  1 (eval _)
In unknown file:
           0 (append #f (("other-modules" ("CabalHelper.Compiletime.Cabal CabalHelper.Compiletime.CompPrograms CabalHelper.Compiletime.Compat.Envir…")) …))

ERROR: In procedure append:
In procedure append: Wrong type argument in position 1 (expecting empty list): #f
--8<---------------cut here---------------end--------------->8---

Well, I somehow agree with Robert’s comment in [1], quoting:

        Note that there’s quite a few issues with the cabal parser, and
        the format is pretty baroque, to the extent that I wonder
        whether it wouldn’t be better to delegate the parsing to cabal
        itself.

1: https://issues.guix.gnu.org/issue/38946

Cheers,
simon