Parrot 4.10.0 "[Red-eared Parakeet]" parrot.org/ | Log: irclog.perlgeek.de/parrot
Set by moderator on 21 November 2012.
dukeleto rurban: any ideas? 00:19
rurban: i am not sure if that is platform-specific yet
davidfetter: congrats! 00:20
rurban some. I'll test it later in the evening. First I fight the UNUSED battle
dukeleto davidfetter: obviously one is not enough fun :)
davidfetter dukeleto, we're both of the rip-it-off-quick school of bandaids
rurban dukeleto: It works fine on linux. Looks like a clever BSD memory protection 00:21
davidfetter dukeleto, and besides, we probably won't get asked about when Edith's going back to the hospital
dukeleto davidfetter: i see. So you want to compress the number of years without sleep as close together as possible :)
rurban I'll also check on windows, but nine tested on windows before.
davidfetter dukeleto, that, and the number of years of diapers. more of those will not enrich my life, i'm convinced
dukeleto rurban: it smelled like memory corruption/stangeness when I noticed that each backtrace looked different 00:22
rurban well, it's triggered by GC, so that's normal
dukeleto rurban: is there any way to enable threads-related debugging information during run-time? 00:29
rurban: such as, a way to show how many CPUs parrot has detected?
rurban wait a sec... 00:31
I know only THREAD_DEBUG
I would also add DETAIL_MEMORY_DEBUG 00:32
the numcpu code is at startup, I just debugged into it. 00:33
dukeleto rurban: cool, thanks 00:36
rurban Down to one single clang warning, success 00:39
Coke rurban++ 00:42
dukeleto rurban: i bestow upon you the warning-basher merit badge 00:43
dalek rrot: af7e332 | rurban++ | lib/Parrot/Pmc2c/Method.pm:
[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
rrot: 4136fb4 | rurban++ | ChangeLog:
[GH #836] rurban/pmc2c-2-gh836 ChangeLog line
rrot: cbe8900 | rurban++ | src/pmc/imageiothaw.pmc:
[GH #836] Remove wrong 2x UNUSED(INTERP) in imageiothaw
rrot: f204cf8 | rurban++ | lib/Parrot/Pmc2c/Method.pm:
Fix wrong Parrot::Pmc2c::Method::decl

Failed when not in first line (s///m missing)
rrot: 32ac823 | rurban++ | lib/Parrot/Pmc2c/Method.pm:
[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 pmc2c has also now some nice warnings beforehand
now back to darwin threads ...
ttbot Parrot 4136fb47 i386-linux-thread-multi make error tt.taptinder.org/cmdinfo/103037 00:45
Parrot af7e3329 i386-linux-thread-multi make error tt.taptinder.org/cmdinfo/103045 00:47
rurban too far behind.
00:48 schmooster joined
rurban Is there a clang++ on taptinder also? 00:48
dukeleto rurban: i don't think so, but not sure 00:49
rurban I also tried to fix some --cage warnings
rurban needs a short break
01:14 Mike-PerlRecruiter_ joined 01:34 perlite_ joined 01:36 Timbus joined
whiteknight Any ruby people around here? 01:52
benabik kinda 02:11
whiteknight here's a head-scratcher I'm working on 02:14
pastie.org/5514012 02:15
If I delete line #4, it returns the ordered list of posts as I expect
but with line 4 in place, doing nothing except reading a value out of the post, the method returns nil
or, it returns an array where all the items in it are nil 02:16
benabik Uhm.
whiteknight yeah, it's a weird one
benabik ActiveRecord attempts to be as lazy as possible. It could be that sort is returning something that's expecting to pull from the database later? 02:18
whiteknight hmmm, I hadn't thought of that. Maybe I can eager it up a little bit 02:21
...not that I have any idea how to do tht 02:22
whatever, bedtime. I'll deal with it tomorrow 02:31
dalek kudo/nom: 78b53ac | coke++ | t/spectest.data:
run more tests.
03:14
04:04 Reini joined
Reini enabled parrotinterpreter and task tests, investigating thread issues. 04:05
06:10 Reini joined
dalek rrot/tailcall_new_gh596: ea61ae7 | dukeleto++ | t/pmc/class.t:
[t] Add a failing test for #596 for Class PMC with overridden init
06:17
07:40 Reini joined 08:22 Khisanth joined 08:41 Reini joined 09:55 sivoais joined 10:15 Psyche^ joined 11:19 sivoais joined
migimunz2 well, I've just realized why python has only single expression lambdas 12:20
12:27 mtk joined 12:31 mtk joined 13:14 Mike-PerlRecruiter_ joined 13:34 TonyC joined 14:17 PacoAir joined 14:23 bluescreen joined
Coke I build parrot on OS X, pointing to a local install dir: 14:23
$ ./parrot
dyld: Library not loaded: /usr/local/lib/libparrot.dylib
worse: 14:26
$ ./install/bin/parrot
dyld: Library not loaded: /usr/local/lib/libparrot.dylib
(I'm a few revs behind, updating...) 14:27
ah. after an upgrade, I'm reduced to a more tractable problem - the locally built version of parrot is relying on the installed versions of all the C libraries. 14:30
so, if I ./parrot before I install, I get an error because I installed an older version. Then I if I delete install dir, I get an error because they don't exist. then I install, everything is fine. move install out of the way, error.
so, annoying, but status quo. 14:31
14:33 Reini joined
rurban Coke: Yes, on darwin we have no rpath. So I always export DYLD_LIBRARY_PATH=`pwd`/blib/lib 14:35
Very annoying, esp when I switch branches
14:42 mtk joined 15:04 davidfetter joined 15:16 Reini joined
rurban How do I know my task id from within pir? I want to make Test::Builder thread-safe 15:21
Do I need to catch a cant_do_write_method exception? 15:22
Fixed another thread race 15:39
15:46 Reini joined
rurban And another 15:52
Not even say is atomic. I need to write print "ok 1\\n" instead, otherwise the concurrent say would interfer with the \\n. => "ok 1ok 2\\n\\n" 16:06
moritz maybe say should be made atomic 16:07
rurban Yeah, I hope so :)
And sleep is also concurrent now.
16:45 dmalcolm joined
rurban Another big one ... 17:11
dalek rrot: 297f1ee | rurban++ | / (2 files):
[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.
rrot: 792763b | rurban++ | src/pmc/task.pmc:
Fix a threads race condition with Task_nci_send/Task_invoke

Postpone TASK_recv_block_CLEAR(partner) when another task wants to check
  !TASK_in_preempt_TEST(_self)
  $ tsan ./parrot t/pmc/task.t
  ==6406== ThreadSanitizer, a data race detector
1..8 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==
98602e1 | dukeleto++ | t/library/mime_base64.t: Improve the name and description of mime_base64.t
rurban dalek is overwhelmed? 17:14
17:14 dalek joined 17:26 schmooster joined
17:32 tuxit joined
dalek rrot: fcbbad0 | rurban++ | t/src/embed/api.t:
[codingstd] untabify t/src/embed/api.t [GH #816]
17:37
rurban Deleted all already merged branches 17:47
git branch -r --no-merged master vs git branch -r 17:48
msg whiteknight what happened to whiteknight/native_attrs: Add in getattribute and setattribute variants for native types 17:54
aloha OK. I'll deliver the message.
18:08 benabik joined
benabik dukeleto's on a ticket spree, I see. 18:17
Coke I am not a huge fan of "any movement on this ticket" pokes, usually. 18:56
Probably because my tickets never get worked on. ;) 18:57
dalek rrot: a48a046 | rurban++ | src/ops/ (2 files):
[cage] fix wrong UNUSED(INTERP) in core.ops,experimental.ops

This came up when doing make bootstrap-ops
19:12
Heuristic branch merge: pushed 69 commits to parrot/native_pbc2 by rurban 19:32
19:36 zby_home joined 19:38 awwaiid joined
dalek rrot/native_attrs: fdb2f72 | rurban++ | src/ops/object.ops:
add native get/setattributes to ops

This is a rebase of the branch whiteknight/native_attrs. Add in getattribute and setattribute variants for native types. Right now they do the same boxing/unboxing, but in the future they might be replaced with real native attribute access.
19:43
rrot/native_attrs: 61dcc82 | rurban++ | / (4 files):
make bootstrap-ops for native_attrs

This needs to bump PBC_COMPAT if applied after 4.11.0 op_count went from 1129 to 1165
rrot/native_attrs: baa468d | rurban++ | ChangeLog:
added ChangeLog line for native_attrs
20:21
dukeleto benabik: yes, i went on a ticket spree last night, for no good reason. It's like spelunking 20:30
Coke: i am not a huge fan either, but it works. We are carrying around almost 500 issues, many of which haven't been touched in >4 years and have been migrated from RT, to Trac, to Github 20:31
Coke: that is too much baggage
rurban dukeleto++ 20:40
22:44 whiteknight joined
whiteknight good evening, #parrot 22:55
22:58 kurahaupo joined 23:29 benabik joined
dalek rrot/getprotobyname_gh606: bc6d9e6 | dukeleto++ | / (5 files):
Port over a patch from @ocharles that add get_proto_by_name to Socket PMC, #606

Originally trac.parrot.org/parrot/raw-attachme...name.patch
23:32
rurban whiteknight: I prepared a ready to be merged native_attrs. 23:43
Do we want it this API? 23:44
I would rather like bump PBC_COMPAT only once
benabik native_attrs? 23:47
rurban do not return PMC 23:48
github.com/parrot/parrot/commit/fdb2f721fd 23:49
For a tiny bit more rakudo performance.
benabik Plumbing for, but not implementation of native attributes on PMCs? Interesting. 23:51
Do like.