[m-rev.] for review: Arrays for the .NET backend
Tyson Dowd
trd at cs.mu.OZ.AU
Fri Aug 3 22:11:31 AEST 2001
On 03-Aug-2001, Fergus Henderson <fjh at cs.mu.OZ.AU> wrote:
> On 02-Aug-2001, Tyson Dowd <trd at cs.mu.OZ.AU> wrote:
> >
> > Implement arrays in the .NET backend.
> ...
> > compiler/ml_call_gen.m:
> > Implement the cast to the known instance of array(T) for return
> > values of array.
>
> You should also implement a cast for the other direction, IMHO.
> We should avoid relying on any implicit conversions in the MLDS.
Ok, that's fine.
> > Index: compiler/mlds_to_il.m
> > @@ -2523,7 +2531,7 @@
> > (
> > type_id_is_array(TypeId)
> > ->
> > - ILType = il_array_type
> > + ILType = il_object_array_type
> > ;
> > ml_gen_type_name(TypeId, ClassName, Arity),
> > ILType = ilds__type([], class(
>
> Is that one correct??
> It looks a bit dubious to me. Please check it.
Actually, this code is for --high-level-data, and so it should be
completely removed. It was correct with the previous representation of
arrays, but now it is just a dead code path because we will not create
mercury_types that will pass the type_id_is_array check.
> > compiler/mlds_to_java.m:
> > Map mlds__mercury_array_type(ElemType) to class Object[] if
> > ElemType is a type variable, or ElemType[] otherwise.
> > (type variables are mapped to Object anyway, so this falls
> > out of the code anyway).
> > (This is untested).
> ...
> > Index: compiler/mlds_to_java.m
> > @@ -1206,6 +1207,10 @@
> >
> > output_type(mercury_type(Type, TypeCategory)) -->
> > output_mercury_type(Type, TypeCategory).
> > +
> > +output_type(mercury_array_type(_MLDSType)) -->
> > + io__write_string("java.lang.Object").
>
> The code here definitely doesn't match the log message.
Oops, I changed it to be
output_type(MLDSType),
io__write_string("[]")
which is the same as what is done for mlds__array_type.
But I think Java uses stupid C-style array syntax.
So this is wrong for variable declarations -- it should be
output_type(MLDSType),
output_varname(Var),
io__write_string("[]")
but this bug was already present, I've just added an XXX about it.
> Otherwise this looks fine.
I've fixed these problems and will commit RSN.
Tyson.
--------------------------------------------------------------------------
mercury-reviews mailing list
post: mercury-reviews at cs.mu.oz.au
administrative address: owner-mercury-reviews at cs.mu.oz.au
unsubscribe: Address: mercury-reviews-request at cs.mu.oz.au Message: unsubscribe
subscribe: Address: mercury-reviews-request at cs.mu.oz.au Message: subscribe
--------------------------------------------------------------------------
More information about the reviews
mailing list