snprintf %+u fails on mingw only. t/op/sprintf.t test 217 and t/op/string.t: 196, 198 (now 197) The + is always printed, but should not. As it works okay in win32 (with msvcrt.ll) and cygwin (cygwin1.dll) on the same system, I assumed it's mingw only snprintf/sprintf wrapper issue. Probe in auto:snprintf for PARROT_HAS_BROKEN_SPRINTF_UPLUS and skip the '+' in %+..u in spf_render.c. But the probe is not yet correct. It passes on mingw, but should fail.
Fixed several bugs in the dummy dynpmc os: The dynpmc/os was a static pmc. msvc could not link duplicate names. I had to change the pmc to dynpmc, and had to rename the os to osdummy, which is installed as os.so/bundle/dll. Tested ok on msvc.
$< is only valid for suffix rules, and also then not for nmake
I find this somewhat bizzare, given that it's basically empty, but don't know how to fix that. Instead of using the old nmake-breaking rule, let the suffix rule in the main Makefile handle it.
The rule to build os.str seems to be unnecessary and breaks nmake.
Now also pir. E.g. VALGRIND=tsan prove `find t/src -name \*.t`
E.g. POSTMORTEM=1 VALGRIND=tsan perl t/src/embed.t or VALGRIND=valgrind perl t/src/extend.t
PARROT_HAS_(CORE|EXTRA)_NCI_THUNKS is in %PConfig, not %PConfig_Temp. Skip warning for src/gc/malloc.c /usr/include/malloc.h when HAVE_USR_INCLUDE_MALLOC_H is undefined. Skip warning for src/glut_nci_thunks.c glut_nci_thunks.str at all.
make -s clean listed all dirs to be cleaned up for gcov-generated files. Print only one line
I also tried to convert extend_15 to the new API but failed to understand Parrot_runcode()
Broken since the packfile API redesign
Nicholas Clark correctly analyzed it by studying strace. Andy Dougherty came with the patch. Confirmed by rurban.
In order to update the native pbcs for 12.1, the creation script needed to be fixed.
Manually cleaned up pull request 778 by bdw. Rationale whiteknight: It's my belief that making OS PMC a dynpmc in the first place was a mistake. It is the only real way to access some pretty fundamental filesystem and other functionality from the user level. Further, all the real logic is implemented inside libparrot already, but without OS PMC it isn't exposed to the user at all. dynpmcs should be used for cases when we want to add new logic to the VM, not when we already have that logic but want to be stingy about when we expose it. All our major users rely on OS pmc also. Winxed, Rakudo, NQP and Rosella all make some use of it. It's important and necessary, and it should be in core.
…dd a regression test for invalid value to '--prefix'.
Remove already by -Wall and -Wextra implied gcc/clang warnings, for a shorter cc cmdline.
There is a special test to check if every .dump contains PCCMETHOD.pm as dependency, but every .dump contains $(PMC2C_FILES) which includes PCCMETHOD.pm.
Remove the unneeded suffix rule. Remove duplicate lib/Parrot/Pmc2c/PCCMETHOD.pm dep. Fix vtable.dump deps. default.dump is still created on every make invocation, only make -t fixes that.
This test not only fails on MSVC, also with mingw gcc and all others.
For the first dlfunc function calls use the more readable assignment form. The other form is tested later also.
ncifunc(null_pmc, atoi, it) apparently does not find atoi in the windows c library. SKIP tests then.