Our extensive benchmarking has shown our implementation to be almost twice as fast as the fastest existing logic programming system, Aquarius Prolog, about five times as fast as SICStus Prolog's native mode compiler, about ten times as fast as Quintus Prolog, and 20 to 36 times as fast as other Prolog implementations using bytecode interpreters. Mercury does not sacrifice portability for speed. While previous fast logic programming systems generate native code and can thus run on only few types of system, we generate C code that can be compiled on almost all software and hardware platforms. Aquarius and other high-performance Prolog systems base their optimizations on information gathered by global analysis. These analyses must make approximations to keep analysis times reasonable.
Large programs tend to require more approximations, which makes optimization less effective.
We designed the Mercury execution algorithm in October 1993. We started working on a Mercury compiler in December 1993. Semantic analysis started working around May 1994. The compiler successfully compiled itself on 24 February 1995. The first public beta release of the system was version 0.3 on 18 July 1995.