[m-dev.] IL and --high-level-data (was: read .opt files transitively)

Tyson Dowd trd at cs.mu.OZ.AU
Thu Apr 19 20:48:56 AEST 2001


On 19-Apr-2001, Fergus Henderson <fjh at cs.mu.OZ.AU> wrote:
> On 18-Apr-2001, Fergus Henderson <fjh at cs.mu.OZ.AU> wrote:
> > Here's (a first draft of) a change to read in the `.opt' files transitively.
> > See my post to mercury-developers for detailed rationale.
> > 
> > With this change, `tools/bootcheck --grade il' gets as far as building all
> > the `.opt' and `.trans_opt' files, but dies when compiling benchmarking.m;
> > the problem there is an unrelated one, namely that the IL back-end doesn't
> > support nested classes.
> 
> Tyson, could you please have a look at that problem?
> It occurs with 0.10.1 and the current mercury-latest compiler too.
> (To reproduce, do `cd library; mmc --grade il benchmarking.m'.)
> 
> The problem is that with `--grade il' (which implies --high-level-data),
> ml_type_gen generates nested classes, but mlds_to_il doesn't handle them.
>  mlds_to_il.m dies at line 670:
> 
> 		% XXX this might not need to be implemented (nested classes)
> 		% since it will probably be flattened earlier.
> 	defn_to_class_decl(mlds__defn(_Name, _Context, _DeclFlags,
> 			mlds__class(_)), _ILClassDecl) :-
> 		error("nested data definition not expected here").
> 
> I think it is definitely right for ml_type_gen.m to generate nested classes.
> The nesting is needed to avoid name clashes if the same constructor name is
> used in different types.  For Java, nesting is the the right solution for
> that.  I'm not quite sure what the ideal way of handling it is for the
> .NET back-end, but in any case I think it should be the .NET back-ends
> responsibility to deal with nested classes in whatever way is most appropriate
> for that back-end.

I agree, this is simply a matter of NYI (not yet implemented).
I will fix it.

-- 
       Tyson Dowd           # 
                            #  Surreal humour isn't everyone's cup of fur.
     trd at cs.mu.oz.au        # 
http://www.cs.mu.oz.au/~trd #
--------------------------------------------------------------------------
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