25 个版本

使用旧的 Rust 2015

0.67.1 2019年9月24日
0.61.13 2019年5月4日
0.61.12 2019年4月25日
0.61.8 2019年3月25日
0.1.0 2015年11月30日

23#servo

39 每月下载量
用于 4 个 crate(通过 mozjs

MPL-2.0 许可证

74MB
1.5M SLoC

C++ 710K SLoC // 0.1% comments Python 494K SLoC // 0.3% comments C 178K SLoC // 0.2% comments JavaScript 29K SLoC // 0.2% comments GNU Style Assembly 14K SLoC // 0.2% comments M4 11K SLoC // 0.2% comments Shell 9K SLoC // 0.2% comments Rust 9K SLoC // 0.1% comments Visual Studio Project 7.5K SLoC // 0.0% comments Perl 2K SLoC // 0.2% comments Cython 1.5K SLoC // 0.1% comments Batch 1.5K SLoC // 0.0% comments INI 1K SLoC // 0.1% comments Forge Config 567 SLoC // 0.9% comments Visual Studio Solution 544 SLoC Korn shell 448 SLoC // 0.2% comments Automake 309 SLoC // 0.0% comments Emacs Lisp 258 SLoC // 0.1% comments Objective-C 242 SLoC // 0.3% comments Bitbake 112 SLoC // 0.2% comments Assembly 111 SLoC // 0.5% comments VBScript 84 SLoC // 0.2% comments Objective-C++ 73 SLoC // 0.1% comments ReScript 59 SLoC RPM Specfile 38 SLoC PowerShell 34 SLoC // 0.8% comments R 12 SLoC // 0.6% comments D 8 SLoC // 0.7% comments Swift 7 SLoC

包含 (Python 包,1.5MB) pip-9.0.3-py2.py3-none-any.whl,(autotools 加密代码,665KB) mozjs/js/src/ctypes/libffi/configure,(Python 包,570KB) setuptools-39.0.1-py2.py3-none-any.whl,(autotools 加密代码,270KB) mozjs/intl/icu/source/configure,(autotools 加密代码,275KB) mozjs/nsprpub/configure,(Python 包,485KB) setuptools-36.8.0-py2.py3-none-any.whl 等26个更多.

此仓库包含用于与 SpiderMonkey 一起使用的 Servo 的 Rust 绑定。

绑定直接面向原始 SpiderMonkey API,更高级别的绑定在 rust-mozjs 仓库 中。

构建

在 Linux 下

安装 Clang(至少版本 3.9)和 autoconf v 2.13,例如在基于 Debian 的 Linux 上

sudo apt-get install clang-6.0 autoconf2.13

如果您安装了多个版本的 Clang,您可以设置 LIBCLANG_PATH 环境变量,例如

export LIBCLANG_PATH=/usr/lib/clang/4.0/lib

在 Windows 下

  1. 遵循 https://mdn.org.cn/en-US/docs/Mozilla/Developer_guide/Build_Instructions/Windows_Prerequisites 中的说明

  2. 打开配置为使用Visual Studio的shell。这可能包括Visual Studio自带的(例如Visual Studio 2017 / X64 Native Tools Command Prompt for VS 2017)或你在其中运行过的shell

"c:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Auxiliary\Build\vcvars64.bat"
  1. 将环境变量MOZTOOLS_PATH设置为指向Mozilla Build Package中的工具
set MOZTOOLS_PATH=C:\mozilla-build\msys\bin;C:\mozilla-build\bin
  1. https://releases.llvm.org/download.html下载并安装Windows(64位)的Clang,并将环境变量LIBCLANG_PATH设置为它的lib目录
set LIBCLANG_PATH=C:\Program Files\LLVM\lib
  1. 设置环境变量,以便构建脚本可以找到Python 2.7和Autoconf 2.13
set AUTOCONF=C:\mozilla-build\msys\local\bin\autoconf-2.13
set NATIVE_WIN32_PYTHON=C:\mozilla-build\python\python2.7.exe

现在你可以使用cargo构建和测试crate了

cargo build
cargo test
cargo build --features debugmozjs
cargo test --features debugmozjs

升级

为了升级到SpiderMonkey的新版本

  1. https://treeherder.mozilla.org/#/jobs?repo=mozilla-release&filter-searchStr=spidermonkey%20pkg中找到SpiderMonkey所需版本的mozilla-release提交。你正在寻找标记为FIREFOX_RELEASE的SM(pkg)。注意左侧的提交号(如ac4fbb7aaca0这样的十六进制数)。

  2. 点击SM(pkg)链接,将打开一个包含提交详细信息的面板,包括一个形式为mozjs-version.tar.bz2的已上传工件链接。下载它并保存在本地。

  3. 查看etc/patches/*.patch中的补丁,并删除不再适用的补丁(如果幸运的话,这将是所有补丁)。

  4. 运行python3 ./etc/update.py path/to/tarball

  5. 使用提交号更新etc/COMMIT

  6. 像上面一样构建和测试绑定,然后提交PR!

依赖关系

~0.8–3.5MB
~58K SLoC