[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.
> 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
> - 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'.
> Use `io__print' rather than `io__write' for univs,
> so that it doesn't output the `univ(... : type)' wrappers.
> 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 :-(
> 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