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

Reply via email to