[m-dev.] for review: bug fix for existential_rtti.m

Fergus Henderson fjh at cs.mu.OZ.AU
Tue Feb 15 23:10:19 AEDT 2000

On 15-Feb-2000, Fergus Henderson <fjh at cs.mu.OZ.AU> wrote:
> On 15-Feb-2000, Zoltan wrote:
> > 
> > I strongly suspect that all finding and fixing all those additional places
> > will be only be at least half as much work as making typeinfo a builtin
> > type, but that this work will need to be redone when we do make typeinfo a
> > builtin type.
> What do you mean by "making typeinfo a builtin type"?

I discussed this in person with Zoltan.
>From that discussion, I think there are several different
aspects to making typeinfo a builtin type:

	1. delete the (T) from type_info and base_type_info types
	   in private_builtin, and modify polymorphism.m (etc.)
	2. delete the type_info/1 constructor from private_builtin.m
	   and instead use a new builtin cons_id

and	3. make the type_info and type_ctor_info types builtin types
	   (i.e. not defined in Mercury code, like `int').

Likewise we could do the same 3 steps for typeclass_infos and
base_typeclass_infos, except that we can't easily do step 1,
because the type parameter in typeclass_infos is used to represent
the constraint that the typeclass_info is for, and some parts of the
compiler source code (e.g. higher_order.m; see `cvs log -N -r1.148
compiler/polymorphism.m' for details) need that information.

The change to use type_util__real_vars instead of type_util__vars
could only be avoided if we did step 1 for both type_infos
and typeclass_infos, and as noted above, doing step 1 for
typeclass_infos is not easy.

Fergus Henderson <fjh at cs.mu.oz.au>  |  "I have always known that the pursuit
WWW: <http://www.cs.mu.oz.au/~fjh>  |  of excellence is a lethal habit"
PGP: finger fjh at        |     -- 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