| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
locale changes in 2014 broke WinCE build. localconv() doesn't exist on
WinCE. locale.h from celib has to be included for
setlocale()/xcesetlocale() and LC_* constants.
|
|
|
|
|
|
|
|
|
| |
This prevents perl recursing infinitely when an overloaded object is
assigned to $DB::single, $DB::trace or $DB::signal
This is done by referencing their values as IVs instead of as SVs in
dbstate, and by adding magic to those variables so that assignments to
the scalars update the PL_DBcontrol array.
|
|
|
|
| |
There seems to be no way around needing to select the socket API early.
|
|
|
|
|
| |
Declare it as early as possible. The earlier position lead into
getting a mix of different APIs with mismatching sockadddrs.
|
|
|
|
|
|
|
| |
"my" variable &foo::bar can't be in a package at - line 2, near "my sub foo::bar"
It should say ‘subroutine’, not ‘variable’. When I implemented lexi-
cal subs, I thought I caught all these, must I missed this one.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Introduce a new opcode class, METHOP, which will hold class/method related
info needed at runtime to improve performance of class/object method
calls, then change OP_METHOD and OP_METHOD_NAMED from being UNOP/SVOP to
being METHOP.
Note that because OP_METHOD is a UNOP with an op_first, while
OP_METHOD_NAMED is an SVOP, the first field of the METHOP structure
is a union holding either op_first or op_sv. This was seen as less messy
than having to introduce two new op classes.
The new op class's character is '.'
Nothing has changed in functionality and/or performance by this commit.
It just introduces new structure which will be extended with extra
fields and used in later commits.
Added METHOP constructors:
- newMETHOP() for method ops with dynamic method names.
The only optype for this op is OP_METHOD.
- newMETHOP_named() for method ops with constant method names.
Optypes for this op are: OP_METHOD_NAMED (currently) and (later)
OP_METHOD_SUPER, OP_METHOD_REDIR, OP_METHOD_NEXT, OP_METHOD_NEXTCAN,
OP_METHOD_MAYBENEXT
(This commit includes fixups by davem)
|
|
|
|
|
|
|
| |
In Tru64 the cc -ieee enables the IEEE math but disables traps.
We need to reenable the "invalid" trap because otherwise generation
of NaN values leaves the IEEE fp flags in bad state, leaving any further
fp ops behaving strangely (Inf + 1 resulting in zero, for example).
|
|
|
|
| |
Too much Microsoft compatibility?
|
| |
|
|
|
|
|
|
|
| |
So that it works with NaN, by not using the comparison version of
Perl_isinf. A little messy but since win32/win32.h is included so
late in perl.h, cannot be done earlier with the other Perl_isinf
logic. Partially reverts 128eeacb.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PERL_DEBUG_READONLY_OPS is designed to catch modifications of op trees
at run time, to make sure that perl is doing things safely under
threads. (Op trees are shared between threads.)
On non-threaded perls, ops are modified regularly, which is perfectly
safe, so PERL_DEBUG_READONLY_OPS does not make any sense, and is guar-
anteed to crash.
Forcing a compilation error with cpp directives makes it obvious that
it is not intended for this PERL_DEBUG_READONLY_OPS mode to work with-
out USE_ITHREADS.
|
| |
|
| |
|
|
|
|
| |
Otherwise we shadow e.g. the Win32 _isfinite.
|
|
|
|
|
|
| |
Apparently VS 2003 smartly optimizes (HUGE_VAL-HUGE_VAL) into zero,
so using that for NaN was quite a disaster. Let instead Win32 fall
thru to the __PL_nan_u option. (HUGE_VAL for Inf is fine.)
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Comparing to decimal float constants feels unclean.
|
|
|
|
| |
(Whether the macros are safe for long doubles, is complicated.)
|
| |
|
|
|
|
| |
(Also correct uses of HAS_C99.)
|
| |
|
| |
|
|
|
|
|
| |
(We've had emulation for broken modfl before,
but it used aintl, which is not that common.)
|
| |
|
|
|
|
|
| |
This is the second-to-last fallback. The last one uses explicit
1/0.0 and 0/0.0 which may cause consternation with some compilers.
|
| |
|
|
|
|
| |
The values might even be uninitialized in the case of PERL_UNUSED_VAR.
|
|
|
|
| |
(Until now the non-long-double versions have been called on long doubles.)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It appears to have an extra closing parenthesis, which means any
use of it fails to compile. Ouch:
$ type abby_normal.c
#include <fp.h>
int main() {
double pi = 3.414;
int normality = isnormal(pi);
}
$ cc/float=ieee abby_normal
int normality = isnormal(pi);
....................^
%CC-E-NOSEMI, Missing ";".
at line number 4 in file DSA23:[TEST]abby_normal.c;1
So don't use it but rather fall back to a solution based on
fp_classify.
Of course it's supposed to be in math.h, not fp.h, but I digress.
|
| |
|
|
|
|
| |
(We have so many fallbacks that some of them probably never deploy.)
|
|
|
|
|
|
|
|
| |
Because some platforms (like HP-UX 10.*) have HUGE_VAL as DBL_MAX,
which, while large, is not quite the infinity. So have infinity
own our very own.
Similarly for NV_NAN.
|
|
|
|
|
| |
We have to include <fp.h> as well for the macros we're testing
for to be defined.
|
| |
|
|
|
|
|
|
| |
Try avoiding false detections by guarding against an interface falsely
matching a set of return values. This can still go wrong if <math.h>
declares several sets. Would really need an array of Configure tests.
|
| |
|
|
|
|
|
|
| |
It was defined as "C version high enough, but not VMS",
but used as "does it have intmax_t". Now that we have
I_STDINT, we can do better.
|
|
|
|
| |
Moves the C99 logic from sv.c (?) to perl.h.
|
| |
|
|
|
|
|
|
| |
Most importantly, try C99 fpclassify() first.
Use fp_classify() and fp_classl().
|
|
|
|
|
|
|
| |
Too many almost similar interfaces.
Most importantly go for isinf() and isnan() if available,
instead of going for the labyrinth of *fp*class* interfaces.
|
|
|
|
| |
It has some macros that really should be in math.h according to C99.
|
| |
|
|
|
|
|
|
| |
Not that much effect since strtod is now only used to parse inf/nan
and then only if NV_INF + NV_NAN are missing. (Earlier strtod()
returned always the double inf/nan, not the long double inf/nan.)
|
| |
|
| |
|
|
|
|
| |
(At least, if one believes the Oracle of Google.)
|