Bug#914702: ghci: The 'impossible' happens when running ":print length"

Asher Gordon AsDaGo at posteo.net
Tue Dec 3 20:20:13 GMT 2019


Package: ghc
Version: 8.8.1+dfsg2-1~exp1

Dear Maintainer,

When ":print length" is run at the GHCi prompt, the 'impossible'
happens:

    $ ghci
    GHCi, version 8.8.1: https://www.haskell.org/ghc/  :? for help
    Prelude> :print length
    ghc: panic! (the 'impossible' happened)
      (GHC version 8.8.1 for x86_64-unknown-linux):
	    isUnliftedType
      t1_a1w0[rt] :: TYPE t0_a1vZ[rt]
      Call stack:
          CallStack (from HasCallStack):
            callStackDoc, called at compiler/utils/Outputable.hs:1159:37 in ghc:Outputable
            pprPanic, called at compiler/types/Type.hs:2278:10 in ghc:Type

    Please report this as a GHC bug:  https://www.haskell.org/ghc/reportabug

This does not happen with all functions. In fact, length is the only
function I have found so far that does this. If I define my own version
of length, len, this bug does not appear:

    Prelude> :{
    Prelude| len l = case l of
    Prelude|           []     -> 0
    Prelude|           (x:xs) -> 1 + len xs
    Prelude| :}
    Prelude> :print len
    len = (_t1::Num p => [a] -> p)

So, maybe length is defined in C code in the compiler rather than an
actual Haskell function, and that is what triggers the bug?

I've also tested this in version ghc_8.8.1+dfsg1+is+8.6.5+dfsg1-2 (the
current latest in testing) with the same results.

Related: #914702 (however, that bug seems to be fixed in both the
versions I tried).


Thanks,
Asher


-- 
Steal this tagline.  I did.

GPG fingerprint: 38F3 975C D173 4037 B397  8095 D4C9 C4FC 5460 8E68


-- System Information:
Debian Release: bullseye/sid
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: amd64 (x86_64)

Kernel: Linux 5.3.0-2-amd64 (SMP w/2 CPU cores)
Kernel taint flags: TAINT_FIRMWARE_WORKAROUND
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages ghc depends on:
ii  dpkg                              1.19.7
ii  gcc                               4:9.2.1-3.1
ii  libbsd-dev                        0.10.0-1
ii  libc6                             2.29-3
ii  libc6-dev                         2.29-3
ii  libffi-dev                        3.2.1-9
ii  libffi6                           3.2.1-9
ii  libgmp-dev                        2:6.1.2+dfsg-4
ii  libgmp10                          2:6.1.2+dfsg-4
ii  libncurses-dev [libncurses5-dev]  6.1+20191019-1
ii  libncurses5-dev                   6.1+20191019-1
ii  libtinfo6                         6.1+20191019-1

ghc recommends no packages.

Versions of packages ghc suggests:
it  ghc-doc      8.8.1+dfsg1+is+8.6.5+dfsg1-2
pn  ghc-prof     <none>
ii  haskell-doc  20061128
ii  llvm-7       1:7.0.1-9+b2
ii  perl         5.30.0-9

-- no debconf information
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 227 bytes
Desc: not available
URL: <http://alioth-lists.debian.net/pipermail/pkg-haskell-maintainers/attachments/20191203/3d80382d/attachment.sig>


More information about the Pkg-haskell-maintainers mailing list