Emscripten: An LLVM-to-JavaScript Compiler
Перейти к файлу
Ethan Lee 6621c7b27f [WASMFS] getdents syscall
Relevant Issue: #15041

Implement getdents syscall and add required tests.
2021-11-09 17:18:29 -08:00
.circleci Enable browser tests to be run under node (#12884) 2021-11-08 09:07:38 -08:00
.github Remove welcome message bot (#15084) 2021-09-21 13:38:54 -07:00
cmake/Modules New EMSCRIPTEN_SYSTEM_PROCESSOR property in CMake toolchain (#15297) 2021-10-15 16:04:23 -07:00
docs Fix docs for --default-obj-ext (#15316) 2021-10-18 11:01:34 -07:00
media
site Fix sphinx issues in emscripten.h.rst (#15362) 2021-10-26 15:56:38 -07:00
src Update musl to v1.2.2 (#13006) 2021-11-09 15:56:19 -08:00
system [WASMFS] getdents syscall 2021-11-09 17:18:29 -08:00
tests [WASMFS] getdents syscall 2021-11-09 17:18:29 -08:00
third_party Make use of pathlib.Path when dealing with paths within emscripten. NFC (#14916) 2021-08-20 09:42:56 -07:00
tools Update musl to v1.2.2 (#13006) 2021-11-09 15:56:19 -08:00
.clang-format Change .clang-format (#15299) 2021-10-14 21:36:41 -04:00
.coveragerc
.editorconfig
.eslintrc.yml
.flake8
.gitattributes
.gitignore
.gitmodules
.style.yapf
AUTHORS Fix RAWNODFS opendir and more (#15167) 2021-10-12 16:21:55 -07:00
CONTRIBUTING.md
ChangeLog.md Update musl to v1.2.2 (#13006) 2021-11-09 15:56:19 -08:00
LICENSE
Makefile
README.md
em++ Unix entry points: correctly detect the availability of a python binary (#15071) 2021-09-20 16:37:57 -07:00
em++.bat Avoid sharing the parent process's stdin handle to python on Windows + other Windows bat script fixes (#15146) 2021-10-06 11:11:45 -07:00
em++.py
em-config Unix entry points: correctly detect the availability of a python binary (#15071) 2021-09-20 16:37:57 -07:00
em-config.bat Avoid sharing the parent process's stdin handle to python on Windows + other Windows bat script fixes (#15146) 2021-10-06 11:11:45 -07:00
em-config.py
emar Unix entry points: correctly detect the availability of a python binary (#15071) 2021-09-20 16:37:57 -07:00
emar.bat Avoid sharing the parent process's stdin handle to python on Windows + other Windows bat script fixes (#15146) 2021-10-06 11:11:45 -07:00
emar.py Create wrappers for llvm-dwp and llvm-nm (#14659) 2021-07-16 17:44:40 -07:00
embuilder Unix entry points: correctly detect the availability of a python binary (#15071) 2021-09-20 16:37:57 -07:00
embuilder.bat Avoid sharing the parent process's stdin handle to python on Windows + other Windows bat script fixes (#15146) 2021-10-06 11:11:45 -07:00
embuilder.py Add `embuilder clear` command to clear specific libraries/ports (#15425) 2021-11-04 14:39:27 -07:00
emcc Unix entry points: correctly detect the availability of a python binary (#15071) 2021-09-20 16:37:57 -07:00
emcc.bat Avoid sharing the parent process's stdin handle to python on Windows + other Windows bat script fixes (#15146) 2021-10-06 11:11:45 -07:00
emcc.py [WASMFS] Enable preloading files (#15368) 2021-11-03 12:31:11 -07:00
emcmake Unix entry points: correctly detect the availability of a python binary (#15071) 2021-09-20 16:37:57 -07:00
emcmake.bat Avoid sharing the parent process's stdin handle to python on Windows + other Windows bat script fixes (#15146) 2021-10-06 11:11:45 -07:00
emcmake.py [emcmake] Insert toolchain/emulator arg after user args (#15265) 2021-10-11 09:58:45 -07:00
emconfigure Unix entry points: correctly detect the availability of a python binary (#15071) 2021-09-20 16:37:57 -07:00
emconfigure.bat Avoid sharing the parent process's stdin handle to python on Windows + other Windows bat script fixes (#15146) 2021-10-06 11:11:45 -07:00
emconfigure.py
emdump Unix entry points: correctly detect the availability of a python binary (#15071) 2021-09-20 16:37:57 -07:00
emdump.bat Avoid sharing the parent process's stdin handle to python on Windows + other Windows bat script fixes (#15146) 2021-10-06 11:11:45 -07:00
emdwp Unix entry points: correctly detect the availability of a python binary (#15071) 2021-09-20 16:37:57 -07:00
emdwp.bat Avoid sharing the parent process's stdin handle to python on Windows + other Windows bat script fixes (#15146) 2021-10-06 11:11:45 -07:00
emmake Unix entry points: correctly detect the availability of a python binary (#15071) 2021-09-20 16:37:57 -07:00
emmake.bat Avoid sharing the parent process's stdin handle to python on Windows + other Windows bat script fixes (#15146) 2021-10-06 11:11:45 -07:00
emmake.py Remove the workaround added for CMake where it was not able to stand sh.exe residing in PATH (#14930) 2021-09-07 13:26:12 +01:00
emnm Unix entry points: correctly detect the availability of a python binary (#15071) 2021-09-20 16:37:57 -07:00
emnm.bat Avoid sharing the parent process's stdin handle to python on Windows + other Windows bat script fixes (#15146) 2021-10-06 11:11:45 -07:00
emprofile Unix entry points: correctly detect the availability of a python binary (#15071) 2021-09-20 16:37:57 -07:00
emprofile.bat Avoid sharing the parent process's stdin handle to python on Windows + other Windows bat script fixes (#15146) 2021-10-06 11:11:45 -07:00
emranlib Unix entry points: correctly detect the availability of a python binary (#15071) 2021-09-20 16:37:57 -07:00
emranlib.bat Avoid sharing the parent process's stdin handle to python on Windows + other Windows bat script fixes (#15146) 2021-10-06 11:11:45 -07:00
emranlib.py
emrun Unix entry points: correctly detect the availability of a python binary (#15071) 2021-09-20 16:37:57 -07:00
emrun.bat Avoid sharing the parent process's stdin handle to python on Windows + other Windows bat script fixes (#15146) 2021-10-06 11:11:45 -07:00
emrun.py Explicitly close file descriptors in python code. NFC (#14074) 2021-06-15 17:05:21 -07:00
emscons Unix entry points: correctly detect the availability of a python binary (#15071) 2021-09-20 16:37:57 -07:00
emscons.bat Avoid sharing the parent process's stdin handle to python on Windows + other Windows bat script fixes (#15146) 2021-10-06 11:11:45 -07:00
emscons.py Make use of pathlib.Path when dealing with paths within emscripten. NFC (#14916) 2021-08-20 09:42:56 -07:00
emscripten-version.txt Update musl to v1.2.2 (#13006) 2021-11-09 15:56:19 -08:00
emscripten.py Add `embuilder clear` command to clear specific libraries/ports (#15425) 2021-11-04 14:39:27 -07:00
emsize Unix entry points: correctly detect the availability of a python binary (#15071) 2021-09-20 16:37:57 -07:00
emsize.bat Avoid sharing the parent process's stdin handle to python on Windows + other Windows bat script fixes (#15146) 2021-10-06 11:11:45 -07:00
emsize.py Update emsize after roll (#14633) 2021-07-12 11:55:59 -07:00
package-lock.json Update html-minifier-terser (#15442) 2021-11-05 11:08:53 -07:00
package.json Update html-minifier-terser (#15442) 2021-11-05 11:08:53 -07:00
requirements-dev.txt Pin docutils version. NFC (#15363) 2021-10-26 14:08:19 -07:00

README.md

emscripten logo

Main project page: https://emscripten.org

GitHub CI status: CircleCI

Chromium builder status: emscripten-releases

Overview

Emscripten compiles C and C++ to WebAssembly using LLVM and Binaryen. Emscripten output can run on the Web, in Node.js, and in wasm runtimes.

Emscripten provides Web support for popular portable APIs such as OpenGL and SDL2, allowing complex graphical native applications to be ported, such as the Unity game engine and Google Earth. It can probably port your codebase, too!

While Emscripten mostly focuses on compiling C and C++ using Clang, it can be integrated with other LLVM-using compilers (for example, Rust has Emscripten integration, with the wasm32-unknown-emscripten and asmjs-unknown-emscripten targets).

License

Emscripten is available under 2 licenses, the MIT license and the University of Illinois/NCSA Open Source License.

Both are permissive open source licenses, with little if any practical difference between them.

The reason for offering both is that (1) the MIT license is well-known and suitable for a compiler toolchain, while (2) LLVM's original license, the University of Illinois/NCSA Open Source License, was also offered to allow Emscripten's code to be integrated upstream into LLVM. The second reason became less important after Emscripten switched to the LLVM wasm backend, at which point there isn't any code we expect to move back and forth between the projects; also, LLVM relicensed to Apache 2.0 + exceptions meanwhile. In practice you can just consider Emscripten as MIT licensed (which allows you to do pretty much anything you want with a compiler, including commercial and non-commercial use).

See LICENSE for the full content of the licenses.