Wednesday, June 02, 2010

EclipseFP 1.111 released

I have just released version 1.111 of EclipseFP. You can get it from sourceforge or via the Eclipse update site (http://eclipsefp.sourceforge.net/updates/).
This is mostly a bug-fixing release to ensure compatibility with GHC 6.12.1 (Haskell Platform 2010) and IPv6. It also bundles a version of the Scion source code that it builds under the covers to save people from downloading the source code from github and building it themselves.


There aren't too many feature enhancements because I didn't get any requests for it. I'm not too sure a lot of people are using EclipseFP and are interested in seeing it improved. I suppose now with a Cabalized gtk2hs Leksah becomes more attractive. Anyway, if you have requests for EclipseFP let me know!

29 comments:

pavel said...

I had some trouble to setup the scion build-in server. I needed to upgrade from Platform 2009.2.0.2 to 2010.1.0.0, and then manually compile scion in order to update all the packages (probably there was a simpler way...)

I noticed that sometimes the scion server dies and restarts. This did not happen with FP 1.110

I think this plugin is very useful for people working mostly with Java in Eclipse that need sometime to work in Haskell.
This is my case and Eclipse FP helped me a lot.

I would be pleased if some of the typical Eclipse features for Java will be available in the future in Haskell IDE.
The most I miss is "Refactor -> Rename" and the possibility to apply changes from compile errors (in the way Java does, but I am not sure if this is possible with Haskell)
Probably "Source -> Optimize Imports" can be useful too.

JP thank you very much for the time you dedicated to the developing this plugin.

JP Moresmau said...

Mmhh, maybe the eclipse logs have some clue as to what the built-in server didn't build. We do cabal configure under the hood so it should pull up the dependencies. The issue here is that I'm the only tester of EclipseFP before the release, so things that work well on my setups can break somewhere else.

Thanks for the refactoring suggestions, I agree these would be good, I'll need to look at what we can do...

pavel said...

Another interesting improvement could be the support (at least syntax highlighting) of .x and .y files which are the input for alex and happy used for lexer and parser creation respectively.

Andrew Calleja said...

Just to let you know that I use EclipseFP extensively and that I appreciate your work =) I'm gonna give this update a shot asap!

Andrew Calleja said...

Works like a charm. Including the scion-server as part of the distribution is a very good call as it simplifies use considerably. Some suggestions:

- Refactoring as pavel suggested
- Function folding. I know functions are not supposed to be large in haskell (usually it means something is wrong) but it helps sometimes during coding to be able to hide finished functions away etc etc =)
- the last suggestion is I guess way in the future: I use eclipse with an svn server plugin, so my project moves around with me, I am not sure about this but I think that sometimes this affects eclipsefp's ability to compile the project since the data in the project info must be updated with the new location... is it possible to refresh the project details somehow without having to do this manually? I might have misunderstood something so please ignore this suggestion if it makes no sense at all.

Keep up the good good work. =)

彥安彥安 said...
This comment has been removed by a blog administrator.
pavel said...

Unfortunately my experience with FP 1.111 in not positive so far. The scion server sometimes crashes and restarts, but even worse the plugin does not works as expected (error are not shown in the source code, IDs of messages are interleaved,etc), just to mention a few problems.
Cfg: WinXP/SP3,Eclipse 3.5,GHC 6.12.1

I reversed to FP 1.110, but I needed to downgrade to CHC 6.10.4 too, and the plugin still does not works well. Maybe there is something mixed-up in my configuration.

pavel said...

Two of the most annoying problems in FP 1.111:

