Hello Karl, others,

On 2017/05/27 06:15, Karl Williamson via Unicode wrote:
On 05/26/2017 12:22 PM, Ken Whistler wrote:

On 5/26/2017 10:28 AM, Karl Williamson via Unicode wrote:
The link provided about the PRI doesn't lead to the comments.


PRI #121 (August, 2008) pre-dated the practice of keeping all the feedback comments together with the PRI itself in a numbered directory with the name "feedback.html". But the comments were collected together at the time and are accessible here:

http://www.unicode.org/L2/L2008/08282-pubrev.html#pri121

Also there was a separately submitted comment document:

http://www.unicode.org/L2/L2008/08280-pri121-cmt.txt

And the minutes of the pertinent UTC meeting (UTC #116):

http://www.unicode.org/L2/L2008/08253.htm

The minutes simply capture the consensus to adopt Option #2 from PRI #121, and the relevant action items.

I now return the floor to the distinguished disputants to continue litigating history. ;-)

--Ken



The reason this discussion got started was that in December, someone came to me and said the code I support does not follow Unicode best practices, and suggested I need to change, though no ticket (yet) has been filed. I was surprised, and posted a query to this list about what the advantages of the new approach are.

Can you provide a reference to that discussion? I might have missed it in December.

There were a number of replies, but I did not see anything that seemed definitive. After a month, I created a ticket in Unicode and Markus was assigned to research it, and came up with the proposal currently being debated.

Which is to completely reverse the current recommendation in Unicode 9.0. While I agree that this might help you fending off a bug report, it would create chances for bug reports for Ruby, Python3, many if not all Web browsers,...


Looking at the PRI, it seems to me that treating an overlong as a single maximal unit is in the spirit of the wording, if not the fine print.

In standards, the "fine print" matters.

That seems to be borne out by Markus, even with his stake in ICU, supporting option #2.

Well, at http://www.unicode.org/L2/L2008/08282-pubrev.html#pri121, I also supported option 2, with code behind it.

Looking at the comments, I don't see any discussion of the effect of this on overlong treatments. My guess is that the effect change was unintentional.

I agree that it was probably not considered explicitly. But overlongs were disallowed for security reasons, and once the definition of UTF-8 was tightened, "overlongs" essentially did not exist anymore. Essentially, "overlong" is a word like "dragon" or "ghost": Everybody knows what it means, but everybody knows they don't exist.

[Just to be sure, by the above, I don't mean that a sequence such as
C0 B0 cannot appear somewhere in some input. But C0 is not UTF-8 all by itself, and there is no need to see C0 B0 as a (ghost) sequence.]


So I have code that handled overlongs in the only correct way possible when they were acceptable,

No. As long as they were acceptable, they wouldn't have been replaced by an FFFD.

and in the obvious way after they became illegal,

Why? A change was necessary from producing an actual character to producing some number of FFFDs. It may have been easier to produce just a single FFFD, but that depends on how the code was organized.

and now without apparent discussion (which is very much akin to "flimsy reasons"), it suddenly was no longer "best practice".

Not 'now', but almost 9 years ago. And not "without apparent discussion", but with an explicit PRI.

And that change came "rather late in the game". That this escaped notice for years indicates that the specifics of REPLACEMENT CHAR handling don't matter all that much.

I agree. You haven't even yet received a ticket yet.


To cut to the chase, I think Unicode should issue a Corrigendum to the effect that it was never the intent of this change to say that treating overlongs as a single unit isn't best practice. I'm not sure this warrants a full-fledge Corrigendum, though. But I believe the text of the best practices should indicate that treating overlongs as a single unit is just as acceptable as Martin's interpretation.

I'd essentially be fine with that, under the condition that the current recommendation is maintained as a clearly identified recommendation, so that Python3, Ruby, Web standards and browsers, and so on can easily refer to it.

Regards,   Martin.

I believe this is pretty much in line with Shawn's position. Certainly, a discussion of the reasons one might choose one interpretation over another should be included in TUS. That would likely have satisfied my original query, which hence would never have been posted.
.

Reply via email to