@@ -0,0 +1,63 @@
1+Getting Started
2+===============
3+
4+Compiler Installation
5+---------------------
6+
7+If you have the Haskell Plaform installed, then you can install the latest released version from Hackage::
8+
9+ cabal update
10+ cabal install purescript
11+
12+If you would like to build the latest version of the code, clone this repository and build::
13+
14+ git clone git://github.com:paf31/purescript.git
15+ cabal configure --enable-tests
16+ cabal build
17+ cabal test
18+ cabal install
19+
20+Alternatively, consider installing PureScript in a Cabal sandbox using ``cabal sandbox init``.
21+
22+Creating a new PureScript project
23+---------------------------------
24+
25+You can create a new PureScript project using ``grunt-init`` and [this PureScript project template](https://github.com/purescript-contrib/grunt-init-purescript). This will give you a project that uses [Grunt](http://gruntjs.com) as its build tool and [Bower](http://bower.io) for dependency management. See the [README](https://github.com/purescript-contrib/grunt-init-purescript) for step-by-step instructions.
26+
27+Compiler usage
28+--------------
29+
30+The `psc` executable takes a list of PureScript source files as arguments and by default writes out its errors or output to the console.
31+
32+The following options are supported:
33+
34+--stdin Read input from standard input instead of from files.
35+--output Write the generated Javascript to the specified file.
36+--externs Write a list of foreign imports declarations to the specified file in addition to generating Javascript output.
37+--runtime-type-checks Generate simple runtime type checks for function arguments with simple types.
38+--no-tco Turn off tail-call elimination.
39+--no-prelude Do not include the Prelude in the generated Javascript.
40+--no-magic-do Turn off optimizations which inline calls to ``>>=`` for the ``Eff`` monad.
41+--no-opts Disable all optimizations.
42+--main Generate a call to ``main`` in the specified module after all other generated Javascript. Defaults to ``Main`` if the option is used but no value is provided.
43+--module If specified, any code which is not referenced transitively from this module will be removed. This argument can be used multiple times.
44+--codegen A list of modules for which Javascript and externs should be generated. This argument can be used multiple times.
45+--browser-namespace Specify the namespace that PureScript modules will be exported to when running in the browser.
46+--verbose-errors Generate verbose error messages.
47+
48+psc-make
49+--------
50+
51+The ``psc-make`` executable makes CommonJS modules and supports incremental compilation. Unlike ``psc``, it does not do dead code elimination.
52+
53+The following command line options are supported:
54+
55+--output=VAL The output directory. Default: ``output``.
56+--runtime-type-checks Generate runtime type checks
57+--verbose-errors Display verbose error messages.
58+--help=FMT Show this help in format FMT (``pager, ``plain``, or ``groff``). Default: ``pager``.
59+--no-magic-do Disable the optimization that overloads the ``do`` keyword to generate efficient code specifically for the ``Eff`` monad.
60+--no-opts Skip the optimization phase.
61+--no-prelude Omit the Prelude.
62+--no-prelude Omit the Prelude.
63+--no-tco Disable tail call optimizations