Pod::Simple was missing many warnings and errors and thus has been replaced by Pod::Checker. This is sensible, since the advice given by the `pod_syntax.t` test when errors occur is that one should use `podchecker` to investigate errors in detail, thus we should be using Pod::Checker internally to begin with.
use docs/running.pod as description for the runcore, debugging and optimization options. add missing docs for the runcores. we already have a new parrot manpage for the rest. allow the old runcores in the implementation as described in the docs. but disable the exec runcore, as it is different from the jit runcore. there is now side-effect of producing a native executable (as of now).
encoding_find_cclass and encoding_find_notcclass can now cache an iterator between calls, because there is at least one usage of the pattern "scan a whole string for newlines" in rakudo. for utf8 files, like Actions.nqp and Grammar.nqp, it used to take 5s and 2s respectively, now takes 2.4s and 0.9s respectively after the patch. Benabik: My only concern is that there's a chance of false positive on the cache find_cclass called string GC'd new string allocated at same address find_cclass called This seems unlikely, but heisenbug paths like this are really hard to track down if tripped over. We could add the cached iterator directly to the string, adding two words per string that we can try to reuse any time STRING_iter_skip is called. (Probably involves an API change: STRING_ITER_AT instead of STRING_ITER.) And now that I think about it, caches can be very problematic in threaded environments. See #1027
Throw unknown key type exceptions in default case Remove some compiler warnings (tested even with clang++) Added even the strcmp case exception even if it makes not much sense. Harmonize "Wrong type of value from annotation" exception messages. Most work done by Paul Cochrane In Makefile moved touch up to align the gnu replaceble testutils so that I can delete the superfluous slow $(PERL) -MExtUtils::Command -e variants manually more easily.
make headerizer and --debugging tested. TODO: UNUSED should be switched to SHIM in the decl.
debug.o wants this symbol even with inline
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.
According to zefram docs/pdds/pdd19_pir.pod talks about sub_label($I0, $I1, $I2) as "... discards any return values". Actually this is not correct. The quoted code is equivalent to () = sub_label($I0, $I1, $I2) It doesn't save any return values, but if result count checking is enabled then returning any non-zero number of results will cause an exception. Not quite the discarding that the documentation suggests. I changed the wording to "does not save any return values."
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.
that it is 2x faster. Now that all known --optimize bugs are fixed (even on powerpc TT #1930)