Higgs

Higgs JavaScript Virtual Machine

  • 所有者: higgsjs/Higgs
  • 平台:
  • 許可證:
  • 分類:
  • 主題:
  • 喜歡:
    0
      比較:

Github星跟蹤圖

Higgs

Build Status

A JIT compiler for JavaScript targetting x86-64 platforms.

Requirements:

  • D compiler (latest DMD recommended)
  • POSIX compliant OS (Linux, Unix, MacOS X)
  • Python 2.7 (if regenerating object layouts)
  • x86 64-bit CPU
  • 2 GB of RAM
  • GNU make
  • GNU time

Quickstart:

Precompiled Docker Image

Higgs could be used as docker image.

Run docker run -ti dlanguage/higgs for the Higgs REPL.
Run docker run -ti -v $(pwd):/work -w /work dlanguage/higgs your_local_file.js to evaluate a local .js-file.

Get the source:

git clone https://github.com/higgsjs/Higgs.git && cd Higgs/source

Compile a binary:

NOTE: if you run a non-Linux OS like FreeBSD you may not have GNU make installed. You may need to install the "gmake" package or otherwise acquire GNU make.

NOTE: if your default python version is 3.x, just append PYTHON=$PATH_TO_PYTHON2 to the make commands

make all
generates a binary higgs in the source directory.

Compile a release binary:

make release
generates a binary higgs in the source directoy.

Install (optional):

sudo make install
generates a release binary using the release target, then copies the higgs binary to /usr/bin and the runtime files to /etc/higgs. The installation directories for the binary and runtime files may be changed with BIN_DIR and LIB_DIR respectively:

make install BIN_DIR=/my/bin/dir LIB_DIR=/my/lib/dir

sudo make install-dev
is essentially the same as make install, but instead of copying the higgs binary and runtime files to your install directories, it creates symbolic links to your source folder.

Cleanup:

make clean
will remove any binaries in the source directory.

You may wish to run the unit tests:

make test
generates a binary test-higgs and tests its proper functioning.

For further info, see the makefile.

Usage:

higgs will start Higgs and give you a REPL (read-eval-print loop).

NOTE: if you did not run make install, then you must run higgs directly from the source directory, as otherwise it will not know where to find its runtime files.

To execute one or more files, pass them to higgs:

higgs file1.js file2.js

The --e option accepts a code string to execute:

higgs --e "var x = 4; x = x + 5; print(x)"

The --repl option will start a REPL after evaluating a string and/or files:

higgs --repl file1.js will evaluate file1.js and then start a REPL.

higgs file1.js will evaluate file1.js and then exit.

The --dumpasm option will dump the assembler code generated by the JIT to the console.

Command-line arguments can be passed to a JS script using the -- separator, as follows:

higgs file1.js file2.js -- 0 1 2

These arguments will be evaluated as JS code in the global scope and the resulting values inserted in a global arguments array.

Notes:

  • You may wish to use rlwrap for a better REPL experience.
  • You will need to install libx11-dev to use the draw library, or to run the example programs.

More

Documentation for Higgs and included libraries can be found in the Higgs Wiki.

You can follow the development of Higgs on Maxime's blog.

主要指標

概覽
名稱與所有者higgsjs/Higgs
主編程語言JavaScript
編程語言Emacs Lisp (語言數: 10)
平台
許可證
所有者活动
創建於2012-08-24 01:07:57
推送於2023-06-09 14:20:07
最后一次提交2023-06-09 10:20:07
發布數0
用户参与
星數883
關注者數45
派生數64
提交數1.9k
已啟用問題?
問題數88
打開的問題數16
拉請求數119
打開的拉請求數0
關閉的拉請求數11
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?