Installation of EclipseFP on Eclipse Luna (Mac OS X Yosemite) - eclipse

I'm trying to get EclipseFP (Haskell support, but the original coder stopped maintaining it last month) working on my iMac but everything seems to fail constantly. I've been debugging this for hours now and like most other Haskell stuff there isn't much decent support out there regarding the installation of such tools. I haven't even written a single line of Haskell code yet (apart from some playing around in GHC/GHCI which surprisingly did work)!
I've tried so many things already, different libraries, different solutions, different versions etc. But it seems that everything that has to do with haskell support is just one big clutter of confusion for me and nothing seems to point me in an apparent direction which bothers me since I am an experienced programmer and dealing with command line interfaces, tools and dependencies isn't unknown to me on all sort of platforms for years now.
Even the most relevant topics on StackOverflow or other knowledgebases just won't cut it regarding this topic and I'm starting to feel like dropping the entire Haskell language and just use something which does play nice with the system without such troubles since it is already such a pain in the ass to get the most basic development tools to work, let alone the coding itself...
The things I got:
Mac OSX Yosmite
GHC
GHCI
Cabal (repository)
Eclipse Luna
I've installed EclipseFP using the install instructions which worked out all great. At this point I thought it would just all work without any problems as the plugin installs just fine...
Well, that was not the case of course. I've restarted Eclipse as it requested after installing new plugins. Here is where the trouble begun..
In the following steps I would have to open the Haskell Perspective in Eclipse. Well... guess what.. there was none! After strolling the web I found out that it might have compatibility issues with the old JDK 1.6 which was installed by default on MacOSX. No worries.. I've downloaded Java JDK 1.8, set it up in Eclipse, restarted it. And there the item "Haskell perpective" showed up in the list.
After clicking that, and thinking my troubles were over (and I could finally start coding!) nothing happend! I've searched around for a while and found the Eclipse error console which until this day gives me nothing more than:
An error occurred while automatically activating bundle net.sf.eclipsefp.haskell.ui (459).
org.eclipse.e4.core.di.InjectionException: java.lang.RuntimeException: org.eclipse.core.runtime.CoreException: Plug-in net.sf.eclipsefp.haskell.ui was unable to load class net.sf.eclipsefp.haskell.ui.HaskellPerspective.
Of course I have tried solving this issue and came across some dependencies which needed to be installed using cabal (BuildWrapper, Scion-Browser and some other essentials). After doing so I still have the same problem and I have no idea where to look for. The only information I can really find are topics which are more than 3/4 years old which share 0 relevance to my exact problem.
I could paste the Java stacktrace here as well which came with the error message, but it doesn't show much useful information anyway other than just basic crashing.
I hope someone can help me because I would really like to start coding now for a change instead of wasting hours on getting my basic development framework/IDE set up.
Long story short; I'd like to code some Haskell in Eclipse but the development tools just won't install and/or work properly without any notable errors or directions to look for.

Related

`Haskell` extension for `VSCode` not working on `Linux`

