Skip to content
A backend for the OCaml compiler which emits JavaScript.
OCaml JavaScript PostScript TeX Coq Reason Other
Branch: master
Clone or download

Latest commit

bobzhang Merge pull request #4458 from BuckleScript/clean_up_lex_runtime
clean up lexing runtime, stay close to lexing.c
Latest commit 9fcb1bd Jun 11, 2020

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci tweak ci scripts Mar 12, 2020
.github fix jsoo_refmt_main + delete playground folder May 16, 2020
.vscode remove Pstring_set_{16,32,64} which does not make sense Feb 27, 2020
darwin add COPYING Feb 15, 2020
docs update docs Mar 24, 2020
esy.lock Update esy.json: update compiler ref Feb 26, 2020
freebsd FIX CI, change binary layout Feb 16, 2020
jscomp clean up lexing runtime Jun 11, 2020
lib clean up lexing runtime Jun 11, 2020
linux add COPYING Feb 15, 2020
ocaml @ 018a24a snapshot May 27, 2020
odoc_gen make vendored code warning free Jan 30, 2020
scripts tweak post-processing Jun 3, 2020
site Update OCaml-call-JS.adoc Mar 14, 2020
vendor using bytecode jsoo May 11, 2020
win32 add COPYING Feb 15, 2020
.gitattributes Remove some dead metadata (#2574) Mar 5, 2018
.gitignore tweak ci scripts Mar 12, 2020
.gitmodules use submodule Mar 25, 2019
.istanbul.yml tweak Dec 21, 2017
.npmignore remove unused js files, ignore jsoo bytecode when publishing May 27, 2020
4061.json Use folders from esy ocaml for snapshots Nov 1, 2019
CONTRIBUTING.md Fixing typo Jan 28, 2020
COPYING [license] update license Apr 29, 2016
COPYING.LESSER [license] update license Apr 29, 2016
Changes.md snapshot May 8, 2020
DCO.md Add contribution process guidelines and DCO Mar 9, 2016
LICENSE [license] update license Apr 29, 2016
README.md add a link to roadmap May 19, 2020
bsb add a space after "acquire lockfile" stderr message Mar 2, 2020
bsc FIX CI, change binary layout Feb 16, 2020
bsconfig.json remove unused bsconfig Mar 12, 2020
bspack.json remove realpath.c Dec 15, 2019
bsrefmt fix #4175 Feb 21, 2020
esy.json fix version Feb 29, 2020
package-lock.json run npm audit fix security issues Mar 22, 2020
package.json bump version May 14, 2020

README.md

BuckleScript

A JavaScript backend for OCaml focused on smooth integration and clean generated code.

NPM Build Status

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

Roadmap

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
You can’t perform that action at this time.