Parrot 6.4.0 "Double-eyed Fig Parrot" | parrot.org/ | Log: irclog.perlgeek.de/parrot | #parrotsketch meeting Tuesday 19:30 UTC
Set by moderator on 25 May 2014.
00:22 rurban joined 00:23 rurban1 joined 01:25 rurban joined 01:26 FROGGS__ joined 02:26 rurban joined 02:28 rurban1 joined 02:31 rurban2 joined 03:37 Timbus joined 05:31 woosley joined 08:53 basiliscos joined 09:47 Psyche^ joined 09:55 Timbus joined 11:03 FROGGS__ joined 11:36 FROGGS__ joined 12:02 autark joined 12:43 ivan joined 13:23 rurban joined
dalek Heuristic branch merge: pushed 25 commits to parrot/rurban/pmc2c_orig2-gh1069 by rurban 13:28
rurban merged your new rework, ended up empty. Still the one remaining gc.t bug 13:29
14:14 Chirag joined 14:52 Khisanth joined 14:54 rurban joined
Chirag rurban : So I tried removing "manual_wb" and "no_wb" but that did not change anything... 14:59
So since gc.t threw an error -- "set_attr_str() not implemented in class 'HashIterator' " .. I was wondering if WB is not the problem 15:00
rurban_ I'm just annotating the WB in the GC to see which pmc exactly is the causing the problem 15:43
Chirag hmm.. is it required for HashIterator to have set_attr_str() ? 15:46
rurban_ Looks in master 15:53
look in master
no, hashiters have no string repr for the attrs 15:55
Chirag hmm.. 15:58
rurban_ But I get similar wrong pmc types now with your latest change 15:59
Chirag let me try with the commit before I did anything .. and step by step check each commit 16:00
rurban_ I get get_repr() not implemented in class 'CallContext'
Chirag without making any modifications? 16:01
rurban_ Just a debug printf in gc_gms_write_barrier 16:03
Oh yeah, my fault 16:04
Chirag ? 16:05
rurban_ found my bug. got now all the PMC types being write barriered 16:07
Chirag what was it? 16:09
rurban_ #ifdef DEBUG_GC_WB 16:18
fprintf(stderr, "WB pmc %-20s, gen %ld at %p - %p\\n",
VTABLE_get_string(interp, pmc)->strstart, gen, pmc, item->ptr);
#endif
I used get_repr before
but not all pmc's have a repr 16:19
Chirag oh .. I thought you found the WB bug .. :D 16:32
btw I tried gc.t on commit "[codingstd] fix trailing whitespace" .. still the same error 16:34
rurban_ no, still fixing GC debugging. -DMEMORY_DEBUG is broken for GMS 16:36
But got it now, I think 16:37
16:40 FROGGS joined
rurban_ This needs to be done anyway. the new GC never had a proper checker 16:44
Chirag ohk.. 16:47
rurban_ MultiSub is my candidate 17:04
Chirag invoke doesnt require a WB right? 17:07
rurban_ wait a sec, got something better 17:10
ResizableIntegerArray is not dirty 17:11
Chirag set_integer_native .. the first if block doesnt have a WB 17:20
rurban_ right 17:23
we should just remove the manual_wb the WBs and the return 17:25
no, still the same bug 17:27
Chirag yeah.. me too 17:28
rurban_ I'll push my gc debugging fixes now
I'll sanity check master before. Maybe we had a GC bug before already 17:33
master is fine, even with the new GC sanity check code, so it's our new WB code 17:35
Chirag hmm
rurban_ I only get github.com/parrot/parrot/issues/1067 with valgrind 17:46
Chirag i didnt understand this.. 17:48
rurban_ no prob 17:51
Chirag so now how should I go about finding the wrong WBs? 17:58
rurban_ wait a sec. I need to fulltest it before I can commit it to master 18:03
Chirag ok
18:05 bluescreen joined
dalek rrot/rurban/gms_debug-gh1073: 13ba440 | rurban++ | / (3 files):
[gc] add MEMORY_DEBUG support to the GMS gc

