Trying the same on a completely different machine (7.4.2) just works, so it appears to be an account/machine/version problem. I didn't see anything on the release notes for 7.4.2 that looks relevant, so I'll be guessing an account/machine issue.

How can GHC be reporting that CSE.Pass imports CSE.Plugin when it doesn't?
What are the account specific variables that might cause
CSE/Plugin.hs:6:8:
    Could not find module `GhcPlugins'
    It is a member of the hidden package `ghc-7.4.1'.
    Use -v to see a list of the files searched for.
to appear? (since that appears to be the first deviation from normal behavior)

I know of the --user package database, I'll try to clear that and retry.

Daniel

On 11/20/2012 06:58 PM, Daniel Vainsencher wrote:
Hi everyone. Trying to write a GHC plugin according to [1], but setup is failing on what seems a standard example [2].

[1] http://hackage.haskell.org/trac/ghc/wiki/NewPlugins
[2] https://github.com/thoughtpolice/cse-ghc-plugin

Using GHC 7.4.1...

0 $ cabal install cse-ghc-plugin --reinstall
Resolving dependencies...
In order, the following will be installed:
cse-ghc-plugin-0.1.1 (reinstall)
Warning: Note that reinstalls are always dangerous. Continuing anyway...
Downloading cse-ghc-plugin-0.1.1...
Configuring cse-ghc-plugin-0.1.1...
Building cse-ghc-plugin-0.1.1...
Preprocessing library cse-ghc-plugin-0.1.1...
[1 of 2] Compiling CSE.Pass         ( CSE/Pass.lhs, dist/build/CSE/Pass.o )
[2 of 2] Compiling CSE.Plugin       ( CSE/Plugin.hs, dist/build/CSE/Plugin.o )
Registering cse-ghc-plugin-0.1.1...
Installing library in /home/t-davain/.cabal/lib/cse-ghc-plugin-0.1.1/ghc-7.4.1
Registering cse-ghc-plugin-0.1.1...

0 $ ghc -fplugin=CSE.Plugin Test.hs
CSE/Plugin.hs:6:8:
    Could not find module `GhcPlugins'
    It is a member of the hidden package `ghc-7.4.1'.
    Use -v to see a list of the files searched for.

0 $ ghc -package ghc -fplugin=CSE.Plugin Test.hs
Module imports form a cycle:
         module `CSE.Pass' (./CSE/Pass.lhs)
        imports `CSE.Plugin' (./CSE/Plugin.hs)
  which imports `CSE.Pass' (./CSE/Pass.lhs)
0 $

I don't see that CSE.Pass imports CSE.Plugin anywhere...
I note that I needed to pass "-package ghc" to ghc, which the guide [3] does not mention.

[3] http://www.haskell.org/ghc/docs/7.4.1/html/users_guide/compiler-plugins.html
The --reinstall is because I installed it from source first.

Ideas what is wrong?

--
Daniel Vainsencher

_______________________________________________
Cvs-ghc mailing list
Cvs-ghc@haskell.org
http://www.haskell.org/mailman/listinfo/cvs-ghc

Reply via email to