Skip to content
No description, website, or topics provided.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src
.gitignore
.travis.yml
Cargo.toml
LICENSE
README.md
test.scm

README.md

Build Status

Rust-scm

  • A mini Scheme interpreter using Rust
  • My first Rust program, should not be the best Rust programming idiom.

Benchmarks

  • 0.1

Env use Vec, should be very slow.

test eval::eval_bench   ... bench:   1500071 ns/iter (+/- 256219)
test eval::lambda_bench ... bench:    469318 ns/iter (+/- 86833)

Env v2, use String as env key, not the SymboNode

test env::env_bench      ... bench:   8108095 ns/iter (+/- 1626045)
test env::env_bench_iter ... bench:    623332 ns/iter (+/- 639534)
test eval::eval_bench    ... bench:   1469169 ns/iter (+/- 333122)
test eval::lambda_bench  ... bench:    487463 ns/iter (+/- 91102)

Env v3, use HashMap represent env

test env::env_bench      ... bench:   1220791 ns/iter (+/- 174220)
test env::env_bench_iter ... bench:    773957 ns/iter (+/- 128140)
test eval::eval_bench    ... bench:   1517271 ns/iter (+/- 267982)
test eval::lambda_bench  ... bench:    458025 ns/iter (+/- 100774)
You can’t perform that action at this time.