In perl.git, the branch blead has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/8f5839a98a66edafefd2ffd3056e5e3fc64e1d27?hp=ea06156217bce6b0cb71e6b0aebf6fd3cbe7a721>

- Log -----------------------------------------------------------------
commit 8f5839a98a66edafefd2ffd3056e5e3fc64e1d27
Author: Daniel Dragan <[email protected]>
Date:   Tue Oct 7 02:47:15 2014 -0400

    improve and reword README.win32

M       README.win32

commit a3463d96fc98ef9fd9615e36862cda5b810558e6
Author: Daniel Dragan <[email protected]>
Date:   Tue Oct 7 01:44:44 2014 -0400

    fix op/infnan.t failures on VC 6
    
    fixes 2 failures, first is a fatal error, sceond is a not ok
    -----
    ok 460 - abs(NaN) is NaN
    ok 461 - int(NaN) is NaN
    Can't take sqrt of NaN at op/infnan.t line 319.
    C:\perl521\srcvc6\t>
    -----
    ok 465 - sin(NaN) is NaN
    not ok 466 - rand(NaN) is NaN
    # Failed test 466 - rand(NaN) is NaN at op/infnan.t line 331
    #      got "0.20653527722801"
    # expected "NaN"
    ok 467 - sin(9**9**9) is NaN
    -----

M       pp.c
-----------------------------------------------------------------------

Summary of changes:
 README.win32 | 40 +++++++++++++++++++++++++++++++++-------
 pp.c         | 10 +++++++++-
 2 files changed, 42 insertions(+), 8 deletions(-)

diff --git a/README.win32 b/README.win32
index 23d3ed1..a0d1702 100644
--- a/README.win32
+++ b/README.win32
@@ -120,10 +120,20 @@ build usually works in this circumstance, but some tests 
will fail.
 
 =item Microsoft Visual C++
 
-The nmake that comes with Visual C++ will suffice for building.
-You will need to run the VCVARS32.BAT file, usually found somewhere
-like C:\Program Files\Microsoft Visual Studio\VC98\Bin.
-This will set your build environment.
+The nmake that comes with Visual C++ will suffice for building. Visual C
+requires that certain things be set up in the console before Visual C will
+sucessfully run. To make a console box be able to run the C compiler, you will
+need to beforehand, run the C<vcvars32.bat> file to compile for x86-32 and for
+x86-64 C<vcvarsall.bat x64> or C<vcvarsamd64.bat>. On a typical install of a
+Microsoft C compiler product, these batch files will already be in your C<PATH>
+environment variable so you may just type them without an absolute path into
+your console. If you need to find the absolute path to the batch file, it is
+usually found somewhere like C:\Program Files\Microsoft Visual Studio\VC98\Bin.
+With some newer Micrsoft C products (released after ~2004), the installer will
+put a shortcut in the start menu to launch a new console window with the
+console already set up for your target architecture (x86-32 or x86-64 or IA64).
+With the newer compilers, you may also use the older batch files if you choose
+so.
 
 You can also use dmake to build using Visual C++; provided, however,
 you set OSRELEASE to "microsft" (or whatever the directory name
@@ -387,6 +397,13 @@ perl521.dll at the perl toplevel, and various other 
extension dll's
 under the lib\auto directory.  If the build fails for any reason, make
 sure you have done the previous steps correctly.
 
+If you are advanced enough with building C code, here is a suggestion to speed
+up building perl, and the later C<make test>. Try to keep your PATH 
enviromental
+variable with the least number of folders possible (remember to keep your C
+compiler's folders there). C<C:\WINDOWS\system32> or C<C:\WINNT\system32>
+depending on your OS version should be first folder in PATH, since "cmd.exe"
+is the most commonly launched program during the build and later testing.
+
 =back
 
 =head2 Testing Perl on Windows
@@ -588,7 +605,7 @@ Look in L<http://www.cpan.org/> for more information on 
CPAN.
 
 Note that not all of the extensions available from CPAN may work
 in the Windows environment; you should check the information at
-L<http://testers.cpan.org/> before investing too much effort into
+L<http://www.cpantesters.org/> before investing too much effort into
 porting modules that don't readily build.
 
 Most extensions (whether they require a C compiler or not) can
@@ -632,7 +649,8 @@ edit Config.pm to fix it.
 
 If a module implements XSUBs, you will need one of the supported
 C compilers.  You must make sure you have set up the environment for
-the compiler for command-line compilation.
+the compiler for command-line compilation before running C<perl Makefile.PL>
+or any invocation of make.
 
 If a module does not build for some reason, look carefully for
 why it failed, and report problems to the module author.  If
@@ -846,6 +864,14 @@ updating it). The build does complete with
 
 but that may be just luck. Other AntiVirus software may have similar issues.
 
+A git GUI shell extension for Windows such as TortoiseGit will cause the build
+and later C<make test> to run much slower since every file is checked for its
+git status as soon as it is created and/or modified. TortoiseGit doesn't cause
+any test failures or build problems unlike the antivirus software described
+above, but it does cause similar slowness. It is suggested to use Task Manager
+to look for background processes which use high CPU amounts during the building
+process.
+
 Some of the built-in functions do not act exactly as documented in
 L<perlfunc>, and a few are not implemented at all.  To avoid
 surprises, particularly if you have had prior exposure to Perl
@@ -915,6 +941,6 @@ Win9x support was added in 5.6 (Benjamin Stuhl).
 
 Support for 64-bit Windows added in 5.8 (ActiveState Corp).
 
-Last updated: 22 October 2013
+Last updated: 07 October 2014
 
 =cut
diff --git a/pp.c b/pp.c
index 58169cb..c14eb3a 100644
--- a/pp.c
+++ b/pp.c
@@ -2717,7 +2717,11 @@ PP(pp_sin)
       const NV value = SvNV_nomg(arg);
       NV result = NV_NAN;
       if (neg_report) { /* log or sqrt */
-         if (op_type == OP_LOG ? (value <= 0.0) : (value < 0.0)) {
+         if (
+#if defined(NAN_COMPARE_BROKEN) && defined(Perl_isnan)
+             ! Perl_isnan(value) &&
+#endif
+             (op_type == OP_LOG ? (value <= 0.0) : (value < 0.0))) {
              SET_NUMERIC_STANDARD();
              /* diag_listed_as: Can't take log of %g */
              DIE(aTHX_ "Can't take %s of %"NVgf, neg_report, value);
@@ -2768,7 +2772,11 @@ PP(pp_rand)
                value = SvNV(sv);
        }
     /* 1 of 2 things can be carried through SvNV, SP or TARG, SP was carried */
+#if defined(NAN_COMPARE_BROKEN) && defined(Perl_isnan)
+       if (! Perl_isnan(value) && value == 0.0)
+#else
        if (value == 0.0)
+#endif
            value = 1.0;
        {
            dTARGET;

--
Perl5 Master Repository

Reply via email to