[Shootout-list] Directions of various benchmarks

Bengt Kleberg bengt.kleberg@ericsson.com
Thu, 19 May 2005 12:20:54 +0200


skaller wrote:
...deleted
> Same way tests are semantic nonsense. The only way to
> do something 'the same way as this Java program' -- which is
> the specification of some tests right at the moment --
> is obviously to actually use THAT Java program.

i agree that same way tests are not as good as same thing. i especially 
agree that ''the same way as this Java program'' is much worse than same 
thing.


> How the heck can you judge if a solution in C or Ocaml
> or Haskell is 'the same way' as a Java program when one
> language is imperative with variables and the other
> is functional?

that is currently left to the judgment of the people with access to the 
shootout repository. from the faq:
''We will accept and reject benchmarks in a capricious, unfair, biased 
fashion.''


> This isn't a rhetorical question or philosophising: already
> Isaac had the audacity to ban the Felix solution to the
> EH test because it was orders of magnitude faster than every
> other solution, with eth excuse that "by my(skaller) own 
> admission it wasn't using the same mechanism as C++/Java" 
> -- but failed to similarly ban the C solution and 
> the Scheme solution because they
> both also use variants of the same technique -- all three

the mail list has many examples of the presence of isaac. often 
uninformative, always impolite, he is a burden everybody posting here 
has to carry.
my experince is that he is worse in private communication.


> Similarly 'concurrency' tests are in question, because
> a requirement to use Posix thread is absurd: should we
> really measure OS thread handling limitations? 

i agree that this is absurd, and the posix thread bit should be removed.


...deleted
> OTOH if you allow user space context switching, as supported by 
> several systems (including Felix and I think Haskell?), and also
> supported by Ocaml bytecode interpreter and Python .. then there's
> no way to know if you will really get concurrency .. and in the
> test cases there was none .. the Felix optimiser just eliminated

concurrency is often a result of designing with async interaction in 
mind. this is rarely possible to have in a small benchmark test of the 
kind used in the shootout. since i still want to see how other languages 
handle concurrency i think it is a worthwhile addition to the shootout.


...deleted interesting info about felix

> Example. Suppose you want to say 'sort this file using
> a bubble sort'. Do it 'the same way' at the algorithmic level.
> 
> Well you CANNOT sanely require that. So, what you require instead
> is 'sort this array with less than 5 lines of code without allocating
> more than a constant amount of memory'.

i am not saying that you are wrong here. but i am not able to understand 
why bubble sort is not a sane requirement.


> And you can add that 'the intent is to use a bubble sort'. 
> (Maybe its 6, but you can't implement a quicksort in such a small loc :)
> 
> So anywhere you really want to specify a particular algorithm,
> it can almost always be done by specifying limits on the space
> and time complexity order plus perhaps a constraint on the LOC of code.
> There is a way to get what we want *without* gratuitous and arbitrary
> limititations.

i agree. but i still think that this way is very difficult. it has 
proved to be too difficult to me. therefore i can not support that we 
require it. sorry.


bengt