mirror of
https://github.com/Mercury-Language/mercury.git
synced 2026-04-22 04:43:53 +00:00
Estimated hours taken: 0.5 Branches: main Remove the RM_C mmake variable, which controlled whether the intermediate `.c' files were removed (now they never are). The implementation was buggy (it didn't work with parallel makes), and made it difficult to avoid always recompiling the `.c' file with smart recompilation. Mmake.common.in: configure.in: README.AIX: bindist/bindist.build_vars.in: bindist/bindist.configure.in: scripts/Mmake.vars.in: scripts/Mmake.rules: compiler/modules.m: tools/bootcheck: tools/binary_step: */Mmakefile: Remove references to RM_C, DEFAULT_RM_C and LIBRARY_RM_C. compiler/modules.m: The `.o' and `.pic_o' file now depends only on the `.c' file, not on everthing the `.c' file depends on. The extra dependencies were only needed because the intermediate `.c' file could be removed by RM_C. This change is needed to avoid recompiling unchanged `.c' files with smart recompilation.
This directory contains some example Mercury programs. hello.m "Hello World" in Mercury. cat.m An implementation of a simple version of the standard UNIX filter `cat', which just copies its input files or the standard input stream to the standard output stream. sort.m An implementation of a simple version of the standard UNIX filter `sort', which reads lines from its input files or the standard input stream, sorts them, and then writes the result to the standard output stream. calculator.m A simple four-function arithmetic calculator, with a parser written using the Definite Clause Grammar notation. committed_choice.m An example illustrating committed-choice nondeterminism in Mercury. interpreter.m An simple interpreter for definite logic programs. A demonstration of meta-programming in Mercury. expand_terms.m Another example meta-program, showing how to emulate Prolog's `expand_term' mechanism. e.m A small program which calculates the base of natural logarithms to however many digits you choose. It illustrates one way to achieve lazy evaluation in Mercury. Mmakefile The file used by `mmake', the Mercury Make program, to build the programs in this directory. The `solutions' sub-directory contains some examples of the use of nondeterminism, showing how a Mercury program can compute - one solution, - all solutions, or - some solutions (determined by a user-specified criteria) for a query which has more than one logically correct answer. There are also some sub-directories which contain examples of multi-module Mercury programs: diff This directory contains an implementation of a simple version of the standard UNIX utility `diff', which prints the differences between two files. c_interface This directory contains some examples of mixed Mercury/C/C++/Fortran programs using the C interface. rot13 This directory contains a few implementations of rot-13 encoding. muz This directory contains a syntax checker / type checker for the specification language Z.