On Wed, May 07, 2025 at 04:22:10PM +0100, Anatoly Burakov wrote:
> Remove custom number parser and use C standard library instead. In order to
> keep compatibility with earlier versions of the parser, we have to take
> into account a few quirks:
> 
> - We do not consider "negative" numbers to be valid for anything other than
>   base-10 numbers, whereas C standard library does. We work around that by
>   forcing base-10 when parsing numbers we expect to be negative.

Is it likely to break much in the way of compatibility if we start allowing
negative non-base-10 numbers? If it simplifies our code to allow it, I'd
tend towards doing so unless there is a known case where it might cause
problems.

/Bruce

> - We do not consider numbers such as "+4" to be valid, whereas C standard
>   library does. No one probably relies on this, so we just remove it from
>   our tests, as it is now a valid number.
> - C standard library's strtoull does not do range checks on negative
>   numbers, so we have to parse knowingly-negative numbers as signed. We've
>   already changed this to be the case on account of point 1 from this list,
>   so no biggie.
> - C standard library does not support binary numbers, so we keep around the
>   relevant parts of the custom parser in place to support binary numbers.
> 
> Signed-off-by: Anatoly Burakov <anatoly.bura...@intel.com>
> ---

<snip>

Reply via email to