rust: Update rust and update/refactor implementation
authorJoel Martin <github@martintribe.org>
Thu, 12 Jul 2018 05:23:40 +0000 (00:23 -0500)
committerJoel Martin <github@martintribe.org>
Fri, 13 Jul 2018 22:21:00 +0000 (17:21 -0500)
commit4ef4b17cd0bd0c2c8ee7ae908a405db2af849f70
treef18e32939ae9f298ba2e521ea2fa40d42daaa48e
parent9a66ffcd2e411e0dff235e3055e453b1bb2800a1
rust: Update rust and update/refactor implementation

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.
43 files changed:
Makefile
rust/.gitignore [new file with mode: 0644]
rust/Cargo.lock [new file with mode: 0644]
rust/Cargo.toml
rust/Dockerfile
rust/Makefile
rust/core.rs [new file with mode: 0644]
rust/env.rs [new file with mode: 0644]
rust/printer.rs [new file with mode: 0644]
rust/reader.rs [new file with mode: 0644]
rust/readline.rs [new file with mode: 0644]
rust/run
rust/src/bin/step0_repl.rs [deleted file]
rust/src/bin/step1_read_print.rs [deleted file]
rust/src/bin/step2_eval.rs [deleted file]
rust/src/bin/step3_env.rs [deleted file]
rust/src/bin/step4_if_fn_do.rs [deleted file]
rust/src/bin/step5_tco.rs [deleted file]
rust/src/bin/step6_file.rs [deleted file]
rust/src/bin/step7_quote.rs [deleted file]
rust/src/bin/step8_macros.rs [deleted file]
rust/src/bin/step9_try.rs [deleted file]
rust/src/bin/stepA_mal.rs [deleted file]
rust/src/core.rs [deleted file]
rust/src/env.rs [deleted file]
rust/src/lib.rs [deleted file]
rust/src/printer.rs [deleted file]
rust/src/reader.rs [deleted file]
rust/src/readline.rs [deleted file]
rust/src/types.rs [deleted file]
rust/step0_repl.rs [new file with mode: 0644]
rust/step1_read_print.rs [new file with mode: 0644]
rust/step2_eval.rs [new file with mode: 0644]
rust/step3_env.rs [new file with mode: 0644]
rust/step4_if_fn_do.rs [new file with mode: 0644]
rust/step5_tco.rs [new file with mode: 0644]
rust/step6_file.rs [new file with mode: 0644]
rust/step7_quote.rs [new file with mode: 0644]
rust/step8_macros.rs [new file with mode: 0644]
rust/step9_try.rs [new file with mode: 0644]
rust/stepA_mal.rs [new file with mode: 0644]
rust/tests/step5_tco.mal [deleted file]
rust/types.rs [new file with mode: 0644]