EclipseFP The Haskell plug-in for Eclipse

Home Features Installation FAQ Development


Q: Why is EclipseFP sometimes so slow to start?

A: The first time EclipseFP starts, it needs to build some Haskell components and to download package information from the Internet. This may take a long time, depending on your machine. This is a procedure that only needs to be done once. However, each time you start EclipseFP, the plug-in checks if your set of installed packages has changed and if so, it downloads and builds the documentation for them. Depending of how big the change was, this may be a lot of work.

In any case, once the Rebuilding local database message disappears from the status bar, the startup is complete and the full power of EclipseFP is at your disposal.

If you feel this is really slow, you can try to rebuild the database manually to get a feel if there's a problem with Hackage:
scion-browser {"filepath":"/home/user/workspace/.metadata/.plugins/net.sf.eclipsefp.haskell.browser/scion-browser-0.2-dbs/local.db","command":"load-local-db","rebuild":true} This starts the scion-browser console, that accepts commands in JSON format. You should then see the packages downloading from Hackage.


Q: I've installed BuildWrapper and scion-browser, but nothing works.

A: You need to be sure that your PATH is correct. So check in the Preferences that all the paths to GHC, Cabal, BuildWrapper and others are correct.
Things to look for:


Q: Why do I need BuildWrapper and scion-browser? Why do you ask me to install them on startup?

A: EclipseFP requires these executables. They're themselves written in Haskell, which allows us to reuse a lot of great libraries that deal with Haskell in Haskell.
We ask you to install them at the start because we do not want to install things behind your back. You'll be prompted to install these executables if they cannot be found, but maybe if your PATH is wrong, you've installed them already and it's only that EclipseFP can't find them. Once they're installed, you won't need to worry about them again.


Q: Do my Haskell projects need to be Cabalized?

A: Yes, mostly. EclipseFP will give you syntax highlighting if you open a Haskell file from a non-Haskell project or a project without a Cabal file, but most functionnalities will only work if you have a Cabal file.
Think of it this way: an IDE needs metadata about the project. In Eclipse, in a simple Java project, you need to reference the necessary libraries, say where the source folders are, etc. In the Haskell world, this is done via a Cabal file, so EclipseFP more or less requires Cabalized projects.


Q: In my buildwrapper console, I see errors like: buildwrapper: user error (You need to re-run the 'configure' command. The version of Cabal being used has changed (was Cabal-1.16.0.3, now Cabal-1.14.0).)

A: Buildwrapper both uses the cabal executable to run cabal configure and cabal build, and the Cabal library to read the cabal information and performs other operations. So the two need to be in synch, and this message appear if they aren't. Usually rebuilding buildwrapper fixes the issue.
This happens for example if you've updated cabal-install and not the Cabal library.
If a simple reinstall does not fix the issue, you need to check more things. The important thing to understand is that we have a four way relationship between:

Buildwrapper depends on both the GHC API and the Cabal API, and then calls cabal-install too. Usually the GHC API has a dependency on the Cabal API too, so if you install a new version of both the Cabal library and the cabal-install tool, Buildwrapper may not use them because the dependency on GHC will force it to use the older Cabal library!
In this instances, dropping to a shell and using cabal with the verbose flag usually helps. The key message here is "don't panic". You may need to go back to the older instance of cabal (the one GHC uses) or reinstall GHC itself. That's why, staying on the version of Cabal delivered with the Haskell Platform you installed is strongly recommended.


Q: I get the following in the Eclipse UI: error message: "mozilla_five_home not set"

A: You may need to install the webkit library (libwebkit-gtk). See also several FAQs on the SWT FAQ.


Q: When scion-browser is building, I get an error like Loading package double-conversion-0.2.0.0 ... can't load .so/.DLL for: stdc++ (libstdc++.so: cannot open shared object file: No such file or directory).

A: This is a bug in GHC as pointed here. If you are using a Linux distribution, the recommended way to cicumvent the problem is running on a terminal:

sudo ln -vs $(gcc --print-file-name=libstdc++.so) /usr/local/lib/
sudo ldconfig

If you are using Mac OS X, the following command will do the trick:

sudo ln -s /usr/lib/libstdc++.6.dylib /usr/lib/libstdc++.dylib

Then, restart Eclipse to force scion-browser to be rebuilt.


Q: I'm on Windows and/or the error is more like Loading package double-conversion-0.2.0.0 ... can't load .so/.DLL for: stdc++ (addDLL: could not load DLL) ghc.exe: stdc++: The specified module could not be found..

A: Try the workaround outlined here:
cabal install blaze-textual --user -fnative --reinstall
cabal install aeson --user --reinstall
Then, restart Eclipse to force scion-browser to be rebuilt.


Q: In my installation of EclipseFP some of the features that you announce are not available.

A: First of all, check that you have all the extra components needed for those features to work.

If you created your project with an older version of EclipseFP, the support for HLint, Alex, Happy or UUAGC needs to be enabled in the project (for new projects all these features are enabled automatically). For doing so, right-click on your project root, and in the Configure submenu, choose the builder you want to add.


Q: Scion-browser doesn't install on Fedora 16: undefined reference to symbol 'tparm'

A:The full message is something like:
Linking dist/build/scion-browser/scion-browser ...
/usr/bin/ld: /home/user/.cabal/lib/terminfo-0.3.2.3/ghc-7.0.4/libHSterminfo-0.3.2.3.a(Base.o): undefined reference to symbol 'tparm'
/usr/bin/ld: note: 'tparm' is defined in DSO /lib64/libtinfo.so.5 so try adding it to the linker command line
/lib64/libtinfo.so.5: could not read symbols: Invalid operation
collect2: ld returned 1 exit status
cabal: Error: some packages failed to install:

An explanation can be found here.
A work around: try adding this to the executable section of scion-browser.cabal:
Extra-libraries: tinfo


Q: I get an error about ncurses while compiling scion-browser: something like can't load .so/.DLL for: ncursesw (/usr/lib/libncursesw.so: file too short)

A: This happens because GHC does not follow some kinds of links between libraries that GCC does. In a Ubuntu system, you can solve it opening a terminal and running:
cd /usr/lib
sudo mv libncurses.so libncurses.so.bak
sudo mv libncursesw.so libncursesw.so.bak
sudo ln -s /lib/libncurses.so.5 libncurses.so
sudo ln -s /lib/libncursesw.so.5 libncursesw.so


Q: I still have an issue that I can't solve, what do I do?

A: Search the SourceForge forum, and if you find nothing, post your question!