[mercury-users] Nested submodules no longer working?

Julien Fischer juliensf at csse.unimelb.edu.au
Sat Sep 16 14:07:20 AEST 2006

On Fri, 15 Sep 2006, Tom Breton (Tehom) wrote:

> Nested submodules don't seem to compile here.  After being unable to
> use them in my code, I tried compiling the submodule tests
> (mercury-tests-0.12.2/hard_coded/sub-modules).  They don't compile on
> my machine.
> I include the result of an attempted compile of nested.m The other
> nested submodule tests give essentially the same result.  A sampling
> of unrelated tests had no such problem.
> I have 0.12.2; I understand the stable version just became 0.13
> yesterday but I didn't see any mention of nested submodules in the
> 0.13 release notes.
> [include result of attempted compile]


The problem here is that you cannot build a multi-module program
using by just invoking mmc on the command line as you have done below.
(The full details of what needs to happen are covered in section 3 of 
the user's guide).

You shoudl use one of the build systems, either mmake:

 	$ mmake nested.depend
 	$ mmake nested

or mmc --make:

 	$ mmc --make nested

($ is the command prompt)


> [tehom at mancha sub-modules]$ pwd
> /home/tehom/mercury/mercury-tests-0.12.2/hard_coded/sub-modules
> [tehom at mancha sub-modules]$ mmc -E nested.m
> mercury_compile: cannot find `nested.child.int' in directories .,
> /usr/local/mercury-0.12.2/lib/mercury/ints.
> mercury_compile: cannot find `nested.child2.int' in directories .,
> /usr/local/mercury-0.12.2/lib/mercury/ints.
> nested.m:051: In definition of type `nested.t1'/0:
> nested.m:051:   error: undefined type `nested.child.foo'/0.
> nested.m:052: In definition of type `nested.t2'/0:
> nested.m:052:   error: undefined type `child.foo'/0
> nested.m:052:   (the module `child' has not been imported).
> nested.m:053: In definition of type `nested.t3'/0:
> nested.m:053:   error: undefined type `foo'/0.
> nested.m:054: In definition of type `nested.t4'/0:
> nested.m:054:   error: undefined type `nested.child2.foo'/0.
> nested.m:055: In definition of type `nested.t5'/0:
> nested.m:055:   error: undefined type `child2.foo'/0
> nested.m:055:   (the module `child2' has not been imported).
> mercury_compile: cannot find `nested.int0' in directories .,
> /usr/local/mercury-0.12.2/lib/mercury/ints.
> mercury_compile: cannot find `nested.int0' in directories .,
> /usr/local/mercury-0.12.2/lib/mercury/ints.
> [tehom at mancha sub-modules]$ uname -a
> Linux mancha 2.4.22-1.2115.nptl #1 Wed Oct 29 15:42:51 EST 2003 i686 i686
> i386 GNU/Linux
> [tehom at mancha sub-modules]$ mmc --version
> Mercury Compiler, version 0.12.2, configured for i686-pc-linux-gnu
> Copyright (C) 1993-2006 The University of Melbourne
mercury-users mailing list
Post messages to:       mercury-users at csse.unimelb.edu.au
Administrative Queries: owner-mercury-users at csse.unimelb.edu.au
Subscriptions:          mercury-users-request at csse.unimelb.edu.au

More information about the users mailing list