[m-dev.] .NET back-end test results

Fergus Henderson fjh at cs.mu.OZ.AU
Thu Nov 7 09:57:15 AEDT 2002

On 06-Nov-2002, Peter Ross <pro at missioncriticalit.com> wrote:
> This is the start of my fix for the problem B3 (FAILED.UNDEFINED)
> class by trying to expand out the equivalence types for the special
> predicates when producing the special predicates.

I was thinking of doing this expansion at a later stage of the compilation,
shortly before code generation, rather than in make_hlds.m.

> Anyone see problems with this approach or can think of another
> approach?

There may be problems with "non-transparent" equivalent types:
those where a type parameter on the LHS does not occur on the RHS,
	:- type foo(T) == int.

If you do the expansion before polymorphism, then the type_info for the
type parameter T won't get inserted in the arguments, but it needs to be.

I think there will also be some issues with specialization and/or inlining of
unification procedures; the code there is probably assuming that the
argument types of the procedure will unify with the argument types in
the caller.

Fergus Henderson <fjh at cs.mu.oz.au>  |  "I have always known that the pursuit
The University of Melbourne         |  of excellence is a lethal habit"
WWW: <http://www.cs.mu.oz.au/~fjh>  |     -- the last words of T. S. Garp.
mercury-developers mailing list
Post messages to:       mercury-developers at cs.mu.oz.au
Administrative Queries: owner-mercury-developers at cs.mu.oz.au
Subscriptions:          mercury-developers-request at cs.mu.oz.au

More information about the developers mailing list