| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
| |
The absence of these flags has never previously caused a problem
for running the probes, but on OpenVMS x86, warnings about long
symbols cause the probes to fail, probably because those symbols
are not getting optimized out as early in the new compiler. This
in turn causes the build to fail due to defining a homegrown
clockid_t which conflicts with the system version. So add the
flags that specify symbol handling (as well as everything else
being used to build Perl).
|
|
|
|
|
|
|
|
|
|
|
| |
On a system with some sort of filesystem monitor such as a virus
scanner the atime of the file can be modified by that monitor
causing the test to fail.
Testers can set PERL_FILE_ATIME_CHANGES to a true value to avoid
comparing atime between the stat() and lstat() calls.
Fixes #19321
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Silences the following warning:
In file included from HiRes.xs:23:
./ppport.h:14832:1: warning: unused function 'DPPP_my_ck_warner' [-Wunused-function]
DPPP_(my_ck_warner)(pTHX_ U32 err, const char *pat, ...)
^
./ppport.h:11568:21: note: expanded from macro 'DPPP_'
#define DPPP_(name) DPPP_CAT2(DPPP_NAMESPACE, name)
^
./ppport.h:11567:24: note: expanded from macro 'DPPP_CAT2'
#define DPPP_CAT2(x,y) CAT2(x,y)
^
../../config.h:1387:19: note: expanded from macro 'CAT2'
#define CAT2(a,b) PeRl_CaTiFy(a,b)
^
../../config.h:1385:27: note: expanded from macro 'PeRl_CaTiFy'
#define PeRl_CaTiFy(a, b) a ## b
^
<scratch space>:34:1: note: expanded from here
DPPP_my_ck_warner
^
1 warning generated.
|
|
|
|
| |
By always including `ppport.h`, this simplifies both XS code and tooling around it.
|
|
|
|
| |
A variable was declared twice; remove the redundant one
|
| |
|
|
|
|
|
|
|
| |
The darwin hints file ensures this is set, but Apple appears to have
removed it for the system perl.
This prevented the emulation code for darwin from being compiled.
|
|
|
|
|
|
|
|
| |
The system compiler on recent-ish darwin doesn't appear to find the
system perl headers when the CORE directory is supplied with -I, they
need the directory to be specified by -iwithsysroot.
Logic adapted from ExtUtils::MakeMaker.
|
|
|
|
|
| |
GIMME_V has been around since 5.003_96. It was already used in some
places, this just makes it consistent.
|
| |
|
|
|
|
|
|
| |
Convert 'print' to 'Test::More::note' in stat.t and t/Watchdog.pm.
Require Test More 0.84 to get 'note' function per feedback from Tony
Cook in https://github.com/Perl/perl5/pull/19322.
|
|
|
|
| |
for the Makefile.PL change
|
|
|
|
|
|
|
|
|
|
|
| |
The Time::HiRes Makefile.PL checks %Config for a variety of symbols
to attempt to probe for them without having to perform its own
compilation/run to probe for them. This is useful for cross
compilation, since the Time::HiRes probes don't appear to handle
probing on a remote system as the Configure probes do.
A few of these probes didn't set the appropriate -DTIME_HIRES_XXX
symbol on the compilation command-line, fix that.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
MinGW runtime version 3.21 added a definition of mkstemp(), so requires a
fix similar to f33b2f5852 for MinGW-w64's runtime 4.0 onwards.
Based on a patch by Dan Collins on GH#15446.
This commit also tweaks 43b3b04375, having discovered that mingw runtime
3.22 also contains a definition of timespec.
For me, this fixes the build with my mingw.org 5.3.0 compiler using any of
the mingw runtimes 3.21, 3.22.4 or 5.0 without breaking older versions such
as 4.9.3 with the 3.20 runtime (or even with the withdrawn 4.0.3 runtime,
which had __MINGW32_MAJOR/MINOR_VERSION set to 3.20 whilst adding new a
__MINGW_MAJOR/MINOR_VERSION set to 4.0).
However, 6.3.0 and 7.3.0 have other issues when compiling win32sck.c, while
8.2.0 and 9.2.0 have other issues again when compiling win32.c. See
GH#18510 for more details.
Also, C++ mode builds with some MinGW/MinGW-w64 compilers are still broken,
as documented in 8a217c9aa7. See GH#16459 for more details.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The Time::HiRes build was broken by 1d96b9c90e and requires a fix similar
to daacfc6568 for mingw runtimes < 5.0. A definition of timespec was added
in mingwrt-5.0.
The compilers from mingw-w64 (which can be singled out by their definition
of __MINGW64_VERSION_MAJOR) were not affected since they all have timespec
defined anyway.
For me, this fixes the build with my mingw.org compilers from 3.4.5 to
4.8.1 inclusive. These are using runtimes 3.15.2 to 4.0.3 (which actually
reports itself as 3.20.0!) inclusive.
Note that builds with mingw.org compilers using mingwrt >= 5.0 are still
broken due to a different problem involving mkstemp(), as documented in
8a217c9aa7. See GH#15446 for more details.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit 9eebd4ca7bb8610f51a27d96c12e9b1676958d55.
It turns out that probing for the existence of functions also
only generates informational messages (and thus a successful
exit status) when the function is missing, e.g.:
ret = clock_nanosleep(CLOCK_REALTIME, 0, &ts1, &ts2);
..........^
%CC-I-IMPLICITFUNC, In this statement, the identifier "clock_nanosleep" is implicitly declared as a function.
at line number 13 in file D0:[craig.blead.dist.Time-HiRes]try.c;1
And we aren't linking in Time::HiRes's probes on VMS since making
that work both in and out of core in a general way is no small
feat.
So we go back to requiring no compiler messages in the test
compiles.
|
|
|
|
|
|
|
|
|
|
|
| |
The probe was checking the severity bits of the compiler exit
status and requiring the value to be 1, which is what they are
for SS$_NORMAL. But actually any true (odd) value is considered
successful. So, for example, if the compile succeeds but emits
"informational messages" that do not rise to the level of warnings
or errors, the severity bits have a value of 3, not 1. The probe
should not fail (and end up halting the build) in this case, so
allow any successful value.
|
| |
|
|
|
|
|
|
|
|
| |
There are a number of files excluded using gitignore rules that are
included in the repository. This can lead to confusion if something
other than git tries to read the ignore files.
Add rules to the gitignore files so that these files won't be ignored.
|
|
|
|
| |
based on testing
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
This code became irrelevant in 1996.
See https://github.com/Perl/perl5/pull/17658#pullrequestreview-377796612
|
|
|
|
| |
This had its own copy of some macros that are now in core.
|
|
|
|
|
| |
Mostly in comments and docs, but some in diagnostic messages and one
case of 'or die die'.
|
| |
|
|
|
|
|
|
|
| |
1d96b9c90e199a42267d0142b9d623350a183412 broke it. It turns out
that Visual C++ 2013 and older don't have the timespec structure.
[perl #134447]
|
| |
|
|
|
|
|
|
|
| |
To make the implementation easier, the guts of gettimeofday() were
moved to a separate function named GetSystemTimePreciseAsFileTime().
[perl #134398]
|
| |
|
|
|
|
|
|
| |
It was fixed in Devel::PPPort 3.13_02.
[perl #134288]
|
|
|
|
|
|
| |
Perl dropped MacOS classic support ages ago.
[perl #134288]
|
|
|
|
|
|
|
| |
Both Makefile.PL and HiRes.pm contain "use 5.006", so it was dead
code anyway.
[perl #134288]
|
|
|
|
|
|
|
|
|
|
|
| |
The indendation style now (roughly) matches what was specified
in the style guide in perlhack.
This commit doesn't contain any functional changes. If you're
seeing it in "git blame" output, try using -w switch, it will
hide whitespace-only changes.
[perl #134288]
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1.9760 is now released to CPAN to match its status
in blead.
This commit is synchronizing the Changelog, by reintroducing
some history which were lost during previous reverts.
Any new change since cf8375d should now go to the next release 1.9761.
A '{{NEXT}}' entry was added to the Changes for tracking these changes.
Note that a Dual-Life git repository is now available for Time-HiRes.
Upstream-URL: https://github.com/Dual-Life/Time-HiRes
|
|
|
|
| |
For example, in http://perl5.test-smoke.org/report/69659
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When passed a floating point atime/mtime value, T::HR::utime()
was converting it into two longs: secs and nsec. But the nanosec value
was calculated using a final NV to long cast, which truncates any
fractional part rather than rounding to nearest. Use a 0.5 addition to
force rounding.
This was manifesting as a test in lib/File/Copy.t failing to preserve
the same mtime after a couple of round trips with utime() and stat().
In particular, the test was attempting to set an mtime to the literal
floating-point value
1000000000.12345
This value can't be represented exactly as an NV, so was actually
(under -Dquadmath)
1000000000.1234499999999999999999999568211720247320
which was (using truncation) being converted into the two sec/nsec
longs:
1000000000, 123449999
After this commit, it instead correctly gets converted to
1000000000, 123450000
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This test script sets a repeating interval timer going, and after 4
'ticks' (SIGVTALRM), disables the timer (by setting it to zero).
The main loop which does CPU burning, does a getitmer() every now and
again, and when the value is zero, assumes the signal handler has
disabled the timer, and so finishes.
The trouble was that it was checking the 'time left', which can reach
zero because the interval timer has counted down to zero, and the signal
handler is about to be called, but the interval hasn't been reset back
to 0.4s yet.
i.e. the code doesn't distinguish between "timer disabled" and "timer
just reached zero".
In that scenario, the cleanup code in the test script disables the
SIGVTALRM handler while the timer is still active, and so the process
gets killed if another signal is raised.
This commit changes the test to check the second value returned by
getitmer() for being zero rather than the first - the second being the
repeat interval, whichb is always 0.4 until the timer is disabled.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
These changes are towards a goal of removing mkppport one day as part of
a optimization for parallel building (less deps needed before XS
extensions are built). This is a follow-on patch to the dummy ppport.h
trick in Perl #128438 ticket that had issues.
-for Time::HiRes the DEFINE() in Makefile.PL can't be be in sub init()
because that sub isn't called on windows
-SLU has not needed ppport.h in core since commit 5e99e069f5
aka 1.47 import from cpan
-Cwd used to be a no ppport.h since 3.25, in 3.30_02 the code (Cwd.xs) was
deleted/broken under commit 9bc94e3dae, or changes file
"Remove more special logic required for core perl.". Put back the Cwd.xs
code and remove Cwd from the ppport.h list
|
| |
|
|
|
|
|
| |
Tag Porting/Maintainers.pl so it is clear that a release to CPAN is
outstanding.
|
|
|
|
|
|
|
| |
This reverts commit 13813507385079199d99d90776780dcd653f6919.
On recommendation of the Author, we are reverting these changes for
now in order to stabilize blead.
|