[m-rev.] for review: allow library to compile with high level data on .NET

Tyson Dowd trd at cs.mu.OZ.AU
Tue Jul 16 16:26:20 AEST 2002


On 02-Jul-2002, Peter Ross <pro at missioncriticalit.com> wrote:
> Hi,
> 
> For Fergus or Tyson to review.
> 
> 
> ===================================================================
> 
> 
> Estimated hours taken: 120
> Branches: main
> 
> Allow the library to compile in the grade il (high level data).
> 
> compiler/ml_util.m:
> 	Add more types which need to be represented using the low level
> 	representation because of how they are handled in the library.
> 
> compiler/mlds_to_il.m:
> 	Remove an XXX which is no longer necessary.
> 	Add the heap_pointer type to the list of types whose RTTI is defined
> 	by hand.

I just posted this change for heap_pointer -- if you commit soon I guess
i don't need to worry about it.

Doesn't it need to be added to type_util__type_is_hand_defined as well?

> 
> library/exception.m:
> 	Move the definition of Exception from the runtime to the local module.
> 	This is needed for when univ/0 is no longer represented as a low level
> 	type.
> 
> runtime/mercury_mcpp.cpp:
> 	Remove the implementation of Exception that is now in exception.m.
> 
> library/Mmakefile:
> 	The lowlevel Exception type is now defined in the library not the
> 	runtime, so add rules to ensure that the foreign code is built in
> 	the correct order.
> 
> library/io.m:
> 	Reimplement io__stream as a foreign_type.  This makes the code more
> 	type safe and avoids problems with the different representation of
> 	the io__stream type when using high and low level data.
> 	Change io__command_line_arguments so that it throws an exception
> 	when we use high level data, as I am yet to work out how to access
> 	high level lists.
> 
> library/rtti_implementation.m:
> 	Add a comment that get_subterm doesn't work with high level data.
> 	Fix some bugs with the default versions of type_ctor_compare_pred and
> 	type_ctor_unify_pred.
> 
> library/sparse_bitset.m:
> 	Remove the foreign_proc implementation of make_bitset_elem as it
> 	will not work with both data representations and their is a Mercury
> 	implementation.

s/their/there/

> 
> library/string.m:
> 	Remove the foreign_proc implementation of all the predicates which
> 	manipulate lists as they all have a Mercury implementation, as I am yet
> 	to work out how to access high level lists.
> 	Add a Mercury implementation for string__join_list.
> 
> runtime/mercury_mcpp.h:
> library/array.m:
> library/builtin.m:
> library/private_builtin.m:
> library/type_desc.m:
> 	Define and use typedefs where appropiate for type_info/0, type_info/1,
> 	comparison_result/0 and univ/0, as there representation may change in
> 	the future between using high level and low level data.

The rest of the change seems OK.

-- 
       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-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