mirror of
https://github.com/kanaka/mal.git
synced 2024-11-13 01:43:50 +03:00
4ef4b17cd0
This rewrites the rust implementation to use many new features of the current version of rust. The refactor is much more concise (only 2/3rds the size) and switches to using a lot of the more functional features (iterators, closures, etc) that have been added or improved in rust. Unfortunately, the implementation is a fair bit slower (about 30% on perf3). It's not clear why this is the case but concision and being more idiomatic wins over performance.
58 lines
762 B
TOML
58 lines
762 B
TOML
[package]
|
|
name = "rust2"
|
|
version = "0.1.0"
|
|
authors = ["root"]
|
|
|
|
[dependencies]
|
|
rustyline = "1.0.0"
|
|
lazy_static = "1.0.1"
|
|
|
|
regex = "1.0.0"
|
|
itertools = "0.7.4"
|
|
fnv = "1.0.3"
|
|
|
|
|
|
[[bin]]
|
|
name = "step0_repl"
|
|
path = "step0_repl.rs"
|
|
|
|
[[bin]]
|
|
name = "step1_read_print"
|
|
path = "step1_read_print.rs"
|
|
|
|
[[bin]]
|
|
name = "step2_eval"
|
|
path = "step2_eval.rs"
|
|
|
|
[[bin]]
|
|
name = "step3_env"
|
|
path = "step3_env.rs"
|
|
|
|
[[bin]]
|
|
name = "step4_if_fn_do"
|
|
path = "step4_if_fn_do.rs"
|
|
|
|
[[bin]]
|
|
name = "step5_tco"
|
|
path = "step5_tco.rs"
|
|
|
|
[[bin]]
|
|
name = "step6_file"
|
|
path = "step6_file.rs"
|
|
|
|
[[bin]]
|
|
name = "step7_quote"
|
|
path = "step7_quote.rs"
|
|
|
|
[[bin]]
|
|
name = "step8_macros"
|
|
path = "step8_macros.rs"
|
|
|
|
[[bin]]
|
|
name = "step9_try"
|
|
path = "step9_try.rs"
|
|
|
|
[[bin]]
|
|
name = "stepA_mal"
|
|
path = "stepA_mal.rs"
|