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