Arc Forumnew | comments | leaders | submitlogin
6 points by elibarzilay 6156 days ago | link | parent

"interpreter interpreted from another interpreter" is very far from the way things are. Arc works by translating arc forms to mzscheme, so it's a compiler, not an interpreter. The arc compiler itself is not interpreted, it is compiled by mzscheme -- and since mzscheme byte-compiles everything (and uses a JIT compiler on the result), it is not an interpreter.

The thing is that there are many ways in which arc can be made faster, but packaging things up in a mzscheme executable is not what speeds things up.



5 points by nex3 6156 days ago | link

Except that according to sacado's benchmarks, packaging things up in a mzscheme executable apparently does speed things up.

-----

2 points by eds 6156 days ago | link

Um....

Sacado said: "Well, actually, to do so, I had to make effective the optimisation someone there already wrote about, in arc< and arc>."

-----

5 points by sacado 6156 days ago | link

In fact, both were needed to optimize things. Mzscheme's doc says explicitly (though I can't remeber where exactly) that standalones are a little faster than interpreted code (there are a few more optimisations they can perform during compilation I guess). Running arc1.scm through mzscheme -f is a little slower.

-----

4 points by elibarzilay 6156 days ago | link

There is an initial overhead for byte-compiling the code and jitting it -- but that's not something that you'd be able to measure for such a small piece of code. Once that's done, it's the same code -- mzscheme (since a good while ago) on intel and ppc does not interpret code. Ever. Even on solaris, where the jit is disabled, it's "interpreting" byte-compiled code, so it is not an interpreter in any case.

-----

2 points by elibarzilay 6156 days ago | link

Right, these two are major bottlenecks. (There are still a good number of them that can be optimized.)

-----