No core or build changes since 6.2.0, just tests and benchmarks
There are systems without INET6 family support at all. It is a kernel option afterall. Thanks to basiliscos for reporting
detected by my cygwin64 smoker, but this is a general problem
skip t/pmc/os.t 10 and 18. failing on cygwin64. See http://perl514.cpanel.net/build/builders/parrot-cygwin64/builds/42/steps/shell_2/logs/stdio
some OS have no hires timings on benchmarks. thus not all floats are printed with a ., esp. on cygwin. GH #1066. see http://perl514.cpanel.net/build/builders/parrot-cygwin/builds/41/steps/shell_2/logs/stdio "0 seconds. 4000 lops/sec"
skip debug_break only on windows. test okay on darwin, cygwin, cygwin64 and linux.
02-install_files.t assumed old cygwin 1.5 coreutils behaviour, skipping phony over phony.exe. This test fails on current cygwin and cygwin64 systems with: not ok 15 - Production, so 2 files created; 1 file passed over Failed test 'Production, so 2 files created; 1 file passed over' at t/tools/install/02-install_files.t line 230. got: '3' expected: '2' See http://perl514.cpanel.net/build/builders/parrot-cygwin/builds/40/steps/shell_2/logs/stdio or http://perl514.cpanel.net/build/builders/parrot-cygwin64/builds/41/steps/shell_2/logs/stdio removed the wrong test.
already works. Thanks to pmichaud
to avoid test todos
tools/dev/mk_language_shell.pl and lib/IO/CaptureOutput.pm contain invalid pod which fail with the stricter podchecker
Subversion is no longer used in this project and thus the exceptions for the svn Id: tag within the test code can be removed.
have to use volatile scratch registers in Parrot_Integer_increment_orig to avoid skipping overflow sementics: -1 => MAXINT fixes t/pmc/bigint.t test negate_min_integer
t/compilers/imcc/syn/regressions.t contains testing for a run-time exception which is optimized away by constant propagation and then used_once at compile-time with -O2. $ ./parrot -d1040 -O2 t/compilers/imcc/syn/regressions_2.pir used once deleted 0x2289920 div $I1, 1, 0 used once deleted 0x228a0f0 div $N1, 1.0, 0.0 code_size(ops) 17 old_size 0 0 push_eh_ic 0x251d6c0 push_eh ok1 2 pop_eh 0x251d9d0 pop_eh 3 print_sc 0 0x251db30 print "not " 5 say_sc 2 0x251dd30 say "ok 1 - caught div_i_ic_ic exception" 7 push_eh_ic 0x251de90 push_eh ok2 9 pop_eh 0x251e1a0 pop_eh 10 print_sc 0 0x251e260 print "not " 12 say_sc 1 0x251e430 say "ok 2 - caught div_n_nc_nc exception" 14 set_returns_pc 0 0x251ed60 set_returns 16 returncc 0x251ede0 returncc
fixes GH #1048.
and smolder_fulltest. fixes GH #1040. Travis should now be useful again
add EXPECT,LIKELY,UNLIKELY macros to feature.h as in the linux kernel and perl5 probe for __builtin_expect() support in a new auto::expect configure step Usage: if (UNLIKELY(var == 0)) fail(); Add emacs mode:c support for test_c.in files, and relax the coda test for this. Should be used in all test_c.in files.
we need to use volatile temporaries really with such floats. Fixes t/op/number.t test 50
Stop constant propagation at yield or invokecc for possible push_eh/pop_eh non-local effects. This can undo the set of the constant value. See t/pmc/exception-old_19.pir: cont = test() contains a push_eh, and the subsequent pop_eh at cont() changes the value of the constant redux from 0 back to 1. So constant propagation for redux=0 cannot delete "if redux goto done" and the done branch.
If the deleted op leads to the last op, which has no op->next break the used_once loop. Fixes GH #1042 t/op/exit_6.pasm set I0, 0 # used_once => deleted end
set reg, const is only a valid const setter ifregx and const have the same type, otherwise the type are coerced, like set N0, 1 or set I1, 1.5. Do not propagate such values. Fixes t/op/jitn_13.pir [GH #1043]
Each one with a ticket. Still trying to fix them though. Looks easy enough. Add -O2 to t/fullharness. Save to run now, to detect further regressions.
#1037] See #1037 for the nci problem. I couldn't see any logical problem with the attempted optimization add I0,1 vs inc I0 tested ok. just a get_global_p with if_p_ic P4,out converted to unless_p_ic P4,loop was problematic, so we skip optimizing such loops. get_global has no type attached, so we need to STREQ added a IMCC_debug DEBUG_OPT1 notice for this case.
mark the 4 failing -O1 nci tests as TODO
allow used_once elimination only for purely functional ops without side-effects. Fixes t/compilers/imcc/reg/alloc.t test 2 alligator 2 - r9629 t/compilers/imcc/reg/spill_old.t test 1 bug \#32996 and some more. set ITPUREFUNC in the parser, as this is the best place to find them: logical un_op and null; artithmetic bin_op and assign_op
this option is disabled
t/fullharness runs now -O1 also, -O2 not yet