Opened 10 years ago

Closed 10 years ago

#884 closed bug (fixed)

panic "initC: srt" strikes again

Reported by: ekarttun Owned by:
Priority: normal Milestone:
Component: Compiler Version: 6.5
Keywords: Cc:
Operating System: Linux Architecture: x86
Type of failure: Test Case:
Blocked By: Blocking:
Related Tickets: Differential Rev(s):
Wiki Page:


Trying to build jhc fails with the RC-version of GHC 6.6 (20060831). Note the patch to plain jhc to get the API differences into jhc.

-dcore-info seems to catch the error:

Here is how to reproduce: (This needs DrIFT and Happy installed)

darcs get --partial
cd jhc
darcs get
darcs get
darcs apply jhc-ghc6.5.patch

# lots of boring information, and then:

[122 of 156] Compiling DataConstructors ( DataConstructors.hs, DataConstructors.o )

    Warning: Pattern match(es) are non-exhaustive
             In the definition of `tipe'': Patterns not matched: TMetaVar _

    Warning: Pattern match(es) are non-exhaustive
             In a case alternative: Patterns not matched: Nothing
ghc-6.5.20060831: panic! (the 'impossible' happened)
  (GHC version 6.5.20060831 for i386-unknown-linux):
        initC: srt

Please report this as a GHC bug:

make: *** [jhc] Error 1

# Some system information:

ekarttun@melkki:/tmp/ekarttun/jhc $ ghc --version
The Glorious Glasgow Haskell Compilation System, version 6.5.20060831
ekarttun@melkki:/tmp/ekarttun/jhc $ uname -a
Linux melkki 2.6.17-1.2142_FC4smp #1 SMP Tue Jul 11 22:57:02 EDT 2006 i686 i686 i386 GNU/Linux

Change History (3)

comment:1 Changed 10 years ago by simonpj

Could you try doing this with -dcore-lint, please?

Thanks. Simon

comment:2 Changed 10 years ago by ekarttun

Here is -dcore-lint.

This is from ghc-6.5-20050902 and another i386-linux host.

comment:3 Changed 10 years ago by simonpj

  • Resolution set to fixed
  • Status changed from new to closed

Good bug. Now fixed.

GHC 6.5 does enhanced dependency analysis for recursive bindings, to maximise polymorphism based on type signatures. (See Mark Jones's THIH paper.)

I didn't do the bindInstsOfLocalFuns part correctly though, and jhc showed up the bug. (It only matters when you have a recursive group of two or more functions with a type signature, not at top level, which is why it hasn't shown up till now.)

Test is tc207.hs


Note: See TracTickets for help on using tickets.