The Mercury logic programming system.
Mercury C HTML Makefile M4 Shell Other
Latest commit 964112b Sep 22, 2016 @PaulBone PaulBone Upgrade Boehm GC to 7.6.0
Upgrade Boehm GC from 7.4.x to 7.6.0 and libatomic_ops from 7.4.x to 7.4.4

    Update git submodule to new version of Boehm GC.

    Update notes about upgrading Boehm GC.

    The code that enumerates the heap objects has been merged upstream in
    boehm_gc, and its interface has changed.  Conform to those changes.

    Announce this change.
Failed to load latest commit information.
benchmarks Update code in benchmarks. Apr 26, 2016
bindist Update copyright notices for 2016. Jan 2, 2016
boehm_gc @ 52bb241 Upgrade Boehm GC to 7.6.0 Sep 22, 2016
browser Improve the interface of pretty_printer.m. Aug 9, 2016
bytecode Tell vim not to expand tabs in Makefiles. Jan 8, 2015
compiler Upgrade Boehm GC to 7.6.0 Sep 22, 2016
deep_profiler Fix typo. Jul 18, 2016
doc Document that throwing exceptions across the C interface is unsupported. Sep 21, 2016
extras Fix whitespace in mercury_cairo modules. Aug 30, 2016
grade_lib Add field names to grade_vars. Apr 25, 2016
java/runtime Fix spelling. Jun 8, 2016
library Avoid determinism warning for magic_exception_result. Sep 20, 2016
m4 Fix problem with JAVAC_FLAGS_FOR_HEAP_SIZE and --restricted-command-l… Feb 17, 2015
mdbcomp Do not include mdbcomp modules in coverage reports by default. Aug 11, 2016
mfilterjavac Add .dep_err files to .gitignore May 25, 2016
profiler Add .dep_err files to .gitignore May 25, 2016
robdd Shut up some warnings in the robdd directory. Sep 1, 2015
runtime Upgrade Boehm GC to 7.6.0 Sep 22, 2016
samples Update the programming style of this program. Feb 10, 2016
scripts Delete a left-over reference to the IL backend. Aug 21, 2016
slice Minor fix for mcov usage message. Aug 21, 2016
ssdb Add .dep_err files to .gitignore May 25, 2016
tests Serialise access to IO in tl_backjump_test.m Sep 20, 2016
tools Automate finding the largest modules for speedtest. Jul 27, 2016
trace Avoid C compiler warnings in trace library. Aug 19, 2016
util Fix bug #196: binary compatibility checks in C grades do not work. Jul 17, 2016
vim Update vim syntax file to handle shorts in foreign code. Apr 6, 2016 Reduce the number of publicly documented base grades. Apr 16, 2015 Update copyright notices for 2016. Jan 2, 2016
.gitignore [net] Impement a Mercury interface to getaddrinfo Apr 7, 2015
.gitmodules Upgrade Boehm GC to 7.6.0 Sep 22, 2016
.nocopyright Add mercury.snk to .nocopyright. Nov 22, 2012
BUGS Update email addresses and URLs. Apr 24, 2013
COPYING Added a copy of the GPL. Mar 20, 1995
COPYING.LIB Update the README file, and add the LGPL to the CVS archive. Mar 28, 1995
HISTORY Move 13.05.X NEWS into HISTORY. Jan 7, 2014
INSTALL.git Update instructions for building from git. Mar 31, 2016
LIMITATIONS Clearly explain what part of partial instantiation isn't supported. Mar 18, 2014
Makefile Tell vim not to expand tabs in Makefiles. Jan 8, 2015
Makefile.DLLs Introduce two new directories, trace and browser, containing libraries Sep 29, 1998 Make changes required to upgrade to Boehm GC 7.4.2 Oct 1, 2015
Mmake.workspace Fix some minor make annoyances. Aug 25, 2015
Mmakefile Rename the top-level of the compiler. Feb 17, 2016
NEWS Upgrade Boehm GC to 7.6.0 Sep 22, 2016
README.AIX Fix and update README files. Jan 5, 2015
README.CSharp Update README files for non-C backends. Feb 18, 2016
README.Cygwin Fix and update README files. Jan 5, 2015
README.Erlang Update instructions for building the Erlang grad.e Mar 31, 2016
README.FreeBSD Shared libraries work on FreeBSD. Oct 18, 2015
README.HPUX Minor rewording of README.{AIX,HPUX}. Jun 16, 2014
README.Java Update README files for non-C backends. Feb 18, 2016
README.Linux Remove documentation for --cross-compiling option. Mar 27, 2015
README.Linux-Alpha Move the patch for making the GNU assembler into the configuration sc… Dec 22, 1998
README.Linux-PPC Fix spelling and double up words. Jul 14, 2010
README.Linux-m68k Port to Linux-m68k. A lot of this work was done by Roman Hodek, Oct 2, 1998
README.MS-VisualC Fix and update README files. Jan 5, 2015
README.MS-Windows Add instructions for MSYS2 environment with MinGW-w64. Aug 31, 2015
README.MacOS Make mdb interactive queries work on OS X. Aug 21, 2015
README.MinGW Fix a spelling error in README.MinGW: Sep 3, 2015
README.MinGW-cross Fix instructions for finishing cross-compiler installation. Oct 18, 2015
README.Solaris Merge late changes from the 0.13 branch onto the main branch. Sep 15, 2006
README.ThreadScope Make a note that ThreadScope support is currently broken. May 5, 2013
README.bootstrap Update instructions for building from git. Mar 31, 2016
README.clang Mention that Mercury works with clang on Windows. Oct 3, 2011 Fix an incomplete sentence in Jan 5, 2015
README.ssdebug Add option --ssdb-trace which allows one to control which modules are… Jul 19, 2012
RELEASE_NOTES Fix some minor errors in the release notes. Jan 4, 2015
RESERVED_MACRO_NAMES Remove support for the MPS garbage collector. Aug 5, 2014
VERSION Revert my earlier change to VERSION Jan 3, 2014
config.guess Update config.guess and config.sub. Aug 31, 2015
config.sub Update config.guess and config.sub. Aug 31, 2015 Make configure test whether -fno-tree-dominator-opts is supported. Jul 7, 2016
install-sh Use an autoconf-generated configure script rather than manual configu… May 12, 1995
mercury.snk Sign the all the assemblies in the csharp grade. Nov 22, 2012 Use nested submodules to include boehm_gc/libatomic_ops Oct 19, 2015


Mercury is a logic/functional programming language which combines the clarity and the expressiveness of declarative programming with advanced static analysis and error detection features.

More information is available on the website's about pages, in other README files in the source code repository, and in the documentation.

README files

The Mercury compiler has a number of different backends and works on different operating systems. Specific information is contained in individual README files:

Other information

See the current release notes for the latest stable release. The history file is relevant if you want to find out more about the past development of Mercury. News lists any current or future enhancements (but this isn't always up-to-date). The limitations file lists a number of ways in which the Mercury implementation does not yet meet its goals.

Information for developers

If you are considering contributing to the Mercury project the website contains some documents that may be helpful. These include a document about contributions in general and specific information about contributing such as coding styles.


See our contact page.