<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Jul 4, 2014 at 10:02 AM, Peter Wang <span dir="ltr"><<a href="mailto:novalazy@gmail.com" target="_blank">novalazy@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="">On Thu, 3 Jul 2014 17:47:21 +1000 (EST), Julien Fischer <<a href="mailto:jfischer@opturion.com">jfischer@opturion.com</a>> wrote:<br>

><br>
> For post-commit review by anyone.<br>
><br>
> Branches: 14.01, master<br>
><br>
> -------------------------------------<br>
><br>
> Fix the behaviour of string.from_char_list in C# and Java grades.<br>
><br>
> The predicate string.from_char_list and string.from_reverse_char_list should<br>
> throw an exception if their input lists contain the null character.  This<br>
> was not done for the C# and Java grades for the former, and the C# grade for<br>
> the latter.<br>
> (This fixes the failure of tests/hard_coded/null_char in the C# grade and<br>
> almost fixes it for the Java grade.)<br>
><br>
> library/string.m:<br>
>       Make the above predicates throw an exception if their input lists<br>
>       contain the null character.<br>
><br>
> NEWS:<br>
>       Announce the above fix.<br>
<br>
</div>I think embedded null characters should be allowed when the underlying<br>
string representation allows it, so this was more a bug in the<br>
documentation.  Obviously, from_char_list and from_reverse_char_list<br>
should have consistent behaviour within the same grade.<br></blockquote><div><br></div><div>I disagree.  I think the standard library predicates should be consistent in their behaviour across all grades and all backends.  (I realise this is more an ideal, rather than something that is completely achievable in reality.)  If nothing else, having variations in behaviour makes the whole thing more difficult to test.</div>
<div><br></div><div>If users of the non-C backends really want to use embedded null characters we can provide that facility some other way (on the understanding that programs that use such a facility won't work with the C backends).</div>
<div><br></div><div>Cheers,</div><div>Julien.</div><div><br></div><div><br></div><div><br></div><div> </div></div></div></div>