I am arguing from the perspective of the person that _created_ this idea, and why it is useful. I wanted to check correctness when I started the Crafty project, because the basic move generator and make/unmake changed dramatically month to month. I also wanted a way to compare approaches in terms of speed.hgm wrote:But qperft is not an engine at all. Who wants an engine? It is evaluation that is completely useless. It does not help you at all to count move paths...
As usual you ar arguing from the tunnel vision of your own limited interests.
The hashing idea is nonsensical. Why add something to perft that requires _more_ debugging (the hashing stuff) when the primary purpose is to evaluate correctness and compare performance between two versions of some function.
I released this code, and others adopted the idea for testing, debugging and development. Then it turned into a "speed race" for a few. Best speed test is to compare time to depth for two programs, not compare some silly perft times where there is absolutely no incentive to make that efficient since it has little to do wtth playing chess, other than for the speed/correctness issues I mentioned. Comparing perft numbers between two programs is useful if you compare the node counts to detect errors. Comparing the speeds is about as pointless as comparing lines of code, or number of procedures, or whatever.
No tunnel-vision on my end at all. Simply a practical observation. Your comment, on the other hand.....