Skip to content

Plugin recompilation check panics with inline-java

When building https://github.com/tweag/inline-java with the beta release of ghc 8.6.1, I'm getting a panic like the one in #15475 (closed).

stack --nix --no-terminal build --test --bench --no-run-tests --no-run-benchmarks
...

Log files have been written to: /home/centos/inline-java/.stack-work/logs/

--  While building custom Setup.hs for package inline-java-0.8.4 using:
      /home/centos/.stack/setup-exe-cache/x86_64-linux-nix/Cabal-simple_mPHDZzAJ_2.4.0.0_ghc-8.6.0.20180810 --builddir=.stack-work/dist/x86_64-linux-nix/Cabal-2.4.0.0 build lib:inline-java test:spec --ghc-options " -ddump-hi -ddump-to-file -fdiagnostics-color=always"
    Process exited with code: ExitFailure 1
    Logs have been written to: /home/centos/inline-java/.stack-work/logs/inline-java-0.8.4.log

    Configuring inline-java-0.8.4...
    Preprocessing library for inline-java-0.8.4..
    Building library for inline-java-0.8.4..
    [4 of 4] Compiling Language.Java.Inline.Plugin ( src/Language/Java/Inline/Plugin.hs, .stack-work/dist/x86_64-linux-nix/Cabal-2.4.0.0/build/Language/Java/Inline/Plugin.o )
    Preprocessing test suite 'spec' for inline-java-0.8.4..
    Building test suite 'spec' for inline-java-0.8.4..
    [1 of 3] Compiling Language.Java.InlineSpec ( tests/Language/Java/InlineSpec.hs, .stack-work/dist/x86_64-linux-nix/Cabal-2.4.0.0/build/spec/spec-tmp/Language/Java/InlineSpec.o )
    ghc: panic! (the 'impossible' happened)
      (GHC version 8.6.0.20180810 for x86_64-unknown-linux):
        mkPluginUsage: file not found
      Language.Java.Inline.Plugin /nix/store/5zgi3snmw1iq704jjaildk7x333s10cw-gradle-4.9/lib/libHSinline-java-0.8.4-JByd5xgK6QcDkJNlDDk6Qy-ghc8.6.0.20180810.so
      Call stack:
          CallStack (from HasCallStack):
            callStackDoc, called at compiler/utils/Outputable.hs:1164:37 in ghc:Outputable
            pprPanic, called at compiler/deSugar/DsUsage.hs:215:15 in ghc:DsUsage
    
    Please report this as a GHC bug:  http://www.haskell.org/ghc/reportabug
[centos@ip-172-31-4-204 inline-java]$ stack --nix --no-terminal exec -- env | grep LD_LIBRARY_PATH                                                                                        
LD_LIBRARY_PATH=/nix/store/d5xr4h3bhl8iiyds5b59njawq3pnr4xr-openjdk-8u181b13/lib/openjdk/jre/lib/amd64/server/lib:/nix/store/rc9ksilfsx1pqya4lj8barzzywnvlncl-git-2.18.0/lib:/nix/store/d5xr4h3bhl8iiyds5b59njawq3pnr4xr-openjdk-8u181b13/lib:/nix/store/5zgi3snmw1iq704jjaildk7x333s10cw-gradle-4.9/lib

The fact that ghc tries to locate a library in {{/nix/store/5zgi3snmw1iq704jjaildk7x333s10cw-gradle-4.9/lib}} to check for recompilation makes me think that this is an actual bug in GHC. But I would be happy to get some assistance to confirm this.

I tried disabling recompilation checking by defining the plugin as:

plugin :: Plugin
plugin = defaultPlugin
    { installCoreToDos = install
    , pluginRecompile = purePlugin
    }

but the error persists.

This is what my dependencies look like in stack.yaml:

packages:
- .
- jni
- jvm
- jvm-batching
- jvm-streaming
- examples/classpath
- location: singletons
  extra-dep: true
- location: criterion
  extra-dep: true
- location: polyparse-1.12
  extra-dep: true
      
extra-deps:
- distributed-closure-0.3.5
- git: https://github.com/haskell/cabal
#  commit: ac461b381104a39a349d7416ecf1399805c6d000
  commit: fe10982db1f2fa7d828fc5f8ddaa5beedceaddec
  subdirs:
  - Cabal
# - git: https://github.com/goldfirere/singletons.git
#  commit: 5f867ace69ab12fc98fa71df1cdf7985afa3cb91
- git: https://github.com/haskell/stm.git
  commit: 4a1deb98fc95e55d8a6762a7dfec1a7dfa8b49b2
- git: https://github.com/goldfirere/th-desugar
  commit: 0f0a45f7b1f290a6005e6d9d849247f8c3d35429
- git: https://github.com/simonmar/async.git
  commit: 725ba4bb9679c5d9c7fe0e2d45fda4f470851d40
- git: https://github.com/erikd/vector-algorithms.git
  commit: 89e87b374d94e8a0c90fc58079ea1343c3ffa7c9
- cpphs-1.20.8

I'll see to share my modifications to singletons, criterion and polyparse, if necessary. I just fixed some dependency bounds and added MonadFail instances.

Trac metadata
Trac field Value
Version 8.6.1-beta1
Type Bug
TypeOfFailure OtherFailure
Priority normal
Resolution Unresolved
Component Compiler
Test case
Differential revisions
BlockedBy
Related
Blocking
CC bgamari, mboes
Operating system
Architecture
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information