Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

Experimental Language based on Rust and Haskell

NotificationsYou must be signed in to change notification settings

izgzhen/RuScript

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build

Tool-chain dependencies: Rust (nightly), Haskell (8.01)

  1. git submodule update to fetchrust-gc dev source
  2. runghc Test.hs to run unit tests

To build thervm andrusc separately:

  1. rvm:cd rvm; cargo build
  2. rusc:cd rusc; stack build

Features

  • Safe runtime written in Rust with garbage collection
  • Lightweight stack-based bytecode
  • High-level object-oriented language
  • Static checking module

Design

Please refer tospec

TODOs

  • .rusi Interface parser
    • Note #1: Whether or not to attach aself to each method signature
    • Note #2: Separate compilation and selective exports require more engineering, of which I have little experience in
  • Concurrent primitives
    • Note #1: We need to construct runners inside the interpreters, and every runner is contained in a thread and responsible for a user-thread
    • Note #2: To share the data between threads, we need a concurrent GC system, which we don't really have now.
  • Formal Specification Revision based on Coq

Performance Issue

The current performance revealed by benchmarking thesum.rus is very poor, taking as much as 100 times longer than a naïve Python implementation.

Currently, the source of latency can be contributed to three aspects:

  1. GC
  2. Interpreter
  3. Compiler

Actually, by increasing the instruction set, we can eliminate many "stupid" instruction sequence, such asPOP thenPUSH, which is equivalent to a write stack-top to local var without popping out.

About

Experimental Language based on Rust and Haskell

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

[8]ページ先頭

©2009-2025 Movatter.jp