Skip to content

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also compare across forks.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also compare across forks.
This comparison is big! We’re only showing the most recent 250 commits
Commits on Jan 04, 2015
@rurban rurban [config] Fix and allow --cxx on FreeBSD 10 (clang, not g++) #1166 a2922bd
Commits on Jan 06, 2015
@rurban rurban [config] Fix git_describe config probe on tag-less repos
e.g. git clone --depth ... Closes #1167
@rurban rurban [imcc] Fix parser crash detected by the american fuzzy lop
See GH #1168.
The fuzzer only processed 29.49% cases so far, so there might be more.
@rurban rurban [GH #858] Fix solaris asctime_r with _POSIX_PTHREAD_SEMANTICS/_POSIX_…
Commits on Jan 07, 2015
@rurban rurban [docs] add docs/dev/fuzzing.pod for afl
Instructions how to use the american fuzzy lop.
See also
@rurban rurban [docs] more on docs/dev/fuzzing.pod e17a862
@rurban rurban [docs] fix typo docs/dev/fuzzing.pod 3f099e1
@rurban rurban [imcc] Fix 2nd parser crash detected by afl
invalid quoted strings '\0 or "\0. See GH #1168
@rurban rurban [codingstd] overlong line in docs/dev/fuzzing.pod 8e22e34
Commits on Jan 08, 2015
@rurban rurban [docs] 2 more paragraphs for docs/dev/fuzzing.pod
Ctrl-C and resume during fuzzing

Crosscheck the results for false positives
@rurban rurban [docs] add to fuzzing "Further investigations - crash explorer" 2176e8e
Commits on Jan 10, 2015
@rurban rurban [core] replace Parrot_pcc_get_regs_used with PCC_GET_REGS_USED
This is a minor refactor to avoid internal function calls, but
not effective for the fast runcore. Only called with --debugging or on -t (trace).

Parrot_pcc_get_regs_used is an exported API
@rurban rurban [test] add test for reg alloc crash GH #1168
detected by afl-fuzz. See docs/dev/fuzzing.pod
@rurban rurban [test] minimize testcase for GH #1168 cabc1cc
@rurban rurban [imcc] fix end in methods GH #1168
This is the last fix for all afl-fuzz detected crashes.

And `end` op inside a user-defined method will exit a runloop unproperly.
The old ctx will be corrupted. Replace it with an equivalent `returncc` op,
which does set the continuation and context properly to end the current runloop.

`exit` would be an alternative, but we documented `end` to halt the interpreter,
which is fresh inside certain runloops. I documented this case as unspecified behaviour.
It crashed before, now it returns.
Commits on Jan 11, 2015
@rurban rurban Merge branch 'smoke-me/afl-crash-gh1168'
Smoked ok
@rurban rurban [codingstd] close GH#719 > 20min TEST_SLOW
all copyright years are now correct
@rurban rurban Deprecate all exported non Parrot_ functions, #1122
All remaining exported functions with non Parrot_, PDB_, imcc_, and mem_
prefixes got now Parrot_> prefixes, and the old functions are deprecated.

* PackFile_               => Parrot_pf_ (some)
* dynop_register          => Parrot_dynop_register
* new_runloop_jump_point  => Parrot_runloop_new_jump_point
* free_runloop_jump_point => Parrot_runloop_free_jump_point
* parrot_split_path_ext   => Parrot_split_path_ext
* print_pbc_location      => Parrot_print_pbc_location

See GH #1122

Missing is clone_interpreter from parrotinterpreter.pmc,
and several Packfile_ functions. Only Packfile_destroy is yet deprecated
@rurban rurban PackFile API refactor => Parrot_pf_. See GH #1170
See #1122 and TT #2140

static the unused PackFile_ functions.
rename and deprecate the PackFile_ functions, which are not static.
move the segments functions to segments.c

PackFile_new             => Parrot_pf_new
Parrot_new_debug_seg     => Parrot_pf_new_debug_segment
PackFile_Segment_new_seg => Parrot_pf_new_segment
Parrot_switch_to_cs      => Parrot_pf_switch_to_cs
Parrot_debug_add_mapping => Parrot_pf_debug_add_mapping
PackFile_destroy         => Parrot_pf_destroy
Parrot_fixup_subs        => Parrot_pf_fixup_subs
Parrot_debug_pc_to_filename => Parrot_pf_debug_pc_to_filename

PackFile_Annotations_lookup    => Parrot_pf_annotations_lookup
PackFile_Annotations_add_entry => Parrot_pf_annotations_add_entry

PackFile_Segment_destroy   => Parrot_pf_destroy_segment
PackFile_add_segment       =>
PackFile_map_segments      =>
PackFile_find_segment      => Parrot_pf_find_segment


@rurban rurban PackFile API refactor part 2. See GH #1170
Finish the PackFile deprecation refactor.

  PackFile_Annotations_*, PackFile_ConstTable_*, PackFile_funcs_register,
  PackFile_Segment_*, PackFile_Constant_pack.
@rurban rurban [codingstd] fix linelength and missing asserts 19d18b9
@rurban rurban pgegrep: Fix for -V (end after help) 6802e32
Commits on Jan 12, 2015
@rurban rurban [cage] SHIM_INTERP in pf_register_standard_funcs 5e173e1
@rurban rurban PackFile API refactor part 3. See GH #1170
Leave some Parrot_pf_ConstTable_ functions in the API.
Add a precise summary to docs/deprecations/deprecations.pod.
PackFile_funcs_register => pf_register_funcs.
@rurban rurban Rename clone_interpreter => Parrot_interp_clone
and move it from the pmc to the API (auto-headerized).
deprecate clone_interpreter.
refactor Parrot_interp_clone s => interp

Closes GH #1122
@rurban rurban Merge branch 'smoke-me/exports+depr-gh1122'
Smoked ok,
Tested ok with nqp and rakudo.
There are some deprecation warnings todos with perl6.ops
Commits on Jan 14, 2015
@rurban rurban headerizer: fix docs and interp check for Parrot_interp_clone 980693d
@rurban rurban [codingstd] add ASSERT macro for interp_clone, fix line lengths 08bfc0b
@rurban rurban nci: bring back t sig, for nci cstring support
WIP. needed in most external code. #601
@rurban rurban nci: add cstr, pshort/pint/plong
the old 't' type as string,
and the pnum types for PMC access to integers (Integer).

fail: only t/pmc/nci_13.pir v (void) special-case
@rurban rurban nci: special-case v signature (void)
void needs to be rhs singleton. check for this at run-time,
not just compile-time.

also improve and harmonize the nci exception messages
@rurban rurban nci: re-add old nci tests for t,2,3,4 [GH #601]
@rurban rurban ChangeLog for rurban/t-nci-sig-gh601
SDL is now usable again. #436, #601, #605
@rurban rurban [test] tune the nci tests a bit 531f7be
@rurban rurban [test] fix nci.t nci_pv, skip the v sig in args
And harmonize one more wrong signature type error message.
@rurban rurban [test] fix nci_vP, cannot check for PMCNULL, be we can check for NULL 58cf310
@rurban rurban nci: make 234 destructive, improve v, add nci_ii2 test
234 do work now.
On big endian I need to add the ptr offset to the integer.
On both endians mask the unused bits, so that the result will not be
influenced by them.
@rurban rurban Merge branch 'smoke-me/t-nci-sig-gh601'
Smoked ok
@rurban rurban [examples] SDL: fix concat and replace t with p sig
really need to revert  0a8cc07 remove support for deprecated "t" nci signatures
@rurban rurban SDL: fix example to use t sig again 989494b
@rurban rurban SDL: more libSDL_ttf-2.0 choices to search for b5a2402
@rurban rurban [examples] SDL: print SDLLIBPATH= only on failure 53df8f4
@rurban rurban SDL: simplify loader
there are no error messages, when loading a .so failed.
so do not bother the user with messages when everything went ok.
@rurban rurban t/examples/shootout.t: add timings, enable TEST_PROG_ARGS
-O1 and -O2 currently fails with fasta. A optimizer bug!
@rurban rurban SDL: fix setattribute
need a str now. find_global was also deprecated with 2.9 TT #1660
@rurban rurban SDL: fight bitrot: wrong library/ paths, find_global GH #601 0d3a067
@rurban rurban SDL: remove wrong examples/nci/sdl_blue_rectangle.pir
we have a modern nci examples/sdl/blue_rect.pir instead.
Closes #436
@rurban rurban fix ncurses and Curses nci
nci: replace b by t, 234 do work now.
improve loadlib tries and add error handling.
examples/library/ncurses_life.pir tested ok
@rurban rurban [codingstd] nci_test.c, libffi.c c1a8d82
@rurban rurban Merge branch 'smoke-me/SDL-gh601'
Smoked ok. Some SDL examples are still broken though.
@rurban rurban [cage] socket.c: unused variable warnings without ipv6 e6aa9c7
@rurban rurban nci: provide new thunk definitions
generated all used Curses signature thunks.
Added the new/old nci types t234 to the thunk generator.
Commits on Jan 15, 2015
@rurban rurban nci: add SDL thunk definitions 257e398
@rurban rurban [docs] undeprecate t234 in docs/pdds/draft/pdd16_native_call.pod
They are required for most NCI samples and were never properly replaced.
@rurban rurban nci: move t/pmc/nci.t signatures from extra to core
update generated t/pmc/nci.t signatures and move it to
extra can be omitted via --without-extra-nci-thunks.
cache a useful subset of pregenerated thunks in core.
Document how to generate or update the signatures from a module.

Also refactor tools/dev/ a bit: Add Windows support.
Add more docs to tools/dev/nci_thunk_gen.pir
@rurban rurban nci: bootstrap-nci static thunks
enable t234 in nci_thunk_gen.pir
@rurban rurban nci_thunk_gen.pir v0.03
properly cast argument pc c<=> c types.
regenerate thunks, now without warnings
@rurban rurban nci: fix static thunks
add slow support for t234 refs to nci_thunk_gen.pir.
libfii manipulates the iv slots directly, but we go the safe and slow route here.
special-case t234 as if they were refs.

Makefile: warn when one of the src/nci/*_thunks.c is out of date.
@rurban rurban nci: avoid static thunks for 234
The cc optimizer will create invalid conversions due to strict aliasing.
We rather rely on the better code in libffi to convert 234 intrefs dynamically.
Closes GH #1171
@rurban rurban nci: add ipp sig to core thunk for nci.t 32 funcptr
also fix the nci.t structure for the skips
@rurban rurban ChangeLog: for smoke-me/new-thunks-gh1171 8dd2982
@rurban rurban Merge branch 'smoke-me/new-thunks-gh1171'
Smoked ok
Commits on Jan 16, 2015
@rurban rurban [pmc] temp. disable the rpa splice shrink fast optimization branch
to fix a perl6 blocker perl6/nqp#209, GH #1174.
But this broke test 129 of t/pmc/resizablepmcarray.t
Commits on Jan 17, 2015
@rurban rurban [test] add test and stress tests for GH #1174
delete one too less in rpa splice shrink fast
@rurban rurban [pmc] fix rpa shrink fast GH #1174
shrink (deleted) off-by-one. Passes now the new stress tests.
Closes GH #1174 and fixes perl6/nqp 209
@rurban rurban [test] add more rpa-splice stress tests
this time with explicit result checks, with perl5 semantics.
All tests pass, the new #1175 assertion in splice grow with (5,4,8) off=0 count=0
not repro yet
@rurban rurban [pmc] rpa: add splice: offset past end of array exception
conformant to perl5 semantics. Closes GH #1176
@rurban rurban [test] add testcases for #1176
we see now splice() offset past end of array excpetions in perl5 and parrot.
This is of course not yet usable as such
@rurban rurban [test] fix testcases for #1176
check now for proper splice() offset past end of array exceptions
Commits on Jan 18, 2015
@rurban rurban [test] enable the rpa-splice offset past end warning
See GH #1176. In parrot we have to manually enable the warning, in perl5 not. Whatever.
@rurban rurban [test] refactor t/stress/rpa-splice.t
For GH #1175 and #1176.
Use the first negative count tests only under a memory checker, valgrind or asan/msan.

Use dynamic done_testing for the test count and allow a flexible MAXCOUNT for the p0 size.
Fix the offset overflow detection, only use that on off by one to avoid too many noisy perl5 warnings.

Failed tests:  88, 102-103, 105, 273 with MAXSIZE=5
@rurban rurban [pmc] fix more rpa splice cases #1174 + #1175 + #1176
- First, for debugging only:
  track if no TRACE_RPA was ever emitted and do it at the end to see a splice
- Second, on splice off > size, enlarge the array as in perl5, see GH #1176.
- Third, disallow the splice shrink fast, just adjusting the offset if we have
  to keep one element at the left.
- Forth, fix splice shrink followed by a grow or fill, by not adjusting the
  offset twice.
- Fifth, on splice shrink fast, also adjust the new size, as the newsize branch
  below is not always taken (jump to splice_copy)

Add an optional argument to t/stress/rpa-splice.t for the maxsize, default 7.
We still have 'splice off > size' errors > 7.
@rurban rurban [test] add proper rpa testcases for the previous fixes 20a9072
@rurban rurban [pmc] this should be the last splice fix GH #1176
Do not enlarge the array on overlarge offset. Rather fix the offset, as in perl5.
Add a proper testcase also
@rurban rurban ChangeLog: updated for #1171, #1174, #1175, #1176 4c46059
@rurban rurban ChangeLog: more tuning 9ca85b6
@rurban rurban Merge branch 'smoke-me/rpa-splice-shrink-fast-gh1174'
Smoked ok, tested also on centos5 32bit and darwin ppc.
@rurban rurban [nci] fix 234 call_ffi calculation for cornercases
failed on cygwin 32bit with INTVAL_SIZE=8, but probably also on
all other special --intval and pointer sizes.
Calculate the slack for INTVAL dynamically.
Use it internally +1 for the switch fallthru. Improves GH #601
Commits on Jan 19, 2015
@rurban rurban native_pbc: updates for 7.0 on big endian 32bit 0fc544c
@rurban rurban native_pbc: updates for 7.0 on little-endian 32+64 bit 939435b
@rurban rurban native_pbc: fingerprint updates for 7.0, big endian 64bit 0748de5
@rurban rurban [core] silence Unknown codeset `', defaulting to ASCII
On small or old libc's nl_langinfo will just return an empty string,
where we used to default to ASCII, in Parrot_init_platform_encoding().

This is a regression on ppc. Closes #1180.
@rurban rurban ChangeLog: for #1180 e42c6b8
@rurban rurban [nci] fix new libffi code for big-endian
wrong pointer for nci sigs 2, 3. See GH #601.
Commits on Jan 20, 2015
@moritz moritz Perl 6 synopses now live at fd2cf91
Commits on Jan 21, 2015
@Util Util Prepare for the 7.0.0 release. 4435bb7
@Util Util Corrected date for February release. f9bb25b
@rurban rurban internal: remove interp arg from pf_register_standard_funcs()
This is not exported, so no deal. Closes GH #1183
@rurban rurban [config] fix --m=64 logic with gcc, GH #1181
- Tested on debian multilib powerpc64, analog to the previous
  mips64 fixes in #1110.
- Fix the missing space after lib64. See GH #1181.
- Add analog fixes for arm and sparc also, untested.
- Change more wrong libpaths: also libdir embed-ldflags
  inst_libparrot_linkflags rpath_lib

Note that cc_build still uses wrong paths, as icu is still
falsely detected.
@rurban rurban [config] Fix --m=32 with explicit --cc in init::defaults
--m=32 --cc="ccache gcc" will delete the -m32 from the cc setting, as one
would suspect it is added to cflags not cc.  Add -m32 to ccflags if cc was
given as option, ditto for ld and link.
@rurban rurban [config] better icu probes, esp for --m overrides #1182
Add a new `has_libpath_override' config hash entry, with
lib or lib64, when the libpaths had to be adjusted from lib or lib64.
Do this for intel in init::defaults and for gcc in auto::gcc.
We do not more about the rest.

We cannot just blindly assume adding -Isystem will help finding the icu
headers returned by icu-config. We actually need to link the libs also
to detect possible cross-linking problems.
Provide a better error message on icu and --m failures.
@rurban rurban [config] skip icu configs when cross build failed
we failed the tests, but still passed has_icu => 1.
@rurban rurban [config] protect cmdline libpaths from --m overrides, GH #1181
honor --ldflags, ... cmdline options and do not override them on
--m cross adjustments.

Set the config hash only once, at the end of the loop.
@rurban rurban ChangeLog: for smoke-me/m64-gh1181 03246d1
@rurban rurban Merge branch 'smoke-me/m64-gh1181'
Tested ok on amd64 --m=32, powerpc64 --m=64, mips --m=64
@rurban rurban [docs] cover 7.3 in release_manager_guide 3c77a57
@rurban rurban [config] Optimize away ExtUtils::Command on posix systems
It would be nice if the perl5 fallbacks would be better and safer
than the posix/gnu tools, but we waited too long. Closes #1177.
@rurban rurban [docs] minor release_manager_guide improvement e5c6eaf
@rurban rurban [config] Fix cpu config values for gcc_cmpxchg #1173
On amd64 atomic/gcc_x86.o is now included.
The HAS_\U${platform}_$feature config hash entries are now harmonized.
@rurban rurban [config] harmonize ppc and sparc cpu config entries also
Removed the old all-lowercase $platform_has_$feature keys.
Use the key HAS_$platform_$feature instead.

Closes GH #1173
@rurban rurban [config] fix cmpxchg probe and darwin i386 detection
on gcc-style asm we know we can use stdint.h, which we need
to check for 64bit.
on darwin --m=32 we need to use cpuarch i386, not amd64.
Fixes GH #1173
@rurban rurban ChangeLog: for smoke-me/gcc_cmpxchg-gh1173 26643df
@rurban rurban Merge branch 'smoke-me/gcc_cmpxchg-gh1173'
Tested ok on all intel combinations
@rurban rurban [core] fix atomic/gcc_x86.h --without-threads
atomic.h already provides these fallback declarations
Commits on Jan 22, 2015
@rurban rurban [codingstd] include/parrot/atomic/gcc_x86.h c_indent.t fbc7817
@rurban rurban [atomic] cannot mix PARROT_EXPORT + PARROT_INLINE
remove the INLINE
@rurban rurban [pmc] rpa: fix custom_mark_destroy confusion
custom_mark_destroy is only needed in the init method, which is fpa.set_integer_native.
optimize PObj_custom_mark_destroy_SETALL to use only one setter call.
@rurban rurban [GC] fix GC segfault with --optimize
A wrong PARROT_CANNOT_RETURN_NULL in Parrot_pf_get_current_code_segment
(unchecked return of inter->code, which can be null) causes GC segfaults
when inter->code == NULL.

Fixes GH #1186.
This wrong PARROT_CANNOT_RETURN_NULL was added with 3.6.0
in 7dc0e22 at Wed Jun 29 20:52:24 2011
but started being fatal after the new packfile refactor with 7.0,
when the cc optimizer started optimizing away the bc != NULL check
in mark_code_segment()
@rurban rurban [GC] optimize away a Parrot_pf_get_current_code_segment call
This was the call with the wrong CANNOT_RETURN_NULL attribute, causing GH #1186.
We only need inter->code, and it can be const. The const_table also
@rurban rurban [threads] fix deadlock in gc_gms_mark_and_sweep
move the lock downwards to the guard. Fixes GH #1187
@rurban rurban [docs] cover 7.3 in release_manager_guide 1bfb43c
@rurban rurban [docs] minor release_manager_guide improvement ba5fd2f
@rurban rurban [pmc] rpa: fix custom_mark_destroy confusion
custom_mark_destroy is only needed in the init method, which is fpa.set_integer_native.
optimize PObj_custom_mark_destroy_SETALL to use only one setter call.
@rurban rurban [GC] fix GC segfault with --optimize
A wrong PARROT_CANNOT_RETURN_NULL in Parrot_pf_get_current_code_segment
(unchecked return of inter->code, which can be null) causes GC segfaults
when inter->code == NULL.

Fixes GH #1186.
This wrong PARROT_CANNOT_RETURN_NULL was added with 3.6.0
in 7dc0e22 at Wed Jun 29 20:52:24 2011
but started being fatal after the new packfile refactor with 7.0,
when the cc optimizer started optimizing away the bc != NULL check
in mark_code_segment()
@rurban rurban [GC] optimize away a Parrot_pf_get_current_code_segment call
This was the call with the wrong CANNOT_RETURN_NULL attribute, causing GH #1186.
We only need inter->code, and it can be const. The const_table also
@rurban rurban [threads] fix deadlock in gc_gms_mark_and_sweep
move the lock downwards to the guard. Fixes GH #1187
@rurban rurban [docs] alarm and threads
Update docs
Commits on Jan 23, 2015
@rurban rurban Prepare 7.0.1 hotfix release
Todo the 2nd t/stress/threads.t test, caused by stringbuilder gc,
probably #1123.
@rurban rurban [config] remove internal {without} arg when constant
small refactor to reduce unneeded complexity
@rurban rurban [config] fix ICU tests drop headers #1188
we forgot to pass the -I directives to _probe_icu.
Closes #1188
@rurban rurban [config] one more icuheaders probe fix for GH #1188
First try without icuheaders incpath, then with.

Note: This will still fail with shared icu, if the icu libpath is
not in the LD LIBRARY search path. but icu-config does not provide a rpath.
@rurban rurban [test] fix t/steps/auto/icu-01.t
remove tests for outdated internal functions
and fix some old capture tests
@rurban rurban Release 7.0.1 c4ec76d
@rurban rurban Merge branch '7.0.1'
Fixed Conflict:
@rurban rurban [docs] update release_manager_guide
remove some outdated items.
there is nothing version specific at the gh wiki and c2 wiki anymore.
@rurban rurban RESPONSIBLE_PARTIES + CREDITS: small updates
cotto and whiteknight are non-active since 5.0
@rurban rurban comment: add GH #1184 testcase for src/gc/system.c amd64 a00ee7f
Commits on Jan 24, 2015
@rurban rurban [config] add optimize to myconfig
It was not visible in ccflags of myconfig, thus needed extra
Commits on Jan 27, 2015
@rurban rurban win64: fix nci call regression, msvc only
On win64 with msvc the size of long is 4.
Broken with 6.11.0
Closes GH #1190
@rurban rurban msvc: sal does not work cl < 16.0 as such
Visual Studio 9 (cl 15.00) emits [returnvalue:SA_Post(MustCheck=SA_Yes)]
checks and similar which fails to parse somehow.
This is a regression from 6.10. I added better sal checks in 6.11
Windows MSVC only.
@rurban rurban [config] better documentation for Parrot/Configure/Compiler
cc_build and cc_run really have a monstrous and unusable api, which
deserves documentation.
@rurban rurban [config] add exit_code to cc_run* api
at least with wantarray we should be able to seperate a positive
empty output (as in inter::progs) from a failed compilation.
@rurban rurban [config] whitespace only 59f0cda
@rurban rurban [config] refactor inter::progs
do not pass cc around, we would need link also, but rather
take the used values from $conf.
test_compiler() needs to output a result, so that cc_run() has something
to return.
@rurban rurban [config] refactor windows hints for msvc
esp. for win64 with a strawberry perl, we cannot just take the
perl5 provided compiler settings. we need at least --cc=cl --link=link.

fix wrong g++ linker from strawberry on msvc.
provide -nologo
fixup msvcrt.lib with libcmt.lib for _environ access.
allow --link=cl flags also, in gcc fashion.
@rurban rurban [config] fix config/auto/cpu/amd64 warning with msvc 04e0f7e
@rurban rurban [config] rearrange msvc hints to get proper ccflags
with win64 on transformation from a strawberry mingw perl.
This also fixes the lost access to _environ, GH #1191
@rurban rurban [config] fix msvc hints
esp. when being configured with a mingw perl.
remove -s from optimize, disable -O3

tested ok on win64 and win32 with cl 17 and 15
@rurban rurban [config] msvc hints: disable link as cl
we need to link with link to support -nodefaultlib which is needed to access _environ
@rurban rurban [nativbe_pbc] fix win64 cvt_num16_num8
on intel assume we use intel 10-byte, not __float128. thus use cvt_num12_num8.
Note that was already fixed in the branch native_pbc2
@rurban rurban Merge branch 'smoke-me/win64-msvc-gh1190'
Passed all tests
@rurban rurban ChangeLog: for the windows fixes 786ae0b
Commits on Jan 28, 2015
@rurban rurban [native_pbc] finish cvt_num16_num8 fix #1193
move the old cvt_num16_num8 code for true __float128 to cvt_num16_num8_be,
where it is really used in non-powerpc long doubles.

Closes GH #1193.
Also fixed a small codingstd problem.

TODO: darwin ppc long-double, and many more conversions. See `native_pbc2` for that.
@rurban rurban [test] fix t/steps/inter/progs*
we refactored inter::progs::_get_programs
@rurban rurban Release 7.0.2 - Hotfix for Microsoft Visual C++ 9629cac
Commits on Jan 29, 2015
@rurban rurban new ChangeLog 9a4171c
@rurban rurban [test] Add 2 stable and good GC stress test to normal tests
See GH #1189
@rurban rurban [test] Only one test, travis timed out >10min
Also a minor test refactor.
Closes GH #1189
Commits on Jan 31, 2015
@rurban rurban [test] Fix tests for --ccflags=-DSTRUCT_DEBUG. #1195
Skipped the failing tests due to stderr pollution,
and added a # prefix to the debugging output.
Closes GH #1195
@rurban rurban [test] unmanagedstruct.t skip_all
Tests out of sequence.  Found (7) but expected (5)
Tests out of sequence.  Found (8) but expected (6)
Tests out of sequence.  Found (9) but expected (7)
Tests out of sequence.  Found (10) but expected (8)
Commits on Feb 08, 2015
@rurban rurban [gc] fix SIGBUS in GC trace_mem_block on alignment-strict CPUs (armv5)
We traced all mem and stack pointers +1 and not by +4 or +8. This is not
only a huge performance loss, it is also illegal on certain RISC
architectures.  ptrdiff_t is not a pointer, it is an integer.
use size_t* instead.
Note that this is not repro in qemu, even not with echo 5>/proc/cpu/alignment
on armv5-linux.

Should fix GH #1200.
Commits on Feb 16, 2015
@rurban rurban Release 7.1.0 - Lilian's Lovebird
"Recently, cases of Lilian's lovebird poisoning have intensified although it
is not known why poachers are poisoning the birds.  Lilian's lovebird
researchers assume poachers mean to poison larger mammals and lovebirds fall
victims." -
Commits on Feb 17, 2015
@rurban rurban bump ChangeLog skeleton for 7.2.0 3ade73a
Commits on Mar 17, 2015
@Util Util Fix warning on Win32 (with cl.exe) when `link` is not explicitly set. f1c695f
@Util Util Ran `bootstrap-nci` to get changes introduced by 11611de ; only affec…
…ted prelude comment.
Commits on Mar 18, 2015
@Util Util Prepare for the 7.2.0 release. 8ac7324
Commits on Apr 20, 2015
@rurban rurban win64: fix msvc hints for link
On win64 with msvc link needs to be link.exe, not cl.exe.
Set it now explicitly, before we only checked for the strawberry case with g++.
This is an regression and fixes issue #1203
@rurban rurban ChangeLog for smoke-me/win64-gh1203 c42ace2
@rurban rurban [test] relax t/op/gc-stress.t, and re-add first JSON.nqp test
with less gc stress
@rurban rurban OpenBSD has no RLIMIT_AS
as of 4.9
@rurban rurban PLATFORMS: update smoke tested platforms a477a36
@rurban rurban fixup PLATFORMS for opensolaris11-x86-gcc -lm fails 93a2b87
Commits on Apr 21, 2015
@rurban rurban Supported release 7.3.0 - "Peach-faced Lovebird"
"The rosy-faced lovebird is a fairly small bird, 17–18 cm long with an
average wing length of 106 mm and tail length of 44–52 mm.
Populations have been reduced in some areas by trapping for the pet trade.
However numbers may have increased in other parts due to human creation of
new water sources and the building of artificial structures which provide
new nesting sites." -
@rurban rurban Prepare next release 668b409
Commits on May 20, 2015
@Util Util Fix typos in documentation, comments, and descriptions. edc8b8b
@Util Util Fix punctuation 335e517
@Util Util Prepare for the 7.4.0 release. b171421
@coke coke Remove notifications to perl6-specific lists.
Even the rakudo compiler releases don't use -announce.
This probably dates from when rakudo was still in the nest.
Commits on May 23, 2015
@Util Util Prepare for the next release. e3e07f5
@Util Util Add Changelog: Coverity scans have resumed. 450a34c
@Util Util Fix Coverity bug CID 1299560 (MISSING_COMMA).
The lack of a comma caused the strings to be concatenated to "flooracos".
Commits on May 25, 2015
@Util Util Fix Coverity bug CID 61291: Insecure chroot (CHROOT).
chdir must be called immediately after chroot.
@Util Util Fix Coverity bug CID 743941 (NESTING_INDENT_MISMATCH).
The statement is indented to column 9, as if it were nested
within the preceding parent statement, but it is not.
Commits on May 26, 2015
@Util Util Add Changelog entries for last two commits. 63348c0
Commits on Jun 15, 2015
@rurban rurban [core] optimize integer mod
for all positive int args use the HW mod insn,
and do not call Parrot_util_intval_mod().
This was profiled to be a bottleneck. 4% perf. win in parrot-bench.
@rurban rurban [cage] remove executable perms from some testfiles 62d83bb
@rurban rurban Release 7.5.0 - "Yellow-collared Lovebird"
"White eye-rings lovebirds, of which Yellow-collared lovebirds are part, are
reportedly less aggressive in comparison to the slightly larger peach-faced
lovebird.  They are frequently housed in aviaries with other species of
their genus, a practice which although can be convenient, and wonderfully
aesthetic, may lead to hybridization.  This can especially be concerning
where other species may not be as locally common e.g.  black-cheeked
lovebird, and Lilians lovebird." -
Commits on Jul 22, 2015
@Util Util [t] Corrected reversed order of got/expected. a87196b
@Util Util [pmc] Added missing returns to switch/case in structview. d6bbc55
@Util Util [t] Refactored to list all problem records with ok() and diag(); is_d…
…eeply() only showed the first problem, and is overkill when @expected is always [].
Commits on Jul 23, 2015
@Util Util Added note as to why "include/pmc/pmc_default.h" is sometimes missing…
… from "MANIFEST.generated". See GH#1206.
@Util Util Prepare for the 7.6.0 release. a6d5d17
@Util Util Prep Changelog for next release. 9c68f75
Commits on Aug 12, 2015
@chromatic chromatic Removed bitrotted author attributions. 0cc9b34
@Util Util Merge pull request #1207 from chromatic/remove_attribution
Removed bitrotted author attributions.
Commits on Aug 17, 2015
@rurban rurban [examples] fixup podchecker issues from prev.
sole =cut does not pass podchecker.
@rurban rurban Release 7.7.0 - "Red-headed Lovebird"
"It makes its nest in a termites nest usually in a tree or sometimes on the
ground.  To make a nest the female digs a tunnel up to a length of 30 cm (12
in) in the termites nest in a colony with other lovebirds."

"The population is suspected to be in decline owing to ongoing habitat
destruction and unsustainable levels of exploitation."
- BirdLife International (2015) Species factsheet: Agapornis pullarius.
Downloaded from on 17/08/2015
Commits on Aug 18, 2015
@tkob tkob Check if st_timespec_t is defined and use it instead of timespec da70b57
@tkob tkob Remove linker flags refer to nonexistent exp files on AIX 4c153f9
@rurban rurban aix7.1: add new file to MANIFEST cb03e17
@rurban rurban Merge branch 'smoke-me/aix71-gh1208'
Smoked okay on linux+darwin. Fixed up MANIFEST.
@rurban rurban ChangeLog: fix wrong year 2015, update for AIX7.1 af81628
@Util Util Fixed end-of-year rollover bug in Changelog. 77a9220
Commits on Sep 16, 2015
@Util Util Rewrote to use JSON release data instead of
parsing the Changelog, which allows us to put the complete future date
(instead of leaving out the Day) into the skeleton.
Fixed bugs too.
@Util Util Fixed wrong dates in parrothist b9c8cc2
@Util Util Refactored, and removed obsolete code that
incremented the date.
@Util Util Fixed test failures for copyright format and trailing whitespace. 865ebc6
@Util Util Prepare for the 7.8.0 release. e36b12b
@Util Util Fixed, which had been blacnked out in release.json . 4fe3223
Commits on Oct 19, 2015
@rurban rurban travis: use the faster docker images
no sudo, use apt packages instead.
also use perl 5.20 (5.22 would be best)
@rurban rurban [config] change perl5 derived -O2 to -O3 for gcc/clang
Faster --optimize. 5% faster in parrot-bench. Closes GH #1185
@rurban rurban [test] fix t/steps/init/optimize-01.t for -O3
the optimization level needs to be the perl5 derived one
or now also -O3
@rurban rurban [pmc] change StringBuilder overallocation
by 1.5, not 2. And for >8192 onto the next block size.
The optimal overallocation is the golden ration 1.618, but we prefer int ops.
A difference is not measurable.
@rurban rurban [pmc] disable 2x StringBuilder.substr clone, GH #1123
STRING_substr already creates a copy for us, no need to copy it twice.
no regression.

Note that t/stress/gc.t started failing earlier, even in 7.0.0.
@rurban rurban [pmc] StringBuilder.substr needs no WB
GH #1123. 1.14% faster
@rurban rurban [pmc] Avoid StringBuilder copies on set_pmc, ...
and push_pmc, i_concatenate, when the arg is a StringBuilder
PMC already. 0.5% faster.
@rurban rurban [core] optimize io_stringhandle_write_b
Reuse write buffer if large enough. This happens very often.
But surpringly no perf. improvement measurable.
@rurban rurban [test] un-todo t/src/extend.t 19 on darwin
not repro anymore, at least with yosemite.
GH #856 SIGABRT with darwin threads
@rurban rurban [pmc] rpa gc optimizations
Re-enable the status from 6.11.0, not too many write barriers in
ResizablePMCArray methods. Not in shift as we only move the offset
and only when needed in resize.
But it does not give us back the lost 13% in parrot-bench, from 6.11
to 7.0.
@rurban rurban [cage] const io api arguments
also add an easier str dumper for -D100 gc tracings,
currenty only on ms2.
@rurban rurban [cage] more const io api arguments ced642a
@rurban rurban [cage] ARGMOD->ARGIN const io api getters
Harmonize ARGMOD vs ARGIN in all IO functions.
Getters have a ARGIN handle, setters an ARGMOD.

io.h, latform_interface.h, io/filehandle.c, io/io_private.h,
io/pipe.c, io/socket.c, io/stringhandle.c, platform/generic/io.c

Not tested on msvc, most ARGMOD annotations do look wrong and need to be
improved.  this has only effect on msvc with sal
@rurban rurban [codingstd] for io changes 0631726
@rurban rurban [gc] Support -D1 GC stats with --ccflags=-DMEMORY_DEBUG for --gc=ms 45cf48b
@rurban rurban Prepare deprecation of the ListChunk GC API, and src/list.c
See GH #1179.
See #define PARROT_BUFFERLIKE_LIST in config.h to use it, still.
imageiofreeze still uses it.
@rurban rurban [gc] Improve -D1 GC stats for --gc=ms 27c060d
@rurban rurban [gc] add some -D201 support to --gc=ms, for strings 6fcb42e
@rurban rurban [pmc] add missing fields to StringHandle.clone
read_offset, filename, read_buffer, write_buffer, record_separator
also need to get cloned.
Probably related to GH #1196
@rurban rurban [gc] fix a MS segv in Parrot_io_write_s
When certain functions cause a GC, the local string buffers may get
moved away, but local STRING* variables or worse, strings inside a
StringHandle may still point to the old location.

Lock the GC then for this section, mostly during IO writing to string handles,
when the handle needs to realloc its buffer (the stringhandle).
But reading into a buffer is also problematic. we really should know the
size beforehand.

One way to fix GH #1196, lock the GC sweep in those cases.
The other variants would be:
- lock the whole GC via Parrot_block_GC_mark
- unset the PObj_is_movable flag in the STRING that it may not be moved,
  as it is still locally referenced.

Remaining ms test failure: t/pmc/fixedstringarray.t
@rurban rurban [gc] Add Parrot_{un,}block_GC_move API #1197
and use it in the string_gc.c compaction code and the problem
in #1196.
run t/op/gc-non-recursive.t also with debugging, just with less loops
to catch more gc errors.
This does not work yet
@rurban rurban [gc] replace -DRESOURCE_DEBUG in string_gc by -D101 2d15dc3
@rurban rurban ChangeLog: update for Parrot_{un,}block_GC_move API, travis a126c7d
@rurban rurban [test] TODO fragile t/steps/auto/warnings-01.t
testing for -Wunreachable-code with --cage is fragile.
@rurban rurban api.yaml: add deprecation notice for GH #1179
Deprecated ListChunk GC API and src/list.c
Also update ChangeLog.
@rurban rurban myconfig: add gc_type
and re-order it a bit.
@rurban rurban [gc] Fixed --gc=inf string header allocation
add missing mark_str_header,
do not use pre-buffer for string headers.
clear the flags with allocate_string_header
@rurban rurban [config] unquote the make clean args
We use now /bin/rm for $(RM_F) in the Makefile
which did not expand "$(INC_PMC_DIR)/pmc_*.h"
and many more generated files.
This led to leftovers, confusing make install.
E.g. the file include/pmc/pmc_default.h was not removed, and so was not rebuilt,
and so was not added to MANIFEST.generated, so t/distro/manifest_generated.t

`make clean realclean` does now the same as
`git clean -dxf`
Fixes GH #1194 and GH #1206.
Commits on Oct 20, 2015
@rurban rurban Supported Release 7.9.0 - "Sangihe hanging parrot"
- Core
    + StringBuilder.clone and ResizablePMCArray write barrier optimizations.
      1.14% faster, GH #1123
    + More StringBuilder optimizations with substr, set_pmc, push_pmc,
      i_concatenate, and do less overallocation. <1% faster. GH #1123
    + Support -D1 GC stats with --ccflags=-DMEMORY_DEBUG for --gc=ms
    + Added a Parrot_{un,}block_GC_move API for the 2 string compacting
      collectors ms and ms2
    + Deprecated ListChunk GC API and src/list.c GH #1179
    + Fixed a --gc=ms segv in Parrot_io_write_s GH #1196
    + const/ARGIN all read-only IO api arguments
    + Fixed --gc=inf string header allocation and failing tests
- Build
    + --optimize: Replace -O2 from perl5 with -O3 on clang or gcc. GH #1185
      5% faster
    + Fixed make clean realclean and install which sometimes forgot pmc_default.h
      GH #1194, GH #1206
- Tests
    + Use the faster travis docker infrastructure without sudo
@rurban rurban Prepare new ChangeLog for 7.10 f202b01
@rurban rurban Update release_manager_guide
Move new ChangeLog skeleton down after the release.
A release ChangeLog should look clean.

Add link names to the github master links.
@rurban rurban [config] add a cperldoc probe
in case perldoc was not found.

Note that a perl5.6 perldoc will run properly until 5.18
but will silently fail starting with 5.20.
We could add a check for that also eventually.
Commits on Nov 20, 2015
@Util Util Prepare for the 7.10.0 release. 89813cf
Commits on Dec 12, 2015
@rurban rurban [cage] fix a --debugging C++ ptr comparison strictness
@rurban rurban [build] darwin inst_libparrot_soname, cygwin gcc, all vs core
use a small default target: core.
all builds now all, including docs and installables

new seperate INSTALLABLELIBPARROT for darwin with
inst_libparrot_soname => -install_name
remake INSTALLABLELIBPARROT with this then.

use faster coreutils helpers.
seperate into some_utils for core, and parrot_utils for all.
which makes only a difference on non-shared builds.

on cygwin revert back to gcc, gcc-4 is not more.
Commits on Dec 13, 2015
@rurban rurban [build] improve installable binaries on darwin
need to seperate the 2 dylibs, but use the same name.
this is racy, only use -j1 on darwin for make all or make install
@rurban rurban [build] honor --disable-rpath on darwin
skip -install_name then.
also build only world (not installables) on test_prep.
installables are still too racy.
@rurban rurban [test] add osx and windows smokers 136ff45
@rurban rurban travis: use brew cpanminus on osx 0308b25
@rurban rurban fix apple clang --optimize
define __WORDSIZE there, which is missing

darwin clang failed the PARROT_HAS_AMD64_GCC_CMPXCHG test
@rurban rurban travis: osx installs into ~/perl5, skip smoke
do only test, no smolder uploading.
@rurban rurban appveyor: syntax error in subject
@rurban rurban appveyor: wrong path
@rurban rurban appveyor: be verbose
@rurban rurban appveyor: force msvc (autodetect failed)
Commits on Dec 14, 2015
@rurban rurban appveyor: more msvc flags
the smoker has a mingw perl, which we need to override manually
@rurban rurban [build] fix NQP-RX syntax error
in the Makefile. only errors with nmake
@rurban rurban win32 build: more mingw->msvc adjustments
skip ranlib for static libparrot
set .a to .lib
add more required msvc libs to cmdline
@rurban rurban [docs] add SMOKE paragraph at docs/tests.pod
for travis and appveyor.

I cannot trigger appveyor (windows) smokes, because I still got no
github permissions for parrot. Could the resigned admins please
handover the perms?
@rurban rurban Release 7.11.0 "Amazonian parrotlet"
* Improve darwin and cygwin build, seperate installable libparrot.
  GH #1212, 1096
* Honor --disable-rpath on darwin, skip -install_name then
* Update default cygwin compiler and linker to gcc with 1.7
* Add darwin and windows smokers (travis + appveyor), prev. linux only
* use a smaller default target: core (most parrot_utils, not all)
  make all builds now all, including docs and installables
Commits on Dec 26, 2015
@jkeenan jkeenan Restore tests run during 'make configure_tests'.
Remove t/steps/auto/labs-01.t.  It has been superseded by
t/steps/auto/mathl-01.t.  Update MANIFEST.

(cherry picked from commit 0112781)