All Projects → eregon → mozart-graal

eregon / mozart-graal

Licence: BSD-2-Clause license
An implementation of Oz on top of Truffle and Graal

Programming Languages

Oz
5 projects
java
68154 projects - #9 most used programming language
scala
5932 projects
emacs lisp
2029 projects
C++
36643 projects - #6 most used programming language
HTML
75241 projects

Projects that are alternatives of or similar to mozart-graal

Truffleruby
A high performance implementation of the Ruby programming language. Built on the GraalVM by Oracle Labs.
Stars: ✭ 2,620 (+6981.08%)
Mutual labels:  truffle, graalvm
http4s-graal
An experiment running http4s as native image with Graal (+ Substrate)
Stars: ✭ 27 (-27.03%)
Mutual labels:  graalvm, graal
scala-http4s-realworld-example-app
Example of a RealWorld app backend powered by Scala + http4s
Stars: ✭ 35 (-5.41%)
Mutual labels:  graalvm, graal
Erc20 Generator
Create an ERC20 Token for FREE in less than a minute with the most used Smart Contract Generator for ERC20 Token. No login. No setup. No coding required.
Stars: ✭ 202 (+445.95%)
Mutual labels:  truffle
Graalphp
An efficient PHP implementation built on GraalVM
Stars: ✭ 233 (+529.73%)
Mutual labels:  truffle
grakkit
A modern JavaScript development environment for Minecraft.
Stars: ✭ 184 (+397.3%)
Mutual labels:  graalvm
svelte-box
A truffle box for svelte
Stars: ✭ 60 (+62.16%)
Mutual labels:  truffle
Armors Solidity
Armors-solidity is a framework to build secure smart contracts on Ethereum.
Stars: ✭ 184 (+397.3%)
Mutual labels:  truffle
solcover
Code coverage for solidity
Stars: ✭ 64 (+72.97%)
Mutual labels:  truffle
atomic-markets
Generalized atomic swap marketplaces for ERC-777(advanced token standard) and ERC-721 (non-fungible tokens)
Stars: ✭ 30 (-18.92%)
Mutual labels:  truffle
resources
A living collection of resources for participants (and anyone who's interested) in Truffle University's courses 📚
Stars: ✭ 27 (-27.03%)
Mutual labels:  truffle
payroll
A payroll system developed with React and Solidity for Ethereum
Stars: ✭ 28 (-24.32%)
Mutual labels:  truffle
dao1901
French 1901's Law for non-profit organizations, now on Ethereum
Stars: ✭ 29 (-21.62%)
Mutual labels:  truffle
micronaut-camunda-external-client
This open source project allows you to easily integrate Camunda's External Task Clients into Micronaut projects: simply add a dependency in your Micronaut project
Stars: ✭ 19 (-48.65%)
Mutual labels:  graalvm
Sparkle Proof Of Loyalty
Sparkle Proof of Loyalty Contract
Stars: ✭ 216 (+483.78%)
Mutual labels:  truffle
react-truffle-metamask
Build an DApp using react, redux, saga, truffle, metamask
Stars: ✭ 25 (-32.43%)
Mutual labels:  truffle
Trufflesqueak
A Squeak/Smalltalk VM and Polyglot Programming Environment for the GraalVM.
Stars: ✭ 200 (+440.54%)
Mutual labels:  truffle
GraalVMREPL
REPL (read–eval–print loop) shell built on top of JavaFX and GraalVM stack, incorporating GraalJS, GraalPython, TruffleRuby and FastR
Stars: ✭ 31 (-16.22%)
Mutual labels:  graalvm
Blockchain
Recently started working on Blockchain technologies. This repo contains material related to Blockchain technologies. My current focus on dAPP development using Hyperledger.
Stars: ✭ 21 (-43.24%)
Mutual labels:  truffle
ghidraal
A Ghidra extension for scripting with GraalVM languages, including Javascript, Python3, R, and Ruby.
Stars: ✭ 48 (+29.73%)
Mutual labels:  graalvm

Mozart-Graal

Build Status

An implementation of the Oz programming language on top of Truffle and Graal.

The bootcompiler and Oz libraries are imported from Mozart 2.

Interesting Points

  • A master thesis was made with this project to optimize performance. It details many static and dynamic optimizations.

  • Tail calls are optimized and compiled as loops, see TailCallCatcherNode. Self-recursion is optimized further in SelfTailCallCatcherNode.

  • There is a Truffle AST serializer in OzSerializer using Kryo able to serialize Oz code.

  • The project uses the Coroutine patch for HotSpot to be able to create many lightweight threads.

  • The parser, typer, and some optimizations are written in Scala (bootcompiler/) and the AST produced by Scala is then translated to a Truffle AST in Translator.

Current Status

Early stage but the Panel and Browser are working.

The Panel On Mozart-Graal

Dependencies

  • Java 8
  • Maven 3
  • C/C++ toolchain (build-essential) for building Graal
  • Python 2.7 (for mx)
  • Ruby >= 2.2.0 (for the launcher)

Build instructions

mkdir mozart-dev
cd mozart-dev
git clone https://github.com/eregon/mozart-graal.git
cd mozart-graal
rake

It takes around 5 min to build everything.

Run with

./oz

Graal

Graal is not built by default to save time. To build it, run

rake build:graal

On recent Linux, you need to do part of the build manually, see Building JVMCI.

IDE: IntelliJ IDEA

IntelliJ IDEA configuration are checked in the repository and should work out of the box. Import mozart-dev as a project.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].