fix and enable -DMEMORY_DEBUG for the GMS gc, add DETAIL_MEMORY_DEBUG lines for all sanity checked PMCs, and add a single MEMORY_DEBUG line when write_barrier'ing a PMC
we never caught up with the change from the List_Item_Header iterator to POINTER_ARRAY_ITER. Fixes GH issue #1073
18:06
rurban_ So I got a GC WB pmc CallContext gen 2 at 0x709b10 - 0x7abeb0 and a GC WB pmc ResizablePMCArray gen 2 at 0x787410 - 0x7ac408 before the crash 18:19
found a bug in pmc2c for single return 18:32
Chirag a pm file?
rurban_ when we use RETURN we must not use :manual_wb, :manual_wb means that no WB will be added, even not in a RETURN 18:33
for a lowercase return value; the WB will be added after the return, not before 18:34
a single lowercase return value
Chirag ah.. so that never gets WB-ed 18:36
cannot find anything wrong with CallContext 18:38
set_integer_native is wrong for ResizablePMCArray 18:39
rurban_ see perl -ne'BEGIN{undef $/} print "$ARGV:$. $1\\n" if /(\\s+return .*;\\n\\s+PARROT_GC_WRITE_BARRIE)/' src/pmc/*.c
Chirag should I manually add them? 18:41
rurban_ First I'm fixing pmc2c 18:47
hmm, destroy should be :write I think 18:59
yes, this was it. gc.t passes now 19:03
nice 19:04
Chirag which destroy.. the one i mentioned yesterday?
ptrobj.pmc? 19:05
rurban_ I added a manual WB to parrotlibrary.destroy 19:08
ptrobj was a special case already before
running fulltest now
Chirag ok.. fingers crossed :D 19:09
rurban_ I have to look over the RETURN also once more, that we have no :manual_wb's there
and pmc2c also
but looks much better now 19:10
Chirag hmm.. why did u have to put a manual_wb in destroy.. wasnt it getting added automatically by pmc2c 19:11
rurban_ nope, it has no :write tag 19:12
I think they should have one 19:13
when someone calls detroy manually it might be helpful. if they are destroyed automatically they are already added to the root, so no WB needed 19:14
all the stress tests also work now
pushing soon, time to benchmark and celebrate part 1 19:15
Chirag yay! I guess :D
rurban_ but the bug was in resizablepmcarray, as the new MEMORY_DEBUG said 19:16
happy
Chirag I will push my two changes now
Also, if you could please double check these: 19:19
1. role.pmc METHOD add_method METHOD remove_method manual??
2. scalar.pmc assign_pmc no_wb??
dalek rrot: 9240d3a | rurban++ | / (2 files):
[gc] add MEMORY_DEBUG support to the GMS gc

fix and enable -DMEMORY_DEBUG for the GMS gc, add DETAIL_MEMORY_DEBUG lines for all sanity checked PMCs, and add a single MEMORY_DEBUG line when write_barrier'ing a PMC
we never caught up with the change from the List_Item_Header iterator to POINTER_ARRAY_ITER.
19:31
Heuristic branch merge: pushed 43 commits to parrot/rurban/pmc2c_orig2-gh1069 by rurban
rurban_ oops, didn't want to push to master now. have to check if this was thr right one
rurban/pmc2c_orig2-gh1069 is good 19:33
dalek rrot: e4e45e9 | rurban++ | / (2 files):
Revert "[gc] add MEMORY_DEBUG support to the GMS gc"

This reverts commit 9240d3a60083aac90ccf8fc83cab8a84cfbe73b8. This has some codingstd vialations. I'll rather add rurban/gms_debug-gh1073 later
19:34
rurban_ running the benchmarks now 19:38
Chirag great..I guess u missed my last message 19:40
rurban_ oops the new code is slower. less calls but many more branches 19:49
Probably some superfluous WBs still 19:50
19:54 travis-ci joined
travis-ci [travis-ci] parrot/parrot#1034 (master - 9240d3a : Reini Urban): The build passed. 19:54
[travis-ci] Change view : github.com/parrot/parrot/compare/8...40d3a60083
[travis-ci] Build details : travis-ci.org/parrot/parrot/builds/27159328
19:54 travis-ci left
Chirag my message is lost in the dalek notifications .. 19:55
#repost
if you could please double check these:
1. role.pmc METHOD add_method METHOD remove_method manual??
2. scalar.pmc assign_pmc no_wb??
19:55 FROGGS joined
rurban_ Our benchmark times are good (better than before) but the WB branch is still slower 19:57
more instructions, more branches, more cycles
Chirag hmm.. 19:58
rurban_ One WB too much is about 0.7 sec, This is a lot 20:01
Found one wrong one, looking for more 20:02
Chirag rurban_ : u saw my message right?
20:07 travis-ci joined
travis-ci [travis-ci] parrot/parrot#1035 (master - e4e45e9 : Reini Urban): The build passed. 20:07
[travis-ci] Change view : github.com/parrot/parrot/compare/9...e45e931736
[travis-ci] Build details : travis-ci.org/parrot/parrot/builds/27159503
20:07 travis-ci left
dalek rrot/rurban/pmc2c_orig2-gh1069: 61d4a19 | rurban++ | src/pmc/ (3 files):
[pmc] some tiny WB optimizations

0.7sec faster benchmark. remove superfluous WB in class.is_equal add one to class.resolve_method in the write case. remove WB in orderedhashiterator.shift_string, already done in shift_pmc()
20:32
rurban_ Role.add_methods just WBs the self->role->methods array, but self itself not. I think self should also be WB here. same for the other role methods on some attrs 20:57
scalar has indeed too many 21:00
dalek rrot/rurban/pmc2c_orig2-gh1069: 2a10a6f | rurban++ | src/pmc/scalar.pmc:
[pmc] some tiny WB optimizations in scalar.assign_pmc

no measurable impact in the benchmarks
21:11
21:27 rurban joined
dalek rrot: 13ba440 | rurban++ | / (3 files):
[gc] add MEMORY_DEBUG support to the GMS gc

fix and enable -DMEMORY_DEBUG for the GMS gc, add DETAIL_MEMORY_DEBUG lines for all sanity checked PMCs, and add a single MEMORY_DEBUG line when write_barrier'ing a PMC
we never caught up with the change from the List_Item_Header iterator to POINTER_ARRAY_ITER. Fixes GH issue #1073
21:35
rrot: 4e2fadb | rurban++ | / (3 files):
Merge branch 'rurban/gms_debug-gh1073'
21:53 travis-ci joined
travis-ci [travis-ci] parrot/parrot#1036 (master - 4e2fadb : Reini Urban): The build passed. 21:53
[travis-ci] Change view : github.com/parrot/parrot/compare/e...2fadb6027f
[travis-ci] Build details : travis-ci.org/parrot/parrot/builds/27169947
21:53 travis-ci left 22:11 Timbus joined
rurban_ wrote the docs also now 22:12
dalek rrot/rurban/pmc2c_orig2-gh1069: bfb5f4c | rurban++ | / (3 files):
[docs] document pmc2c and the new write barrier attributes
22:42
23:12 basiliscos joined