The ReasonML runtime.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
examples Add bs.module support - closes #6 Jun 14, 2018
message Remove old JS stuff since the modules are loaded on demand Jun 14, 2018
module Remove old JS stuff since the modules are loaded on demand Jun 14, 2018
runtime
.gitignore Ignore static contents Jun 13, 2018
LICENSE Initial commit Jun 2, 2018
Makefile Make it easier to run examples from makefile Jun 13, 2018
README.md Add shebang support to the readme Jun 13, 2018
generate.go Replace packr with vfsgen Jun 13, 2018
main.go
messages.fbs Remove old JS stuff since the modules are loaded on demand Jun 14, 2018
reasonable Rebuild binary Jun 14, 2018
test-examples.sh Small example tweaks Jun 13, 2018

README.md

reasonable

The ReasonML runtime.

Status

  • Most Reason code will work.
  • Accepts a single file or a directory containing .re files.
  • Native ES imports/exports are used for modules.
  • Most of BuckleScript's stdlib should work (including Belt!) - though some JS stuff like Js.log is still a WIP.
  • Shebang support! See the shebang example.

Notes

Since Js.log isn't implemented yet, you can use [@bs.scope "V8Worker2"] [@bs.val] external print : string => unit = "print"; to get access to the print method in v8worker2.

Usage

This repo contains a pre-built binary for macOS. You can use it like:

> ./reasonable examples/fizzbuzz/Fizzbuzz.re

Or on a directory of files:

> ./reasonable examples/dependencies/

Technologies

  • Go
  • v8worker2
  • BuckleScript (self-hosted version)
  • Flatbuffers
  • Topo.js

License

MPL 2.0