[SC22WG14.29912] alx-0008 - Standardize strtoi(3) and strtou(3) from NetBSD

Alejandro Colomar alx at kernel.org
Tue Mar 18 21:35:47 UTC 2025


Hi Joseph,

On Tue, Mar 18, 2025 at 09:11:58PM +0000, Joseph Myers wrote:
> > > >     7.24.2  Numeric conversion functions
> > > > 	New section _before_ 7.24.2.2 (The atof function).
> > > 
> > > You're missing corresponding <wchar.h> functions.
> > 
> > As with other proposals, I prefer leaving it for a different paper.
> > I'm not an expert in wchar stuff.
> 
> I strongly disapprove of this approach to making standard proposals; if 
> everyone does this, it's a recipe for turning the standard into an 
> inconsistent, non-orthogonal mess, where each feature only has sensible 
> interactions with the subset of other features the proposer of the new 
> feature was interested in at the time they added it.
> 
> As far as I'm concerned, it's the responsibility of the person making a 
> proposal to produce a complete proposal with properly orthogonal 
> interaction with other features.  I objected to the unsuccessful attempt 
> to define complex literals that didn't allow for Annex H types, and I 
> object likewise to randomly proposing functions, for a family that has 
> corresponding <wchar.h> functions, without the corresponding <wchar.h> 
> versions.  If a proposal is to add some non-orthogonal feature, there 
> needs to be a good and clearly stated reason why, *as part of the overall 
> language and library design*, it makes sense that way.  That is, not 
> something relating to your interest or expertise in <wchar.h> functions, 
> but something about the technical content of the standard that makes 
> having some strto* functions with corresponding wcsto* functions and these 
> ones without corresponding wcsto* functions into a logically coherent 
> design.

Okay, let's try with some more rationale:

NetBSD has strtoi/u(3), but not wcstoi/u(3), AFAICS.  This is prior art.

I don't feel qualified to propose a function for a family (wchar.h)
which I have never used myself, nor implemented.

I think it would make sense to present two papers at the same time, one
proposing the wchar.h variant, and one presenting the normal variant.  I
just don't feel qualified to decide whether we want a wchar_t variant,
nor to specify it myself.

On the other hand, I feel qualified to propose strtoi/u(3), and think it
is quite necessary in the standard, regardless of what happens to the
wchar_t variant.

If someone who is an expert in wide strings wants to work with me on the
specification of a wide variant, I'm happy to help.  But I can't do that
myself alone.

> (I don't care about Annex K myself - but I still made sure that my recent 
> report of issue 1012 included the relevant Annex K edits.)
> 
> > > I'm also concerned that the names sound like int / unsigned int analogues 
> > > of strtol, but aren't.
> > 
> > I don't get to choose the name.  Anyway, my plans are to erradicate
> 
> You do get to choose the name when making a new proposal.  If an existing 
> name is defective through suggesting an incorrect analogy, that would be a 
> reasonable basis to choose a new one.

Yeah, I could choose it, if I had a better one.  I did that for the
case of Plan9's seprint(2), which I called aprintf().  However, in this
case, I don't have an idea for a significantly better name, and
considering that the number of arguments makes accidents impossible,
there aren't strong reasons to deviate from prior art.


Have a lovely night!
Alex

-- 
<https://www.alejandro-colomar.es/>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/libbsd/attachments/20250318/3b5e02b8/attachment.sig>


More information about the libbsd mailing list