Perl 6 - the future is here, just unevenly distributed

IRC log for #moarvm, 2016-01-04

| Channels | #moarvm index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:41 TimToady joined #moarvm
01:48 colomon joined #moarvm
01:57 colomon joined #moarvm
02:41 vendethiel joined #moarvm
02:48 ilbot3 joined #moarvm
02:48 Topic for #moarvm is now https://github.com/moarvm/moarvm | IRC logs at  http://irclog.perlgeek.de/moarvm/today
03:16 colomon joined #moarvm
05:07 konobi seen brrt?
07:13 FROGGS joined #moarvm
07:41 domidumont joined #moarvm
07:46 domidumont joined #moarvm
08:35 zakharyas joined #moarvm
10:02 timotimo last seen on friday
10:23 pmurias joined #moarvm
10:23 pmurias when does the MoarVM gc collection activate?
10:24 timotimo when the nursery fills up and a new allocation can't fit into the rest
10:25 timotimo individual threads check the "does another thread want to start GCing right now?" state every now and then, too, so that they can join in
10:28 pmurias MVMROOT(tc, obj, block) adds makes the gc see the object while the block is executed?
10:32 timotimo yes
10:32 timotimo and "seeing" the object also includes making sure the pointer gets updated on the C stack when the object gets moved by the GC
10:32 timotimo so you're not looking at out-of-date pointers when an allocation has happened
10:37 pmurias joined #moarvm
10:40 pmurias timotimo: thanks
10:40 pmurias timotimo: what's the convention for MVMROOTing arguments to functions that implement ops?
10:41 pmurias At https://github.com/MoarVM/MoarVM/blob/master/src/strings/ops.c#L986 the arguments are just wrapped in a MVMROOT for one call
10:41 pmurias if I'm not doing an allocation it's ok to have untracked objects?
10:41 timotimo correct
10:41 timotimo only allocations can move objects
10:43 timotimo and if you don't need a pointer any more after an allocation you can let it become invalid; that'll only ever confuse people who are looking at stuff in gdb
10:44 timotimo that's an example you might see in bigint ops
10:44 timotimo because the bigint body itself (well, the mp_int pointer actually) is allocated by malloc rather than in gc managed memory, you can grab the mp_int out of a big int and the big int object itself will become uninteresting
10:47 pmurias MVM_repr_alloc_init(tc, tc->instance->VMString) can do a GC allocation?
10:52 timotimo yes, it will
10:54 timotimo you have a patch for us?
10:56 pmurias timotimo: just looking at suspicious things in the way nqp::join and string concatenation works
10:56 timotimo oh
10:57 pmurias timotimo: In https://github.com/MoarVM/MoarVM/blob/master/src/strings/ops.c#L406 collapse_strands is called without result being wrapped in MVMROOT
10:59 pmurias collapse_strands can call MVM_repr_alloc_init, and result seems to be used when it's used else where
10:59 timotimo ah, yes, that does seem wrong
10:59 timotimo can you patch it?
10:59 timotimo good catch! :)
10:59 pmurias I can patch it
11:01 timotimo i wonder why you're just now the first person to encounter it
11:02 pmurias I'm concatentating (and joining) bazillions of short strings while emitting javascript
11:02 timotimo yeah, but i think the profiler also does that when it emits the final .json
11:03 timotimo hm. though i'm not 100% sure about that
11:03 timotimo i think we changed it to write to the file dierctly?
11:03 timotimo directly*
11:03 pmurias if nqp::join is used it reduces strands
11:04 timotimo mhm
11:05 pmurias I'll go afk for a bit to get some late breakfeast and prepare a PR
11:05 timotimo okay. i may be AFK for a bit now
11:05 timotimo unknown how long that bit's gonna be ...
11:07 brrt joined #moarvm
11:10 * lizmat will be monitoring email to merge PR  :-)
11:11 timotimo thanks
11:20 brrt konobi: ping
11:21 brrt lizmat: what PR are we discussing?
11:22 lizmat the PR that pmurias will make to fix the nqp::join GC issue
12:16 FROGGS I think the PR is valid except for the libuv change...
12:19 lizmat FROGGS: Travis thinks it's ok?
12:20 * lizmat refrains from merging until this is cleared up
12:20 FROGGS lizmat: yes, but why is the libuv submodule touched? this seems to be unintentional
12:21 lizmat perhaps pmurias can explain  :-)
12:25 FROGGS I commented
12:29 pmurias FROGGS: looking on that, it seems to be accidental
12:33 brrt lemmesee the PR?
12:40 FROGGS brrt: https://github.com/MoarVM/MoarVM/pull/327
12:42 pmurias I mmade a fresh pull request without the accidental libuv submodule change
12:43 pmurias sorry, for that change :/
12:43 pmurias https://github.com/MoarVM/MoarVM/pull/328
12:49 brrt nw :-)
12:50 brrt looks good to me, i guess
12:52 dalek MoarVM: 45b7c8a | (Pawel Murias)++ | src/strings/ops.c:
12:52 dalek MoarVM: Fix a gc bug in string concatenation.
12:52 dalek MoarVM:
12:52 dalek MoarVM: Add a MVMROOT that's needed when concatenating strings that consist of a large amount of strands.
12:52 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/45b7c8a7ff
12:52 dalek MoarVM: 27ccded | FROGGS++ | src/strings/ops.c:
12:52 dalek MoarVM: Merge pull request #328 from pmurias/fix-str-concat-bug-fixed
12:52 dalek MoarVM:
12:52 dalek MoarVM: Fix a gc bug in string concatenation.
12:52 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/27ccded76e
12:52 pmurias not sure if that's the bug that's been harasing me, as I don't have a reliable way to reproduce it
12:52 FROGGS pmurias++
12:53 FROGGS your patch is definitely valid because collapse_strands allocs and result is used afterwards
12:53 FROGGS allocate_strands and copy_strands do not alloc so these are fine
12:54 nwc10 is this the only place where collapse_strands() is being used with a missing MVMROOT ?
12:55 nwc10 I guess one answer is "what do you think?"
12:55 nwc10 but I don't have time right now to go digging
12:56 FROGGS nwc10: yes
12:56 FROGGS nwc10: it is only used three times, one was already covered by an MVMROOT, and the patch covers the other two
12:57 nwc10 cool, thanks for being damn thorough
12:57 nwc10 please remind me to buy you a beer in Nuremberg
13:04 FROGGS *g*
13:04 FROGGS will do :o)
13:09 virtualsue joined #moarvm
13:25 domidumont joined #moarvm
13:35 domidumont joined #moarvm
13:48 pmurias joined #moarvm
13:54 zakharyas joined #moarvm
13:55 pmurias joined #moarvm
14:02 pmurias_ joined #moarvm
14:19 zakharyas joined #moarvm
14:44 pmurias_ joined #moarvm
15:01 brrt https://gist.github.com/bdw/348619578ffa46d60aca <- my proposal for presenting at FOSDEM
15:03 brrt the tl;dr is that assembly language is not nearly as scary as one might renember
15:04 timotimo oh, we'll have an Inline::ASM? :)
15:05 brrt one day maybe
15:05 brrt i'm talking about using assembly for nativecall
15:05 timotimo ah, so you're going to show emit_x64.dasc?
15:05 timotimo oh, OK
15:05 brrt that will probably be a bit more scary than i intend to bring across
15:06 brrt just the basics :-) to show that this stuff isn't nearly as scary as one might think
15:06 brrt that gdb just works too
15:06 timotimo ah, nice
15:07 brrt my running example was actually going to be roman numerals
15:07 timotimo i forgot the magic incantation again to look at the disassembled files moar writes out when oyu have that one env var set ...
15:07 timotimo could we get that into a comment in the code or a doc/ file?
15:07 brrt MVM_BYTECODE_DIR=.
15:07 brrt i think that is in the docs
15:07 timotimo the name of the env var, sure
15:07 brrt oh, you mean the objdump incantation
15:07 brrt sure
15:07 timotimo objdump, yeah
15:08 timotimo i had to think hard to remember it's objdump, too ... :P
15:08 virtualsue brrt: looking forward to your talk
15:08 brrt yeah, dunno if it'll be accepted :-)
15:09 timotimo i'd accept it
15:22 brrt any chance you'll be at FOSDEM this year?
15:23 timotimo not me
15:23 brrt aw... shame
15:23 brrt another commonality between perl and asm: both are easily obfuscated
16:12 colomon_ joined #moarvm
16:36 pmurias joined #moarvm
17:38 colomon_ joined #moarvm
17:38 pmurias joined #moarvm
17:52 konobi boop
17:54 timotimo loop
18:05 kjs_ joined #moarvm
18:05 pmurias joined #moarvm
18:37 vendethiel joined #moarvm
18:38 domidumont joined #moarvm
19:12 kjs_ joined #moarvm
19:16 FROGGS joined #moarvm
19:50 leont joined #moarvm
20:24 kjs_ joined #moarvm
20:29 patrickz joined #moarvm
20:40 zakharyas joined #moarvm
21:17 dalek MoarVM: 99571b9 | (Nova Patch)++ | README.markdown:
21:17 dalek MoarVM: [readme] declare the supported Unicode version
21:17 dalek MoarVM:
21:17 dalek MoarVM: This is important to clearly display to users and I had a hard time finding it.
21:17 dalek MoarVM:
21:17 dalek MoarVM: I found it in commit 7575ca4b and docs/ChangeLog for 2015.07.
21:17 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/99571b950e
21:17 dalek MoarVM: 70cf598 | lizmat++ | README.markdown:
21:17 dalek MoarVM: Merge pull request #329 from patch/unicode-version
21:17 dalek MoarVM:
21:17 dalek MoarVM: [readme] declare the supported Unicode version
21:17 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/70cf5987df
22:11 colomon joined #moarvm
22:43 virtualsue joined #moarvm
23:21 colomon joined #moarvm

| Channels | #moarvm index | Today | | Search | Google Search | Plain-Text | summary