Boost logo

Boost :

Subject: Re: [boost] [review] Review of Nowide (Unicode) starts today
From: Norbert Wenzel (norbert.wenzel.lists_at_[hidden])
Date: 2017-06-20 21:14:09


This is my review of the proposed Boost.Nowide library.

On 06/12/2017 06:20 AM, Frédéric Bron via Boost wrote:
> - What is your evaluation of the design?
I had no troubles finding my way. Most APIs are already well known as
they resemble APIs from the standard library. I understand (after
reading the discussions on this list) why Nowide does not convert all
input to a common encoding on all platforms but only deals with wide
strings on Windows. It was a bit of a surprise at first, so this design
decision should be documented more prominently as others have already
pointed out.
In general I like the idea that only valid Unicode is accepted as input,
although I had an issue with invalid encoding written to nowide::cout
that set the stream's failbit and ignored all subsequent output. The
author was already aware of that issue and said invalid characters will
be replaced with U+FFFD (invalid character) after the review. I prefer
this solution to stopping all output after any failure.

> - What is your evaluation of the implementationI did not look at the implementation. It worked as expected/documented
when I tested the library.

> - What is your evaluation of the documentation?
It is enough to start working with the library. I would like to see more
clearly for every function when and how input strings are converted to a
different encoding and what happens in case of a conversion error
(exception, failbit of stream is set, invalid character, etc.).

> - What is your evaluation of the potential usefulness of the library?The library is very useful and I intend to use it as a portable
fire-and-forget solution to typical Unicode problems on Windows. I think
it will be a very helpful library especially when porting software from
Posix to Windows, since the library enables dealing with Unicode without
dealing with (and first learning about) the Windows Unicode idiosyncrasies.
As it came up in the discussion, I do not think I ever encountered
non-normalized Unicode file paths on Windows so I do not think the lack
of support for such filepaths is detrimental to the usefulness of this
library.

> - Did you try to use the library? With what compiler? Did you have any > problems?
I tested with MSVC14 and had no technical problems building or using the
library.

> - How much effort did you put into your evaluation? A glance? A quick
> reading? In-depth study?
I read the discussions on the list, the documentation and wrote a small
toy program to test my expected usage of Nowide. All in all I invested
about three hours.

> - Are you knowledgeable about the problem domain?
Somewhat. I had to work around typical Unicode issues on Windows
multiple times, but always stopped when the issue was solved. So my
knowledge is mostly driven by the specific issues I had so far and not
profound.

> - Do you think the library should be accepted as a Boost library?
Yes.

Norbert


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk