| CARVIEW |
Select Language
HTTP/1.1 200 OK
Connection: keep-alive
Server: nginx/1.24.0 (Ubuntu)
Content-Type: text/html; charset=utf-8
Cache-Control: public, max-age=300
Content-Encoding: gzip
Via: 1.1 varnish, 1.1 varnish
Accept-Ranges: bytes
Age: 0
Date: Sat, 17 Jan 2026 09:13:41 GMT
X-Served-By: cache-dfw-kdfw8210159-DFW, cache-bom-vanm7210025-BOM
X-Cache: MISS, MISS
X-Cache-Hits: 0, 0
X-Timer: S1768641220.495716,VS0,VE855
Vary: Accept, Accept-Encoding
transfer-encoding: chunked
ghclive: Interactive Haskell interpreter in a browser.
[Skip to Readme]
ghclive: Interactive Haskell interpreter in a browser.
[ application, bsd3, compilers-interpreters, library, program, web ]
[ Propose Tags ]
[ Report a vulnerability ]
ghclive is an interactive multi-user Haskell interpreter in a browser. It mixes a pastebin with an interpreter and is designed for remote teaching.
[Skip to Readme]
Downloads
- ghclive-0.1.0.2.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
- No Candidates
| Versions [RSS] | 0.1.0.0, 0.1.0.1, 0.1.0.2 |
|---|---|
| Dependencies | aeson (>0.6 && <0.7), base (>=4 && <5), blaze-html (>0.5), blaze-markup (>0.5), bytestring (>0.9), containers (>0.4), diagrams-lib (>0.5), diagrams-svg (>0.3), directory, file-embed (>0.0.4), ghc-prim, ghclive (>0.0.1), hint (>=0.3 && <0.4), mtl (>=2.0 && <3), text (>0.11), time (>1.3), unix, unordered-containers (>0.2), vector (>0.9), wai (>=1.3 && <1.4), wai-websockets (>1.3), warp (>=1.3 && <1.4), websockets, yesod (>=1.1 && <1.2), yesod-static [details] |
| License | BSD-3-Clause |
| Author | Shae Erisson |
| Maintainer | shae@ScannedInAvian.com |
| Uploaded | by ShaeErisson at 2012-08-20T21:14:37Z |
| Category | Web, Compilers/Interpreters, Application |
| Home page | https://github.com/shapr/ghclive/ |
| Source repo | head: git clone https://github.com/shapr/ghclive |
| Distributions | |
| Reverse Dependencies | 1 direct, 0 indirect [details] |
| Executables | ghclive |
| Downloads | 2794 total (8 in the last 30 days) |
| Rating | (no votes yet) [estimated by Bayesian average] |
| Your Rating |
|
| Status | Docs uploaded by user Build status unknown [no reports yet] |
Readme for ghclive-0.1.0.2
[back to package description]ghclive
Google Summer of Code 2012 project, GHCi for the web
Requirements
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 https://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!
Prototypes
The prototypes subdirectory contains several quick hacks demonstrating various concepts.
- hintdownloadexecute is hint's example.hs modified to download and execute Demo.main from https://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 https://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).