http://www.perlmonks.org?node_id=11113302


in reply to Re^3: Looking for testers who use Microsoft compilers
in thread Looking for testers who use Microsoft compilers

I only have installed Visual studio 2017 and 2019 on my server

I was expecting that a perl built with Visual Studio 2017 would report a $Config{ccversion} that was less than '19.24.28316' and greater than '16.00.30319.01'. (My guess is that with Visual Studio 2017, $Config{ccversion} would begin with 19.1...)
I thought that '19.24.28316' identifies Visual Studio 2019 and that '16.00.30319.01' identifies Visual Studio 2010.

Anyway, if you have a perl (whose ivsize is 8) that has been built with that Visual Studio 2017 compiler, and could test List::Uniqnum that would be handy.
Or, alternatively, just provide the output of perl -le "printf '%0.20g', 18446744073709549568;".
That output will also tell me whether '%0.20g' formatting is reliable or not - and the thing I'm trying to work out is at which version of the Microsoft compilers did '%0.20g' become reliable.
If it outputs 18446744073709549568, then '%0.20g' formatting is fine ... but not so if it outputs 18446744073709550000.

Cheers,
Rob

Replies are listed 'Best First'.
Re^5: Looking for testers who use Microsoft compilers
by xiaoyafeng (Deacon) on Feb 24, 2020 at 09:07 UTC
    Here is the test:
    C:\visperl\bin>perl -V Summary of my perl5 (revision 5 version 30 subversion 1) configuration +: Platform: osname=MSWin32 osvers=10.0.17763.1039 archname=MSWin32-x64-multi-thread uname='' config_args='undef' hint=recommended useposix=true d_sigaction=undef useithreads=define usemultiplicity=define use64bitint=define use64bitall=undef uselongdouble=undef usemymalloc=n default_inc_excludes_dot=define bincompat5005=undef Compiler: cc='cl' ccflags ='-nologo -GF -W3 -O1 -MD -Zi -DNDEBUG -GL -fp:precise -DW +IN32 -D_CONSOLE -DNO_STRICT -DWIN64 -DCONSERVATIVE -D_CRT_SECURE_NO_D +EPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -D_WINSOCK_DEPRECATED_NO_WARNING +S -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SY +S' optimize='-O1 -MD -Zi -DNDEBUG -GL -fp:precise' cppflags='-DWIN32' ccversion='19.16.27024.1' gccversion='' gccosandvers='' intsize=4 longsize=4 ptrsize=8 doublesize=8 byteorder=12345678 doublekind=3 d_longlong=undef longlongsize=8 d_longdbl=define longdblsize=8 longdblkind=0 ivtype='__int64' ivsize=8 nvtype='double' nvsize=8 Off_t='__int64' lseeksize=8 alignbytes=8 prototype=define Linker and Libraries: ld='link' ldflags ='-nologo -nodefaultlib -debug -opt:ref,icf -ltcg -libpat +h:"c:\visperl\lib\CORE" -machine:AMD64 -subsystem:console,"5.02"' libpth="C:\Program Files (x86)\Microsoft Visual Studio\2017\Commun +ity\VC\Tools\MSVC\14.16.27023\\lib\x64" libs=oldnames.lib kernel32.lib user32.lib gdi32.lib winspool.lib +comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib netapi3 +2.lib uuid.lib ws2_32.lib mpr.lib winmm.lib version.lib odbc32.lib o +dbccp32.lib comctl32.lib msvcrt.lib vcruntime.lib ucrt.lib perllibs=oldnames.lib kernel32.lib user32.lib gdi32.lib winspool.l +ib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib net +api32.lib uuid.lib ws2_32.lib mpr.lib winmm.lib version.lib odbc32.l +ib odbccp32.lib comctl32.lib msvcrt.lib vcruntime.lib ucrt.lib libc=ucrt.lib so=dll useshrplib=true libperl=perl530.lib gnulibc_version='' Dynamic Linking: dlsrc=dl_win32.xs dlext=dll d_dlsymun=undef ccdlflags=' ' cccdlflags=' ' lddlflags='-dll -nologo -nodefaultlib -debug -opt:ref,icf -ltcg - +libpath:"c:\visperl\lib\CORE" -machine:AMD64 -subsystem:console,"5.0 +2"' Characteristics of this binary (from libperl): Compile-time options: HAS_TIMES HAVE_INTERP_INTERN MULTIPLICITY PERLIO_LAYERS PERL_COPY_ON_WRITE PERL_DONT_CREATE_GVSV PERL_IMPLICIT_CONTEXT PERL_IMPLICIT_SYS PERL_MALLOC_WRAP PERL_OP_PARENT PERL_PRESERVE_IVUV USE_64_BIT_INT USE_ITHREADS USE_LARGE_FILES USE_LOCALE USE_LOCALE_COLLATE USE_LOCALE_CTYPE USE_LOCALE_NUMERIC USE_LOCALE_TIME USE_PERLIO USE_PERL_ATOF USE_THREAD_SAFE_LOCALE Built under MSWin32 Compiled at Feb 24 2020 12:20:14 @INC: C:/visperl/site/lib C:/visperl/lib
    C:\visperl\bin>perl -le "printf '%0.20g', 18446744073709549568;" 18446744073709549568




    I am trying to improve my English skills, if you see a mistake please feel free to reply or /msg me a correction

      Thank you for that, too !!

      Cheers,
      Rob