| IRC logs at
Set by AlexDaniel on 12 June 2018.
00:59 linkable6 left, evalable6 left 01:01 linkable6 joined 01:02 evalable6 joined 01:22 vrurg left 01:23 vrurg joined 03:10 klapperl left 03:15 klapperl joined 03:41 squashable6 left, squashable6 joined 03:43 squashable6 left 03:44 squashable6 joined 04:44 linkable6 left, evalable6 left 04:46 evalable6 joined, linkable6 joined 05:23 squashable6 left 05:26 squashable6 joined 06:14 Altai-man joined
nwc10 good *, #moarvm 07:12
nine Good fog! 07:41
nwc10 certainly not as sunny as yesterday here
Geth MoarVM: patrickbkr++ created pull request #1385:
Add a test configuration for MinGW on Windows
08:07 domidumont joined 08:11 sena_kun joined 08:12 Altai-man left
nine LOL...I just tried to ack for 'SC not yet resolved' in MoarVM sources but fat fingered that closing single quote into ;' 08:28
The funny part: it found the message anyway as the full message is "SC not yet resolved; lookup failed"
08:55 zakharyas joined 09:14 MasterDuke joined
MasterDuke libuv 1.40.0 is already out, looks like a 1.41.0 or 1.40.1 might be out soon. we should bump after the release 09:33
jnthn nine: Convenient :) 10:31
MasterDuke ok, i'm back with some time to try to debug that segv i'd captured in rr 11:16
but where was i?
13:51 nine I'd say you want to know where it entered the worklist13:52 nine You already know where and how sc_idx gets overwritten. That didn't help because it's obviously not the writer's fault. It's the fault of whoever holds a pointer to an object and lets it get out-dated 11:17
hm. guess i want to set a breakpoint on MVM_gc_worklist_add where `item` is the same `item` that causes the panic in MVM_gc_mark_collectable? 11:26
11:40 vrurg left 11:59 MasterDuke left 12:10 Altai-man joined 12:12 sena_kun left 12:21 Geth_ joined 12:26 Kaiepi left, Kaeipi joined 12:30 Geth_ left, Geth_ joined 12:31 Geth__ joined, Geth__ left 12:40 MasterDuke joined 12:45 Geth__ joined, raku-bridge joined 12:53 Geth_ left 12:54 raku-bridge left, Geth__ left 12:57 Geth___ joined 12:58 raku-bridge joined, raku-bridge left, Geth_ joined, raku-bridge joined, raku-bridge left, raku-bridge joined, Geth___ left 13:02 raku-bridge left, raku-bridge joined, raku-bridge left, raku-bridge joined 13:04 raku-bridge left 13:06 raku-bridge joined, raku-bridge left, raku-bridge joined 13:13 raku-bridge left, raku-bridge joined, raku-bridge left, raku-bridge joined 13:33 raku-bridge left 13:34 raku-bridge joined 13:35 raku-bridge1 joined 13:36 Geth__ joined 13:41 raku-bridge left 13:42 Geth__ left 13:43 raku-bridge1 left, Geth___ joined 13:44 raku-bridge joined, raku-bridge left, raku-bridge joined 13:47 raku-bridge1 joined, raku-bridge1 left, raku-bridge1 joined 13:48 Geth___ left 13:49 raku-bridge left 13:50 raku-bridge1 left, raku-bridge joined, raku-bridge left, raku-bridge joined 13:53 Geth_ left 13:54 raku-bridge left, Geth__ joined, raku-bridge joined, raku-bridge left, raku-bridge joined 13:56 raku-bridge left 13:57 raku-bridge joined, raku-bridge left, raku-bridge joined
MasterDuke but i'm not quite sure how to make sure they're the same assuming the object gets moved around by the gc 14:00
14:01 zakharyas left
MasterDuke see the address in MVM_gc_mark_collectable when the panic happens, set a watchpoint on it, reverse-cont, see when that address gets written, see what the previous address was, set a watchpoint on MVM_gc_watchlist_add when the address of it's argument is the same, reverse-cont again, when that hits see where we are? 14:02
14:03 raku-bridge left, Geth__ left 14:10 raku-bridge joined, raku-bridge left, raku-bridge joined, Geth_ joined 14:14 Geth_ left 14:15 raku-bridge left, vrurg joined 14:16 Geth__ joined 14:23 raku-bridge joined, raku-bridge left, raku-bridge joined 14:25 raku-bridge left 14:26 raku-bridge joined, raku-bridge left, raku-bridge joined 14:32 raku-bridge left, raku-bridge joined, raku-bridge left, raku-bridge joined 14:34 raku-bridge left, raku-bridge joined, raku-bridge left, raku-bridge joined 14:36 raku-bridge left, raku-bridge joined, raku-bridge left, raku-bridge joined 14:48 Geth__ left 14:50 raku-bridge left
MasterDuke timotimo: we can't use the appimage to run files? it just works with -e? 14:56
oh, i guess it just can't read the local filesystem at all 15:06
15:09 Geth___ joined
Kaeipi what versions of windows does moarvm support? 15:12
nine I thought there were no more versions of windows? 15:13
15:14 zakharyas joined
nwc10 10.00000 recurring :-) 15:16
I don't know the answer, but I assume that the MoarVM code is portable enough (along with all the *other* 3rd party stuff) that the limiting factor will be libuv. So the answer likely is "the same as UV supports" 15:17
Kaeipi ah 15:18
if none prior to 10 are supported, no worries then
15:18 raku-bridge joined, raku-bridge left, raku-bridge joined
nwc10 I really don't know - and I'm not personalyl in a posisiton to try it out 15:19
I think that jnthn was developing partly on Windows 7 until relatively recently, so it's possible that Windows 7 still builds too
jnthn Yeah, 7 is what I still have here 15:21
nine Windows 8.1 fell out of mainstream support in 2018 and will fall out of extended support in January 2023
jnthn Though I don't develop on it much (pretty much only if I'm asked to go after a bug)
nwc10 here's an answer: 15:23
jnthn nine: What's supported and what's used are different questions, alas :)
nwc10 the door system at the old office was still running on Windows 2000 until a couple of years ago. 15:26
The system that replaced it was on Windows 7, IIRC
"thanks dudes. This product you're installing will itself go out of support in 2 years"
I suppose they're just gettings us ready for the IoS, er IoT 15:27
15:27 raku-bridge2 joined, raku-bridge2 left, raku-bridge2 joined, Geth__ joined
nwc10 "to say thank you for buying our product last year, we've turned the servers off and now you have a very expensive brick" 15:27
(with a high carbon footprint and quite a few non ethically sourced rare metals) 15:28
15:32 Geth__ left, raku-bridge2 left, raku-bridge left
MasterDuke given the warning in this comment has the serialization format changed at all recently? 15:32
nine February 2020 15:33
15:33 raku-bridge joined 15:34 raku-bridge left
MasterDuke ? 15:35
[Coke] I do very occassional builds on win 10, haven't had any issues when tried. 15:37
MasterDuke i really don't know serialization well enough to know if that commit changes the sizes referenced in the comment
15:38 Geth__ joined
MasterDuke jnthn: ping re above question/comment 15:42
15:42 raku-bridge joined, raku-bridge left, raku-bridge joined
jnthn MasterDuke: I don't think the function the warning relates to deserializes closures 15:46
So I don't think it could have any impact 15:47
MasterDuke hm, the comment says "...if you change other parts of the serialization format..."
nwc10: pinging also since you wrote the warning 15:48
nine MasterDuke: actually, why do you ask? 16:07
MasterDuke i've seen some functions from that file in backtraces during my flailing about in rr 16:09
and then the comments here gave me pause
interestingly, i added a print if either of those calculate_int_bytes values was > 1_000_000 and it doesn't hit 16:10
16:11 raku-bridge left, sena_kun joined
MasterDuke oops, ha 16:11
16:11 Geth__ left 16:12 Altai-man left
MasterDuke waves hand "pay no attention to the previous comment" 16:13
16:20 Geth_ joined 16:24 Geth_ left
nwc10 MasterDuke: It's been five years. I roughly remember what I was doing, but we've moved house twice in that time, and a lot of other stuff, so I don't remember much else 16:30
well, that IIRC the lazy function was trying to figure out if all the things "inside" something else where of the shapes that it expected, and if it was 100% confident about what was inside, it was lazy (ie cheated), else it was eager 16:32
but please don't ask me to expand anything in that sentance, because I can't remember any more than that, and my head is currently full of many many other things. 16:33
timotimo imagine if we all consistently wrote very good commit messages 16:36
(tbh nwc10 is light years ahead of me already)
nine word! 16:48
17:02 Geth left
[Coke] just did a win10 build, seems fine 17:13
sena_kun 17:21
17:22 Geth___ left 17:23 Geth joined, raku-bridge joined, raku-bridge left, raku-bridge joined 17:26 raku-bridge left 17:27 raku-bridge joined, raku-bridge left, raku-bridge joined 17:30 raku-bridge left, Geth left 17:32 Geth joined 17:33 raku-bridge joined, raku-bridge left, raku-bridge joined 17:41 raku-bridge left 17:43 Geth_ joined, Geth left, raku-bridge joined, raku-bridge left, raku-bridge joined 17:44 Geth joined 17:45 Geth left 18:01 rypervenche left 18:11 rypervenche joined 18:56 zakharyas left
Geth_ MoarVM/bigint_div_num-IEEE-rounding: 70cefcfffc | (Nicholas Clark)++ | src/math/bigintops.c
Minimally exact bigint/bigint => num conversion, including rounding.

