Thanks Ed.

Just downloaded and built your fork, and confirm it is back to only failing
chkjac.t.  Hopefully that is not hard to diagnose and solve.

Regards,
Shawn.



On Thu, 14 Oct 2021 at 06:15, Ed . <ej...@hotmail.com> wrote:

> Hi Shawn,
>
>
>
> P:F:Levmar both instructs the Makefile to compile its “pdlperlfunc.c” (so
> it duplicates various generated bits of the .xs including declaring a “PDL”
> entity), but then #includes it into the generated .xs. Because as you say
> things have changed a bit, the “PDL” entity (a struct core) is now
> different. The instant fix for this, visible in my fork (
> https://github.com/mohawk2/PDL-Fit-Levmar/tree/fixups) is just to stop
> having it compile the .c, and to remove the unneeded declarations (since
> they happen in the generated .xs before the file gets #include-d). It then
> goes back to only failing chkjac.t.
>
>
>
> As you will see on the GitHub issue you linked, I have offered to adopt
> the library (and will PR what I believe are backward-compatible fixes).
> Meanwhile I am also going through and fixing up various other improvable
> bits of the code.
>
>
>
> Best regards,
>
> Ed
>
>
> ------------------------------
> *From:* Shawn Laffan <shawnlaf...@gmail.com>
> *Sent:* Wednesday, October 13, 2021 12:07:19 PM
> *To:* pdl-devel@lists.sourceforge.net <pdl-devel@lists.sourceforge.net>
> *Subject:* [Pdl-devel] PDL > 2.019 breaks PDL::Fit::Levmar
>
> It's good to see all the recent activity and cleanups to PDL.
>
> It seems, though, that one or more of these changes have broken
> PDL::Fit::Levmar (or perhaps the assumptions of PDL::Fit::Levmar were
> somewhat brittle).
>
> One could use PDL::Fit::LM, but PDL::Fit::Levmar is a bit more convenient
> as it does not need partial derivatives to be formulated.
>
> As a general summary:
> It builds and passes tests with PDL 2.019.
> It stopped building some time in the 2.019_x dev series (2.019_03?).
> It builds again with 2.057 but fails one test (chkjac.t).
> It now fails to build with 2.057_04.
>
> Latest build failures are below.
>
> Tested on Windows 10 using Strawberry Perl portable 5.32.1.
>
> Possibly relevant is that PDL::Fit::Levmar seems to be up for adoption.
> https://github.com/jlapeyre/PDL-Fit-Levmar/issues/5
>
> Shawn.
>
>
> ======
>
> cpanm --look PDL::Fit::Levmar
> --> Working on PDL::Fit::Levmar
> Fetching
> http://www.cpan.org/authors/id/J/JL/JLAPEYRE/PDL-Fit-Levmar-0.0100.tar.gz
> ... OK
> Entering
> C:/user/perls/5321~2.1_P/data/.cpanm/work/1634122041.29780/PDL-Fit-Levmar-0.0100
> with C:\Windows\system32\cmd.exe
> Microsoft Windows [Version 10.0.19043.1237]
> (c) Microsoft Corporation. All rights reserved.
>
> C:\user\perls\5321~2.1_P\data\.cpanm\work\1634122041.29780\PDL-Fit-Levmar-0.0100>perl
> -MPDL -E"say $PDL::VERSION"
> 2.057_04
>
> C:\user\perls\5321~2.1_P\data\.cpanm\work\1634122041.29780\PDL-Fit-Levmar-0.0100>perl
> Makefile.PL
> Checking if your kit is complete...
> Looks good
> WARNING: Older versions of ExtUtils::MakeMaker may errantly install
> README.pod as part of this distribution. It is recommended to avoid using
> this path in CPAN modules.
> Warning: '-L..' changed to
> '-LC:/user/perls/5321~2.1_P/data/.cpanm/work/1634122041.29780/PDL-Fit-Levmar-0.0100/..'
> Writing MYMETA.yml and MYMETA.json
> Generating a gmake-style Makefile
> Writing Makefile for PDL::Fit::Levmar
> Writing MYMETA.yml and MYMETA.json
>
>
> C:\user\perls\5321~2.1_P\data\.cpanm\work\1634122041.29780\PDL-Fit-Levmar-0.0100>gmake
> "C:\user\perls\5.32.1.1_PDLxx\perl\bin\perl.exe"
> "-IC:/user/perls/5.32.1.1_PDLxx/perl/site/lib"
> "-MPDL::PP=PDL::Fit::Levmar,PDL::Fit::Levmar,Levmar,," levmar.pd
> cp Levmar.pm blib\lib\PDL\Fit/Levmar.pm
> gmake[1]: Entering directory
> 'C:/user/perls/5321~2.1_P/data/.cpanm/work/1634122041.29780/PDL-Fit-Levmar-0.0100/Func'
> "C:\user\perls\5.32.1.1_PDLxx\perl\bin\perl.exe"
> "-IC:/user/perls/5.32.1.1_PDLxx/perl/site/lib"
> "-MPDL::PP=PDL::Fit::Levmar::Func,PDL::Fit::Levmar::Func,Func,," func.pd
> cp Func.pm ..\blib\lib\PDL\Fit\Levmar/Func.pm
> Running Mkbootstrap for Func ()
> "C:\user\perls\5.32.1.1_PDLxx\perl\bin\perl.exe" -MExtUtils::Command -e
> chmod -- 644 "Func.bs"
> "C:\user\perls\5.32.1.1_PDLxx\perl\bin\perl.exe" -MExtUtils::Command::MM
> -e cp_nonempty -- Func.bs ..\blib\arch\auto\PDL\Fit\Levmar\Func\Func.bs 644
> "C:\user\perls\5.32.1.1_PDLxx\perl\bin\perl.exe"
> "C:\user\perls\5.32.1.1_PDLxx\perl\lib\ExtUtils/xsubpp"  -typemap
> C:\user\perls\5.32.1.1_PDLxx\perl\lib\ExtUtils\typemap -typemap
> C:\user\perls\5.32.1.1_PDLxx\perl\site\lib\PDL\Core\typemap Func.xs >
> Func.xsc
> "C:\user\perls\5.32.1.1_PDLxx\perl\bin\perl.exe" -MExtUtils::Command -e mv
> -- Func.xsc Func.c
> gcc -c "-IC:/user/perls/5.32.1.1_PDLxx/perl/site/lib/PDL/Core"
>  -I./levmar-2.5  "-IC:/user/perls/5.32.1.1_PDLxx/perl/site/lib/PDL/Core"
>  -DWIN32 -DWIN64 -D__USE_MINGW_ANSI_STDIO -DPERL_TEXTMODE_SCRIPTS
> -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -fwrapv
> -fno-strict-aliasing -mms-bitfields -O3 --unroll-loops
>  -DVERSION=\"0.0100\" -DXS_VERSION=\"0.0100\"
>  "-IC:\user\perls\5.32.1.1_PDLxx\perl\lib\CORE"   Func.c
> Func.xs: In function
> 'XS_PDL__Fit__Levmar__Func_call_close_shared_object_file':
> Func.xs:784:4: warning: implicit declaration of function
> '_close_shared_object_file' [-Wimplicit-function-declaration]
>     _close_shared_object_file ( &lib_handle, &rval , error_message, nchar);
>     ^~~~~~~~~~~~~~~~~~~~~~~~~
> gcc -c "-IC:/user/perls/5.32.1.1_PDLxx/perl/site/lib/PDL/Core"
>  -I./levmar-2.5  "-IC:/user/perls/5.32.1.1_PDLxx/perl/site/lib/PDL/Core"
>  -DWIN32 -DWIN64 -D__USE_MINGW_ANSI_STDIO -DPERL_TEXTMODE_SCRIPTS
> -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -fwrapv
> -fno-strict-aliasing -mms-bitfields -O3 --unroll-loops
>  -DVERSION=\"0.0100\" -DXS_VERSION=\"0.0100\"
>  "-IC:\user\perls\5.32.1.1_PDLxx\perl\lib\CORE"   getsymbol.c
> getsymbol.c: In function '_close_shared_object_file':
> getsymbol.c:81:13: warning: comparison between pointer and integer
>    if ( NULL == *rval ) {
>              ^~
> "C:\user\perls\5.32.1.1_PDLxx\perl\bin\perl.exe" -MExtUtils::Mksymlists \
>      -e "Mksymlists('NAME'=>\"PDL::Fit::Levmar::Func\", 'DLBASE' =>
> 'Func', 'DL_FUNCS' => {  }, 'FUNCLIST' => [], 'IMPORTS' => {  }, 'DL_VARS'
> => []);"
> g++.exe Func.def -o ..\blib\arch\auto\PDL\Fit\Levmar\Func\Func.xs.dll
> -mdll -s -L"C:\user\perls\5.32.1.1_PDLxx\perl\lib\CORE"
> -L"C:\user\perls\5.32.1.1_PDLxx\c\lib" Func.o  getsymbol.o
> "C:\user\perls\5.32.1.1_PDLxx\perl\lib\CORE\libperl532.a"
> "C:\user\perls\5.32.1.1_PDLxx\c\x86_64-w64-mingw32\lib\libm.a"
> "C:\user\perls\5.32.1.1_PDLxx\c\x86_64-w64-mingw32\lib\libmoldname.a"
> "C:\user\perls\5.32.1.1_PDLxx\c\x86_64-w64-mingw32\lib\libkernel32.a"
> "C:\user\perls\5.32.1.1_PDLxx\c\x86_64-w64-mingw32\lib\libuser32.a"
> "C:\user\perls\5.32.1.1_PDLxx\c\x86_64-w64-mingw32\lib\libgdi32.a"
> "C:\user\perls\5.32.1.1_PDLxx\c\x86_64-w64-mingw32\lib\libwinspool.a"
> "C:\user\perls\5.32.1.1_PDLxx\c\x86_64-w64-mingw32\lib\libcomdlg32.a"
> "C:\user\perls\5.32.1.1_PDLxx\c\x86_64-w64-mingw32\lib\libadvapi32.a"
> "C:\user\perls\5.32.1.1_PDLxx\c\x86_64-w64-mingw32\lib\libshell32.a"
> "C:\user\perls\5.32.1.1_PDLxx\c\x86_64-w64-mingw32\lib\libole32.a"
> "C:\user\perls\5.32.1.1_PDLxx\c\x86_64-w64-mingw32\lib\liboleaut32.a"
> "C:\user\perls\5.32.1.1_PDLxx\c\x86_64-w64-mingw32\lib\libnetapi32.a"
> "C:\user\perls\5.32.1.1_PDLxx\c\x86_64-w64-mingw32\lib\libuuid.a"
> "C:\user\perls\5.32.1.1_PDLxx\c\x86_64-w64-mingw32\lib\libws2_32.a"
> "C:\user\perls\5.32.1.1_PDLxx\c\x86_64-w64-mingw32\lib\libmpr.a"
> "C:\user\perls\5.32.1.1_PDLxx\c\x86_64-w64-mingw32\lib\libwinmm.a"
> "C:\user\perls\5.32.1.1_PDLxx\c\x86_64-w64-mingw32\lib\libversion.a"
> "C:\user\perls\5.32.1.1_PDLxx\c\x86_64-w64-mingw32\lib\libodbc32.a"
> "C:\user\perls\5.32.1.1_PDLxx\c\x86_64-w64-mingw32\lib\libodbccp32.a"
> "C:\user\perls\5.32.1.1_PDLxx\c\x86_64-w64-mingw32\lib\libcomctl32.a"
> -Wl,--enable-auto-image-base
> "C:\user\perls\5.32.1.1_PDLxx\perl\bin\perl.exe" -MExtUtils::Command -e
> chmod -- 755 ..\blib\arch\auto\PDL\Fit\Levmar\Func\Func.xs.dll
> gmake[1]: Leaving directory
> 'C:/user/perls/5321~2.1_P/data/.cpanm/work/1634122041.29780/PDL-Fit-Levmar-0.0100/Func'
> Running Mkbootstrap for Levmar ()
> "C:\user\perls\5.32.1.1_PDLxx\perl\bin\perl.exe" -MExtUtils::Command -e
> chmod -- 644 "Levmar.bs"
> "C:\user\perls\5.32.1.1_PDLxx\perl\bin\perl.exe" -MExtUtils::Command::MM
> -e cp_nonempty -- Levmar.bs blib\arch\auto\PDL\Fit\Levmar\Levmar.bs 644
> gcc -c  "-IC:/user/perls/5.32.1.1_PDLxx/perl/site/lib/PDL/Core"
>  -I./levmar-2.5 -DWIN32 -DWIN64 -D__USE_MINGW_ANSI_STDIO
> -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS
> -DUSE_PERLIO -fwrapv -fno-strict-aliasing -mms-bitfields -O3 --unroll-loops
>    -DVERSION=\"0.0100\" -DXS_VERSION=\"0.0100\"
>  "-IC:\user\perls\5.32.1.1_PDLxx\perl\lib\CORE"   -o pdlperlfunc.o
> pdlperlfunc.c
> pdlperlfunc.c: In function 'pdl_wrap':
> pdlperlfunc.c:173:40: warning: passing argument 2 of
> 'PDL->add_deletedata_magic' from incompatible pointer type
> [-Wincompatible-pointer-types]
>         PDL->add_deletedata_magic(npdl, delete_magic, delparam);
>                                         ^~~~~~~~~~~~
> pdlperlfunc.c:173:40: note: expected 'void (*)(pdl *, size_t)' {aka 'void
> (*)(struct pdl *, long long unsigned int)'} but argument is of type
> 'DelMagic' {aka 'void (*)(struct pdl *, int)'}
> pdlperlfunc.c:176:40: warning: passing argument 2 of
> 'PDL->add_deletedata_magic' from incompatible pointer type
> [-Wincompatible-pointer-types]
>         PDL->add_deletedata_magic(npdl, default_magic, 0);
>                                         ^~~~~~~~~~~~~
> pdlperlfunc.c:176:40: note: expected 'void (*)(pdl *, size_t)' {aka 'void
> (*)(struct pdl *, long long unsigned int)'} but argument is of type 'void
> (*)(pdl *, int)' {aka 'void (*)(struct pdl *, int)'}
> "C:\user\perls\5.32.1.1_PDLxx\perl\bin\perl.exe"
> "C:\user\perls\5.32.1.1_PDLxx\perl\lib\ExtUtils/xsubpp"  -typemap
> C:\user\perls\5.32.1.1_PDLxx\perl\lib\ExtUtils\typemap -typemap
> C:\user\perls\5.32.1.1_PDLxx\perl\site\lib\PDL\Core\typemap Levmar.xs >
> Levmar.xsc
> "C:\user\perls\5.32.1.1_PDLxx\perl\bin\perl.exe" -MExtUtils::Command -e mv
> -- Levmar.xsc Levmar.c
> gcc -c  "-IC:/user/perls/5.32.1.1_PDLxx/perl/site/lib/PDL/Core"
>  -I./levmar-2.5 -DWIN32 -DWIN64 -D__USE_MINGW_ANSI_STDIO
> -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS
> -DUSE_PERLIO -fwrapv -fno-strict-aliasing -mms-bitfields -O3 --unroll-loops
>    -DVERSION=\"0.0100\" -DXS_VERSION=\"0.0100\"
>  "-IC:\user\perls\5.32.1.1_PDLxx\perl\lib\CORE"   Levmar.c
> C:/user/perls/5.32.1.1_PDLxx/perl/site/lib/PDL/PP.pm:681:13: error: static
> declaration of 'PDL_Fit_Levmar' follows non-static declaration
>  #define PDL %s
>              ^~
> C:/user/perls/5.32.1.1_PDLxx/perl/site/lib/PDL/PP.pm:681:13: note: in
> definition of macro 'PDL'
>  #define PDL %s
>              ^~
> C:/user/perls/5.32.1.1_PDLxx/perl/site/lib/PDL/PP.pm:681:13: note:
> previous declaration of 'PDL_Fit_Levmar' was here
>  #define PDL %s
>              ^~
> C:/user/perls/5.32.1.1_PDLxx/perl/site/lib/PDL/PP.pm:681:13: note: in
> definition of macro 'PDL'
>  #define PDL %s
>              ^~
> In file included from
> C:/user/perls/5.32.1.1_PDLxx/perl/site/lib/PDL/PP.pm:696:
> pdlperlfunc.c: In function 'pdl_wrap':
> pdlperlfunc.c:173:40: warning: passing argument 2 of
> 'PDL_Fit_Levmar->add_deletedata_magic' from incompatible pointer type
> [-Wincompatible-pointer-types]
>         PDL->add_deletedata_magic(npdl, delete_magic, delparam);
>                                         ^~~~~~~~~~~~
> pdlperlfunc.c:173:40: note: expected 'void (*)(pdl *, size_t)' {aka 'void
> (*)(struct pdl *, long long unsigned int)'} but argument is of type
> 'DelMagic' {aka 'void (*)(struct pdl *, int)'}
> pdlperlfunc.c:176:40: warning: passing argument 2 of
> 'PDL_Fit_Levmar->add_deletedata_magic' from incompatible pointer type
> [-Wincompatible-pointer-types]
>         PDL->add_deletedata_magic(npdl, default_magic, 0);
>                                         ^~~~~~~~~~~~~
> pdlperlfunc.c:176:40: note: expected 'void (*)(pdl *, size_t)' {aka 'void
> (*)(struct pdl *, long long unsigned int)'} but argument is of type 'void
> (*)(pdl *, int)' {aka 'void (*)(struct pdl *, int)'}
> C:/user/perls/5.32.1.1_PDLxx/perl/site/lib/PDL/PP.pm: At top level:
> C:/user/perls/5.32.1.1_PDLxx/perl/site/lib/PDL/PP.pm:681:13: error:
> non-static declaration of 'PDL_Fit_Levmar' follows static declaration
>  #define PDL %s
>              ^~
> C:/user/perls/5.32.1.1_PDLxx/perl/site/lib/PDL/PP.pm:681:13: note: in
> definition of macro 'PDL'
>  #define PDL %s
>              ^~
> C:/user/perls/5.32.1.1_PDLxx/perl/site/lib/PDL/PP.pm:681:13: note:
> previous declaration of 'PDL_Fit_Levmar' was here
>  #define PDL %s
>              ^~
> C:/user/perls/5.32.1.1_PDLxx/perl/site/lib/PDL/PP.pm:681:13: note: in
> definition of macro 'PDL'
>  #define PDL %s
>              ^~
> gmake: *** [Makefile:367: Levmar.o] Error 1
>
>
>
_______________________________________________
pdl-devel mailing list
pdl-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/pdl-devel

Reply via email to