GithubHelp home page GithubHelp logo

ryner01 / reason Goto Github PK

View Code? Open in Web Editor NEW

This project forked from reasonml/reason

0.0 2.0 0.0 17.27 MB

Simple, fast & type safe code that leverages the JavaScript & OCaml ecosystems

Home Page: http://reasonml.github.io

License: Other

Makefile 0.33% Shell 2.38% C++ 0.03% OCaml 96.13% Roff 1.01% Standard ML 0.12%

reason's Introduction

Reason: simple, fast & type safe code that leverages the JavaScript & OCaml ecosystems

Build Status CircleCI

Contributing

Documentations

The doc repo lives at https://github.com/reasonml/reasonml.github.io

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), then do `source ~/.bashrc`
#   eval $(opam config env)

opam update
opam switch 4.04.2
eval $(opam config env)
git clone https://github.com/facebook/reason.git
cd reason
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.

Build

make build. If this fails on your machine but master passes, it means your setup wasn't right. Could you check if you followed the above installation steps? In particular, make sure you did eval $(opam config env) and sourced your shell environment (if you don't know how, just open a new shell tab and it'll be sourced usually).

Test

make test (make sure to follow the repo pinning instructions above!). The tests will output the difference between the expected syntax formatting and the actual one, if any.

Debugging Grammar Conflicts

Run the main parser through menhir with the --explain flag to have it print out details about the conflict. menhir src/reason_parser.mly --explain. The debug information can be found at src/reason_parser.conflicts.

Debugging the parser state at runtime

If you set the environment variable as follows, the parser state will be printed out as it parses files.

export OCAMLRUNPARAM='p'

Cutting a release

  • Make sure local changes are properly committed
  • Update remote:
git fetch;
git reset --hard origin/master
  • Prerelease:
env version=x.y.z make pre_release
  • Check everything is ok locally
  • Release!
env version=x.y.z make release

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.

Credit

The general structure of refmt repo was copied from @whitequark's m17n project, including parts of the README that instruct how to use this with the OPAM toolchain.

reason's People

Contributors

anmonteiro avatar asolove avatar avsm avatar bsansouci avatar chenglou avatar cristianoc avatar dchambers avatar dxu avatar freebroccolo avatar iwankaramazow avatar jaredly avatar jberdine avatar jordwalke avatar kassens avatar kayceesrk avatar let-def avatar ngzhian avatar pvolok avatar quicksnap avatar rbose85 avatar rickyvetter avatar rubas avatar sanderspies avatar sansthesis avatar schmavery avatar tadeuzagallo avatar tekknolagi avatar voluntadpear avatar vramana avatar yunxing avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.