zetavm

Multi-Language Platform for Dynamic Programming Languages

Github星跟蹤圖

ZetaVM

Build Status Build status Gitter chat

Please note that ZetaVM is currently at the early prototype stage. As such,
it is incomplete and breaking changes may happen often.

Requirements:

  • GNU Make
  • GCC 5.4+ (linux) or clang (OSX), or cygwin (Windows)
  • Optional: autoconf and pkg-config, if needing to edit the configure file
  • Optional: sdl2, if wanting to use audio and graphics capabilities
  • Optional: Python 2 is needed to run the benchmark.py script

Installation

# Clone this repository
git clone git@github.com:maximecb/zetavm.git

# Run the configure script and compile zetavm
# Note: run configure with `--with-sdl2` to build audio and graphics support
cd zetavm
./configure
make -j4

# Optionally run tests to check that everything works properly
make test

Basic Usage

# To run programs, pass the path to a source file to zeta, for example:
./zeta benchmarks/fib.pls -- 29

# To start up the Plush REPL (interactive shell),
# you can run the Plush language package as a program:
./zeta lang/plush/0

About ZetaVM

ZetaVM is a Virtual machine and JIT compiler for dynamic programming languages.
It implements a basic core runtime environment on top of which programming
dynamic languages can be implemented with relatively little effort.

Features of the VM include:

  • Built-in support for dynamic typing

  • Garbage collection

  • JIT compilation

  • Dynamically growable objects (JS-like)

  • Dynamically-typed arrays (JS/Python-like)

  • Integer and floating-point arithmetic

  • Immutable UTF-8 strings

  • Text-based code and data storage format (JSON-like)

  • First-class stack-based bytecode (code is data)

  • Built-in graphical and audio libraries

  • Coming soon: built-in package manager

Zeta image files (.zim) are JSON-like, human-readable text files containing
objects, data and bytecodes to be executed by ZetaVM.
They are intended to serve as a compilation target, and may contain
executable programs, or libraries/packages.

More Information

A recording of a talk about ZetaVM given at PolyConf 2017 is available.

For more information, see the documentation in the docs directory:

There are also a few blog post about Zeta and its design.

For additional questions and clarifications, open a GitHub issue and tag it as a question, or join the ZetaVM Gitter chat.

主要指標

概覽
名稱與所有者zetavm/zetavm
主編程語言C++
編程語言PLSQL (語言數: 7)
平台
許可證BSD 3-Clause "New" or "Revised" License
所有者活动
創建於2017-04-25 06:26:09
推送於2022-07-19 02:01:32
最后一次提交2022-07-18 19:01:32
發布數0
用户参与
星數636
關注者數46
派生數42
提交數518
已啟用問題?
問題數54
打開的問題數7
拉請求數65
打開的拉請求數1
關閉的拉請求數5
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?