[m-dev.] Re: diff: changes to io.m

Thomas Charles CONWAY conway at cs.mu.oz.au
Mon Apr 28 11:02:02 AEST 1997


> 
> Implement io__print.  Improvements to io__write and io__read.
> Add stubs for io__read_binary and io__write_binary.
> 
> library/io.m:
> 	Change the implementation of `io__write':
> 	    - it now writes out terms using list syntax and infix notation
> 	      when appropriate, just like term_io__write_term
> 	      (but like term_io__write_term, it doesn't yet take operator
> 	      precedence into account, so it still outputs some redundant
> 	      parentheses)
> 	    - it properly quotes and escapes strings, characters, and atoms
> 	      (XXX but it does not yet properly parenthesize constants that
> 	      happen to have the same name as an operator)
> 
> 	Add `io__print'.  This is similar to `io__write', except that
> 	if the argument is a single string or character, it is printed
> 	directly, rather than inside quotes with special characters escaped.
> 
> 	Rename `io__read_anything' as `io__read', and improve the error
> 	messages slightly.  The implementation is still dependent on
> 	term_to_type which is not yet implemented.
> 
> 	Add `io__write_binary' and `io__read_binary'.  (The current
> 	implementation is just a pair of stubs that call `io__write'
> 	and `io__read'; that works, but it kinda defeats the purpose...)
> 
> 	For backwards compatibility with previous versions of Mercury,
> 	add versions of `io__read_anything' and `io__write_anything'
> 	that just call `io__read' and `io__write' respectively,
> 	but declare them as `pragma obsolete'.
> 
> test/hard_coded/construct.m:
> test/hard_coded/expand.m:
> 	Use `io__print' rather than `io__write' for univs,
> 	so that it doesn't output the `univ(... : type)' wrappers.
> 
> tests/hard_coded/deep_copy_bug.exp:
> tests/hard_coded/construct.exp:
> tests/hard_coded/expand.exp:
> tests/hard_coded/write.exp:
> tests/hard_coded/write_reg1.exp:
> 	Change the expected output to use proper list notation
> 	rather than prefix `.', and to properly quote strings and atoms,
> 	but also to improperly quote equivalences types :-(
> 
> tests/hard_coded/Mmake:
> 	Add a comment explaining that deep_copy_bug.exp, write.exp, and
> 	write_reg1.exp are wrong, due to a bug in mercury_compare_type_info().
> 
> 

This looks fine.

-- 
Thomas Conway               				      conway at cs.mu.oz.au
AD DEUM ET VINUM	  			      Every sword has two edges.



More information about the developers mailing list