Given that Rakudo parses decimal constants such as 0.01 as `Rat`s (ie represents them internally as (1 / 100), and persists with this exact representation as long as possible), this effectively means that the MoarVM operator that converts `Rat`s to `Num`s implements Rakudo's decimal => binary floating point conversion. ... (161 more lines)
nwc10 Unlike that Pascal quote apologising for writing a long letter, in this case, I don't think that I could write a shorter explanation of the problem, and the not-a-solutions. 19:25
lizmat: is there a (booby) prize for the longest commit message? 19:41
lizmat good question :-)
20:00 domidumont left
nine And is there also a price for longest commit message per actual character changed? I may be a contestant for that :) 20:06
nwc10 I sometimes do quite well on those. 20:07
on that metric, that is
you can make a 1 character change
and then a long explanation of why
(justified explanation)
meanwhile I must berate the beer fridge operative, as he (it is known to be a he) failed to put in the beer that I actually wanted
I have fixed this, and taken a different one (for now) 20:08
20:10 Altai-man joined
MasterDuke nwc10: could there possibly be a missing MVMROOT in (or around) ? 20:12
20:13 sena_kun left
nwc10 I didn't think that anything that it calls down to can cause the GC to run, because nothing (I thought) does any object allocation 20:20
that's not "no" just "if there is one missing, I can't see why" 20:21
MasterDuke ok, that's kind of where i ended up too, but wanted a second opinion
nwc10 "it got past code review - it must be perfect" 20:22
"it got past code review - it's SEP now :-)"
aargh, I'm getting flashbacks to pow(2, 32) being an odd number on Irix 20:24
MasterDuke does this look like i've done something wrong with the breakpoint? or is it correct and the idx is really that crazy number? 20:25
nwc10 I hope that that other beer is cold (enough)
MasterDuke i recently got two christmas beers, one st bernardus and one delirium tremens. looking forward to the end of lockdown to try with with a friend of mine 20:27
nine MasterDuke: that's 2^32-1 which is MVM_DIRECT_SC_IDX_SENTINEL
MasterDuke ah
gist updated. is this where the problem object gets added to the worklist? 20:33
nine what did you set the watchpoint on? 20:34
MasterDuke iirc, i first went forward to the panic, then found the address of new_addr in MVM_gc_mark_collectable, then went back to the beginning and set the read watchpoint on that 20:36
nine Oh a read watchpoint. Not a bad idea. I'd have watched the slot in the worklist. But yes, I'd say you're in the right place 20:38
now you can trace that pointer's origin further back
MasterDuke heh, well it wasn't the hash bind...
nine And somewhere along the line there's the spot where it should be rooted but isn't. But only reading the code will tell you which one 20:39
MasterDuke and it wasn't the clone
nine It's unlikely to be some very common operation like hash binds. We'd be crashing all over the place
MasterDuke seems unlikely to be in decont either 20:40
nine I'm a bit confused why GC_DEBUG=3 didn't make it easier to spot, since that includes poisoning which would trip up every of those ops. But maybe the frequent GC runs would promote it to gen2 too quickly 20:41
MasterDuke or find_meth... 20:43
21:16 zakharyas joined
MasterDuke if something calls MVM_gc_allocate_gen2_default_set(tc), then we don't need to worry about MVMROOTing? 21:31
jnthn Correct, because it can't trigger GC 21:39
MasterDuke thanks 21:40
re "But maybe the frequent GC runs would promote it to gen2 too quickly", is there a way to disable the gen2 promotion? 21:44
21:48 zakharyas left
jnthn Make the nursery bigger 21:56
That won't disable it, but it'll put it off much longer
Well, how much depending how big you make it
22:01 MasterDuke left 22:38 raku-bridge left, raku-bridge joined, raku-bridge left, raku-bridge joined 22:49 Altai-man left
timotimo doesn't the gc debug mode 3 also turn the time it takes to gen2 things a whole lot? 23:47