on master help sign in
Update README.md
e773486Evan Czaplicki
README.md+15−9
@@ -3,8 +3,8 @@ Elm
3
3
4This is the Elm compiler and server, allowing you to develop Elm applications that run in any modern browser. If you intend to serve Elm with a Haskell backend, be sure to read the Elm+Haskell section.
4This is the Elm compiler and server, allowing you to develop Elm applications that run in any modern browser. If you intend to serve Elm with a Haskell backend, be sure to read the Elm+Haskell section.
5
5
6−Installation Process
6+Installation for General Use
7−--------------------
7+----------------------------
8
8
9Download the [Haskell Platform](http://hackage.haskell.org/platform/). This will give you access to the Haskell compiler (needed to build Elm) and Haskell's package distribution system (to make installation of Elm easier). Once installed (even if it already was), you must update your listing of Haskell packages with:
9Download the [Haskell Platform](http://hackage.haskell.org/platform/). This will give you access to the Haskell compiler (needed to build Elm) and Haskell's package distribution system (to make installation of Elm easier). Once installed (even if it already was), you must update your listing of Haskell packages with:
10
10
@@ -33,20 +33,26 @@ That is almost everything. Now, we will create a simple Elm project. The followi
33The first two commands create a new directory and navigate into it. Then next command (`wget`) downloads the [elm-mini.js](https://raw.github.com/evancz/Elm/master/elm-mini.js) file which is the Elm runtime system and must be in the root directory of your Elm project. If you do not have wget, just follow [this link](https://raw.github.com/evancz/Elm/master/elm-mini.js) and download it directly. The `echo` command places a simple program into `main.elm`. The final command starts the Elm server at [localhost](http://localhost:8000/), allowing you to navigate to `main.elm` and see your first program in action.
33The first two commands create a new directory and navigate into it. Then next command (`wget`) downloads the [elm-mini.js](https://raw.github.com/evancz/Elm/master/elm-mini.js) file which is the Elm runtime system and must be in the root directory of your Elm project. If you do not have wget, just follow [this link](https://raw.github.com/evancz/Elm/master/elm-mini.js) and download it directly. The `echo` command places a simple program into `main.elm`. The final command starts the Elm server at [localhost](http://localhost:8000/), allowing you to navigate to `main.elm` and see your first program in action.
34
34
35
35
36−Elm + Haskell:
36+Installation for Haskell-users
37−--------------------------------------
37+------------------------------
38+
39+Elm as described in the previous section is actually split into two packages: `elm` which contains the guts of the compiler and `elm-server` which provides a simple HAppStack based server to simplify development. Those of you looking to avoid the dependency on HAppStack only need the `elm` package.
40+
41+ cabal install elm
38
42
39−For Yesod users who want to avoid the HAppStack dependency, you can install with:
43+The `elm` package provides support for [compilation of Elm code directly in Haskell](http://hackage.haskell.org/packages/archive/Elm/0.1.2/doc/html/Language-Elm.html) and [QuasiQuoting](http://hackage.haskell.org/packages/archive/Elm/0.1.2/doc/html/Language-Elm-Quasi.html). See the [Examples/](https://github.com/evancz/Elm/tree/master/Examples) directory for information and examples on how to get started with Elm+Haskell.
44+
45+Yesod users should also install the `elm-yesod` package which provides functions for idiomatically embedding Elm in Yesod:
40
46
41 cabal install elm-yesod
47 cabal install elm-yesod
42
48
43−This will give you everything except `elm-server` which is HAppStack based. The `elm` package (a dependency for `elm-yesod` and `elm-server`) provides support for [compilation directly in Haskell](http://hackage.haskell.org/packages/archive/Elm/0.1.2/doc/html/Language-Elm.html) and [QuasiQuoting](http://hackage.haskell.org/packages/archive/Elm/0.1.2/doc/html/Language-Elm-Quasi.html). `elm-yesod` uses these functions to provide more idiomatic ways to embed Elm in Yesod.
44
49
45−For both HappStack and Yesod users, see the [Examples/](https://github.com/evancz/Elm/tree/master/Examples) directory for information and examples on how to get started with Elm+Haskell.
50+Potential problems and their solutions
51+--------------------------------------
46
52
53+* Try `cabal install elm`. This will give you access to the `elm` executable (but not `elm-server`).
47
54
48−Potential problems and their solutions:
55+These problems all appeared before Elm version 0.1.1.4:
49−---------------------------------------
50
56
51* Install errors having to do with `happstack-server-7.0.2`. This version of `happstack-server` has stricter dependency restrictions that conflict with other libraries required by Elm. Try installing with an earlier version of `happstack-server` with the following command: `cabal install elm --constrain="happstack-server<7.0.2"`
57* Install errors having to do with `happstack-server-7.0.2`. This version of `happstack-server` has stricter dependency restrictions that conflict with other libraries required by Elm. Try installing with an earlier version of `happstack-server` with the following command: `cabal install elm --constrain="happstack-server<7.0.2"`
52* When installing on Debian, `blaze-html-0.4.3.2` fails to compile. You must install `blaze-html-0.4.3.1` instead.
58* When installing on Debian, `blaze-html-0.4.3.2` fails to compile. You must install `blaze-html-0.4.3.1` instead.