[mercury-users] Compiler freezes for large fact_table?

doug.auclair at logicaltypes.com doug.auclair at logicaltypes.com
Wed Mar 22 09:48:59 AEDT 2006


Dear all,

Into my program, I'm trying to compile a fact table of 2000 facts, arity 25, indexed
on the first two arguments.  This seems to freeze the compiler
(asm_fast.gc/sparc-sun-solaris2.8).  Is there an issue with compiling fact_tables
over a certain size or with certain indexing characteristics?  The declaration
the fact_table is as below (see the post-script).

Compiling a fact table of three times the number of facts, indexed only on the first
(unique int) argument works just fine, producing an unrelated executable.  For the 
new purpose I do need the two indices.

Also, for this task, the first index (the int) is not unique, but the combination of
that int and the second index (the string) /is/ unique.  Is the compiler bogging down
because the int is not unique but the determinism is semidet?

Any helpful suggestions on how to assist the compilation process?

Sincerely,
Doug Auclair

:- pred foo(int, string, string, string, int, int, int, int, int,
            string, int, int, int, int, string, int, int, int, int,
            string, int, int, string, string, int).
:- mode foo(in,  in,     out,    out,    out, out, out, out, out,
            out,    out, out, out, out, out,    out, out, out, out,
            out,    out, out, out,    out,    out) is semidet.

:- pragma fact_table(foo/25, "all_fooz.fact_table").


--------------------------------------------------------------------------
mercury-users mailing list
post:  mercury-users at cs.mu.oz.au
administrative address: owner-mercury-users at cs.mu.oz.au
unsubscribe: Address: mercury-users-request at cs.mu.oz.au Message: unsubscribe
subscribe:   Address: mercury-users-request at cs.mu.oz.au Message: subscribe
--------------------------------------------------------------------------



More information about the users mailing list