I installed ghcup and:
Stack 2.9.1
HLS 1.8.0
cabal 3.6.2
GHC 9.2.5
All of them are the recommended versions(I verified it using ghcup tui). Then I installed the Haskell extension in VSCode. Unfortunately, it doesn't work. I get syntax highlighting (from the Haskell Syntax Highlighting extension, which seems to be automatically installed alongside the Haskell extension) but there is no Intellisense, no code completion, no error detection and no interactive mode (-->>> evaluation). I experimented with different folders and haskell files. The filetype is correct, because every time I open a .hs file, the Haskell extension checks for updates. I even installed Codium, because I suspected a fault in VSCode, but it was the same there as well.
The hsl language server doesn't seem to be working in Neovim, either. I uninstalled ghcup (ghcup nuke) and reinstalled again. The result is exactly the same. I prepended the PATH and chose vanilla and non-vanilla Stack integration in either installations.
Am I doing something wrong?
OS: Linux Mint on Ubuntu 20.04.1, kernel 5.15.0-56.
After around 10 tries, I managed to fix the problem. It turned out I had three problems:
I had only 12 GB free on my Linux partition, but it seems more are needed. I realised it, when it turned out some haskell-language-server files were missing. I enlarged my Linux partition (something I should have done months ago). The new installation installed all files
The Haskell Language Server HLS was not added to the PATH. I solved it by putting this snippet in ~/.ghcup/config.yaml:
"haskell.serverEnvironment": {
"PATH": "${HOME}/.ghcup/bin:$PATH"
}
The server was now discovered by the Haskell VS Code extension but crashed 5 times and gave up on trying. Restarting it manually didn't help. I opened the logs: View->Output->Haskell and saw the error:
haskell-language-server-wrapper: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by haskell-language-server-wrapper)
It turns out, my Linux Mint distribution uses GLIBC_2.31, not 2.32. This is a very important library, which most applications on the system use. If you are a newbie, it is strongly advised that you DO NOT update it manually.
Instead, what I did, was install a version of the HLS, which used GLIBC_2.31. This problem occured in September and was "fixed" but apparently not very well. There are two options:
download the HLS deb10 version manually (didn't work for me):
ghcup install hls -u https://downloads.haskell.org/~hls/haskell-language-server-1.8.0.0/h
download using ghcup tui HLS version 1.7.0.0 (or whatever newest, which uses your glibc version) and a GHC, which supports that particular version of the HLS (in my case 9.0.2).
I think it's a good idea to preemptively reinstall the extension, in case it used the PATH to configure the HLS, so that its settings are restored to default. It takes up to 20 seconds to initialize the server, so be patient. You can see what's happening in the Output window and verify there are no more errors.
I hope this helps.

Go to Definition and Find References not working

I'm interested in Visual Studio Code, the new editor Microsoft released a year and a half ago. If I can get the hang of it, I think I'll switch to it on my Ubuntu. So I've done a "Hello, World!" program trying to find how to configure and use VSC's features.
I've seen on VSC's site and on some videos how to configure a folder so that you could go to definitions and find references, but it nonetheless doesn't seem to work for me. I don't know if I've done something wrong or if it's a bug on VSC's part.
Here is what my folder looks like. I've basically set up the tasks.json, launcher.json and c_cpp_properties.json files with default setup (compiling and debugging work just fine), but as you can see in the screenshot below, no indexing seems to be taking place since no symbol is found in main.cpp (even if I add new functions). Also, trying to find references of the i variable leads to No results, and asking to find i's definition doesn't do anything.
I've already tried :
Reinstalling VSC
Removing plugins
Adding the ${workspaceRoot} folder in the c_cpp_properties.json's include for Linux
Here's the screenshot. Notice my installed extensions on the left.
Nothing I've seen has helped me understand what the problem is. Have I done something wrong? I'm on Ubuntu 16.04.
Several binaries of the Microsoft C/C++ vscode extension for Linux are 64-bit. Therefore, if you're on 32-bit Linux, some of the cpptools functionality won't work. You can check the issue on GitHub.
I work also with Microsofts plugin C/C++ in a quite big C project. The C symbol references works good. Maybe you can try to add your projects root directory to "includePath" in c_cpp_properties.json.
But I am pretty sure, that local variables of functions are not parsed.
Maybe does the C++ intellisense plugin conflict with the Microsoft C++ plugin. can you disable the plugin provided by Austin
? The Clang plugin is also not necessary. The Microsoft plugin has Clang support and code completion integrated.
When I asked my question, I was on an Ubuntu VM. Yesterday, I installed an Ubuntu partition on my HDD, and vscode worked perfectly, with peek definition, find references etc.
After a few hours, I ended up in the same situation as when I made my post. But then I just closed and reopened VSCode, and it worked again. Definitely a VSCode bug.
EDIT : Seems to be the same issue as this one.

Finding and using clojure.contrib.string

I have CounterClockwise for Eclipse and believe clojure.contrib should be installed. However, I can't seem to use it or any of the subfiles such as clojure.contrib.string. If I type as I get the following errors
If I type (require 'clojure-contrib.string) I get:
FileNotFoundException Could not locate clojure_contrib/string__init.class or clojure_contrib/string.clj on classpath: clojure.lang.RT.load (RT.java:443)
Long ago in an internet far far away Clojure had a large utility library called clojure.contrib which turned out to be rather hard to maintain, so it was broken up into many libraries, each of which uses the Clojure contributors agreement. In this process clojure.contrib.string became just clojure.string and the names of all the other projects changed and they are released independently now. Seeing references to clojure.contrib is a sign that you are looking at outdated documentation. Also watch out for tutorials that make references to installing Clojure or installing dependencies without leiningen.

Error "Comparison method violates its general contract!" when installing any Eclipse plugin

(I've read this question, but that answer doesn't solve my problem, so don't mark this one as duplicate)
I have a fresh installation of Eclipse (Eclipse for PHP Developers / Helios Release / Build id: 20100617-1415 on Windows 7 x86) I can't install any plugin or addition. Neither from official plugins repository, nor from user-provided URLs.
Installation, even of tiny plugins takes "years" (starting at 10-20 minutes, ending on over an hour) though I'm on quite very fast Internet connection (around 2 MB/s), which is strange itself. And it always ends up with the same error message:
An error occurred while collecting items to be installed
session context was:(profile=epp.package.php, phase=org.eclipse.equinox.internal.p2.engine.phases.Collect, operand=, action=).
Comparison method violates its general contract!
Comparison method violates its general contract!
Error message is always the same, always mentioning epp.package.php, no matter, what plugin I'm trying to install. So I assume, that this is Eclipse-related, not plugin-related problem.
I did some reasearch on StackExchange (many similar topics but clearly programming question, related to errors in Java or Javascript code) and in the Internet in genereal. The only thing directly related to Eclipse, that I found was this forum topic saying about some know bug in Eclipse. Though this bug is marked as resolved fixed, I tried to adapt one of proposed quick solutions of starting Eclipse with:
eclipse.exe -Djava.util.Arrays.useLegacyMergeSort=true
(other, similar sources are unclear, whether there should be a space between -D and java.* or not)
But this has brought no effect. Again, installing even small plugin even from official repository takes very, very wrong and upon progress bar reaching around 20% (after about 20-30 minutes) entire installation process ends up with above error.
I have newest available stable versions of Eclipse for PHP and JRE.
I've read this question, but it brought me no closer to the solution. I saw no difference, when starting Eclipse with java.util.Arrays.useLegacyMergeSort=true switch and I wasn't able to update core Eclipse to newest version, because this process also failed with the same error.
And this does not explains, why installing anything takes so incredibly long on fairly fast connection?
Is downgrading to JRE 6 the only option I have?
The -Djava.util.Arrays.useLegacyMergeSort=true must come after the -vmargs switch, as that changes the command line from specifying Eclipse launch arguments to arguments to the JVM, which any -D would be.
Use this solution or upgrade to at least Indigo SR2.

What are the exact versions of stuff you have to install in order to be able to step-debug a Scala program?

How do YOU debug a Scala program?
I mean YOU as in the person posting the Answer :) Please answer only from personal experience, not from stuff you've heard or read on the Internet. You should not believe everything you read on the Internet, especially tales of complex open-source software configurations that actually work :-)
The are many Java tools which claim to support Scala in some way or another, but I have so far struck out in trying to get any one of them to actually let me set a breakpoint in Scala code and step through it. These are big, major open-source IDEs I'm talking about here.
The main problem in getting a debugger to work seems to be the "version hell" with fast-changing IDEs, Plug-Ins, JDKs, and the Scala language itself.
Hence, the more detailed re-statement of the question is appropriate: What is the exact version number of the IDE, Plug-In, JDK, Scala, and even Operating System, that you are successfully using?
My question is related to this one, but wider in scope:
How To: debug Scala code when outside of an IDE
Thanks
In our development we use IntelliJ IDEA 9.0.1 which is available by the link below:
http://www.jetbrains.com/idea/download/
with Scala plugin installed:
http://confluence.jetbrains.net/display/SCA/Getting+Started+with+IntelliJ+IDEA+Scala+Plugin
All you need is to have project with Scala sources (probably, mixed with Java or other JVM-based languages) opened. You can compile it and run as Java application, maven goal etc. or connect to the remote application if it has been run in debug mode.
See IntelliJ help for details of adjusting debug configuration.
Cheers!
Ilya
I've worked with Eclipse and the Scala plugin for it. It works somewhat ok, if you can overlook the fact that it doesn't remember the configuration for your Scala application on the next run.
I debug my Scala programs by running relevant parts of it on the REPL, as to verify what it is really doing. Other than that, the good old println or logs.
Digressing here a bit, it has been a rare thing in my life a situation where step-in debuggers were actually required -- and, then, mostly for assembler code, though languages where testing snippets of code is difficult for some reason were more likely to require it than others which weren't.
OS: xUbuntu(GNU/Linux) 9.10
JDK:
java -version
java version "1.6.0_16"
Java(TM) SE Runtime Environment (build 1.6.0_16-b01)
Java HotSpot(TM) Client VM (build 14.2-b01, mixed mode, sharing)
(which is the Java-6-sun-version, used by the xUbuntu-installer).
Eclipse: 3.5.1 Build id: 20090920-1017
Scala-Plugin 2.7.7final
Scala 2.7.7
If possible: println-Statements, because eclipse is often tricky to invoke (does not find the main class, even after complete rebuild, closing/opening project, deleting old class-Files). The latest search for a problem ended when I 'deleted all bookmarks' - suddenly I was allowed to run the program.
Curious observation: class Bruch was what I tried to run, but eclipse allways mentioned 'Bruc' and named the runtime-configuration like this. Adding and removing characters reflected in the generated name accordingly (Bruc => Bru).