00:16
pyrimidine joined
00:39
pyrimidine joined
00:51
lizmat joined
01:14
pyrimidine joined
01:26
pyrimidine joined
01:39
pyrimidine joined
01:55
pyrimidine joined
02:22
pyrimidine joined
02:32
pyrimidine joined
02:37
colomon joined
02:48
ilbot3 joined
02:57
pyrimidine joined
03:37
colomon joined
07:01
geekosaur joined
07:16
pyrimidine joined
07:26
pyrimidine joined
07:48
domidumont joined
07:53
domidumont joined
08:16
pyrimidi_ joined
08:25
zakharyas joined
10:20
domidumont joined
11:27
geekosaur joined
11:38
pyrimidine joined
11:56
pyrimidine joined
12:06
pyrimidine joined
12:08
domidumont joined
|
|||
dogbert17_ | jnthn: regarding the discussion yesterday about "Must not GC when in the specializer/JIT": the MoarVM issue no is #458 | 12:14 | |
12:18
domidumont joined
|
|||
dogbert17_ | question: in Exception.pm there's a sub print_exception which seems to be the one printing out the rather sad ==SORRY!== messages when something goes horribly wrong. Is there a function in MoarVM which is called just before that, i.e. I wan't to break the program in gdb just before this happens if possible? | 12:24 | |
12:24
pyrimidine joined
12:34
pyrimidine joined
12:43
pyrimidine joined
|
|||
jnthn | dogbert17_: print_exception is invoked from somewhere in NQP, which in turn is just a normal exception handler, iirc | 12:45 | |
dogbert17_ | jnthn, thx I guess it's not possible to set gdb breakpoints in NQP code ... | 12:48 | |
was trying to take a look at [Coke]'s problems with htmlify | 12:50 | ||
12:52
pyrimidine joined
13:02
pyrimidine joined
|
|||
jnthn | OK, I've Perl 6 / MoarVM tuits :) | 13:09 | |
lizmat hopes for some love for the HARNESS_TYPE=6 issue | 13:10 | ||
jnthn | Grr, I should probably have closed some of the MoarVM issues last week when I solved them | ||
dogbert17_ | jnthn, I believe you solved the syntax.t and many-threads ones | 13:12 | |
jnthn | Pretty sure github.com/MoarVM/MoarVM/issues/449 and github.com/MoarVM/MoarVM/issues/450 and github.com/MoarVM/MoarVM/issues/452 I fixed | ||
dogbert17_ | yup | ||
jnthn | I thought S32-io/socket-recv-vs-read.t too | ||
dogbert17_ | you wrote that you still had some problem with an ultra small nursery and 450 | 13:13 | |
jnthn | If you're time and fancy verifying/closing those... | ||
Ah, right | |||
Oh, and hyper.t was a newly reported one since We | |||
*Wed | |||
dogbert17_ | wrt 450, when I run it, it does no longer panic but one test fails with truncated data | ||
hyper is new | |||
jnthn | Yeah, I think 450 still has that tiny nursery explosion issue though | 13:14 | |
dogbert17_ | 450, again the test fail is ofc with a small nursery | ||
jnthn | Yes, I wasn't able to be sure whether it was a timing issue | ||
Or memory issue | 13:15 | ||
(for the lost data) | |||
Though it shouldn't really happen either way | |||
dogbert17_ | agreed, where will you start? | ||
jnthn | Think with hyper.t | ||
As it looks the most easily huntable | |||
dogbert17_ | here's hoping :) | 13:16 | |
jnthn | Especially since I'm pretty sure there's just one thread involved | ||
dogbert17_ | sounds good, didn't you want to work on race and hyper anyways | 13:17 | |
jnthn | True :) | 13:18 | |
jnthn has so many things he wants to work on... :) | |||
dogbert17_ | holler if there's anything I can do except apat from closing the two fixed issues | 13:20 | |
nwc10 | hopefully including lunch | ||
dogbert17_ my spelling totally sucks today :( | |||
13:20
pyrimidine joined
|
|||
jnthn | Already did lunch :) | 13:21 | |
nwc10 | jnthn++ | ||
jnthn | My lunchtime reminder service is back home, so reliable lunches are back for the foreseeable future :) | ||
nwc10 | \o/ | 13:22 | |
dogbert17_ | how about coffee then? | ||
jnthn | Did that this morning. Already on to tea. | 13:23 | |
A slice of stollen in an hour or so would be nice, though... | |||
nwc10 | you have that sorted, or you're just popping out to Germany to get some? | 13:25 | |
jnthn | No, already have some :) | 13:28 | |
There was a kilo of it | |||
But its disappearing fast | 13:29 | ||
jnthn fails to reproduce the hyper.t bug | |||
13:30
pyrimidine joined
|
|||
jnthn | Can try with some nursery size variations | 13:31 | |
JimmyZ | jnthn: any chance review my pr for moarvm and rakudo? | 13:32 | |
jnthn | JimmyZ: Ah, thanks for reminder. Will look after this bug hunt :) | ||
JimmyZ | jnthn: thanks | ||
[Coke] yawns. | 13:36 | ||
lizmat too | |||
jnthn three | |||
Sleep deprevation all around | 13:37 | ||
mst forth | |||
*deprivation | |||
trout.me.uk/ocd.png | |||
< El_Che> mst: Megalomanic Spelling Troll | |||
[Coke] | mst: *twitch* | ||
jnthn | .oO( depravation :P ) |
||
lizmat | .oO( OCD should be spelled CDO ) |
13:38 | |
13:39
pyrimidine joined
|
|||
jnthn | dogbert17_: Don't suppose you could check the hyper.t one again locally? I'm have zero luck reproducing it... | 13:44 | |
dogbert17_ | jnthn: will try | 13:45 | |
jnthn has tried a dozen nursery sizes by this point | 13:47 | ||
dogbert17_ | gah | 13:48 | |
grr , it doesn't want to rear its ugly face, suggest we pretend it never happened unless there's something obvious in the report itself :-) | 13:54 | ||
jnthn | No, sadly not | ||
It's possible it was covered by another fix | 13:55 | ||
dogbert17_ | maybe there's somthing more reproducible in your list of bugs to fix | 13:57 | |
13:57
pyrimidine joined
|
|||
jnthn | Yeah, think I'll have to give up on this one for now | 13:58 | |
jnthn reviews JimmyZ++'s pull requests before further hutning | 13:59 | ||
JimmyZ: Left some comments. :) | 14:09 | ||
14:10
pyrimidine joined
|
|||
jnthn | And merged the Rakudo one, which is ifne | 14:10 | |
*fine | |||
dogbert17_: Better news: reproduced rt.perl.org/Ticket/Display.html?id=130294 :) | 14:14 | ||
14:16
pyrimidine joined
|
|||
nwc10 | this is sort of | 14:16 | |
bad news: it's not fixed | |||
good news: we know that it's not fixed | |||
dogbert17_ | yay :-) | 14:20 | |
hope it's a simple one | 14:22 | ||
jnthn | Confusing one so far | 14:24 | |
Though maybe wonky debug symbols | |||
14:24
pyrimidine joined
|
|||
jnthn is now compiling with optimization off | 14:25 | ||
Aha. Goes away under MVM_SPESH_INLINE_DISABLE | 14:26 | ||
dogbert17_ is trying to reproduce #458 with mixed results, I can't get the "spesh/GC" error message but I can get it to SEGV every 10-15 times | 14:27 | ||
JimmyZ | jnthn: re: I'd much rather use MVMROOT instead. because it will be a big MVMROOT since line 114 may triger a gc and line 103 may return | 14:56 | |
jnthn: cause more two push | 14:57 | ||
jnthn | JimmyZ: I think I'd prefer the code clarity | 15:00 | |
dalek | arVM/missing_mvmroot: 9d2a4e5 | (Jimmy Zhuo)++ | src/6model/6model.c: change MVM_gc_root_temp_push to MVMROOT |
15:08 | |
arVM/missing_mvmroot: 7b89473 | (Jimmy Zhuo)++ | src/core/frame.c: add a missing MVMROOT |
|||
15:09
colomon joined
|
|||
JimmyZ | jnthn: should I change all temp_push to MVMROOT? though this will cause a bit more push times | 15:11 | |
dalek | arVM: 0e4652c | jnthn++ | src/core/interp.c: Check lexical access in GC debug mode 2 also. Might catch a few more things. Sadly, not the bug I'm currently on the hunt for. |
15:12 | |
jnthn | JimmyZ: I don't think we need to change existing code | ||
JimmyZ: Just would prefer MVMROOT going forward | 15:13 | ||
JimmyZ | jnthn: I meant in my PR | ||
dogbert17_ | jnthn: has rt.perl.org/Ticket/Display.html?id=130294 turned out to be a can of worms? | ||
jnthn | JimmyZ: Oh, in your PR, yes, unless there's really good resons not to | 15:14 | |
JimmyZ | I remember MVMROOT cause a problem to see the real line no when debug, haha | ||
jnthn | JimmyZ: It can, though I think --debug=3 makes it OK again in GCC at least :) | 15:15 | |
dogbert17_: Yes, somewhat | |||
dogbert17_: Well, not so much can of worms | |||
JimmyZ | jnthn: ah, don't know about it | ||
jnthn | dogbert17_: At least, not yet. It's just rather hard to work out what's going on. | ||
JimmyZ: When you configure MoarVM pass --debug=3 | |||
dogbert17_ | perhaps time for some stoller | 15:16 | |
JimmyZ | jnthn: there is a reason that is it will cause two more temp_push, but don't know whether it is good or not :P | 15:18 | |
jnthn | If it's just two more I think we can live wiht it ;) | ||
JimmyZ | well , since it is in find_method, it may be in hot path | 15:19 | |
jnthn | Maybe, but isn't this code in the case we missed the cache? | 15:20 | |
If so we're already on the slow path... | |||
JimmyZ | yeah | ||
jnthn | Then spesh bypasses it all also in many cases | ||
JimmyZ | jnthn: BTW, github.com/MoarVM/MoarVM/issues/412 #don't know if it is a gc but or not | 15:21 | |
*bug | |||
jnthn | Think I've spent time on that one before without success... | 15:22 | |
There was a similar RT a couple of days ago also | |||
JimmyZ | jnthn:yeah, I tried too ,haha | ||
dalek | arVM/missing_mvmroot: d7fdb71 | (Jimmy Zhuo)++ | src/6model/6model.c: change MVM_gc_root_temp_push to MVMROOT |
15:32 | |
arVM/missing_mvmroot: c0a7588 | (Jimmy Zhuo)++ | src/6model/6model.c: change MVM_gc_root_temp_push to MVMROOT |
15:35 | ||
JimmyZ | jnthn: updated my PR | ||
jnthn | ooh, valgrind barfage | 15:38 | |
(On the SEGV I'm hunting) | |||
moritz | valgrind says "your memory is more corrupt than my president, I won't debug this for you"? | 15:39 | |
jnthn | Funnily enough, things do actually go wrong enough to corrupt valgrind's own state, yes. :P | ||
.oO( Who is president of valgrind? :P ) |
|||
dalek | arVM/missing_mvmroot: 9cfedef | (Jimmy Zhuo)++ | src/6model/6model.c: fixed wrong MVMROOT |
15:40 | |
jnthn | Think I found the darn thing | 15:53 | |
Wasn't anything to do with spesh or GC at all | |||
timotimo | oh? | ||
i wish there was some way to automatically expand only MVMROOT macros | 15:54 | ||
before building | |||
because it confuses the heck out of multiple debugging/analysis tools i've tried | |||
dalek | arVM: 4722cfc | jnthn++ | src/spesh/optimize.c: Add a #define to turn on inline logging. Quicker that commenting/uncommenting it. |
15:55 | |
dogbert17_ | interesting | 15:59 | |
jnthn | Here it comes... | 16:02 | |
dalek | arVM: 65acd55 | jnthn++ | src/core/callstack.c: Fix callstack reset. In cases where we have recursed heavily, we may end up needing to flush the entire stack onto the heap. In that case, we need to set *all* regions to have their ->alloc pointers back to the start of the region. Otherwise, it can create a situation where we flip into that region again in the future, and assume that we're at the start of it - only to end up with memory off the end of it. The resulting corruption can be highly confusing, looking very much like a GC bug or an inlining bug (since inlining changes the number of stack frames allocated, thus hiding the bug). |
||
jnthn | Will stick a test in for it shortly. bbi10 | 16:05 | |
dogbert17_ | jnthn++ | 16:07 | |
timotimo | ah! | 16:10 | |
so that's how that happens! | |||
jnthn | abh, bit longer than 10 mins...another errand to do | 16:13 | |
japhb | jnthn: If it's a Perl 6 day too (as opposed to pure MoarVM work), any chance of oo-monitors making it in this week? | 16:20 | |
japhb feels like he's nagging, which is not a fun feeling ... :-( | |||
jnthn | japhb: Actually, tomorrow is the Perl 6 day. Just that I ran out of loose ends to tie up in $other-project, and since I'm taking vacation from Thursday there's no point starting anything new, so I decided to hunt a bug or two here instead. :) | 17:35 | |
japhb | jnthn: A worthy choice. :-) | 17:48 | |
jnthn | Darn, the SEGV is good at hiding itself | ||
timotimo | sneaky thief | ||
JimmyZ | jnthn: I think I can merge my PR now, just wait for your opinion | ||
jnthn | The most I put `use Test` in the test case I wrote the cover the thing I fixed an hour or so ago, it won't SEGV | 17:49 | |
Which means the test isn't so valuable :S | |||
JimmyZ thinks fixing segv in the VM is the hardest work | 17:50 | ||
jnthn | ah, if I jack up the recursion count then it blows reliably even with use Test :) | 17:51 | |
JimmyZ: That's largely because there aren't many easy ones left :) | |||
nwc10 | \o/ | 17:52 | |
timotimo | seems like that's your only recurse. | ||
jnthn | *groan* | ||
18:01
domidumont joined
|
|||
dogbert17 | jnthn: have now closed 449 and 452 | 18:13 | |
jnthn | \o/ | 18:18 | |
And I've just resolved RT #130294 | 18:19 | ||
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130294 | ||
dogbert17 | jnthn++, from your comment I gather this is not blog material :-) | 18:20 | |
jnthn | If anything it's a lesson in biases. Having fixed GC and inlining-triggered things recently, when this one was sensitive to both it was easy to chase it with the expectation it would be one of the two. | 18:23 | |
In the end it was something far more boring. | 18:24 | ||
JimmyZ: Taking another look at your PR now | 18:25 | ||
dalek | arVM: ee6b817 | (Jimmy Zhuo)++ | src/ (2 files): add more missing mvmroot |
18:28 | |
MoarVM: 97d288c | (Jimmy Zhuo)++ | src/core/args.c: | |||
MoarVM: fixed arg_flags allocation | |||
jnthn | JimmyZ: Thanks, it was incredibly easier to be comfortable it was correct when done that way :) | ||
18:29
dalek joined
|
|||
jnthn | JimmyZ: Shall I clean up the branch? | 18:31 | |
18:34
FROGGS joined
18:43
travis-ci joined
|
|||
travis-ci | MoarVM build failed. Jonathan Worthington 'Add a #define to turn on inline logging. | 18:43 | |
travis-ci.org/MoarVM/MoarVM/builds/185499926 github.com/MoarVM/MoarVM/compare/0...22cfc03847 | |||
18:43
travis-ci left
|
|||
JimmyZ | jnthn: yes please | 18:55 | |
jnthn | Done | 18:57 | |
JimmyZ | thanks | 18:59 | |
nine | jnthn: I'm not sure you still have a right to groan at bad puns ;) | 19:17 | |
japhb | He earns the right to groan by dishing out so many groaners. :-) | 19:18 | |
JimmyZ | ah ,find another wrong MVMROOT from my commit | 19:24 | |
jnthn: I found that MVM_gc_allocate_frame() may triger a GC but allocate_frame() not , so no need MVMROOT around allocate_frame()? | 19:42 | ||
jnthn: and when use the triger the GC one? | 19:43 | ||
found it about heap vs callstack | 19:51 | ||
dalek | arVM/needless_mvmroot: 86dc577 | (Jimmy Zhuo)++ | src/core/frame.c: remove unused MVMROOT |
19:52 | |
20:34
zakharyas joined
|
|||
notviki | Do we use a "generational GC"? | 20:41 | |
japhb | notviki: yes. | 20:42 | |
notviki | cool | ||
notviki is reading medium.com/@octskyward/modern-garb...1ef4f8bd8e | 20:43 | ||
japhb | notviki: I believe jnthn used gchandbook.org/ as a reference. | 20:51 | |
(I can confirm it's really quite good, as was it's predecessor www.cs.kent.ac.uk/people/staff/rej/gcbook/ ) | 20:52 | ||
21:00
pyrimidine joined
|
|||
jnthn | Oh, I was gonna post that article notviki is reading here | 21:07 | |
yoleaux2 | 20:10Z <notviki> jnthn: should stuff like class { method ^name ($) { "elems" } }; be spectested or is it a Rakudo-only detail? Like overriding the metamodel methods like that? | ||
jnthn | (I'm about 75% of the way through it :)) | ||
Our GC is generational, parallel, and at a stretch you could label it concurrent. | 21:09 | ||
21:09
pyrimidine joined
|
|||
jnthn | (Though I don't tend to include it in the last of those camps as while it's semi-true, it's semier-false :)) | 21:09 | |
japhb | .oO( Simian-false ) |
21:11 | |
jnthn | :) | 21:12 | |
The claim is that we let threads go their own way during the sweep/finalization phase, so that one thread may be doing that while another is already getting on with work. | |||
And "does an amount of GC-related work at the same time as non-GC related work is running" is pretty much what concurrent means in a GC context | 21:13 | ||
But most people understand it to mean doing a bit more than the amount we do in that way ;) | |||
.tell notviki I believe method ^name() {} is in S12 as being a way to override a MOP method; STD parsed it also. So that's standard. What is less standardized is the exact set of methods on the MOP, though a number of them appear in the spectest and so we are committed on that part of the API. | 21:15 | ||
yoleaux2 | jnthn: I'll pass your message to notviki. | ||
jnthn | .tell lizmat Can you show me some code on the floor thing? :) | 21:19 | |
yoleaux2 | jnthn: I'll pass your message to lizmat. | ||
jnthn | oh, mis-channel, but I think yoleaux2 is everywhere :) | ||
japhb | Why do we run our own yoleaux? | 21:20 | |
jnthn has no idea :) | 21:23 | ||
21:24
stmuk joined
21:26
pyrimidine joined
21:37
pyrimidine joined
21:55
pyrimidine joined
22:04
pyrimidine joined
|
|||
notviki | japhb: what do you mean our own? | 22:18 | |
yoleaux2 | 21:14Z <jnthn> notviki: I believe method ^name() {} is in S12 as being a way to override a MOP method; STD parsed it also. So that's standard. What is less standardized is the exact set of methods on the MOP, though a number of them appear in the spectest and so we are committed on that part of the API. | ||
notviki | yoleaux2: is not in #perl6 | ||
japhb | notviki: Why is there a second yoleaux? | 22:19 | |
notviki | japhb: because we can't find who owns yoleaux to make it join #perl6-dev and #moar | 22:20 | |
japhb | :-P | ||
Fair enough. | |||
22:22
pyrimidine joined
22:41
pyrimidine joined
22:43
colomon_ joined
22:50
pyrimidine joined
22:55
colomon joined
23:24
colomon joined
23:26
colomon joined
23:28
pyrimidine joined
23:37
pyrimidine joined
23:45
colomon joined
23:55
pyrimidine joined
|