Closed dk closed 1 year ago
also, s/(require Prima )1.58/1.68/
Files with Coverage Reduction | New Missed Lines | % | ||
---|---|---|---|---|
/home/runner/work/PDL-Graphics-Prima/PDL-Graphics-Prima/blib/lib/PDL/Graphics/Prima/ReadLine.pm | 19 | 17.5% | ||
<!-- | Total: | 19 | --> |
Totals | |
---|---|
Change from base Build 4159205688: | -0.2% |
Covered Lines: | 854 |
Relevant Lines: | 2438 |
I have rebased this, since you did a merge
again. Here is what I did:
$ git status
On branch perldl-win32-term
Your branch is up-to-date with 'd/perldl-win32-term'.
nothing to commit, working tree clean
$ git log --oneline -20
9a588fe (HEAD -> perldl-win32-term, d/perldl-win32-term) require Prima 1.58
e589fc7 Merge branch 'PDLPorters:master' into perldl-win32-term
bc2ae3b (o/master, o/HEAD, d/master, master) right IRC metadata
a54c3b6 (tag: 0.19) 0.19
fc3ff4c include in MANIFEST all files actually needed
7c32063 convert to EUMM
060567f reorder MANIFEST to like ./Build manifest
ac002fc use latest win32.console api for integration with perldl
c0a85c6 (tag: 0.18) 0.18
[snip]
$ git rebase -i master # looked in the editor at the list of commits (which were fine), save/quit
Successfully rebased and updated refs/heads/perldl-win32-term.
$ git log --oneline -20
1ed918d (HEAD -> perldl-win32-term) require Prima 1.58
0d0fe2c use latest win32.console api for integration with perldl
bc2ae3b (o/master, o/HEAD, d/master, master) right IRC metadata
[snip]
$ git status
On branch perldl-win32-term
Your branch and 'd/perldl-win32-term' have diverged,
and have 2 and 3 different commits each, respectively.
(use "git pull" to merge the remote branch into yours)
nothing to commit, working tree clean
$ git push -f
Enumerating objects: 17, done.
Counting objects: 100% (17/17), done.
Delta compression using up to 3 threads
Compressing objects: 100% (9/9), done.
[snip]
Please rebase next time. I also (after the above) squashed the update of required Prima version into the main commit.
Because unfortunately PDL::Drawing::Prima is broken (see https://github.com/dk/PDL-Drawing-Prima/pull/41), I won't merge this till that's fixed and this distro's CI is happy.
Thank you, although that rebasung guideline is unfortunately a bit beyond me - I did press "sync this branch" repeatedly before sending the PR, and I don't think I did the rebase from cmdline myself. Would gladly follow the git guidelines but every time I sync between the working branch and the master it is somewhat of a shot in the dark. Sorry if this caused confusion.
As for PDP just merged your fix and will upload a new version soonish
All right, P::D::P v0.18 is out, kindly check.
Thank you, although that rebasung guideline is unfortunately a bit beyond me - I did press "sync this branch" repeatedly before sending the PR, and I don't think I did the rebase from cmdline myself. Would gladly follow the git guidelines but every time I sync between the working branch and the master it is somewhat of a shot in the dark. Sorry if this caused confusion.
I'm afraid I don't know what you mean about pressing anything; rebase is best done from the command line, in a way shown by my transcript above. If you google for "git rebase tutorial", there are lots of videos that explain it. It's really not very difficult (if it were, I wouldn't do it ;-). Feel free to email me if you've had a try at those, and we can set up a Zoom or something to go through it.
All right, P::D::P v0.18 is out, kindly check.
Thank you, P:D:P now installs nicely. However, I re-ran the CI for this, and it's getting a SEGV:
Test Summary Report
-------------------
t/120-on-paint.t (Wstat: 139 Tests: 0 Failed: 0)
Non-zero wait status: 139
I'm not seeing a SEGV on my local system, but I tried valgrind
anyway, and got this:
$ make && valgrind --leak-check=yes perl -Mblib t/120-on-paint.t
[snip]
==617084== Invalid read of size 1
==617084== at 0x484FBD4: strcmp
==617084== by 0x49E6794: setlocale (setlocale.c:236)
==617084== by 0x6A979DA: prima_xim_init (xim.c:27)
==617084== by 0x6A1C207: init_x11 (app.c:464)
==617084== by 0x6A1C318: window_subsystem_init (app.c:479)
==617084== by 0x691314B: Prima_init (boot.c:127)
[snip]
==617084== Address 0x4bee0e0 is 0 bytes inside a block of size 12 free'd
==617084== at 0x484B27F: free
==617084== by 0x49E6B2C: setname (setlocale.c:199)
==617084== by 0x49E6B2C: setlocale (setlocale.c:452)
==617084== by 0x49E6B2C: setlocale (setlocale.c:217)
==617084== by 0x6A97926: prima_xim_init (xim.c:20)
==617084== by 0x6A1C207: init_x11 (app.c:464)
==617084== by 0x6A1C318: window_subsystem_init (app.c:479)
==617084== by 0x691314B: Prima_init (boot.c:127)
That implies to me that Prima is hanging onto a char *
that then gets free
d elsewhere.
I cannot reproduce this error, but running valgrind I found another, possibly related one in Prima, which is fixed and committed now. Would you be able to take the latest Prima github snapshot and see if the error and coredump is still there? And if yes, would you be able to add printf("loc:[%s]\n", loc);
to xim.c before line 27, where it coredumps? If setlocale() coredumps on it it looks like a libc/glibc bug, because, quote man setlocale(3):
"A successful call to setlocale() returns an opaque string that corresponds to the locale set. This string may be allocated in static storage. The string returned is such that a subsequent call with that string and its associated category will restore that part of the process's locale."
I cannot reproduce this error, but running valgrind I found another, possibly related one in Prima, which is fixed and committed now. Would you be able to take the latest Prima github snapshot and see if the error and coredump is still there?
I'd love to in principle, but as noted above, I can't reproduce this on my system, only on GitHub Actions CI. I did notice the above CI failed also on Windows, so I tried there (Strawberry 5.32 PDL Portable, with PDL 2.078 installed). I installed Prima fine, but P:D:P failed saying:
g++.exe Prima.def -o blib\arch\auto\PDL\Drawing\Prima\Prima.xs.dll -mdll -s -L"*\perl\lib\CORE" -L"*\c\lib" Prima.o "*\perl\lib\CORE\libperl532.a" -lmoldname -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lws2_32 -lmpr -lwinmm -lversion -lodbc32 -lodbccp32 -lcomctl32 -Wl,--enable-auto-image-base
ld.exe: Prima.o:Prima.c:(.text+0x63c): undefined reference to `gimme_the_mate'
[snip]
ld.exe: Prima.o:Prima.c:(.text+0x204d4): undefined reference to `prima_array_new'
ld.exe: Prima.o:Prima.c:(.text+0x20501): undefined reference to `prima_array_tie'
ld.exe: Prima.o:Prima.c:(.text+0x20cee): undefined reference to `prima_array_truncate'
[snip]
If the Prima changes since the last full release are minor, and include what you're saying is a real bug fix, you could make a new release and we can try this again?
Hmm, agree, let's try that first. Prima-1.68001 is out now.
However, what's the thing with strawberry and ld errors? I can't reproduce it at all
Hmm, agree, let's try that first. Prima-1.68001 is out now.
It normally takes about an hour for cpanm
to spot a new release, so I'll leave it a bit.
However, what's the thing with strawberry and ld errors? I can't reproduce it at all
Have you tried with the Strawberry specified above?
yes, just tried with this one:
https://strawberryperl.com/download/5.32.1.1/strawberry-perl-5.32.1.1-64bit-PDL.zip
works just fine
yes, just tried with this one: https://strawberryperl.com/download/5.32.1.1/strawberry-perl-5.32.1.1-64bit-PDL.zip works just fine
Makes sense - the immediate problem was my deliberately-awkward setup. See https://github.com/dk/PDL-Drawing-Prima/pull/42 for a fix.
"Unfortunately", the patched version made by your changes work fine on my Windows once I installed the patched P:D:P. I've triggered the CI here to run once again, just in case. If that fails [EDIT: it is indeed failing], then we'd need to figure out how to debug the exact setup used by the CI to at least get a stack trace from gdb
or maybe valgrind
. @zmughal Any ideas?
Also, I ran demo prima
from perldl
. It worked fine, except when I used the podview
(I think) to look at the linked docs; when I used ctrl-W (and also alt-F4) to close the POD viewer, the demo crashed.
I can confirm the crash. I used half a day chasing it and no success - it could be heap corruption. I finally fired up Dr.Memory and WinDbg to see what's there, but they don't work well with binaries made by gcc, and PDL cannot be compiled with msvc.
Should I open a PR for this?
cl -c "-IC:/home/.cpanm/work/1677696158.22968/PDL-2.081/Basic/Core" -nologo -GF -W3 -MD -DWIN32 -D_CONSOLE -DNO_STRICT -DDEBUGGING -DWIN64 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -D_WINSOCK_DEPRECATED_NO_WARNINGS -DPERL_TEXTMODE_SCRIPTS -DMULTIPLICITY -DPERL_IMPLICIT_SYS -Od -Zi -fp:precise -DVERSION=\"2.081\" -DXS_VERSION=\"2.081\" "-IC:\usr\local\perl\msvc\lib\CORE" -FdCore.pdb Core.c
Core.c
C:\usr\local\perl\msvc\lib\CORE\inline.h(2844): warning C4244: '=': conversion from '__int64' to 'I32', possible loss of data
C:\usr\local\perl\msvc\lib\CORE\inline.h(2919): warning C4244: '=': conversion from '__int64' to 'I32', possible loss of data
C:\usr\local\perl\msvc\lib\CORE\inline.h(2980): warning C4244: '=': conversion from '__int64' to 'I32', possible loss of data
pdl.h.PL(80): error C2054: expected '(' to follow '_complex'
pdl.h.PL(80): error C2085: 'PDL_CFloat': not in formal parameter list
pdl.h.PL(80): error C2628: '_complex' followed by 'double' is illegal (did you forget a ';'?)
pdl.h.PL(80): error C2085: 'PDL_CDouble': not in formal parameter list
pdl.h.PL(80): error C2628: '_complex' followed by 'long' is illegal (did you forget a ';'?)
pdl.h.PL(80): error C2085: 'PDL_CLDouble': not in formal parameter list
pdl.h.PL(86): error C2061: syntax error: identifier 'PDL_CFloat'
pdl.h.PL(86): error C2061: syntax error: identifier 'C'
pdl.h.PL(86): error C2059: syntax error: ';'
pdl.h.PL(86): error C2061: syntax error: identifier 'H'
pdl.h.PL(88): error C2059: syntax error: '}'
pdl.h.PL(92): error C2061: syntax error: identifier 'PDL_Value'
pdl.h.PL(93): error C2059: syntax error: '}'
pdl.h.PL(196): error C2146: syntax error: missing ')' before identifier 'x'
pdl.h.PL(196): error C2061: syntax error: identifier 'x'
pdl.h.PL(196): error C2059: syntax error: ';'
pdl.h.PL(196): error C2059: syntax error: ')'
pdl.h.PL(196): error C2449: found '{' at file scope (missing function header?)
pdl.h.PL(199): warning C4003: not enough arguments for function-like macro invocation 'X'
pdl.h.PL(201): error C2059: syntax error: '}'
pdl.h.PL(210): warning C4003: not enough arguments for function-like macro invocation 'X_OUTER'
pdl.h.PL(210): warning C4003: not enough arguments for function-like macro invocation 'X_INNER'
pdl.h.PL(216): error C2146: syntax error: missing ')' before identifier 'inany'
pdl.h.PL(216): error C2061: syntax error: identifier 'inany'
pdl.h.PL(216): error C2059: syntax error: ';'
pdl.h.PL(216): error C2059: syntax error: ','
pdl.h.PL(216): error C2059: syntax error: ')'
pdl.h.PL(227): error C2061: syntax error: identifier 'PDL_CFloat'
pdl.h.PL(227): error C2061: syntax error: identifier 'CDouble'
pdl.h.PL(227): error C2059: syntax error: ';'
pdl.h.PL(227): error C2061: syntax error: identifier 'CLDouble'
pdl.h.PL(229): error C2059: syntax error: '}'
pdl.h.PL(535): error C2061: syntax error: identifier 'PDL_Anyval'
pdl.h.PL(556): error C2061: syntax error: identifier 'value'
pdl.h.PL(556): error C2059: syntax error: ';'
pdl.h.PL(557): error C2059: syntax error: '}'
C:\home\.cpanm\work\1677696158.22968\PDL-2.081\Basic\Core\pdlcore.h(51): error C2061: syntax error: identifier 'pdl_at'
C:\home\.cpanm\work\1677696158.22968\PDL-2.081\Basic\Core\pdlcore.h(51): error C2059: syntax error: ';'
C:\home\.cpanm\work\1677696158.22968\PDL-2.081\Basic\Core\pdlcore.h(51): error C2059: syntax error: '<parameter-list>'
C:\home\.cpanm\work\1677696158.22968\PDL-2.081\Basic\Core\pdlcore.h(81): error C2146: syntax error: missing ')' before identifier 'v'
C:\home\.cpanm\work\1677696158.22968\PDL-2.081\Basic\Core\pdlcore.h(81): error C2061: syntax error: identifier 'v'
C:\home\.cpanm\work\1677696158.22968\PDL-2.081\Basic\Core\pdlcore.h(81): error C2059: syntax error: ';'
C:\home\.cpanm\work\1677696158.22968\PDL-2.081\Basic\Core\pdlcore.h(81): error C2059: syntax error: ')'
C:\home\.cpanm\work\1677696158.22968\PDL-2.081\Basic\Core\pdlcore.h(159): error C2146: syntax error: missing ')' before identifier 'anyval'
C:\home\.cpanm\work\1677696158.22968\PDL-2.081\Basic\Core\pdlcore.h(159): error C2061: syntax error: identifier 'anyval'
C:\home\.cpanm\work\1677696158.22968\PDL-2.081\Basic\Core\pdlcore.h(159): error C2059: syntax error: ';'
C:\home\.cpanm\work\1677696158.22968\PDL-2.081\Basic\Core\pdlcore.h(159): error C2059: syntax error: ')'
C:\home\.cpanm\work\1677696158.22968\PDL-2.081\Basic\Core\pdlcore.h(159): error C2061: syntax error: identifier 'pdl_at0'
C:\home\.cpanm\work\1677696158.22968\PDL-2.081\Basic\Core\pdlcore.h(159): error C2059: syntax error: '<parameter-list>'
C:\home\.cpanm\work\1677696158.22968\PDL-2.081\Basic\Core\pdlcore.h(159): error C2061: syntax error: identifier 'pdl_get_offs'
C:\home\.cpanm\work\1677696158.22968\PDL-2.081\Basic\Core\pdlcore.h(159): error C2146: syntax error: missing ')' before identifier 'value'
C:\home\.cpanm\work\1677696158.22968\PDL-2.081\Basic\Core\pdlcore.h(159): error C2081: 'PDL_Anyval': name in formal parameter list illegal
C:\home\.cpanm\work\1677696158.22968\PDL-2.081\Basic\Core\pdlcore.h(159): error C2061: syntax error: identifier 'value'
C:\home\.cpanm\work\1677696158.22968\PDL-2.081\Basic\Core\pdlcore.h(159): error C2061: syntax error: identifier 'pdl_get_pdl_badvalue'
C:\home\.cpanm\work\1677696158.22968\PDL-2.081\Basic\Core\pdlcore.h(159): error C2061: syntax error: identifier 'pdl_get_badvalue'
C:\home\.cpanm\work\1677696158.22968\PDL-2.081\Basic\Core\pdlcore.h(165): error C2143: syntax error: missing ')' before '*'
C:\home\.cpanm\work\1677696158.22968\PDL-2.081\Basic\Core\pdlcore.h(165): error C2143: syntax error: missing '{' before '*'
C:\home\.cpanm\work\1677696158.22968\PDL-2.081\Basic\Core\pdlcore.h(165): error C2371: 'AV': redefinition; different basic types
C:\usr\local\perl\msvc\lib\CORE\perl.h(2940): note: see declaration of 'AV'
C:\home\.cpanm\work\1677696158.22968\PDL-2.081\Basic\Core\pdlcore.h(165): error C2143: syntax error: missing ';' before '*'
C:\home\.cpanm\work\1677696158.22968\PDL-2.081\Basic\Core\pdlcore.h(165): error C2371: 'PDL_Indx': redefinition; different basic types
pdl.h.PL(80): note: see declaration of 'PDL_Indx'
C:\home\.cpanm\work\1677696158.22968\PDL-2.081\Basic\Core\pdlcore.h(165): error C2370: 'PDL_Long': redefinition; different storage class
pdl.h.PL(80): note: see declaration of 'PDL_Long'
C:\home\.cpanm\work\1677696158.22968\PDL-2.081\Basic\Core\pdlcore.h(165): error C2146: syntax error: missing ';' before identifier 'ndims'
C:\home\.cpanm\work\1677696158.22968\PDL-2.081\Basic\Core\pdlcore.h(165): error C2371: 'ndims': redefinition; different basic types
pdl.h.PL(542): note: see declaration of 'ndims'
C:\home\.cpanm\work\1677696158.22968\PDL-2.081\Basic\Core\pdlcore.h(165): error C2059: syntax error: 'type'
C:\home\.cpanm\work\1677696158.22968\PDL-2.081\Basic\Core\pdlcore.h(165): error C2059: syntax error: ')'
C:\home\.cpanm\work\1677696158.22968\PDL-2.081\Basic\Core\pdlcore.h(176): error C2061: syntax error: identifier 'badvals'
C:\home\.cpanm\work\1677696158.22968\PDL-2.081\Basic\Core\pdlcore.h(180): error C2146: syntax error: missing ')' before identifier 'anyval'
C:\home\.cpanm\work\1677696158.22968\PDL-2.081\Basic\Core\pdlcore.h(180): error C2061: syntax error: identifier 'anyval'
C:\home\.cpanm\work\1677696158.22968\PDL-2.081\Basic\Core\pdlcore.h(180): error C2059: syntax error: ';'
C:\home\.cpanm\work\1677696158.22968\PDL-2.081\Basic\Core\pdlcore.h(180): error C2059: syntax error: ')'
C:\home\.cpanm\work\1677696158.22968\PDL-2.081\Basic\Core\pdlcore.h(180): error C2143: syntax error: missing ')' before '*'
C:\home\.cpanm\work\1677696158.22968\PDL-2.081\Basic\Core\pdlcore.h(180): error C2143: syntax error: missing '{' before '*'
C:\home\.cpanm\work\1677696158.22968\PDL-2.081\Basic\Core\pdlcore.h(180): error C2146: syntax error: missing ')' before identifier 'value'
C:\home\.cpanm\work\1677696158.22968\PDL-2.081\Basic\Core\pdlcore.h(180): error C2081: 'PDL_Anyval': name in formal parameter list illegal
C:\home\.cpanm\work\1677696158.22968\PDL-2.081\Basic\Core\pdlcore.h(180): error C2061: syntax error: identifier 'value'
C:\home\.cpanm\work\1677696158.22968\PDL-2.081\Basic\Core\pdlcore.h(182): error C2059: syntax error: '}'
pdlperl.h.PL(111): error C2065: 'PDL_CFloat': undeclared identifier
pdlperl.h.PL(111): error C2146: syntax error: missing ';' before identifier 'foo'
pdlperl.h.PL(111): error C2065: 'foo': undeclared identifier
pdlperl.h.PL(111): warning C4244: '=': conversion from 'IV' to 'int', possible loss of data
pdlperl.h.PL(111): error C2065: 'PDL_CDouble': undeclared identifier
pdlperl.h.PL(111): error C2065: 'PDL_CLDouble': undeclared identifier
pdlperl.h.PL(111): warning C4244: 'initializing': conversion from 'IV' to 'PDL_SByte', possible loss of data
pdlperl.h.PL(111): warning C4244: 'initializing': conversion from 'IV' to 'PDL_Byte', possible loss of data
pdlperl.h.PL(111): warning C4244: 'initializing': conversion from 'IV' to 'PDL_Short', possible loss of data
pdlperl.h.PL(111): warning C4244: 'initializing': conversion from 'IV' to 'PDL_Ushort', possible loss of data
pdlperl.h.PL(111): warning C4244: 'initializing': conversion from 'IV' to 'PDL_Long', possible loss of data
pdlperl.h.PL(111): warning C4244: 'initializing': conversion from 'IV' to 'PDL_ULong', possible loss of data
pdlperl.h.PL(111): warning C4244: 'initializing': conversion from 'IV' to 'PDL_Float', possible loss of data
pdlperl.h.PL(111): warning C4244: 'initializing': conversion from 'IV' to 'PDL_Double', possible loss of data
pdlperl.h.PL(111): warning C4244: 'initializing': conversion from 'IV' to 'PDL_LDouble', possible loss of data
Core.xs(32): error C2079: 'PDL' uses undefined struct 'Core'
Core.xs(62): error C2037: left of 'trans_parent' specifies undefined struct/union 'pdl'
Core.xs(71): error C2037: left of 'trans_children' specifies undefined struct/union 'pdl'
C:\\usr\\local\\perl\\msvc\\bin\\perl.exe -e "require q{./Dev.pm}; PDL::Core::Dev::generate_core_flags()"(5): error C2037: left of 'state' specifies undefined struct/union 'pdl'
C:\\usr\\local\\perl\\msvc\\bin\\perl.exe -e "require q{./Dev.pm}; PDL::Core::Dev::generate_core_flags()"(13): error C2037: left of 'state' specifies undefined struct/union 'pdl'
C:\\usr\\local\\perl\\msvc\\bin\\perl.exe -e "require q{./Dev.pm}; PDL::Core::Dev::generate_core_flags()"(21): error C2037: left of 'state' specifies undefined struct/union 'pdl'
C:\\usr\\local\\perl\\msvc\\bin\\perl.exe -e "require q{./Dev.pm}; PDL::Core::Dev::generate_core_flags()"(29): error C2037: left of 'state' specifies undefined struct/union 'pdl'
C:\\usr\\local\\perl\\msvc\\bin\\perl.exe -e "require q{./Dev.pm}; PDL::Core::Dev::generate_core_flags()"(37): error C2037: left of 'state' specifies undefined struct/union 'pdl'
C:\\usr\\local\\perl\\msvc\\bin\\perl.exe -e "require q{./Dev.pm}; PDL::Core::Dev::generate_core_flags()"(45): error C2037: left of 'state' specifies undefined struct/union 'pdl'
C:\\usr\\local\\perl\\msvc\\bin\\perl.exe -e "require q{./Dev.pm}; PDL::Core::Dev::generate_core_flags()"(54): error C2037: left of 'state' specifies undefined struct/union 'pdl'
C:\\usr\\local\\perl\\msvc\\bin\\perl.exe -e "require q{./Dev.pm}; PDL::Core::Dev::generate_core_flags()"(55): error C2037: left of 'state' specifies undefined struct/union 'pdl'
C:\\usr\\local\\perl\\msvc\\bin\\perl.exe -e "require q{./Dev.pm}; PDL::Core::Dev::generate_core_flags()"(64): error C2037: left of 'state' specifies undefined struct/union 'pdl'
C:\\usr\\local\\perl\\msvc\\bin\\perl.exe -e "require q{./Dev.pm}; PDL::Core::Dev::generate_core_flags()"(65): error C2037: left of 'state' specifies undefined struct/union 'pdl'
C:\\usr\\local\\perl\\msvc\\bin\\perl.exe -e "require q{./Dev.pm}; PDL::Core::Dev::generate_core_flags()"(74): error C2037: left of 'state' specifies undefined struct/union 'pdl'
C:\\usr\\local\\perl\\msvc\\bin\\perl.exe -e "require q{./Dev.pm}; PDL::Core::Dev::generate_core_flags()"(75): error C2037: left of 'state' specifies undefined struct/union 'pdl'
C:\\usr\\local\\perl\\msvc\\bin\\perl.exe -e "require q{./Dev.pm}; PDL::Core::Dev::generate_core_flags()"(83): error C2037: left of 'state' specifies undefined struct/union 'pdl'
Core.xs(86): error C2037: left of 'state' specifies undefined struct/union 'pdl'
Core.xs(101): error C2037: left of 'state' specifies undefined struct/union 'pdl'
Core.xs(102): error C2037: left of 'nbytes' specifies undefined struct/union 'pdl'
Core.xs(111): error C2037: left of 'nbytes' specifies undefined struct/union 'pdl'
Core.xs(120): error C2037: left of 'datasv' specifies undefined struct/union 'pdl'
Core.xs(121): error C2037: left of 'datasv' specifies undefined struct/union 'pdl'
Core.xs(121): warning C4473: 'printf' : not enough arguments passed for format string
Core.xs(121): note: placeholders and their parameters expect 2 variadic arguments, but 1 were provided
Core.xs(121): note: the missing variadic argument 2 is required by format string '%p'
Core.xs(122): error C2037: left of 'datasv' specifies undefined struct/union 'pdl'
Core.xs(122): fatal error C1003: error count exceeds 100; stopping compilation
NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\bin\Hostx64\x64\cl.EXE"' : return code '0x2'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\bin\Hostx64\x64\nmake.EXE"' : return code '0x2'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\bin\Hostx64\x64\nmake.EXE"' : return code '0x2'
Stop.
Also: we're mixing two problems in one ticket, so I'd like to close the first problem with this: https://github.com/dk/PDL-Graphics-Prima/actions/runs/4308560453/jobs/7514973367 . My fix apparently worked, and valgrind setlocale leaks are unrelated to Prima, there's some bad glibc action happens.
Regarding the first point, Visual C(etc) is known to not compile PDL, since it doesn't conform to the parts of C99 that PDL needs: complex numbers.
I agree that your fix worked, however I was seeing no crashes on my system before you applied it, which is same as now, and we're seeing the CI for this module crashing both before and after your fix, which is therefore also same as now.
I've just re-triggered the CI on my last push on this distro's master
, to see if that's crashing. I assume it will. Fundamentally, I am not going to merge this nor release an update until it is passing in CI.
I pushed commits to a branch of this repo; the first one making the CI have P:D:P 0.16 (still crashes), the second to have Prima .167001 (no crash), the third with Prima 1.68 (crash) - https://github.com/PDLPorters/PDL-Graphics-Prima/commits/ci-tries
That suggests to me the crash was introduced between 1.67001 and 1.68. Using this will probably speed things up by letting you log into the runner: https://github.com/mxschmitt/action-tmate - try it on your own fork of this repo :-)
Hmm are you positive that the crash with 120-paint is observed on Prima-1.68001 (not 1.68) ? I cannot see it at all.
Also, the demo prima coredump, is luckily, can be reproduced on linux (whew!), but valgrind cannot catch it. Worse, it's there at least wince 2021, back from when David was working on it. I tried to bisect it earlier but that's where it doesn't compile with PDL ... we'll see how far can I go there..
Just tried action-tmate - great tool, thank you very much! The results are that it coredumps on 1.68001 indeed, but does not on the latest git snapshot. So I rolled out a 1.68002, let's see if this one behaves
I've triggered the CI to run again on this PR, let's see how it does.
Hi Ed,
I'm not sure if there's something you're waiting me to do before this PR could be accepted?
/dk
Merged and released as 0.20 - thank you. Does the second commit mean the demo now doesn't crash?
Doesnt seem to crash, no. Thank you!
win32: Prima v1.68 supports File.onRead on console input, which together with the new Prima::sys::win32::ReadConsoleInput makes it possible to write a more-or-less proper emulation of non-blocking STDIN on windows.
How to check:
see that the graph windows and the input line are both responsible