github.com/moarvm/moarvm | IRC logs at colabti.org/irclogger/irclogger_logs/moarvm
Set by AlexDaniel on 12 June 2018.
timotimo good question :\ 00:01
could just set it to 0 if it goes below 0
MasterDuke then that is the right place? no other place(s) i should be doing anything? 00:07
timotimo i think that ought to be the only place 00:08
MasterDuke ugh, i don't know how to detect overflow in c. let's just try a hack for now... 00:09
timotimo just compare the values before subtracting :) 00:10
MasterDuke that's what i'm doing, but what if `pcn->total_entries * tcpds->tc->instance->profiling_overhead` is so big it wraps around and then is less that exclusive_time? 00:11
timotimo oh 00:13
maybe it would be best to google that, there's surely a few gotchas that i wouldn't think of immediately
MasterDuke ohhh! 00:19
that made have made a real difference 00:20
*may have
btw, completely unrelated, but i found it amusing. before lunch on this first day of the intro to python class i'm taking this week i already had a PR in to cpython 00:22
timotimo nice
MasterDuke just some whitespace fixes to a couple docstrings and the output of `pydoc3 --help`, but it was fun 00:25
so a fresh profile without my changes has identity in 12th place, with 1514399 entries and 77.64ms exclusive 00:26
after my most recent change, it's really far down, same number of entries, 0.0ms exclusive
timotimo: this is what the patch looks like now gist.github.com/MasterDuke17/2dac1...b58151f8b0 00:46
timotimo you could debug-print how much the overhead is larger than the exclusive time 00:47
that's perhaps interesting
MasterDuke gist.github.com/MasterDuke17/ab710...13033ea3f8 00:53
timotimo i don't see a " = 0" 00:55
MasterDuke those are only printed in the `if (exclusive_time - overhead > exclusive_time)` branch 00:56
timotimo oh 00:57
MasterDuke some of the differences are pretty close to 0, but some are pretty big 01:00
01:06 AlexDaniel left
timotimo bedtime, gnite! 01:38
(actually far past)
MasterDuke later...
02:39 discord6 left 02:42 discord6 joined, discord6 left, discord6 joined 02:47 discord63 joined 02:48 discord63 left 02:49 synopsebot_ joined, synopsebot left, Geth_ joined 02:55 discord6 left 02:58 discord6 joined 02:59 discord6 left 03:00 squashable6 left 03:05 squashable6 joined 03:23 discord6 joined 03:24 Voldenet left 03:28 discord6 left 03:29 Voldenet joined, Voldenet left, Voldenet joined 03:49 Geth left, synopsebot_ left 03:50 Geth_ left 03:54 Geth joined, synopsebot joined 03:58 Geth left, synopsebot left 04:08 Geth joined
MasterDuke looks like geth was missing when i created github.com/MoarVM/MoarVM/pull/1111 04:08
04:15 synopsebot joined 04:34 Geth left, synopsebot left 04:39 Geth joined, synopsebot joined 04:46 Geth left 04:47 Geth joined 04:57 robertle left 05:05 synopsebot left 05:12 Geth left 05:14 synopsebot joined 05:18 synopsebot left 05:21 synopsebot joined, Geth joined 05:32 Geth left, synopsebot left 05:39 patrickb joined 05:40 Geth joined 05:42 synopsebot joined 05:49 synopsebot left 05:50 Geth left 05:52 synopsebot joined 05:53 discord6 joined 05:54 Geth joined 05:57 discord6 left 05:58 discord6 joined 05:59 discord6 left 06:02 discord6 joined 06:04 discord6 left, Geth_ joined, discord6 joined, discord6 left, discord6 joined 06:05 Geth left 06:06 discord6 left, discord6 joined, discord6 left, discord6 joined 06:07 discord6 left 06:08 synopsebot_ joined, synopsebot left 06:12 discord6 joined, discord6 left, discord6 joined 06:19 domidumont joined 07:11 TimToady left 07:19 TimToady joined
nwc10 good *, #moarvm 08:41
08:51 lizmat left 09:11 lizmat joined
jnthn o/ 09:17
nwc10 \o 09:22
I was about to typo that as o\
lizmat ohoh 09:23
09:34 zakharyas joined 10:08 domidumont left
Guest12727 jnthn: should I report the error, when running t/spec/S04-phasers/in-loop.t, uncovered by github.com/MoarVM/MoarVM/commit/9e...fe62bf366e 10:26
jnthn Guest12727: Yes, please 10:29
That's odd, I wonder if it's scribbling on an object header flag somewhere...
10:30 lizmat left
nwc10 pyfound.blogspot.com/2019/06/python...on+News%29 -- The asyncio philosophy is to avoid mixture by converting all blocking code to asynchronous coroutines, but converting a huge codebase all at once is intractable. ā€œIt's a harder problem than moving 10:35
from Python 2 to 3,ā€ he said, ā€œbecause at least I can go gradually from Python 2 to 3.ā€
"fixed in six" ? 10:36
timotimo Guest12727: could it be rakudo's extops aren't using the up-to-date flags?
nwc10 (I can't remember who coined that phrase, but rgs used it a lot)
timotimo hm. i think it should be possible to use valgrind client requests to lock object headers except for operations that are explicitly allowed to change them 10:37
jnthn nwc10: It's not just a huge codebase problem, if they mean the problem I think they mean
Hm, or maybe not, but... 10:38
It reminds me of when using Node.js and needing to do something that would take time, e.g. be async, but the library I was using didn't provide for doing anything async at that point, and there's no escape hatch really. 10:39
But since they mention "coroutines" then in theory you can yield anywhere
But in practice, I dunno :)
nwc10 is this like "it said Win95 or better, so I used a Mac" -- "so I used Cro" ? 10:40
jnthn :)
nwc10 I admit that I'm possibly missing details on any of this stuff. I'm finding it interesting partly from the bigguer picture perspective - the problems that Python is facing, and what solutions they are finding 10:41
the problems seem to map reasonably closely
hence my desire to steal solutions
Guest12727 timotimo: nqp and MoarVM were bumped yesterday so I guess that the extops should be ok 10:43
it crashes every other run, with assertion error, if MoarVM is compiled with --no-optimize. If it is compiled with opts it crashes, SEGV, one times in 100 10:45
timotimo does turning jit or spesh off make a difference? 10:46
Guest12727 MVM_SPESH_INLINE_DISABLE=1 makes the problem vanish
timotimo: here's the assertion crash, gist.github.com/dogbert17/ebfd1ff0...18f4d9b208 10:47
timotimo no inlining also probably means much less escape analysis
11:01 zakharyas left 11:02 AlexDaniel joined 11:46 ggoebel joined 12:06 pamplemousse joined 12:08 zakharyas joined 12:16 zakharyas left 12:21 zakharyas joined 12:22 domidumont joined 13:28 brrt joined 13:53 zakharyas left
brrt \o 13:56
pamplemousse o/
14:00 brrt left
Geth_ MoarVM/more-pea: 47 commits pushed by (Jonathan Worthington)++
review: github.com/MoarVM/MoarVM/compare/2...5910cf9cb4
14:11
jnthn (rebase)
nwc10 no new things to tempt ASAN with (yet?) 14:13
jnthn :) 14:14
Well, some Rakudo spectests run with MVM_SPESH_BLOCKING=1 errupt with SEGV :)
And a couple seem to hang
So certainly some work to do yet :)
nwc10 "have fun' (but not *too* much fun) 14:15
japhb
.oO( rebass: When the DJ drops it twice )
jnthn Darn, every crash I've found so far happens in concurrent code 14:18
I was really hoping for a case that might be easier to debug :)
14:19 brrt joined
jnthn Hm, many start with a backtrace like 14:20
(gdb) p MVM_dump_backtrace(tc)
at SETTING::src/core/Promise.pm6:44 (/home/jnthn/dev/rakudo/CORE.setting.moarvm:BUILD)
from SETTING::src/core/Promise.pm6:38 (/home/jnthn/dev/rakudo/CORE.setting.moarvm:new)
from SETTING::src/core/Promise.pm6:249 (/home/jnthn/dev/rakudo/CORE.setting.moarvm:start)
So yeah, if Promise starting blows, that'll blow up many things :)
14:47 lizmat joined 14:58 brrt left
pamplemousse Progress update blog post is out! yakshavingcream.blogspot.com/2019/...erl-6.html 15:11
jnthn grmbl, after a wild goose chase I realized it's because it's not nulling non-auto-viv registers out 15:18
Which is annoying because I was planning to re-work object creation some also, and now I might go and do that first :) 15:21
Since what I had in mind would solve this problem without having to write any more code 15:22
15:36 patrickb left 15:52 sena_kun joined 15:54 domidumont left
nwc10 tries to imagine how to play Jenga by stacking yaks 15:56
it's unclear if it would work
16:02 brrt joined
dogbert17 jnthn: M#1112 16:35
synopsebot_ M#1112 [open]: github.com/MoarVM/MoarVM/issues/1112 Assertion error or SEGV when running t/spec/S04-phasers/in-loop.t
nwc10 Oh I'd missed that 16:36
moar: src/gc/collect.c:589: MVM_gc_collect_free_nursery_uncopied: Assertion `item->sc_forward_u.forwarder != ((void *)0)' failed.
Aborted
ASAN considers this problem boring and says nothing
jnthn vm_code->header.flags |= RAKUDO_FIRST_FLAG; 16:37
It's because RAKUDO_FIRST_FLAG needs to be a bit that doesn't mean something to the GC :)
dogbert17 so the value of that constant has to change ? 16:39
jnthn Yes 16:40
16384 is probably safest 16:41
dogbert17 it's 128 atm 16:42
jnthn MVM_CF_FORWARDER_VALID = 128,
haha
that'll go very badly
dogbert17 :)
the file defining this is in the Rakudo repo it seems 16:44
16:44 robertle joined
jnthn Yes, it should just be a change there 16:45
dogbert17 me, you or nwc10 :)
dogbert17 tries it out
jnthn I'm in a branch trying to put Rakudo back together after some MoarVM changes :)
dogbert17 a few days ago 128 meant MVM_CF_GEN2_LIVE = 128 16:49
jnthn That'd be less likely to break, but still in theory could 16:50
dogbert17 is it enough to rebuild rakudo? 16:51
jnthn brrt: Yes 16:52
dogbert17 it seems to be working a lot better now :) 16:54
Geth_ MoarVM/p6o-setup: 504835a7dd | (Jonathan Worthington)++ | 3 files
Prepare for more general P6opaque setup

This will initially just be about initial setup of VMNull so we need not check for it on every read, but will then get exposed as part of the REPR interface in order to allow non-lazy (that is, without the auto-viv) object setup to be specified too.
16:55
MoarVM/p6o-setup: 9638d3a71c | (Jonathan Worthington)++ | 4 files
Null non-auto-viv P6opaque object slots at init

And when we specialize the `create`, then spit out instructions to initialize the slots to VMNull. This in turn means we can get rid of the NULL checks on attribute access, so it can JIT into something far simpler.
jnthn oops, I meant to aim at dogbert17 above :) 16:56
brrt: You'll probably be glad to see the p6o-setup branch though :-)
brrt: I've realized that in Rakudo we only need lazy attr init in the case that an attribute has a default AND appears in a class that ha a BUILD. In all other cases, we don't actually need it. 16:57
brrt: And so can eliminate the laziness :) 16:58
We'll then spesh that into a sequence of normal object setup instructions
Which in turn will work out much better for the escape analyzer than trying to figure out the auto-viv stuff :)
brrt oh, hey 17:06
that is pretty cool
jnthn Yeah, should be far tighter JIT output in a load of cases
brrt \o/
jnthn dinner & 17:18
dogbert17 jnthn: have sent a PR 17:27
brrt should have dinner as well 17:43
17:43 brrt left 18:59 lizmat left 19:00 lizmat joined
timotimo hum. i'm rebasing my confprog changes on latest origin/master and it's giving me such odd conflicts 19:02
why are there add/add conflicts? 19:10
nwc10 I don't know. I don't think that I've met these before. Is git helpful enough to tell you which commit it thinks added the files on each "side"? 19:13
did it get the rebase start point wrong? (ie the same commit is on both "sides" - the real master, and the string of commits it wants to rebase)? 19:14
I am awake, but I hope someone else with a better idea is also awake
timotimo it does give me one commit message as well as "HEAD" for the other side 19:23
nwc10 er, not sure what to do. 19:24
HEAD (I think) is the detached head that is your "in progress" rebase
timotimo that makes sense
nwc10 I don't know if there's a way to get the planned list of things it was giong to do
ie, what you would get in your editor at the start if you do --interactive 19:25
if you're not going to loose anything by --abort
then I suggest trying to figure out which commit it's talking about with the commit message you see currently
then --abort
then try again with --interactive
and see if commits with that message are *both* in the list of things it intends to rebase
and also the thing it intends to rebase onto 19:26
"the thing it intends to rebase onto" being master?
timotimo gist.github.com/timo/18fab69687fbe...d9d3687126 here's some deets
nwc10 also, I can't totally be helpful right now as I'm trying to untangle the cazy history of the work code that got the better of me this morning 19:27
timotimo oh you're also in commit history hell :)
nwc10 yes, ish. this is (literally) a line in this 10 year old thing with # wtf 19:28
that is now
timotimo :D
nwc10 if (0) # wtf
but I think was
if (1) # wtf
earlier
there's an else block
I missed that this morning when everythign on the time tracking system was titsup
19:29 lizmat left
timotimo i *think* i have rerere turned on 19:29
hum.
no, i don't think i do
nwc10 I'm sort of aware of what rerere is.
OK. had you said "and I have it enabled' then I know this problem is "above my paygrade" 19:30
I've never used it
timotimo it'll remember how you resolved a given conflict "the last time" and allows you to just let it do the same thing you did before again
nwc10 oh, erk, a Yak 19:31
(mine, not yours)
timotimo: that summary is about as much as I know about it
timotimo right
um 19:32
it does look like it's trying to put the same commits on top of each other
nwc10 aha. yes, had that happen
I can't remember why
timotimo check "start on a parser/compiler" appearing twice 19:33
what the flying spaghetti monster?
nwc10 "I don't know" and I think I need to concentate ony my small yak's nest
(sorry)
I hope a refereshed jnthn reappears soon 19:34
unlike Flash, he might "saveeveryoneofus"
(yes, the Yak is "I guess this would be easier if I first deleted the code to serve the Flash policy-file-request XML")
timotimo flash, as in Macromedia Flash? 19:35
nwc10 yes
there is a lot of cruft
timotimo could be worse. could be shockwave3d
nwc10 the flash implementation was deleted years ago
timotimo anyway, i'm quite glad to see that none of these conflicts were actually something i need to be worried about 19:36
it seems like i recently merged one version of origin/configurable-subsystems into my local configurable-subsystems 19:43
that's where the duplication seems to come from, both had copies of the same changes but based on different other commits
resetting before that merge commit and rebasing gives me a clean rebase run 19:44
nwc10 That seems to make sense (the "why rebase might be confused") 19:46
Geth_ MoarVM/configurable-subsystems: 17 commits pushed by (Timo Paulssen)++
review: github.com/MoarVM/MoarVM/compare/7...1732de6645
20:13
20:13 pamplemousse left 20:28 Kaiepi joined 21:01 lizmat joined 21:51 lizmat left 22:05 robertle left 23:00 Altai-man_ joined 23:02 sena_kun left 23:03 lizmat joined 23:05 sena_kun joined 23:07 Altai-man_ left