Mercury is a new logic/functional programming language, which combines the clarity and expressiveness of declarative programming with advanced static analysis and error detection features. Its highly optimized execution algorithm delivers efficiency far in excess of existing logic programming systems, and close to conventional programming systems. Mercury addresses the problems of large-scale program development, allowing modularity, separate compilation, and numerous optimization/time trade-offs.
| Tags | Software Development Compilers |
|---|---|
| Licenses | GPL LGPL |
| Operating Systems | Windows Windows POSIX Linux Mac OS X |
| Implementation | Other |
Recent releases


Release Notes: New features in this release include Unicode support, a new form of memory profiling, and the ability to initialize mutables using semipure or impure function calls. Support for using MSVC as the C compiler has been improved and support for using clang as the C compiler has been added. The Java backend is now compatible with Java 1.7. In addition, numerous performance improvements and bugfixes have been made.


Release Notes: New language features include scopes that require a scoped goal to have a particular determinism and a scope that requires a switch to be complete. A new backend that generates C# has been added. Support for using frameworks on Mac OS X has been improved. A binding to the Cairo 2D graphics library has been added to the extras distribution. A module that provides lazy evaluation has been added to the standard library. String switches have been improved for the LLDS backend.


Release Notes: A number of problems that caused the compiler to abort have been fixed, some broken RTTI operations in the Java grade have been fixed, and a workaround was included for a problem with GCC version 4.4.


Release Notes: This is a bugfix release.


Release Notes: A new language feature, trace goals, allows progress or logging messages to be printed in the middle of arbitrary computations. Some of the restrictions on type class instances have been lifted. Syntatic sugar for exception handlers has been added. There are new standard library modules that provide calenders, directed graphs, and utility procedures for writing parsers. The Java backend has been greatly improved. A new backend that generates Erlang has been added. Thread-local mutables are now supported. A debugger that works with the high-level C and Java backends has been added.
A set of tools and libraries to access human-editable text-based databases called recfiles.