Re: [PATCH v3 16/30] config: introduce git_config_float()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, May 23, 2024 at 06:02:25AM -0400, Jeff King wrote:
> On Tue, May 21, 2024 at 03:02:29PM -0400, Taylor Blau wrote:
>
> > Future commits will want to parse a floating point value from
> > configuration, but we have no way to parse such a value prior to this
> > patch.
> >
> > The core of the routine is implemented in git_parse_float(). Unlike
> > git_parse_unsigned() and git_parse_signed(), however, the function
> > implemented here only works on type "float", and not related types like
> > "double", or "long double".
> >
> > This is because "double" and "long double" use different functions to
> > convert from ASCII strings to floating point values (strtod() and
> > strtold(), respectively). Likewise, there is no pointer type that can
> > assign to any of these values (except for "void *"), so the only way to
> > define this trio of functions would be with a macro expansion that is
> > parameterized over the floating point type and conversion function.
>
> I agree it doesn't make sense to support both. But if we have to choose
> between the two, should we just use "double"?

Yeah, I share your feeling that there is no great need to support
double-precision floats here, but there's also no reason to artificially
limit ourselves to single-precision ones, either.

> Regarding using non-integers at all, I do wonder how much we need them.
> We've usually stuck to integers in other spots, even if it means a sort
> of pseudo-fixed-point (e.g., rename scores). Looking ahead, you're using
> these for the power-series knobs. I guess it would be pretty confusing
> to try to force integers there. I dunno. Not really an objection, but I
> just wonder if it was something you considered.

I had originally written the series that way, but Patrick suggested that
I use floating point numbers instead ;-).

Thanks,
Taylor




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux