A JavaScript backend for OCaml focused on smooth integration and clean generated code.
Documentation
Please see the documentation site.
Contributing
See CONTRIBUTING.md.
Acknowledgments
- Thanks to the OCaml team, obviously, without such a beautiful yet practical language, this backend would not exist
- Thanks to ninja-build, BuckleScript also comes with a blazing fast build tool on top of it,
ninja
is a truly well engineered scalable build tool - Thanks to Bloomberg and Facebook. This project began at Bloomberg and was published in 2016; without the support of Bloomberg, it would not have happened. This project's funded by Facebook since July/2017
Licensing
See COPYING and COPYING.LESSER
The ocaml
directory contains the official OCaml compiler (version 4.02.3).
Refer to its copyright and license notices for information about its licensing.
The vendor/ninja.tar.gz
contains the vendored ninja.
Refer to its copyright and license notices for information about its licensing.
BuckleScript builds on parts of js_of_ocaml:
BuckleScript builds on parts of OCaml:
These modules were adapted from ocaml/bytecomp/simplif.ml
for
JavaScript specific optimization purposes.
jscomp/main/js_main.ml
is adapted from ocaml/driver/main.ml
. It is the main entry
point of the underlying compiler.
jscomp/stdlib-*
is copied from ocaml/stdlib
. It is compiled to JavaScript and
included with BuckleScript.
jscomp/test
is based on ocaml/testsuite
.
BuckleScript unit test builds on parts of OUnit
jscomp/ounit
is adapted from ounit, the unit test
utilities are only used for dev purpose, they are not required for distribution