in reply to Re^8: Perl 5.12.0 has been released! (exetype problem 64-bit)
in thread Perl 5.12.0 has been released!

Still ... it's strange that this problem arose.

I suspect the heart of it lies behind one of the bazillion of the following warning that are produced by the build.

The optimist in me once hoped that it would require a few typedef changes in the header files, but these warnings are so pervasive that a patch to fix them up would probably affect 10% of the lines in the entire codebase--extensions and all :(

warning C4267: 'function' : conversion from 'size_t' to 'I32', possibl +e loss of data warning C4267: '=' : conversion from 'size_t' to 'int', possible loss +of data warning C4267: 'function' : conversion from 'size_t' to 'I32', possibl +e loss of data warning C4244: 'initializing' : conversion from 'IV' to 'const int', p +ossible loss of data warning C4267: 'function' : conversion from 'size_t' to 'int', possibl +e loss of data warning C4244: 'initializing' : conversion from 'IV' to 'const int', p +ossible loss of data warning C4267: 'function' : conversion from 'size_t' to 'unsigned int' +, possible loss of data warning C4267: '=' : conversion from 'size_t' to 'int', possible loss +of data warning C4244: 'function' : conversion from '__int64' to 'int', possib +le loss of data warning C4267: 'function' : conversion from 'size_t' to 'U32', possibl +e loss of data warning C4244: 'initializing' : conversion from '__int64' to 'int', po +ssible loss of data warning C4244: '=' : conversion from '__int64' to 'int', possible loss + of data warning C4267: 'function' : conversion from 'size_t' to 'I32', possibl +e loss of data warning C4244: 'initializing' : conversion from '__int64' to 'int', po +ssible loss of data warning C4244: '=' : conversion from 'IV' to 'I32', possible loss of d +ata warning C4244: 'initializing' : conversion from '__int64' to 'int', po +ssible loss of data warning C4146: unary minus operator applied to unsigned type, result s +till unsigned warning C4244: 'initializing' : conversion from '__int64' to 'int', po +ssible loss of data warning C4244: 'initializing' : conversion from 'IV' to 'I32', possibl +e loss of data warning C4244: 'initializing' : conversion from '__int64' to 'int', po +ssible loss of data warning C4244: 'function' : conversion from '__int64' to 'I32', possib +le loss of data warning C4267: '=' : conversion from 'size_t' to 'I32', possible loss +of data warning C4244: 'initializing' : conversion from '__int64' to 'int', po +ssible loss of data warning C4267: '=' : conversion from 'size_t' to 'I32', possible loss +of data warning C4267: '=' : conversion from 'size_t' to 'int', possible loss +of data warning C4244: 'initializing' : conversion from '__int64' to 'int', po +ssible loss of data warning C4267: '=' : conversion from 'size_t' to 'I32', possible loss +of data warning C4244: '=' : conversion from '__int64' to 'int', possible loss + of data warning C4244: 'initializing' : conversion from '__int64' to 'int', po +ssible loss of data warning C4244: 'function' : conversion from '__int64' to 'I32', possib +le loss of data warning C4244: 'initializing' : conversion from '__int64' to 'int', po +ssible loss of data warning C4267: 'initializing' : conversion from 'size_t' to 'I32', pos +sible loss of data warning C4244: 'initializing' : conversion from '__int64' to 'int', po +ssible loss of data warning C4267: '=' : conversion from 'size_t' to 'I32', possible loss +of data warning C4244: 'initializing' : conversion from '__int64' to 'int', po +ssible loss of data warning C4267: '=' : conversion from 'size_t' to 'I32', possible loss +of data warning C4244: 'initializing' : conversion from '__int64' to 'int', po +ssible loss of data warning C4244: 'function' : conversion from 'IV' to 'I32', possible lo +ss of data warning C4244: '=' : conversion from 'IV' to 'int', possible loss of d +ata warning C4244: 'function' : conversion from 'IV' to 'I32', possible lo +ss of data warning C4244: '=' : conversion from 'IV' to 'I32', possible loss of d +ata warning C4244: '=' : conversion from '__int64' to 'int', possible loss + of data warning C4244: 'function' : conversion from 'UV' to 'int', possible lo +ss of data warning C4244: 'function' : conversion from 'IV' to 'unsigned int', po +ssible loss of data warning C4244: 'function' : conversion from 'UV' to 'unsigned long', p +ossible loss of data warning C4267: '=' : conversion from 'size_t' to 'int', possible loss +of data warning C4267: 'initializing' : conversion from 'size_t' to 'int', pos +sible loss of data warning C4267: '=' : conversion from 'size_t' to 'int', possible loss +of data warning C4244: 'initializing' : conversion from 'UV' to 'DWORD', possi +ble loss of data warning C4244: '=' : conversion from 'UV' to 'DWORD', possible loss of + data warning C4267: '=' : conversion from 'size_t' to 'DWORD', possible los +s of data warning C4244: '=' : conversion from 'UV' to 'DWORD', possible loss of + data warning C4244: 'initializing' : conversion from 'UV' to 'DWORD', possi +ble loss of data warning C4267: '=' : conversion from 'size_t' to 'DWORD', possible los +s of data warning C4244: 'initializing' : conversion from 'UV' to 'DWORD', possi +ble loss of data warning C4267: '=' : conversion from 'size_t' to 'DWORD', possible los +s of data warning C4244: 'initializing' : conversion from 'UV' to 'DWORD', possi +ble loss of data warning C4267: '=' : conversion from 'size_t' to 'DWORD', possible los +s of data warning C4244: 'initializing' : conversion from 'UV' to 'DWORD', possi +ble loss of data warning C4267: '=' : conversion from 'size_t' to 'DWORD', possible los +s of data warning C4244: 'initializing' : conversion from 'UV' to 'DWORD', possi +ble loss of data warning C4267: '=' : conversion from 'size_t' to 'DWORD', possible los +s of data warning C4244: 'initializing' : conversion from 'UV' to 'DWORD', possi +ble loss of data warning C4267: '=' : conversion from 'size_t' to 'DWORD', possible los +s of data warning C4244: 'initializing' : conversion from 'UV' to 'DWORD', possi +ble loss of data warning C4244: '=' : conversion from 'UV' to 'DWORD', possible loss of + data warning C4267: '=' : conversion from 'size_t' to 'DWORD', possible los +s of data warning C4244: '=' : conversion from 'UV' to 'DWORD', possible loss of + data warning C4267: '=' : conversion from 'size_t' to 'DWORD', possible los +s of data warning C4244: '=' : conversion from 'UV' to 'DWORD', possible loss of + data warning C4244: '=' : conversion from 'IV' to 'LONG', possible loss of +data warning C4244: 'initializing' : conversion from 'UV' to 'DWORD', possi +ble loss of data warning C4244: '=' : conversion from 'UV' to 'DWORD', possible loss of + data warning C4267: '=' : conversion from 'size_t' to 'DWORD', possible los +s of data warning C4244: '=' : conversion from 'IV' to 'int', possible loss of d +ata warning C4244: '=' : conversion from 'UV' to 'U32', possible loss of d +ata warning C4267: 'initializing' : conversion from 'size_t' to 'I32', pos +sible loss of data warning C4244: 'initializing' : conversion from 'UV' to 'U32', possibl +e loss of data warning C4267: 'initializing' : conversion from 'size_t' to 'I32', pos +sible loss of data warning C4244: 'initializing' : conversion from 'UV' to 'U32', possibl +e loss of data warning C4267: 'initializing' : conversion from 'size_t' to 'I32', pos +sible loss of data warning C4244: 'initializing' : conversion from 'UV' to 'U32', possibl +e loss of data warning C4267: 'function' : conversion from 'size_t' to 'I32', possibl +e loss of data warning C4244: 'function' : conversion from 'PADOFFSET' to 'I32', poss +ible loss of data warning C4244: 'initializing' : conversion from '__int64' to 'I32', po +ssible loss of data warning C4244: '=' : conversion from '__int64' to 'I32', possible loss + of data warning C4244: 'initializing' : conversion from '__int64' to 'I32', po +ssible loss of data warning C4244: 'initializing' : conversion from 'IV' to 'const I32', p +ossible loss of data warning C4244: '=' : conversion from '__int64' to 'I32', possible loss + of data warning C4267: 'function' : conversion from 'size_t' to 'I32', possibl +e loss of data warning C4267: '=' : conversion from 'size_t' to 'I32', possible loss +of data warning C4267: 'initializing' : conversion from 'size_t' to 'const I32 +', possible loss of data warning C4244: 'initializing' : conversion from '__int64' to 'const I3 +2', possible loss of data warning C4244: '-=' : conversion from '__int64' to 'I32', possible los +s of data warning C4244: '=' : conversion from '__int64' to 'I32', possible loss + of data warning C4244: 'function' : conversion from '__int64' to 'I32', possib +le loss of data warning C4244: 'initializing' : conversion from '__int64' to 'const in +t', possible loss of data warning C4244: '=' : conversion from 'UV' to 'unsigned int', possible +loss of data warning C4267: 'function' : conversion from 'size_t' to 'I32', possibl +e loss of data warning C4244: '=' : conversion from 'UV' to 'I32', possible loss of d +ata warning C4244: 'function' : conversion from '__int64' to 'I32', possib +le loss of data warning C4244: '=' : conversion from '__int64' to 'I32', possible loss + of data warning C4244: 'initializing' : conversion from '__int64' to 'const I3 +2', possible loss of data warning C4244: '=' : conversion from '__int64' to 'I32', possible loss + of data warning C4244: 'initializing' : conversion from '__int64' to 'int', po +ssible loss of data warning C4244: '=' : conversion from '__int64' to 'int', possible loss + of data warning C4267: 'initializing' : conversion from 'size_t' to 'const int +', possible loss of data warning C4244: '=' : conversion from '__int64' to 'I32', possible loss + of data warning C4244: '=' : conversion from 'UV' to 'I32', possible loss of d +ata warning C4244: '=' : conversion from 'UV' to 'U32', possible loss of d +ata warning C4244: '=' : conversion from '__int64' to 'I32', possible loss + of data warning C4244: '=' : conversion from 'UV' to 'I32', possible loss of d +ata warning C4244: '=' : conversion from '__int64' to 'int', possible loss + of data warning C4244: '=' : conversion from '__int64' to 'I32', possible loss + of data warning C4267: '=' : conversion from 'size_t' to 'I32', possible loss +of data warning C4267: '+=' : conversion from 'size_t' to 'U8', possible loss +of data warning C4267: '=' : conversion from 'size_t' to 'I32', possible loss +of data warning C4267: '+=' : conversion from 'size_t' to 'I32', possible loss + of data warning C4267: '=' : conversion from 'size_t' to 'I32', possible loss +of data warning C4244: '=' : conversion from '__int64' to 'I32', possible loss + of data warning C4267: 'function' : conversion from 'size_t' to 'I32', possibl +e loss of data warning C4267: '+=' : conversion from 'size_t' to 'I32', possible loss + of data warning C4267: '=' : conversion from 'size_t' to 'I32', possible loss +of data warning C4244: '=' : conversion from '__int64' to 'unsigned int', poss +ible loss of data warning C4267: '=' : conversion from 'size_t' to 'I32', possible loss +of data warning C4244: '=' : conversion from '__int64' to 'I32', possible loss + of data warning C4267: '=' : conversion from 'size_t' to 'I32', possible loss +of data warning C4244: '=' : conversion from '__int64' to 'U32', possible loss + of data warning C4267: '+=' : conversion from 'size_t' to 'I32', possible loss + of data warning C4267: '=' : conversion from 'size_t' to 'U8', possible loss o +f data warning C4244: '=' : conversion from '__int64' to 'U32', possible loss + of data warning C4267: '+=' : conversion from 'size_t' to 'I32', possible loss + of data warning C4267: '=' : conversion from 'size_t' to 'U8', possible loss o +f data warning C4244: 'initializing' : conversion from '__int64' to 'const I3 +2', possible loss of data warning C4244: 'function' : conversion from 'UV' to 'I32', possible lo +ss of data warning C4244: 'initializing' : conversion from '__int64' to 'const in +t', possible loss of data warning C4244: '=' : conversion from 'UV' to 'U32', possible loss of d +ata warning C4244: '=' : conversion from '__int64' to 'U32', possible loss + of data warning C4244: '=' : conversion from '__int64' to 'U16', possible loss + of data warning C4244: '=' : conversion from '__int64' to 'U32', possible loss + of data warning C4244: '=' : conversion from '__int64' to 'U16', possible loss + of data warning C4267: 'function' : conversion from 'size_t' to 'unsigned int' +, possible loss of data warning C4267: 'function' : conversion from 'size_t' to 'U32', possibl +e loss of data warning C4267: '=' : conversion from 'size_t' to 'I32', possible loss +of data warning C4244: '=' : conversion from 'IV' to 'U32', possible loss of d +ata warning C4244: 'function' : conversion from 'IV' to 'I32', possible lo +ss of data warning C4267: '=' : conversion from 'size_t' to 'I32', possible loss +of data warning C4267: 'function' : conversion from 'size_t' to 'U32', possibl +e loss of data

Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.
RIP an inspiration; A true Folk's Guy

Replies are listed 'Best First'.
Re^10: Perl 5.12.0 has been released! (exetype problem 64-bit)
by syphilis (Archbishop) on Apr 16, 2010 at 08:39 UTC
    I suspect the heart of it lies behind one of the bazillion of the following warning that are produced by the build

    Could be - though I get the same, of course. Given that the perl community (in general) frowns so heavily upon warnings being emitted at *any* stage, it's rather surprising that this sort of thing is tolerated. If there was a significant warning in there it would almost certainly pass unnoticed.

    FAIK, a bug report for this already exists, and it's just a matter of waiting for someone with the time, desire and energy to step up and address the situation.

    Cheers,
    Rob

      Let's face it. The 32-bit Win32 builds have always produce 100 of warnings, even at their best, before they started consting everything in sight.

      With the 64-bit builds it must be close to 2,000 warnings? I'll do realclean and count them later.

      But can you imagine me submitting a patch that changed *every* source file? And 10s to 100s of lines in each source file.

      I might just as well suggest putting the whole codebase through a C-beautifier to sort out the indentation :)

      Update: 2106 warnings:

      Given that the perl community (in general) frowns so heavily upon warnings being emitted at *any* stage, it's rather surprising that this sort of thing is tolerated.
      I never got the impression p5p is really concerned about bending code backwards just to avoid warnings. They are *warnings* after all. And there are (C) compilers that are picky. Very, very picky (they are C compilers, so they can spend time on nitpicking). Combine that with the fact the perl sources need to compile on a wide range of compilers, compiler versions, platforms and OSses, and it contains code that has been written eons ago. I'd very surprised if there are many compiler/OS/platform combinations that doesn't emit a single warning during the perl build process.
        I'd very surprised if there are many compiler/OS/platform combinations that doesn't emit a single warning during the perl build process

        Yes, I get 3 compiler warnings on linux. However, I would think that if *nix builds generated as many warnings as the x64 windows build, p5p would do something about it quicksmart.

        Personally, I'm not greatly perturbed - the main problem on x64 windows is that, because there's so many warnings, your chances of spotting the odd one out that *does* have a bearing on a problem is greatly reduced.

        Cheers,
        Rob