|
00:43
vendethiel joined
01:10
zakharyas joined
02:20
geekosaur joined
02:48
ilbot3 joined
02:50
leego joined
05:59
japhb joined
06:25
japhb joined
06:37
domidumont joined
06:55
japhb joined,
domidumont joined
07:03
domidumont joined
07:21
japhb joined
10:08
synopsebot6 joined
10:18
zakharyas joined
10:24
timotimo joined
10:25
zostay joined
11:05
geekosaur joined
|
|||
| dalek | arVM: c63d649 | jnthn++ | / (2 files): Add GC debug helper to "find" a pointer. Discovers which, if any, fromspace/tospace region or gen2 allocator page it exists within. Only compiled in if GC debugging is enabled. |
11:10 | |
| arVM: 3736562 | jnthn++ | src/gc/debug.h: Make ASSERT_NOT_FROMSPACE check all fromspaces. Not just that of the calling thread. Makes it able to catch quite a lot more issues in multi-threaded programs. |
11:28 | ||
| arVM: 4be6b38 | jnthn++ | src/io/procops.c: Fix missing MVMROOT around an allocation. This is at least one of the causes of the occasional GC corruption issues that show up when using Proc::Async (most often with a zeroed owner error, though depending on timing invalid owner or SEGV could have happened too). |
11:34 | ||
| jnthn | lunch, but that seems to have made things a good bit better :) | 11:55 | |
|
12:15
zakharyas joined
|
|||
| jnthn back | 12:45 | ||
|
12:50
dogbert17 joined
|
|||
| dogbert17 | jnthn: so what will you tackle next? | 12:50 | |
| nwc10 | dinner? :-) | 12:51 | |
| dogbert17 | :-) | ||
| nwc10 | there is still one ASAN barfage in the spectests | ||
| dogbert17 | uh oh | ||
| jnthn | Well, I ran my used-to-explode-with-the-above code in a loop over lunch | 12:59 | |
| In gdb | |||
| And it SEGVd in another way | |||
| The SEGV itself is due to our hashes not being completely memory safe yet if you cross-thread abuse them (a known issue) | 13:01 | ||
| But why was the code doing that in the first place? Seems I've found a buglet in the supply/react/whenever impl. | 13:02 | ||
| m: my $s = supply { whenever Supply.interval(0.001) { done } }; for ^4 { start { for ^100 { react { whenever $s { } } } } } | 13:03 | ||
| camelia | ( no output ) | ||
| jnthn | m: my $s = supply { whenever Supply.interval(0.001) { done } }; for ^4 { start { for ^1000 { react { whenever $s { } } } } } | ||
| camelia | ( no output ) | ||
| jnthn | m: my $s = supply { whenever Supply.interval(0.001) { done } }; for ^4 { start { for ^100000 { react { whenever $s { } } } } } | ||
| camelia | ( no output ) | ||
| jnthn | oh, 'doh | ||
| m: my $s = supply { whenever Supply.interval(0.001) { done } }; await do for ^4 { start { for ^1000 { react { whenever $s { } } } } } | 13:04 | ||
| camelia | rakudo-moar 843a6b: OUTPUTĀ«(signal SEGV)Ā» | ||
| jnthn | That'll make a nice test case... :) | 13:06 | |
| Much better than my 2000-ish line app, anyways | 13:07 | ||
| dogbert17 | cool | 13:08 | |
| nwc10 | ASAN is pondering this | ||
| 1000 does not barf | |||
| mmm. | |||
| race doesn't race the same way. :-( | 13:09 | ||
| Unhandled exception in code scheduled on thread 17 | 13:10 | ||
| Cannot resolve caller postfix:<++>(Mu); the following candidates | |||
| match the type but require mutable arguments: (Mu:U $a is rw) | |||
| ... | |||
| for ^10000 | |||
|
13:14
viki joined
|
|||
| jnthn | I get that one too | 13:16 | |
| Think I've also figured it out | |||
| m: my $s = supply { whenever Supply.interval(0.001) { done } }; await do for ^4 { start { for ^100 { react { whenever $s { } } } } } | 13:27 | ||
| camelia | ( no output ) | ||
| jnthn | m: my $s = supply { whenever Supply.interval(0.001) { done } }; await do for ^4 { start { for ^100 { react { whenever $s { } } } } } | ||
| camelia | ( no output ) | ||
| jnthn | m: my $s = supply { whenever Supply.interval(0.001) { done } }; await do for ^4 { start { for ^100 { react { whenever $s { } } } } } | ||
| camelia | ( no output ) | ||
| jnthn | m: my $s = supply { whenever Supply.interval(0.001) { done } }; await do for ^4 { start { for ^100 { react { whenever $s { } } } } } | ||
| camelia | ( no output ) | ||
| jnthn | grr, 100 doesn't seem to trip it | ||
| m: my $s = supply { whenever Supply.interval(0.001) { done } }; await do for ^4 { start { for ^200 { react { whenever $s { } } } } } | |||
| camelia | ( no output ) | ||
| jnthn | m: my $s = supply { whenever Supply.interval(0.001) { done } }; await do for ^4 { start { for ^200 { react { whenever $s { } } } } } | ||
| camelia | ( no output ) | ||
| jnthn | m: my $s = supply { whenever Supply.interval(0.001) { done } }; await do for ^4 { start { for ^200 { react { whenever $s { } } } } } | ||
| camelia | ( no output ) | ||
| jnthn | m: my $s = supply { whenever Supply.interval(0.001) { done } }; await do for ^4 { start { for ^300 { react { whenever $s { } } } } } | ||
| camelia | ( no output ) | ||
| jnthn | m: my $s = supply { whenever Supply.interval(0.001) { done } }; await do for ^4 { start { for ^300 { react { whenever $s { } } } } } | ||
| camelia | ( no output ) | ||
| jnthn | m: my $s = supply { whenever Supply.interval(0.001) { done } }; await do for ^4 { start { for ^300 { react { whenever $s { } } } } } | 13:28 | |
| camelia | ( no output ) | ||
| jnthn | odd | ||
| m: my $s = supply { whenever Supply.interval(0.001) { done } }; await do for ^4 { start { for ^500 { react { whenever $s { } } } } } | |||
| camelia | ( no output ) | ||
| jnthn | m: my $s = supply { whenever Supply.interval(0.001) { done } }; await do for ^4 { start { for ^500 { react { whenever $s { } } } } } | ||
| camelia | rakudo-moar 843a6b: OUTPUTĀ«(signal SEGV)Ā» | ||
| jnthn | 1000 is a bit of a long test | ||
| But yup, seems I've fixes for that and my other issue | 13:31 | ||
|
13:32
babydrop joined
|
|||
| jnthn | Grr, and one regression in S17-supply/migrate.t it seems | 13:45 | |
| Good test catches real regression. Whew. :) | 13:51 | ||
| nine | test++ | ||
| jnthn | Really not having much luck getting my occasinally-explosive code from $dayjob to explode at all after fixing the last couple of things I golfed down from it | 14:31 | |
| (This is a good thing.) | |||
| nine | But but but....you saying that explosions aren't cool? | 14:37 | |
| jnthn | They are, just not inside of VMs :P | ||
|
14:59
vendethiel joined
|
|||
| jnthn | Yup, ran 100s of times while I took some rest | 15:44 | |
| Proably a thousand times easily | |||
| japhb | jnthn: I see from above you had supply/whenever/react fixes ... did this work also fix the "short intervals get stuck" bug? Or is that a different thing? | 15:58 | |
| jnthn | heh, see #perl6-dev | ||
| I just worked that one out :) | |||
| japhb | Oh, *chuckle* Guess it pays to read all the backlogs. :-) | 15:59 | |
|
16:32
lizmat joined
17:13
dogbert17 joined
|
|||
| timotimo | <3 | 17:22 | |
| dogbert17 | o/ timotimo | 17:33 | |
|
18:26
domidumont joined
19:38
ggoebel joined
20:10
domidumont joined
|
|||
| dalek | arVM: 366b802 | rurban++ | src/strings/nfg.h: typo in nfg.h comment look => lock |
20:45 | |
| arVM: 3171dbb | jnthn++ | src/strings/nfg.h: Merge pull request #445 from rurban/patch-1 typo in nfg.h comment |
|||
| lizmat | jnthn: a small HARNESS_TYPE=6 update: all of the crashes that we had before, are gone, BUT | 22:57 | |
| we got a new set in return, all basically boiling down to: | |||
| ===( 0;43 155/403 9/15 84/128 47/55 0/? 0/? 0/? 1/5)===Unhandled exception in code scheduled on thread 17 | |||
| No such method 'end-entries' for invocant of type 'Match' | |||
| No such method 'made' for invocant of type 'TAP::Runner::State' | 22:58 | ||
| aka, somehow an object appears to have changed type, or is somehow overwritten | 22:59 | ||
| timotimo | right | 23:00 | |
| lizmat | afk again& | 23:07 | |
| timotimo | maybe the gc debug flag jnthn mentioned earlier could be turned on for some benefit | 23:08 | |
| like earlier explosions | |||
| but it's probably not the right tool for this job | 23:09 | ||
| jnthn | That one smells different | 23:17 | |
| 6guts actually has guts again: 6guts.wordpress.com/2016/12/01/tak...-a-gc-bug/ | 23:18 | ||
| timotimo | i've smelled this error message before, but never really found any fix for one kind of that | ||
| oh!! | |||
| <3 | |||
| jnthn | Well, they often boil down to insufficient closure cloning | ||
| And I already fixed a couple of those in the regex compilation | |||
| But it wouldn't surprise me if there's another one somewhere | |||
| timotimo | right | ||
| jnthn | We still have an RT on such matters | ||
| Anyway, 'tis late, and I'm still behind with sleep, so I'm off :) | 23:19 | ||
| 'night | |||
| timotimo | gnite! | ||
|
23:30
travis-ci joined
|
|||
| travis-ci | MoarVM build failed. Jonathan Worthington 'Make ASSERT_NOT_FROMSPACE check all fromspaces. | 23:30 | |
| travis-ci.org/MoarVM/MoarVM/builds/180054196 github.com/MoarVM/MoarVM/compare/c...36562a902c | |||
|
23:30
travis-ci left
|
|||
| babydrop | .oO( ASSERT_ALIENS ) |
23:57 | |
| timotimo | hahaha :D | 23:59 | |
| i didn't even read it like that | |||