Implementation of Arc in C
github.com
github.com
[0] http://arcueid-arc.org/2013/05/22/three-implementation-model...
I'd like to see some benchmarks too. But I think that this project is not a complete Arc implementation. Some parts are more trick to program and more tricky to get fast code.
For example, I couldn't find ccc in this project ( http://arclanguage.github.io/ref/foundation-doc.html#ccc ) (it's like call-with-current-continuation). A version without ccc can cut some corners and be faster than a complete version.
Racket has a lot of work and optimizations under the hood, it has a JIT compiler and some analysis to detect the parts of the code that don't use continuations and can be compiled ignoring the continuations problems.
Arc has more mutability than Racket, and in some parts Arc goes against the Racket philosophy, so perhaps a direct C implementation may be faster. I'd like to see some benchmarks.
"Atom" is not a good synonym for "value"; it is a kind of value.
What strikes me is that Atom's are being copied by value all over the place, even when a good chunk of them don't matter. I don't know whether the optimizer can help with that or not, but it seems like there could be a lot of unnecessary copying during procedure calls and returns.