1) attempting to use module `Name' (src\\Name.hs) which is not loaded"

but Name.hs is part of the project and loaded

2) Could not process resource changes in the Haskell language model.Project: projectName

org.eclipse.core.internal.resources.ResourceException: Resource is out of sync with the file system: '/projectName/src/FileName.hs'.

This file has just been modified by an external program (Happy)

--------

They were not present in FP 1.110

JP Moresmau said...

Andrew, there is already code folding available. You should be able to collapse a top level function into one line by clicking on the minus sign in the left hand side column of the editor.
For SVN, I don't really understand what you mean. Is it that EclipseFP doesn't realize that a file has changed if it hasn't been changed in the Haskell Editor? Then it would be linked to Pavel's issue about happy modified files.
Pavel, I'm really sorry to hear about your issues, as I said I'm the only tester of EclipseFP before releasing. What exactly happens when you say that scion stops and restart?
About the other two issues, it sometimes happens maybe that something in Scion loses track of some files, and tells you a file is not part of the project when it is. If you have steps to always reproduce the issue. Otherwise touch the cabal file, that will cause a full configure.
If an external process modifies a file, you have to do a refresh of the project in Eclipse so that Eclipse can reload the contents. If you give me more details (log file) I can maybe do that automagically in the code... Maybe for all your issues you could email me your log file and/or a sample project exhibiting the issue (jpmoresmau at gmail.com). Which is funny is that there isn't many changes in 1.111 compared to 1.110, so I can't really explain why things that worked suddenly stopped...

zura said...

Thanks.

While Leksah looks promising, it is hardly usable for now, especially intellisense. GUI needs polishing as well.
So, please keep up good work. We need more alternatives for Haskell development.

Zura

Andrew Calleja said...

Hmmm I haven't managed to make that feature work yet! I think that it might not be showing up for me. Also, probably this and pavel's issues can be resolved by refreshing completely the eclipse installation (= redownload and reinstall eclipsefp). It seems that updating could be going wrong or that eclipse is holding on to some files between updates. I will give this solution a shot later and let you know.

As for the SVN thing, ignore it for now. I think that its due to a failing from my part or it's possibly linked to the problems above.

Andrew Calleja said...

I tried with a fresh installation using the latest Eclipse (Classic). Some of the features were not available, like function folding or viewing the outline, while others such as viewing the available GHC packages and commenting lines of code were. I decided to try with the
Eclipse IDE for Java EE Developers just in case. Same result. I can send you an image of what I can see if you want.

Also:
- I am running Windows Vista right now.
- http://eclipsefp.sourceforge.net/updates/ seems to be down =(

JP Moresmau said...

Send me the eclipse log file (workspace/.metadata/.log) and look yourself in the Eclipse Error Log view for any errors, and in the console view for the scion output. You can send me screenshots as well, but logs are better (-:

Andrew Calleja said...
This comment has been removed by the author.
Andrew Calleja said...

There doesn't seem to be any output in the console related to the scion-server. Under the errors tab:

eclipse.buildId=M20100211-1343
java.version=1.6.0_20
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=en_GB
Command-line arguments: -os win32 -ws win32 -arch x86


Error
Wed Jun 09 13:17:13 CEST 2010
Configure failed for scion server source. Output was:Resolving dependencies...
Configuring scion-0.1.0.3...
cabal.exe: At least the following dependencies are missing:
binary ==0.5.*,
ghc-paths ==0.1.*,
ghc-syb -any,
ghc-syb-utils -any,
hslogger ==1.0.*,
list-tries -any,
multiset >=0.1 && <0.3,
uniplate -any


Now I simply downloaded the newest Haskell Platform (after uninstalling the previous one) and installed it. Then I installed EclipseFP in a freshly downloaded version of Eclipse Classic. So I thought, are any of the above libraries not part of the platform perhaps? I checked using cabal list and found that none of them are actually installed. I guess this is not allowing scion to be created...

I tried installing them manually. I got two infos: Configure Succeeded and Build Succeeded. However I still got the following error:

eclipse.buildId=M20100211-1343
java.version=1.6.0_20
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=en_GB
Command-line arguments: -os win32 -ws win32 -arch x86


Error
Wed Jun 09 14:58:01 CEST 2010
The Scion server could not be started.

The Scion server could not be started.
at net.sf.eclipsefp.haskell.scion.internal.client.ScionServer.startServerProcess(ScionServer.java:163)
at net.sf.eclipsefp.haskell.scion.internal.client.ScionServer.startServer(ScionServer.java:85)
at net.sf.eclipsefp.haskell.scion.client.ScionInstance.start(ScionInstance.java:94)
at net.sf.eclipsefp.haskell.scion.client.ScionInstance.runCommandSync(ScionInstance.java:207)
at net.sf.eclipsefp.haskell.scion.internal.commands.ScionCommand.run(ScionCommand.java:138)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
Caused by: java.lang.NullPointerException
at java.lang.ProcessBuilder.start(Unknown Source)
at net.sf.eclipsefp.haskell.scion.internal.client.ScionServer.startServerProcess(ScionServer.java:161)
... 5 more

Hope that helps...

JP Moresmau said...

Er, your stack trace is truncated (no line number). I think there are two problems:
- I was convinced cabal configure would download dependencies. It obviously doesn't. I was sure I tested it. Damn.
- The null pointer exception means it doesn't find the scion-server executable. It should be in .metadata/.plugins/net.sf.eclipsefp.haskell.scion.client/scion-0.1.0.3/dist/build/scion-server.
It needs a better error message.

Sorry folks for all these issues. I need you all to email me your log files or attach them to messages on the sourceforge forum or something, so I can really understand what's going on.

JP Moresmau said...

Sorry, different comment page show your line number...

Andrew Calleja said...
This comment has been removed by the author.
exceptione said...

There aren't too many feature enhancements because I didn't get any requests for it. I'm not too sure a lot of people are using EclipseFP and are interested in seeing it improved. I suppose now with a Cabalized gtk2hs Leksah becomes more attractive. Anyway, if you have requests for EclipseFP let me know!


Last period I did no Haskell development. Earlier I used the old eclipsefp plugins, which were a nightmare.
I followed this project and I am very happy and gratefull some talented people like you dedicate their time to it.
Leksah looks nice, but as soon as you need to do cross-developing with javascript for example the eclipse ecosystem is way more richer than any custom single-minded program.

As a fan of this project I would like to encourage you to pursue this undertaking.

gamik said...

Just want to let you know that I do use EclipseFP and I like it very much!

I've broadcast your call for feature requests on my blog. Is there any preferred place you want to feature requests to go to? It appears there is no "issues" tab on github which I assume to be the up-to-date version tracking of EclipseFP.

gamik said...

> There aren't too many feature enhancements because I didn't get any requests for it.

Tab width setting. I set the tab width to 4 spaces in the general editor settings, but EclipseFP seems to ignore it.

At Run -> compiler selection menu, a checkbox with "Remember selection and don't ask anymore".

Syntax highlighting gets confused with ' character when using valid variable names like: let d' = 10

JP Moresmau said...

Thanks for the feedback everybody!! Hopefully in the next couple of months there will be a new release of EclipseFP!
Gamik, the sourceforge site for Eclipsefp (http://sourceforge.net/projects/eclipsefp/) has a bug traker and a forum, so it's the best place to leave bug reports and feature requests. I'll look at your issues, I knew about the single quote throwing syntax highlighting off but I haven't dared to dive into the Haskell parser side of things yet... Of course if you have more details on the issues (steps to reproduce, etc) please enter them into Sourceforge.

Gerold said...

There are some old reports like: wrong syntax coloring for single single-quote. Should I repost them anyway or post a "bump" comment or something in the old one?

JP Moresmau said...

Maybe a bump comment would be good. There are loads of things in the bug tracker, with some that relate to old versions of eclipsefp, so it'd be good if people thought some were still current so I can tackle them.

Léonard said...

I've installed the needed dependencies manually with cabal since I had this error output :
"
Resolving dependencies...
Configuring scion-0.1.0.3...
cabal: At least the following dependencies are missing:
binary ==0.5.*,
ghc-paths ==0.1.*,
ghc-syb -any,
ghc-syb-utils -any,
hslogger ==1.0.*,
json ==0.4.*,
list-tries -any,
multiset >=0.1 && <0.3,
uniplate -any
"

Now it tries to compile scion, but fail :
"
Resolving dependencies...
Configuring scion-0.1.0.3...
Preprocessing library scion-0.1.0.3...
Preprocessing executables for scion-0.1.0.3...
Building scion-0.1.0.3...
[ 1 of 14] Compiling Scion.Ghc ( lib/Scion/Ghc.hs, dist/build/Scion/Ghc.o )
[ 2 of 14] Compiling Scion.Types.ExtraInstances ( lib/Scion/Types/ExtraInstances.hs, dist/build/Scion/Types/ExtraInstances.o )
[ 3 of 14] Compiling Scion.Types.Notes ( lib/Scion/Types/Notes.hs, dist/build/Scion/Types/Notes.o )
[ 4 of 14] Compiling Scion.Types.Outline ( lib/Scion/Types/Outline.hs, dist/build/Scion/Types/Outline.o )
[ 5 of 14] Compiling Scion.Types ( lib/Scion/Types.hs, dist/build/Scion/Types.o )
[ 6 of 14] Compiling Scion.Utils ( lib/Scion/Utils.hs, dist/build/Scion/Utils.o )
[ 7 of 14] Compiling Scion.Inspect.Find ( lib/Scion/Inspect/Find.hs, dist/build/Scion/Inspect/Find.o )

lib/Scion/Inspect/Find.hs:350:8:
Warning: Pattern match(es) are non-exhaustive
In a case alternative:
Patterns not matched: RecStmt _ _ _ _ _ _ _ _
[ 8 of 14] Compiling Scion.Inspect.TypeOf ( lib/Scion/Inspect/TypeOf.hs, dist/build/Scion/Inspect/TypeOf.o )

lib/Scion/Inspect/TypeOf.hs:31:4:
Warning: Pattern match(es) are non-exhaustive
In the definition of `unwrap': Patterns not matched: WpInline _
[ 9 of 14] Compiling Scion.Inspect ( lib/Scion/Inspect.hs, dist/build/Scion/Inspect.o )

lib/Scion/Inspect.hs:230:0:
Can't make a derived instance of `Typeable Token':
You need -XDeriveDataTypeable to derive an instance for this class
In the stand-alone deriving instance for `Typeable Token'

lib/Scion/Inspect.hs:231:0:
Can't make a derived instance of `Data Token':
You need -XDeriveDataTypeable to derive an instance for this class
In the stand-alone deriving instance for `Data Token'
"
Any advice ? I'm in macosX 10.6.4, ghc 6.12.3.

JP Moresmau said...

Léonard: I have only 6.12.1 and it compiles, and another developer is on Mac OS and didn't report this error. Maybe 6.12.3 specific? I'm going to release a new version very soon (as in end of this week), so I can maybe slip into it adding the DeriveDataTypeable to that file. Try it: add DeriveDataTypeable in the LANGUAGE pragma in Inspect.hs and try to compile again.

Léonard said...
This comment has been removed by the author.
Léonard said...

Solved, it compiled fine, and things seem to be working.
Thanks !

JP Moresmau said...

OK, good. You'll be glad to know that that flag is enabled at the package level in the next version, so you shouldn't run into that issue when the new version comes out.