Page 1 of 1

How to install the Glasgow Haskell Compiler (ghc)?

Posted: Sat 30 Oct 2010, 12:40
by Ginkolo
Hi Puppy Community,
i installed the debian package of the ghc but it seems not to work, nothing happens when i type the command "ghc" into the terminal (it shows "command not found").
Does anyone have an idea what i can do ?

Posted: Tue 02 Nov 2010, 14:18
by edoc
What is, ghc, please?

I tried a search for a c or c++ compiler that is Puppy-friendly and your post was one of the results.

Thanks!

Found the answer:
The Glasgow Haskell Compiler is a robust, fully-featured, optimising compiler for the functional programming language Haskell. GHC compiles Haskell to either native code or C. It implements numerous experimental language extensions to Haskell for example concurrency, a foreign language interface, several type-system extensions, exceptions, and so on. GHC comes with a generational garbage collector, a space and time profiler, and a comprehensive set of libraries

Posted: Tue 02 Nov 2010, 17:47
by amigo
Check the package contents -the executable program may not be named exactly 'ghc'.

GHC sfs package

Posted: Tue 02 Nov 2010, 23:05
by emil
Hello Ginkolo,

I made a sfs package of the ghc system. It includes all sources and also a lot of documentatio. So it is rather large ~110 MB.

Download of ghc-12.6.1.sfs

Executables are in /usr/local/bin.
You can start the compiler mode with ghc-6.12.1 and the interpreter mode with ghci-6.12.1 from terminal. Later I saw that I didn't got the latest stable release which is version 6.12.3, hrmmmpf ...

However If you want to keep up-to-date this should help you building on your own (you will need the devx.sfs)
Cookbook:
I downloaded the package "for all Linux distros" ghc-6.12.1.20100329-i386-unknown-linux.tar.bz2

open terminal in your download location ([Tab] means press Tab for autocompletion of name) and then type the following commands:

Code: Select all

# tar xjvf ghc-[Tab]
# cd ghc-[Tab]
# ./configure                      (*)
# new2dir make install       (**)
# cd ..
# mksquashfs ghc-12.6.1-i468 ghc-12.6.1.sfs (***)
Ok, the stars indicate that it was not completely straightforward, at
* it complained for a missing libgmp.so.3
and at ** it complained about missing libtinfo.so which turned out that libtinfo is included in libncursesw and so I downloaded the libraries from
http://www.puppylinux.ca/tpp/ttuuxxx/Libs/
and symlinked libtinfo.so to libncursesw.so like this

Code: Select all

# ln -s libncursesw.so.5 libtinfo.so.5
# ln -s libtinfo.so.5 libtinfo.so
then I put the missing libraries in /usr/lib. I guess it is better to include them also in the sfs package, therefore i copied them into /ghc-12.6.1-i486/usr/lib before the mksquashfs command (thats why there is the (***)).
Build took about 30 minutes on my dual core machine ...

I doubt that it will work in Lupu but you can try, otherways the above cookbook should give you a starter to build your own version (there is also a ubuntu binary on their server, but binaries don't always work so well).

Edit: Oh, I forgot: Welcome to the puppy forum!

Re: GHC sfs package

Posted: Tue 20 Sep 2011, 13:10
by Rockdtben
emil wrote:Hello Ginkolo,

I made a sfs package of the ghc system. It includes all sources and also a lot of documentatio. So it is rather large ~110 MB.

Download of ghc-12.6.1.sfs

You can start the compiler mode with ghc and the interpreter mode with ghci from terminal. Later I saw that I didn't got the latest stable release which is version 6.12.3, hrmmmpf ...

However If you want to keep up-to-date this should help you building on your own (you will need the devx.sfs)
Cookbook:
I downloaded the package "for all Linux distros" ghc-6.12.1.20100329-i386-unknown-linux.tar.bz2

open terminal in your download location ([Tab] means press Tab for autocompletion of name) and then type the following commands:

Code: Select all

# tar xjvf ghc-[Tab]
# cd ghc-[Tab]
# ./configure                      (*)
# new2dir make install       (**)
# cd ..
# mksquashfs ghc-12.6.1-i468 ghc-12.6.1.sfs (***)
Ok, the stars indicate that it was not completely straightforward, at
* it complained for a missing libgmp.so.3
and at ** it complained about missing libtinfo.so which turned out that libtinfo is included in libncursesw and so I downloaded the libraries from
http://www.puppylinux.ca/tpp/ttuuxxx/Libs/
and symlinked libtinfo.so to libncursesw.so like this

Code: Select all

# ln -s libncursesw.so.5 libtinfo.so.5
# ln -s libtinfo.so.5 libtinfo.so
then I put the missing libraries in /usr/lib. I guess it is better to include them also in the sfs package, therefore i copied them into /ghc-12.6.1-i486/usr/lib before the mksquashfs command (thats why there is the (***)).
Build took about 30 minutes on my dual core machine ...

I doubt that it will work in Lupu but you can try, otherways the above cookbook should give you a starter to build your own version (there is also a ubuntu binary on their server, but binaries don't always work so well).

Edit: Oh, I forgot: Welcome to the puppy forum!

Hey I have two problems with this solution.

One your "Download of ghc-12.6.1.sfs" link says I am forbidden when I to download the file.
Two the other link in the post doesn't work. (http://www.puppylinux.ca/tpp/ttuuxxx/Libs/)

So I tried on my own to follow your directions using other libs and I just got stuck. Maybe I am doing it wrong. The .so.5 files are just pointing to the actual file?

I'm interested in installing xmonad on puppy and I need ghc for this. Any help on this?

Links not working

Posted: Wed 21 Sep 2011, 21:46
by emil
Ok, the first problem I could easily solve :D , I had to set file permissions right on the server (chmod 644). So the download link for the sfs should work now.

The needed libraries should be contained in the sfs. I just included the links as a comment how I got it to run back then, so if anyone compiles a new version and has similar problems there is a clue how to solve it.

If you have to recompile and need to download those libraries then the 2nd problem is that puppylinux.ca repository was closed some times ago :( .
Big loss for this community, but I think the libraries of tuxx are available elsewhere. Maybe search this forum, or send a private message to forum member tuxx (and post link here).

So good luck, as stated I made this in Puppy 431 don't know about newer version. I hope it works for you!
kind regards
emil 8)

PS: about the symlinks, If I recall correctly

Code: Select all

# ln -s libncursesw.so.5 libtinfo.so.5 
# ln -s libtinfo.so.5 libtinfo.so
produces a symlink libtinfo.so which points to a symlink libtinfo.so.5 which points to libncursesw.so.5 (this is the actual library file)

But if you recompile ghc in another (newer) Puppy version those libraries may actually be present and maybe you get other hickups. Watch the error messages!

Posted: Wed 28 Sep 2011, 03:01
by Rockdtben
Thank you, your .sfs file worked for me. Although I didn't get xmonad to install properly yet. I am still working on it.

Posted: Mon 17 Oct 2011, 18:30
by emil
I noticed, one will probably need the runhaskell command for the build instructions.

In this package this is runghc