Google Summer of Code 2012 project, GHCi for the web
Chrome 21.x Firefox 14.x
Does not work with Firefox 10
Quick start installation
git clone https://github.com/shapr/ghclive.git && cd ghclive && cabal install && ghclive
then point your browser to http://localhost:3000
Here's some source code to paste into the editor buffer:
import Diagrams.Prelude import Prelude import Network.Web.GHCLive.Display hilbert = iterate expand mempty where expand t = alignBL $ hcat [u, hrule 1, reflectX u] where u = vcat [t, vrule 1, rotateBy (3/4) t] ex = pad 1.1 . centerXY . lw 0.05 $ hilbert!!5
then type ex in the Haskell expression buffer and hit enter!
The prototypes subdirectory contains several quick hacks demonstrating various concepts.
- hintdownloadexecute is hint's example.hs modified to download and execute Demo.main from http://www.scannedinavian.com/~shae/Demo.hs .
- scottywebexecute is the basic.hs example from scotty modified only slightly to prove to myself that I understand the code.
- hintdownloadexecute is the front end from http://haskell.handcraft.com/ modified to have scotty and hint as a backend instead of calling tryhaskell.org.
- scottyjsonclock was a quick refresher for how AJAX works in Haskell.
- hintpostexecute uses all the previous prototypes to give a very basic ghci in the browser with Main.hs loaded from any http URL
- jqueryconsole extends the above prototypes to use Chris Done‘s jquery-console as famously seen in tryhaskell.org, giving a more GHCi-like result
- jqueryraw is much simpler in that it uses jquery but not jquery-console.
- svgdemo demonstrates SVG being returned from diagrams
- multimport takes any number of imports from a textbox. Each line is either the http address of a file to load, or a module name to bring in scope (Data.Char).