/reason

Friendly Syntax & Toolchain Powered by OCaml

Primary LanguageOCamlOtherNOASSERTION

Reason: Build Systems Rapidly Build Status CircleCI

  • Approachable syntax.
  • Powerful, automatic source code formatting.
  • Adopt incrementally with JavaScript/C interop.
  • Ahead-of-time compilation to assembly - without a language level VM.
  • Rapidly develop and share projects.

Getting Started

Check out the docs which guide you through the basic syntax and toolchain features.

Workflow for compiling to native: http://facebook.github.io/reason/nativeWorkflow.html Workflow for compiling to JS: http://facebook.github.io/reason/jsWorkflow.html

Community

Get in touch! We're on:

Contributing

Documentations

The docs are in the docs folder and the corresponding README there that describes the docs contribution method.

Codebase

See the src folder and the corresponding README.

# On OSX, install opam via Homebrew:
brew update
brew install opam
# On Linux, see here (you will need opam >= 1.2.2): http://opam.ocaml.org/doc/Install.html

opam init
# Add this to your ~/.bashrc (or ~/.zshrc):
#   eval $(opam config env)

opam update
opam switch 4.03.0
eval $(opam config env)
git clone git@github.com:facebook/reason.git
cd reason
opam pin add -y reason-parser reason-parser
opam pin add -y reason .

Note: during the last opam pin step, make sure your local repo is clean. In particular, remove artifacts and node_modules. Otherwise the pinning might go stale or stall due to the big node_modules.

License

See Reason license in LICENSE.txt.

Works that are forked from other projects are under their original licenses.

Editor plugins (which have also been forked) in the editorSupport/ directory include their own licenses.