This is a simple program written to demonstrate the following principles:
- Functional Reactive Programming using reactive-banana
- Using GTK in Haskell
- Using OpenGL in Haskell
- Using GTKGLExt in Haskell
Development of this program is largely happening on Debian GNU/Linux's "unstable" branch. reactive-solar.cabal contains build-depends for the Haskell side of things, but base libraries they depend on will need to be installed as well. Under Debian, the package names of these are:
- libgtk2.0-dev
- libgtkglext1-dev
- libftgl2-dev
Similar packages can be found on other Linux platforms.
As for GHC, I recommend installing the base system through Debian's package management then using cabal to install all other dependencies.
GHC, GTK+ and GTKGLExt can be installed through homebrew and then Haskell dependencies can be handled with cabal. The homebrew package names are:
- haskell-platform
- gtk+
- gtkglext
This program uses some Haskell libraries that are not in Hackage:
- reactive-banana-gtk
- a fork of FTGL
- Requires FTGL library (see Linux Preqs)
Download them (using git) and install by running cabal-install from its top level directory.
cabal should handle the rest of the Haskell prerequisites. Run cabal configure && cabal build to build the program in place.
Currently, this program uses data files, and cabal's data-files support has not been integrated in yet, so cabal install will not do the right thing and should not be used. Load reactive-solar.hs into ghci and type main to run the program for the time being.
Author: James Curbo [email protected]
Written for the author's Capstone Research Project, part of the degree plan for earning a Masters of Science in Computer Science at Capitol College in Laurel, MD.