Hacker News new | ask | show | jobs
by olliej 5942 days ago
One question i have regarding these is how fair are the tests, a very quick look at the tests shows for "pidigits" the lua code has the line:

require"c-gmp"(g, aux)

Implying that it is using the GNU Multiprecision Library for it's big integer support, whereas the JS code has:

load('/home/dunham/shootout/bench/Include/javascript/biginteger.js');

Which is apparently a big integer library implemented in javascript http://www-cs-students.stanford.edu/~tjw/jsbn/

In other words, in at least one of the tests a comparison is being made between javascript and C/C++, not javascript and Lua.

3 comments

Actually reading the Lua mailing list post http://lua-users.org/lists/lua-l/2010-03/msg00305.html, referenced in the linked text might help:

> For pidigits I'm comparing the pure JS and Lua programs, not the GMP bindings.

I'm comparing these two:

http://shootout.alioth.debian.org/u32/program.php?test=pidig...

http://shootout.alioth.debian.org/u32/program.php?test=pidig...

Both are written in pure Lua and JavaScript and do not use a C binding.

The numbers you point to make use of http://shootout.alioth.debian.org/u32/program.php?test=pidig...

Which is using GMP, so maybe that particular link needs to be updated?

I have looked at a few of the other tests and nothing obviously pops out as being bogus, so it's likely just this pidigits test which has an unfair advantage
V8 is implemented in C++, so should you count it as just a really bad C++ benchmark?

The Lua benchmark uses features Lua can use. JavaScript does not have that feature.

http://en.wikipedia.org/wiki/Turing_tarpit

If you're claiming that your interpreter is faster than someone elses you can't make your test depend on a native library for the bulk of the work. That may be a valid argument for "my language is better" but it isn't an argument for my interpreter is faster than yours.
Language Shootout, not Interpreter Shootout. You're playing directly into the Turing tarpit.