[GHC] #15564: Plugin recompilation check panics with inline-java

GHC ghc-devs at haskell.org
Fri Aug 24 19:55:36 UTC 2018


#15564: Plugin recompilation check panics with inline-java
-------------------------------------+-------------------------------------
           Reporter:                 |             Owner:  (none)
  facundo.dominguez                  |
               Type:  bug            |            Status:  new
           Priority:  normal         |         Milestone:  8.6.1
          Component:  Compiler       |           Version:  8.6.1-beta1
           Keywords:  plugins,       |  Operating System:  Unknown/Multiple
  plugin recompilation               |
       Architecture:                 |   Type of failure:  None/Unknown
  Unknown/Multiple                   |
          Test Case:                 |        Blocked By:
           Blocking:                 |   Related Tickets:  #15475
Differential Rev(s):                 |         Wiki Page:
-------------------------------------+-------------------------------------
 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.

 {{{
 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 at 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.

-- 
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/15564>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list