Most of the perl installations I use have uselongdouble undefined, but d_longdbl defined. Literally I guess this means that long doubles are not used as the default floating point type, but long doubles are ‘supported’. I’m confused though about what it means for long doubles to be ‘supported’. As far as I know, Perl doesn’t have any mechanism for casting or promoting to the higher precision from the default. How would you get a long double into a Perl program if the default floating point type is a vanilla double.
Most of the perl installations I use have uselongdouble undefined, but d_longdbl defined. Literally
Share
d_longdbl just says that there is support for long doubles in the environment that built perl.
This results in the C macro HAS_LONG_DOUBLE being set, which is a prerequisite for USE_LONG_DOUBLE and enables the L and ll s/printf modifiers.
(It is also available to XS modules, which are free to change behavior based on it.)