Ok I’ve made some another release 1.21, but https://www.cpantesters.org/cpan/report/d03c8124-8c09-11e8-8fb1-ef5133556b3f
------------------------------ PROGRAM OUTPUT ------------------------------ Output from '/mnt/nas/home/pi2/njh/perl5/perlbrew/perls/perl-5.12.5/bin/perl Makefile.PL': Can't open perl script "Makefile.PL": No such file or directory How this could be?? From: Konovalov, Vadim [mailto:vadim.konova...@dell.com] Sent: Friday, July 20, 2018 12:59 PM To: S.J. Luo Cc: tcltk@perl.org Subject: RE: fatal error: tcl.h: No such file or directory Very true. But why?? Thanks. ☺ From: S.J. Luo [mailto:sja...@gmail.com] Sent: Friday, July 20, 2018 8:29 AM To: Konovalov, Vadim Subject: RE: fatal error: tcl.h: No such file or directory Hi, I have noticed some Linux and OpenBSD systems got failed in 1.20 while there were no fail record on them since 1.15. Maybe we have to check both $? and return value of open(). SJ 2018年7月20日 上午3:18,"Konovalov, Vadim" <vadim.konova...@dell.com<mailto:vadim.konova...@dell.com>>寫道: Bingo! That’s it. Thanks ☺ Fixed in 1.20; indeed the error is simple when looking back into it, moreover – we already had similar lines in Makefile.PL Meanwhile, I made a bit of “noisy” release, they will output some more information from Tcl.xs during DLL load; so these 1.19 and 1.20 should be rather development releases, but who cares. Fortunately the last bug ever will be fixed in 1.21! ☺ From: S.J. Luo [mailto:sja...@gmail.com<mailto:sja...@gmail.com>] Sent: Thursday, July 19, 2018 8:27 PM To: tcltk@perl.org<mailto:tcltk@perl.org> Subject: Re: fatal error: tcl.h: No such file or directory > but we do have these lines I Makefile.PL now: > > ... > $incpath = $tclcfg{TCL_INCLUDE_SPEC}; > > # https://www.cpantesters.org/cpan/report/18397198-6bf4-1014-85e5-4e79f459b9c5 > # Tcl.xs:32:10: fatal error: tcl.h: No such file or directory > if ($incpath) { > my @tclh = grep {-f "$_/tcl.h"} $incpath=~/-I(\S+)/g; > if ($#tclh==-1) { > _die "incpath $incpath from your tclconfig $tclconfig does not provide tcl.h" > } > } else {_die "can not figure out incpath from your tclconfig $tclconfig"} > > How come this happen to avoid my otherwise perfect check?? Hi, I got some try on Strawberry Perl. I got similar result without installing any tcl binary distribution. ---------- C:\strawberry\cpan\build\Tcl-1.16-0>perl Makefile.PL 'tclsh' is not recognized as an internal or external command, operable program or batch file. Use of uninitialized value $tclcfg{"tcl_library"} in pattern match (m//) at Makefile.PL line 164. Use of uninitialized value $tclver in substitution (s///) at Makefile.PL line 171. Use of uninitialized value $tclver in concatenation (.) or string at Makefile.PL line 182. LIBS = -ltcl Use of uninitialized value $incpath in concatenation (.) or string at Makefile.PL line 190. INC = DEFINE = tclConfig.sh = Use of uninitialized value $incpath in string at Makefile.PL line 208. Checking if your kit is complete... Looks good Warning (mostly harmless): No library found for -ltcl Generating a dmake-style Makefile Writing Makefile for Tcl Writing MYMETA.yml and MYMETA.json C:\strawberry\cpan\build\Tcl-1.16-0>dmake cp Tcl.pm blib\lib\Tcl.pm Running Mkbootstrap for Tcl () "C:\strawberry\perl\bin\perl.exe" -MExtUtils::Command -e chmod -- 644 "Tcl.bs" "C:\strawberry\perl\bin\perl.exe" -MExtUtils::Command::MM -e cp_nonempty -- Tcl.bs blib\arch\auto\Tcl\Tcl.bs 644 "C:\strawberry\perl\bin\perl.exe" "C:\strawberry\perl\lib\ExtUtils\xsubpp" -typemap C:\strawberry\perl\lib\ExtUtils\typemap -typema p C:\strawberry\cpan\build\Tcl-1.16-0\typemap Tcl.xs > Tcl.xsc Please specify prototyping behavior for Tcl.xs (see perlxs manual) "C:\strawberry\perl\bin\perl.exe" -MExtUtils::Command -e mv -- Tcl.xsc Tcl.c gcc -c -s -O2 -DWIN32 -DWIN64 -DCONSERVATIVE -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -fwrapv -f no-strict-aliasing -mms-bitfields -s -O2 -DVERSION=\"1.16\" -DXS_VERSION=\"1.16\" "-IC:\strawberry\perl\lib\CORE" Tcl .c Tcl.xs:32:17: fatal error: tcl.h: No such file or directory #include <tcl.h> ^ compilation terminated. dmake: Error code 129, while making 'Tcl.o' ---------- The key is why it can pass the check Makefile.PL. In Strawberry Perl, the following code got a weird result (Tcl.pm 1.16): C:\strawberry\cpan\build\Tcl-1.16-0>perl -E "open(FH, 'foo |') or die; say 'I am still alive';" I am still alive 'foo' is not recognized as an internal or external command, operable program or batch file. It seems open() with pipe returns true even if there is no 'foo' program existed. I my Cygwin environment, the same program gets following result % perl -E "open(FH, 'foo |') or die; say 'I am still alive';" Died at -e line 1. The Strawberry Perl I use is 5.24.4 x86_64 version in Win7. The result in Tcl.pm 1.18 http://matrix.cpantesters.org/?dist=Tcl%201.18;os=mswin32;perl=5.28.0;reports=1 seems to be caused from the same issue. SJ