Resurrect eval_pmc branch #934

wants to merge 1,297 commits into from

10 participants


Master merged cleanly and tests still pass. Getting NQP and Rakudo ready is in progress.

rurban and others added some commits Dec 11, 2012
@rurban rurban [cage] mark PDB_disassemble_op space paramater as UNUSED when not --d…
@rurban rurban [cage] run make headerizer b577cca
@rurban rurban [codingstd] wrap CONST_STRING arg in examples japhc.c 42b6788
@rurban rurban [cage] added final missing UNUSED pmc arg dea3ea9
@rurban rurban [cage] Fix -Wreturn-type
control may reach end of non-void function in Parrot_interp_info_s()
Return empty string in case of errors
@rurban rurban cage] move -Wcast-align to --cage, special-case src/string/sprintf.c,…
… spf_render.c

add -Wno-unused-parameter to compilers/imcc/imclexer.c
Only one math.ops unused-parameter warning remains with ICONST not needing INTERP.
parrot is now warnings clean with clang, clang++, gcc and g++, besides the remaining
pmc2c default, Null and Proxy UNUSED fixes
@rurban rurban [cage] remove ending whitespace from t/fullharness 9dc1db9
@rurban rurban ParrotInterpreter.get_integer returns now the task id
Before it was hardcoded to 0.
Add note that the tid ATTR is still unused.
@rurban rurban [cage] Fix various cage compiler warnings
Shadowed variables from upper scope.
SHIM unused interp,
Remove unused local variables
make headerizer
Add documentation on unused arguments
@rurban rurban [GH #879] Fix imageiothaw -Werror=declaration-after-statement 04ccb77
@rurban rurban [codingstd] does not like 2004-2008,2012- revert f6e88c0
@rurban rurban [GH #836] Improved pmc2c
support multiple shim'able parameters
warns on not SHIM'ed parameters, possibly internal unused variables
warns on possibly forgotten UNUSED(param) declarations
warns on an possible internal recursion error, when the UNUSED decl could not be replaced
skips SHIM'ing method bodies with #if
detect empty bodies and adds SHIM'ed INTERP and SELF params automatically
@rurban rurban [GH #836] rurban/pmc2c-2-gh836 ChangeLog line 4136fb4
@rurban rurban [GH #836] Remove wrong 2x UNUSED(INTERP) in imageiothaw cbe8900
@rurban rurban Fix wrong Parrot::Pmc2c::Method::decl
Failed when not in first line (s///m missing)
@rurban rurban [GH #836] pmc2c Sanify parameters beforehand and detect empty bodies
This leaves with a single remaining clang warning for math.ops, and several unrelated
gcc warnings left. null, default and proxy are also detected correctly now.
@rurban rurban [GH #881] Do not ignore the exit opcode argument, fix t/pmc/task.t
The argument for the exit op is ignored, parrot always exits with 1.

die_from_exception() uses Parrot_x_jump_out(interp, 1); even if the given exit_code was 0
(branch severity == EXCEPT_exit)

t/pmc/task.t cannot use test_more as ok updates the counter in a non-thread safe way.
we also cannot use say as say is non-atomic, the final \n can be printed after the concurrent thread
prints its line.
sleep is also concurrent, so better use a poor mans busy sleep to wait to the task to be killed.
The numbers seem to stable now, tested on a pretty fast multicore machine.
@rurban rurban Fix a threads race condition with Task_nci_send/Task_invoke
Postpone TASK_recv_block_CLEAR(partner) when another task wants to check

$ tsan ./parrot t/pmc/task.t
==6406== ThreadSanitizer, a data race detector
ok 1 - initialized
ok 2 task1 ran
ok 3 task2 ran
ok 4 sub1 ran
==6406== INFO: T2 has been created by T0. Use --announce-threads to see the creation stack.
==6406== INFO: T0 is program's main thread
==6406== WARNING: Possible data race during write of size 8 at 0x43A6218: {{{
==6406==    T0 (L{L31}):
==6406==     #0  Parrot_Task_nci_send /usr/src/parrot/master/src/pmc/task.c:316
==6406==     #1  Parrot_NativePCCMethod_invoke /usr/src/parrot/master/src/pmc/nativepccmethod.c:122
==6406==     #2  Parrot_callmethodcc_p_sc /usr/src/parrot/master/src/ops/core_ops.c:18300
==6406==     #3  runops_fast_core /usr/src/parrot/master/src/runcore/cores.c:499
==6406==     #4  runops_int /usr/src/parrot/master/src/runcore/main.c:220
==6406==     #5  runops /usr/src/parrot/master/src/call/ops.c:123
==6406==     #6  Parrot_pcc_invoke_from_sig_object /usr/src/parrot/master/src/call/pcc.c:338
==6406==     #7  Parrot_ext_call /usr/src/parrot/master/src/extend.c:158
==6406==     #8  Parrot_Task_invoke /usr/src/parrot/master/src/pmc/task.c:168
==6406==     #9  Parrot_pcc_invoke_from_sig_object /usr/src/parrot/master/src/call/pcc.c:330
==6406==     #10 Parrot_ext_call /usr/src/parrot/master/src/extend.c:158
==6406==     #11 Parrot_cx_next_task /usr/src/parrot/master/src/scheduler.c:231
==6406==   Concurrent read(s) happened at (OR AFTER) these points:
==6406==    T2 (L{}):
==6406==     #0  Parrot_Task_invoke /usr/src/parrot/master/src/pmc/task.c:175
==6406==     #1  Parrot_pcc_invoke_from_sig_object /usr/src/parrot/master/src/call/pcc.c:330
==6406==     #2  Parrot_ext_call /usr/src/parrot/master/src/extend.c:158
==6406==     #3  Parrot_cx_next_task /usr/src/parrot/master/src/scheduler.c:231
==6406==     #4  Parrot_thread_outer_runloop /usr/src/parrot/master/src/thread.c:322
==6406==   Location 0x43A6218 is 1544 bytes inside a block starting at 0x43A5C10 of size 4096 allocated by T0 from heap:
==6406==     #0  calloc /mnt/data/build/slave/full_linux_build/build/tsan/ts_valgrind_intercepts.c:444
==6406==     #1  mem_sys_allocate_zeroed /usr/src/parrot/master/src/gc/alloc_memory.c:97
==6406==     #2  allocate_new_pool_arena /usr/src/parrot/master/src/gc/fixed_allocator.c:547
==6406==     #3  pool_allocate /usr/src/parrot/master/src/gc/fixed_allocator.c:448
==6406==     #4  Parrot_gc_pool_allocate /usr/src/parrot/master/src/gc/fixed_allocator.c:344
==6406==     #5  gc_gms_allocate_pmc_header /usr/src/parrot/master/src/gc/gc_gms.c:1490
==6406==     #6  Parrot_gc_new_pmc_header /usr/src/parrot/master/src/gc/api.c:312
==6406==     #7  get_new_pmc_header /usr/src/parrot/master/src/pmc.c:571
==6406==     #8  Parrot_pmc_new_init /usr/src/parrot/master/src/pmc.c:630
==6406==     #9  Parrot_thread_create_proxy /usr/src/parrot/master/src/thread.c:156
==6406==   Locks involved in this report (reporting last lock sites): {L31}
==6406==    L31 (0x42F02A8)
==6406==     #0  pthread_mutex_lock /mnt/data/build/slave/full_linux_build/build/tsan/ts_valgrind_intercepts.c:935
==6406==     #1  Parrot_Task_nci_send /usr/src/parrot/master/src/pmc/task.c:312
==6406==     #2  Parrot_NativePCCMethod_invoke /usr/src/parrot/master/src/pmc/nativepccmethod.c:122
==6406==     #3  Parrot_callmethodcc_p_sc /usr/src/parrot/master/src/ops/core_ops.c:18300
==6406==     #4  runops_fast_core /usr/src/parrot/master/src/runcore/cores.c:499
==6406==     #5  runops_int /usr/src/parrot/master/src/runcore/main.c:220
==6406==     #6  runops /usr/src/parrot/master/src/call/ops.c:123
==6406==     #7  Parrot_pcc_invoke_from_sig_object /usr/src/parrot/master/src/call/pcc.c:338
==6406==     #8  Parrot_ext_call /usr/src/parrot/master/src/extend.c:158
==6406==     #9  Parrot_Task_invoke /usr/src/parrot/master/src/pmc/task.c:168
==6406==     #10 Parrot_pcc_invoke_from_sig_object /usr/src/parrot/master/src/call/pcc.c:330
==6406==     #11 Parrot_ext_call /usr/src/parrot/master/src/extend.c:158
==6406==    Race verifier data: 0x5168EC1,0x516785D
==6406== }}}
ok 5 Got message after block
ok 6 Got existing message
ok 7 task_to_kill running
ok 8 task_to_kill killed
==6406== ThreadSanitizer summary: reported 1 warning(s) (1 race(s))
@rurban rurban Fix a thread race condition in Parrot_alarm_runloop
Racy write with read in Parrot_alarm_check, lock alarm_serial += 1;

$ tsan ./parrot t/pmc/task.t
ok 9 pre-empt and exit
==18766== INFO: T0 is program's main thread
==18766== INFO: T1 has been created by T0. Use --announce-threads to see the creation stack.
==18766== WARNING: Possible data race during write of size 8 at 0x5322580: {{{
==18766==    T1 (L{}):
==18766==     #0  Parrot_alarm_runloop /usr/src/parrot/master/src/alarm.c:129
==18766==   Concurrent read(s) happened at (OR AFTER) these points:
==18766==    T0 (L{}):
==18766==     #0  Parrot_alarm_check /usr/src/parrot/master/src/alarm.c:154
==18766==     #1  Parrot_cx_check_scheduler /usr/src/parrot/master/src/scheduler.c:253
==18766==     #2  Parrot_branch_ic /usr/src/parrot/master/src/ops/core_ops.c:13735
==18766==     #3  runops_fast_core /usr/src/parrot/master/src/runcore/cores.c:499
==18766==     #4  runops_int /usr/src/parrot/master/src/runcore/main.c:220
==18766==     #5  runops /usr/src/parrot/master/src/call/ops.c:123
==18766==     #6  Parrot_pcc_invoke_from_sig_object /usr/src/parrot/master/src/call/pcc.c:338
==18766==     #7  Parrot_ext_call /usr/src/parrot/master/src/extend.c:158
==18766==     #8  Parrot_Task_invoke /usr/src/parrot/master/src/pmc/task.c:168
==18766==     #9  Parrot_pcc_invoke_from_sig_object /usr/src/parrot/master/src/call/pcc.c:330
==18766==   Address 0x5322580 is 0 bytes inside data symbol "alarm_serial"
==18766==    Race verifier data: 0x4FEC3AE,0x4FEC3FB
==18766== }}}
@rurban rurban [doc] Update pdd25_concurrency (a bit)
Hilight our current hybrid threading model.

Several methods are missing:
e.g. wait TASK, threaded writes, Task send, invoke,
@rurban rurban [doc] mark test_more, Test::Builder as not thread-safe
The counter updates need to be schedule_proxied in the parent task
@rurban rurban Revive ParrotInterpreter.get_integer to return the thread id
This was disabled with the kill_threads branch, end of 2011
@rurban rurban [pmc2c] detect more empty bodies 8848658
@leto leto Improve the name and description of mime_base64.t 98602e1
@rurban rurban [codingstd] untabify t/src/embed/api.t [GH #816] fcbbad0
@rurban rurban [cage] fix wrong UNUSED(INTERP) in core.ops,experimental.ops
This came up when doing make bootstrap-ops
@leto leto Port over a patch from @ocharles that add get_proto_by_name to Socket… bc6d9e6

\o/ Thanks @leto !

Parrot Virtual Machine member

I added some POD to please our POD-checking tests, but it still needs some love.

leto and others added some commits Dec 12, 2012
@leto leto [config] Report GMP version from
This information was not stored or shown anywhere else, which makes it
inconvenient to debug issues relating to GMP.
@leto leto [t] Fix some coding standard tests to make Travis happy 243c292
@leto leto Detect run-time support of git instead of assuming .git implies a git…
… binary, #477
@leto leto Allow Parrot::Git to properly export functions c83ac34
@rurban rurban [GH #606] Refactor Socket.getprotobyname, add test
Put it into platform/generic/socket.c
@rurban rurban [GH #823] dynpmc/dynoplibs Rules.mak missed the has_mt mt.exe check 4799c0a
@rurban rurban win32: dmake fails at rem libparrot.a, use echo instead cf01796
@rurban rurban Merge branch 'check_for_git_binary_gh477'
Smoked ok on win32 with .git and without git binary, and on linux ditto.
@rurban rurban Merge branch 'report_gmp_version'
Tested ok on linux and mingw (windows), with gmp 5.0.5.
@rurban rurban Add ChangeLog line for check_for_git_binary_gh477 01055bd
@rurban rurban [t] Improve timing of task_kill
The timing was too instable. Also rename the task and code.
@rurban rurban [GH #882] Better gmp Configure result: skipped/yes, num/no
Print skipped with --without-gmp, not no.
Print yes, number if found.
Print no if not found.
@rurban rurban [GH #861] Add testcase for missing record-seperator as GC-alive 5202bce
@rurban rurban ChangeLog line for Socket.getprotobyname [GH #606] 56b7dc0
@rurban rurban Merge branch 'getprotobyname_gh606'
Tested ok on linux, darwin, windows
@leto leto Update manifest 575aebb
@leto leto [t] Add some tests which coredump the Socket PMC 8e79bd1
@rurban rurban Socket.getprotobyname returns -1 when the syscall returns NULL
Pass the new socket tests for empty or wrong protocol names.
@rurban rurban [t] fix test cound for t/pmc/socket.t 1103132
@rurban rurban [GH #886] Remove concurrent say in t/pmc/task.t
Even busy sleeping did not help on some systems, so remove the problematic line.
It still tests if the task it properly killed, but we cannot guarantee when it is killed.
@jkeenan jkeenan Correct one expected value in test.
Ensure that one variable is initialized before being used.

Modify some test descriptions so that we can more easily determine our place
in the test results.
@jkeenan jkeenan Merge branch 'master' of ba040e3
@jkeenan jkeenan [codingstd] No cuddled else; copyright; PIR coda; trailing space. ba7d574
@rurban rurban [GH #887] Set darwin DYLD_LIBRARY_PATH when testing
Set DYLD_LIBRARY_PATH in run_command() as this allows testing from
the command-line also.

Also fix Parrot::Test::path_to_parrot, which failed when INC was
just lib/Parrot/ Use the more reliable __FILE__ instead
and check if short, relative path seperately.

BTW: This method should be thrown away, as it does not work on an
installed parrot.
Parrot Virtual Machine member

Typo in subject: Should say "fix test count"

Parrot Virtual Machine member

Looks like this change will overwrite DYLD_LIBARARY_PATH, instead of appending/prepending to it, which seems more friendly to me.

rurban and others added some commits Dec 16, 2012
@rurban rurban [GH #887] Append to existing DYLD_LIBRARY_PATH
This scenario involves DYLD_LIBRARY_PATH required for some libparrot dependency in a non default location (ice, pcre, ...).
@rurban rurban Undo GC work_list check. This may not happen
Rather fix the wrong paren_interp. See also GH #880
@rurban rurban [GH# 874] Skip one nqp test which fails without-icu
It really should be fixed in nqp: avoid calling find_codepoint when icu is not configured.
@rurban rurban Fix DETAIL_MEMORY_DEBUG, print GC stats on new MEMORY_DEBUG flags
Fixed several wrong arguments with DETAIL_MEMORY_DEBUG enabled.
DETAIL_MEMORY_DEBUG was too noisy with Allocated and Freed, print stats with
simplier MEMORY_DEBUG.
@rurban rurban [cage] Add -DTHREADS_DEBUG diagnostics to GC stats
Print the parent_interpreter and the tid in the current GC
@rurban rurban [cage] debug print GMS Validate step with -DMEMORY_DEBUG 09cf85d
@rurban rurban [cage] remove outdated comment for task.t preempt_and_exit
exit 0 was fixed with 297f1ee
@jkeenan jkeenan [codingstd] Make file adhere to c_parens standard. a465a22
@rurban rurban [t] Fix path_to_parrot: realpath "" does not work on cygwin
Use realpath "." if empty
@rurban rurban [doc] --without-threads Build parrot without OS thread support
The threads API - Task, Scheduler, concurrency - works as with threads, just
not on native OS threads.
@rurban rurban [t] GH #886 skip task.kill on windows/cygwin. NYI 63c1890
@rurban rurban [GH #687] Install man pages for all generated main binaries
Defaults to /usr/local/man.
Skipped on windows and if pod2man is not found.
Without the proposed #228 tools/docs/ script
Get the man subpage from the generated file extension (.1),
to allow .3 or .3pir man pages in the future also.
@rurban rurban [docs] Document --numthreads in docs/binaries/parrot.pod (the manpage) 019f4ae
@rurban rurban Release 4.11.0 - All together - Happy Birthday Lovebird
Added install-man step [GH #687]. Add man-clean to clean. Fix auto::pod2man on windows.

OS threads with proxied PMCs are now default. Use perl --without-threads
to use the old green threads API, just without Proxies and without native OS threads
(and possible GC problems when running threaded tasks).

Fix linking dynext/ without installed
Warn about Archive::Tar COMPRESS_BZIP
@rurban rurban Improve error reporting of tools/release/ for IO::Compress::Bzip2
If IO::Compress::Bzip2 will fail to load
(Compress::Raw::Bzip2 version 2.059 required--this is only version 2.052)
tools/release/ will write the bzip2 compress archive as gzip compressed.
This might not be what you want.

By adding "use IO::Compress::Bzip2;" the error is not silently ignored anymore.
After updating Compress::Raw::Bzip2 the bzip compression worked fine.
@rurban rurban [t] todo native_pbc tests if only the version cmp fails
pbc is now version-safe. mark the tests as TODO for a while.
keep the tools/dev/ --update-fingerprint hint.
@rurban rurban Remove outdated native_pbc files
tools/dev/mk_packfile_pbc is wrong and not needed anymore.
remove t/native_pbc/string.pbc and the references to t/native_pbc/integer.pbc,
t/native_pbc/annotations.pbc was replaced by t/pmc/testlib/annotations.pbc,
t/native_pbc/string.pbc by t/op/testlib/test_strings.pbc,
t/native_pbc/number.pbc by t/pmc/testlib/number.pbc.
t/native_pbc/*.pbc is for generated pbc files on different platforms, not on the same platform.
@rurban rurban [doc] Update release_manager_guide.pod for mk_native_pbc
It is recommended to run --update-fingerprint, so that the
native_pbc tests will not be TODOd.
Remove the reference to the wrong tools/dev/mk_native_pbc.
@rurban rurban Update versions in the native_pbc test pbcs
Generated by --update-fingerprint on all PBC_COMPAT files
(Skip the old 4.0 *8_be.pbc files)
@rurban rurban [GH #896] Revert "Apply patch submitted by Coke in TT #1954."
This reverts commit 6ac86c9.

We need to provide docs for our ops.
@rurban rurban [docs] lowercase perldoc in error msg 6ec6beb
@rurban rurban [cage] add generated man pages to .gitignore 2c3fc76
@rurban rurban [GH #896] Move man target to docs/, run ops_summary for ops 852a136
@rurban rurban [GH #896] Fix install-bin target, docs, man, ops/index.pod
Proper dependecies
@rurban rurban [GH #896] Also install ops/index.pod summary 1f9a597
@rurban rurban ChangeLog for docs/ops and #890 rurban/track-generated-gh890 7306645
@jkeenan jkeenan Update MANIFEST and SKIP. a23638e
@rurban rurban remove t/native_pbc/annotations.pbc,integer.pbc again
Those native pbcs were already deleted twice but appear again and again.
There were previosuly used as packfile tests but are now in t/pmc/testlib/

Minor fix in Parrot::Manifest.
@rurban rurban More public ChangeLog lines for rurban/track-generated-gh890 fixes cffb857
@rurban rurban [GH #895] Rename packfile_annotation_key_type.pasm to packfile_annota…

This file was never installed, so we do not need to deprecate it and provide a copy.
@rurban rurban [codingstd] Add DESCRIPTION to generated docs/ops/index.pod
Fixes t/codingstd/pod_description.t
@rurban rurban [GH #901] Provide missing makefile codas 41eb730
@rurban rurban [GH #853] Enable proper llvm probes
enable compilation probes
add the --llvm-config option and handle it
print the detected version (silent 1 as fallback)
detect static llvm libs
handle the debian testing default case (appended -version)
handle the llvm 3.2 new --version format
set proper llvm_{c,cxx,ld}flags and llvm_libs config keys for opsc_llvm integration
try given cc for a llvm-gcc or clang compatible compiler
check the output of -emit-llvm by file magic inspection
  ld: warning: cannot find entry symbol 'mit-llvm'
@rurban rurban [GH #853] Less failing llvm-gcc noise ca515fb
@rurban rurban [GH #853] Add llvm cflags to cc probe 0701903
@rurban rurban [GH #853] Added Changelog line for improved --with-llvm probe 30e32a2
@rurban rurban Merge branch 'rurban/llvm-gh853' b99080e
@jkeenan jkeenan Sort MANIFEST.generated; avoid error in make distro_tests.
[codingstd] pod_description: Adjust generated .pod file to conform.
@jkeenan jkeenan Merge branch 'master' of 764037c
@rurban rurban [codingstd] pod_description: Remove duplicate DESCRIPTION, fix NAME 709be66
@rurban rurban [docs] Update porting_intro.pod for threads fb7274d
@jkeenan jkeenan [codingstd] Variable declared in conditional statement
Detected by t/codingstd/perlcritic.t; fixed.
@rurban rurban [GH #890] Generate MANIFEST.generate, remove MANIFEST_configure.gener…

Some files are still missing.
add_to_generated($filename, $section, $dir) is called from the Makefile
shell via tools/build/, and from $conf directly.

Improve docs Makefile
@rurban rurban [GH #890] Add missing MANIFEST.generated files, cleanup
Also move MAN_1 to docs, and improved clean targets

Comparison from old manual MANIFEST.generated.orig to generated
Added all previous MANIFEST_configure.generated entries, esp. Makefiles.
Moved include/parrot/pbcversion.h from devel to main. (used by config.h)
Removed invalid and outdated entries.
Added previously missing entries.

+compilers/tge/tgc.pbc                            [main]
+config_lib.pir                                   [devel]
+docs/binaries/ops2c.1                            [main]man
+docs/binaries/parrot-nqp.1                       [main]man
+docs/binaries/parrot-prove.1                     [main]man
+docs/binaries/parrot.1                           [main]man
+docs/binaries/parrot_config.1                    [main]man
+docs/binaries/parrot_nci_thunk_gen.1             [main]man
+docs/binaries/parrotbug.1                        [main]man
+docs/binaries/pbc_to_exe.1                       [main]man
+docs/binaries/plumage.1                          [main]man
+docs/binaries/winxed.1                           [main]man
+docs/ops/index.pod                               [doc]
+docs/packfile-c.pod                              [doc]
+foo_group.h                                      [devel]include
+include/parrot/pbcversion.h                      [main]include
+install_config.o                                 [main]lib
+runtime/parrot/dynext/foo_group.bundle           [library]
+runtime/parrot/dynext/pccmethod_test.bundle      [library]
+runtime/parrot/dynext/rotest.bundle              [library]
+runtime/parrot/dynext/subproxy.bundle            [library]
+runtime/parrot/include/cloneflags.pasm           [main]
+runtime/parrot/include/packfile_annotation_key_type.pasm [main]
+runtime/parrot/include/packfile_segments.pasm    [main]
+runtime/parrot/library/NCI/Utils.pbc             [main]
+runtime/parrot/library/OpenGL/Math.pbc           [main]
+runtime/parrot/library/PCT/Dumper.pbc            [main]
+runtime/parrot/library/ProfTest.pbc              [main]
+runtime/parrot/library/ProfTest/Matcher.pbc      [main]
+runtime/parrot/library/ProfTest/Matcher.pir      [main]
+runtime/parrot/library/ProfTest/NQPProfile.pbc   [main]
+runtime/parrot/library/ProfTest/NQPProfile.pir   [main]
+runtime/parrot/library/ProfTest/PIRProfile.pbc   [library]
+runtime/parrot/library/ProfTest/PIRProfile.pir   [main]
+runtime/parrot/library/ProfTest/Want.pbc         [main]
+runtime/parrot/library/ProfTest/Want.pir         [main]
+runtime/parrot/library/String/Utils.pbc          [main]
+runtime/parrot/library/URI/Escape.pbc            [main]
+runtime/parrot/library/YAML/Dumper/Base.pbc      [main]
+runtime/parrot/library/YAML/Dumper/Default.pbc   [main]
+runtime/parrot/library/postgres.pbc              [main]
+runtime/parrot/library/yaml_dumper.pbc           [main]
+src/core_pmcs.c                                  []
+src/dynpmc/pmc_dynlexpad.h                       [devel]include
+src/dynpmc/pmc_file.h                            [devel]include
+src/dynpmc/pmc_foo.h                             [devel]include
+src/dynpmc/pmc_foo2.h                            [devel]include
+src/dynpmc/pmc_gziphandle.h                      [devel]include
+src/dynpmc/pmc_osdummy.h                         [devel]include
+src/dynpmc/pmc_pccmethod_test.h                  [devel]include
+src/dynpmc/pmc_rational.h                        [devel]include
+src/dynpmc/pmc_rotest.h                          [devel]include
+src/dynpmc/pmc_select.h                          [devel]include
+src/dynpmc/pmc_subproxy.h                        [devel]include
+src/glut_callbacks.c                             [devel]src
+src/glut_nci_thunks.nci                          [main]
+src/string/private_cstring.h                     []

-docs/ops/debug.pod                               [doc]
-docs/ops/dotgnu.pod                              [doc]
-docs/ops/obscure.pod                             [doc]
-docs/ops/pic.pod                                 [doc]
-docs/ops/stack.pod                               [doc]
-include/parrot/exec_dep.h                        [main]include
-include/parrot/pbcversion.h                      [devel]include
-include/pmc/pmc_codestring.h                     [devel]include
-include/pmc/pmc_context.h                        [devel]include
-include/pmc/pmc_packfilefixupentry.h             [devel]include
-include/pmc/pmc_packfilefixuptable.h             [devel]include
-include/pmc/pmc_select.h                         [devel]include
-runtime/parrot/include/iotypes.pasm              [main]
-runtime/parrot/include/parrot_version.pir        [main]
-runtime/parrot/include/signal.pasm               [main]
-runtime/parrot/include/vtable_methods.pasm       [main]
-runtime/parrot/library/Data/Replace.pbc          [main]
-runtime/parrot/library/HTTP/Daemon.pbc           [main]
-runtime/parrot/library/NCI/call_toolkit_init.pbc [main]
-runtime/parrot/library/PGE/Hs.pbc                [main]
-runtime/parrot/library/Parrot/Capture_PIR.pbc    [main]
-runtime/parrot/library/Parrot/HLLCompiler.pbc    [main]
-runtime/parrot/library/Protoobject.pbc           [main]
-runtime/parrot/library/YAML/Dumper/Base.pmc      [main]
-runtime/parrot/library/YAML/Dumper/Default.pmc   [main]
-src/call_list.txt                                [devel]src
-src/glut_callbacks.c                             []
-src/install_config.obj                           [main]lib
-src/jit_emit.h                                   []
-src/nci.c                                        []
-src/pmc/codestring.dump                          [devel]src
-src/pmc/packfilefixupentry.dump                  [devel]src
-src/pmc/packfilefixuptable.dump                  [devel]src
-src/pmc/select.dump                              [devel]src
-src/string_private_cstring.h                     []
-tools/build/                            []
-tools/dev/testnumbers                            [devel]
-tools/dev/testnumbers.bat                        [devel]
@rurban rurban Change addgenerated default section to [main]
Some more minor location fixes:
config_lib.pir                                   [devel]src
runtime/parrot/library/config.pir []
runtime/parrot/library/ProfTest/PIRProfile.pbc   [main]
@rurban rurban [GH #890] install tgc.pbc as library, install PGE/Hs.pbc, TGE/Parser.pir
Fix some more installations, previously missing
Parrot Virtual Machine member

I understand the need for this, but the magic constant seems fragile and smells badly. I created #907 to track this.

rurban and others added some commits Jan 3, 2013
@rurban rurban Remove src/nci/core_thunks.c Makefile rule as it is cyclic dependent …
…on parrot

use bootstrap-nci only. It should be safe to keep since the src files are kept
in git, but too fragile.
@rurban rurban [cage] GH #908 clone const string for path_guarantee_trailing_separat…
@leto leto [doc] Remove hard tabs from ChangeLog 5d697e5
@rurban rurban [cage] do not delete src/nci/extra_thunks.c with make clean
This file is in git, even if it can be generated.
@rurban rurban [cage] Clarify comments about the library search path
"parrot/" is not included in the versiondir if the prefix already contains "/parrot"
@rurban rurban [cage] Improve _pir_stdin_output_slurp ./parrot vs parrot.exe ef57ae2
@rurban rurban Revert "[cage] Improve _pir_stdin_output_slurp ./parrot vs parrot.exe"
This reverts commit ef57ae2.
got: 'sh: .parrot.exe: command not found
@rurban rurban [t] Fix lib_search_path.t on windows (wrong sep) 85a4324
@rurban rurban [cage] ExceptioHandlers typo in callcontext.pmc pod 647eb44
@rurban rurban [cage] handle printing with invalid strings
Ignore Python Exception <type exceptions.LookupError> unknown encoding: null:

Strip struct attributes error to ""
  PMC<Null> = {[] = }, [ctx] = 0x0, [comp_flags] = 0, [arg_info] = 0x0, [outer_ctx] = 0x0}
@rurban rurban [docs] Add PARROT_DYNEXT, dynext_dirs to api.yaml
Link dynext_dirs and PARROT_DYNEXT to -X cmdline option.
See also t/library/lib_search_path.t
@rurban rurban Update docs/deprecations/deprecations.pod (4.12 => 5.0) f67b89a
@rurban rurban [codingstd] podchecker deprecations.pod
Apparently some pods are not checked with podchecker yet
@rurban rurban [GH #913] Handle windows backslashes in ops2c h guard generator
rurban/win-replace_slashes-gh891 for #891 enabled windows paths, handle them in ops2c also.
Thanks to Mark Solinski. msvc tests passed.
@rurban rurban deprecations: change . in libpath to moderate impact, mention nqp, ra…

Also prefer -L./ and -X./ over env variables.
@rurban rurban deprecations: change . in libpath to high
Everybody needs to change their builds and tests.
build systems need to change their build and tests to favor their new libraries
over already installed ones, to use absolute paths or add -L./ -X./.
@mrshu mrshu added a simple sort benchmark eaecde7
@mrshu mrshu added command line option 45be9e7
@mrshu mrshu updated docs 1248f2c
@rurban rurban Merge remote-tracking branch 'mrshu/simple_sort_benchmark' into mrshu…
@leto leto Run tools/dev/ so that sort.pir gets added to …
…the manifest
@rurban rurban Whitespace alignment in Parrot::Docs::Section::Tests af349b9
@leto leto Run tools/dev/ so that sort.pir gets added to …
…the manifest
@mrshu mrshu added a simple sort benchmark 0150820
@mrshu mrshu added command line option 98aa4af
@mrshu mrshu updated docs 5bc2f3e
@mrshu mrshu added default number of integers to sort 4066aa6
@rurban rurban [GH #910] add Parrot::Install::sanitycheck_install
Check for some common possibly ungenerated
configure and make targets in MANIFEST.generated and die
with the appropriate error message. Suggest make clean or make reconfig then.
@rurban rurban [GH #910] make -s clean at perl to ensure fresh install 06933e5
@rurban rurban [install] Remove duplicate wrong install_config.o [main]lib
We need only src/install_config.o [main]lib for mod_parrot
@rurban rurban [GH #910] install: Add all dynext libs with load_ext, all exes
More sanity checks.
Fixes select missing on windows, gziphandle without has_gzip,
mixed windows path slashes.
@rurban rurban [GH #910] make clean on linux|darwin even without lib/Parrot/Config/G…
@rurban rurban Merge branch 'rurban/sanitycheck_install-gh910' acf5f3c
@rurban rurban [GH #899] Install generated MANIFESTs for all installed files
Into datadir, as MANIFEST, and MANIFEST.doc
@rurban rurban [GH #899] Fix and test for changed Parrot::Install::install_files() 6d1311e
@rurban rurban Add ChangeLog line for GH #899: Generate datadir/MANIFEST* for all in…
…stalled files
@rurban rurban [GH #897] Fix duplicate declaration of int_cb_D4 is invalid in C++ wa…

Do not declare them twice. Note that static and extern vars both do not work with our nci.
@rurban rurban Merge branch 'rurban/nci_test-dupldecl-gh897' b323780
@rurban rurban [GH #911] Provide strerror for unknown filehandle errors
Unify printed type: filehandle => FileHandle, to sync with generic Parrot_io_open
"Cannot open %s, no path", vtable->name errmsg.
@rurban rurban Merge branch 'rurban/fh-strerr-gh911' 8849ce5
@rurban rurban Add ChangeLog for GH #911: Add OS error messages to…
… error messages
@rurban rurban [spec] GH #909 Update the socket doc for read and recv for our new PO…
…SIX behaviour

Before parrot-4.10 the high-level read() returned the wanted amount of bytes.
Now it behaves the same as recv(), which means that up to bytes are returned

We might want to add a setsockopt(level, option, value) method.
@rurban rurban [GH #909] Add test for chunked socket read will return chunked parts.
@rurban rurban Merge branch 'rurban/socket-gh909' d265b1d
@rurban rurban Add api.yaml entry for GH #909>512) c348a0c
@rurban rurban Edit last api.yaml note, wrong ending single quote 0e55e66
@rurban rurban [GH #641] Fix wrong PCCMETHOD line-directives (only .c)
PCCMETHOD only emits .c level lines, no PMC level ones. This generates now
proper directives for all _nci_ methods.
@rurban rurban [codingstd] Add missing ChangeLog lines, fix socket.pmc line lengths c36fce9
@rurban rurban [GH #921] Fix tabs in src/dynpmc/Rules.mak cygwin/hpux
These missing tabs caused to miss the addgenerated lines for dynpmc libs.
@rurban rurban [GH #921] cygwin Fix Could not create //usr/local/share/parrot/4.11.0…

catdir with "" creates //.
@rurban rurban [GH #922] addgenerated dynpmc headers in make, not pmc2c
rakudo and nqp do not have to clean a generated MANIFEST.generated.
@rurban rurban [GH #893] add test for threaded say, mixup with \n
Test that for each say a \n is printed per thread.
Test it on a multi-core machine with

    watch prove -v t/op/say.t
@rurban rurban [GH #893] improve concurrent say. concat with \n, then puts
Provide better atomicity with threads. To avoid mixing strings with
newlines in most cases. This is not foolproof of course.
concat only if it will not extend the already allocated buffer to
avoid copying.
make bootstrap-ops for say
@rurban rurban [GH #893] Refactor better atomic say op: test for 80% success, concat…
… if the buflen < 80

Since even SREGs are constant, Parrot_str_concat will always create a copy. So allow small cheap copies.
@rurban rurban Merge branch 'rurban/threaded-say-gh893' 49a6dac
@rurban rurban [codingstd] cuddled else in t/op/say.t 3242725
@rurban rurban [GH #907] skip task.t until rurban/task.t-gh907 is merged 5874ae9
@rurban rurban add t/stress/threads.t for GH #880 and GH #875 756c6df
@rurban rurban [GH #880] Fixed 1st threads test, todo only with THREAD_DEBUG
It is not thread-safe on darwin.
@rurban rurban [codingstd] hard tab in t/stress/threads.t f08b160
@leto leto Merge branch 'mrshu/simple_sort_benchmark-gh175' 5260e25
@leto leto Add @mrshu to CREDITS e144f6a
@leto leto Cleanup FixedIntegerArray sorting benchmark 285bd0a
Parrot Virtual Machine member

@mrshu yes, we would love for you to put more info into CREDITS (like a full name, email, location, etc) if that suits you. I kept your information very succinct because some people prefer to not have their personal details listed and I wanted to respect that.

If you send in a patch in the next few hours, I can probably include it in 5.0.0 which will be released today :)

Parrot Virtual Machine member

@mrshu a pull request is great. Thanks!

leto and others added some commits Jan 14, 2013
@leto leto Add a sort method to FixedFloatArray, #925 b52608b
@leto leto Make FixedFloatArray sorting actually work and add a test #925 3f65128
@leto leto [examples] Add benchmark for sorting FixedFloatArrays aeb9015
@leto leto [doc] Improve synopsis for sort benchmark 997d1d0
@leto leto Update changelog 08e2d38
@leto leto Merge branch 'gh925_ffa_sort' 99676a6
@rurban rurban [tools] rm MANIFEST.generated from release/ 6496004
@rurban rurban [t] omit TEST_PROG_ARGS warning in t/native_pbc/ b1ef06f
@rurban rurban regenerated all native_pbc with 5.0.0, ppc64 skipped 3754509
@mrshu mrshu Updated CREDITS to hold more info about @mrshu 9baf8c3
@leto leto Merge pull request #928 from mrshu/patch-1
Updated CREDITS to hold more info about @mrshu
@leto leto Hopefully fix FFA.sort() bug, caused by my questionable casting. @nwe… 80b318e
@jkeenan jkeenan [codingstd] Correct POD formatting errors. 547093a
@jkeenan jkeenan Correct POD formatting errors. 95b88de
@leto leto Prepare for the 5.0.0 release a8b1820
@leto leto Revert "Merge branch 'gh925_ffa_sort'"
This reverts commit 99676a6, reversing
changes made to 285bd0a.

@leto leto Update dates related to 5.0.0 release 8de89f8
@leto leto [doc] Update the release manager guide f4d9dae
@leto leto [doc][ci skip] Start a new Changelog entry 1cb9411
@Util Util [doc] Volunteer myself as release manager for February. 33cdf8c
@Benabik Benabik Fix Parrot_io_readall_s allocating too much
Allocating a string for the entire size of the file is not the right
thing to do if the file has already been read from.

Fixes #930
@Benabik Benabik Fix decl-after-statement
C90, I do not like you.
@Util Util [codingstd] Add space after comma to pass c_operator.t 7408a48
@mlschroe mlschroe Do not put $destdir into the generated MANIFEST files b23f23e
@gerdr gerdr Merge branch 'master' into eval_pmc 06a425a
@gerdr gerdr referenced this pull request in rakudo/rakudo Feb 17, 2013

Add --target=pbc and use for build #102


@jkeenan message sent


Obsolete now - see #937

@gerdr gerdr closed this Feb 22, 2013
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment