00:17
tokuhiro_ joined
02:14
zakharyas joined
04:07
vendethiel joined
04:27
ShimmerFairy joined
06:26
FROGGS joined,
Ven joined
06:29
aiacob joined
06:32
_alexander joined
|
|||
_alexander | moarvm is taking about 35MB on my laptop. is this normal? | 06:37 | |
FROGGS | _alexander: 35MB to do what? | 06:40 | |
_alexander: err, is this about disk space or RAM? | |||
_alexander | run a perl script that waits for user input and closes | ||
ram | |||
FROGGS | ohh, that's pretty good then | ||
a `perl6 -e ''` used to take more than a hundred megabytes of RAM | 06:41 | ||
_alexander | great improvement then | ||
FROGGS | aye | 06:43 | |
_alexander | it's faster than i thought it would be too | ||
i was told it was slow but so far i haven't found any real bottlenecks | 06:44 | ||
FROGGS | it is 38,6MB to sleep forever on my box | ||
_alexander | cool that's more than small enough for me. i'm really enjoying perl 6 so far | 06:48 | |
how is threading? any gotchas there? | 06:49 | ||
FROGGS | no that I know | ||
not* | |||
_alexander | excellent. thanks for the help FROGGS! | 06:51 | |
FROGGS | :o) | ||
masak | yay, a satisfied customer! :) | 07:17 | |
07:36
Ven joined
|
|||
_alexander | i'm very satisfied, in fact. it's great to use a language/platform that's easier to define by what it can do. | 07:52 | |
as opposed to what it can't do. (ie most languages) | |||
that's the long version of 'thanks devs. keep up the great work' ha | 07:55 | ||
07:56
_alexander left
|
|||
FROGGS is happy | 08:03 | ||
08:33
Ven joined
08:44
Ven joined
|
|||
jnthn | So nobody got to le jitter bug, eh? | 08:45 | |
08:57
Ven joined
09:06
brrt joined
|
|||
brrt | ok, ehm, the new pull request actually makes a lot of things const that i don't see the reason to | 09:07 | |
09:11
cognominal joined
09:40
Ven joined
10:22
tokuhiro_ joined
10:57
aiacob joined
10:58
tokuhiro_ joined
11:16
Ven joined
11:26
Peter_R joined,
Ven joined
11:31
brrt joined
12:01
zakharyas joined
|
|||
brrt | jnthn, no, not yet | 12:06 | |
12:17
cognominal joined
|
|||
jnthn | OK, mebbe I will later then :) | 12:33 | |
brrt | on my bike i had a good idea on how to create an inlineable frame with dynlex value depending on the call stack | 12:35 | |
now i've forgotten | 12:36 | ||
jnthn | The extents list search really *should* work though | 12:37 | |
brrt | hmm | 12:38 | |
yes | |||
jnthn | So either the labels of the inlines are hosed (most probable) or the current label is (which would be weird 'cus we rely on that for returning to work) | ||
brrt | not... necessarily | ||
jnthn | Oh? | ||
brrt | i don't think getdynlex is invokish? | ||
or whichever opcode is compiled from it | 12:39 | ||
my point is, it'd be possible for the label assigned to the reentry label to be just outside the bounds of the inline label | 12:40 | ||
although i'd have to say it'd be very weird | |||
jnthn | brrt: But at the point the wrong lookup happens, then we're some call frames deeper | ||
As in, we've done an invoke from the inlined frame | |||
brrt | true | ||
you are right | 12:41 | ||
hmmm | |||
jnthn | That doesn't rule out us being busted in the way you described additionally ;) | ||
brrt | but the inlines must be at the end of basic block boundaries, right? | ||
jnthn | aye | 12:42 | |
brrt | hmmm | ||
jnthn | I think I did once do a JIT fix to make sure we end up with the label right for inlines too | ||
'cus we sometimes missed exception handlers in inlined code | |||
brrt | i recall that, yes | 12:43 | |
jnthn | But that was exactly for the throw/handler being in the same frame, iirc | ||
12:44
FROGGS joined
|
|||
brrt | hmm and we're sure we're not looking in the same frame for the dynvar? | 12:45 | |
jnthn | We're looking at a dynvar declared in an inlined frame | 12:46 | |
But the point we do the lookup, we're a few frames deeper in the callstack | |||
And the problem is we miss the declaration we should find | |||
brrt | how even... | ||
jnthn | 'cus the label doesn't fall within the inline extents list that it should... | 12:47 | |
brrt | well, yes | 12:48 | |
:-) | |||
or we're not reading as many inlines as we expect | 12:49 | ||
jnthn | Or that | ||
brrt | what would prevent a frame from being inlined | ||
jnthn | See the first thing in inline.c | ||
That's the logic that decides | 12:50 | ||
brrt | i see | 12:53 | |
13:00
tokuhiro_ joined
13:18
Ven joined
13:48
Ven joined
14:00
robertle joined
14:06
dalek joined
|
|||
jnthn | Damn, update_ops.p6 feels a load faster than it used to | 14:52 | |
FROGGS | jnthn: run it with perl6-j for some romantic feelings :o) | 14:54 | |
jnthn | :P | 14:55 | |
15:01
tokuhiro_ joined
|
|||
dalek | arVM: 663e71a | jnthn++ | src/6model/containers. (2 files): Add a can_store function to container v-table. |
15:03 | |
arVM: d28e310 | jnthn++ | / (6 files): Add isrwcont op. For checking if we have a rw container. |
|||
hoelzro | o/ #moarvm | 15:13 | |
nwc10 | good UGT, hoelzro | ||
hoelzro | o/ nwc10 | 15:14 | |
did GH notifications stop working for a bit? or does dalek not post info on new branches? | 15:16 | ||
either way, could someone look at my branch github.com/MoarVM/MoarVM/tree/defer-close-stdin and tell me if that seems sane? | |||
15:24
tokuhiro_ joined
|
|||
jnthn | hoelzro: Since there's only one event loop thread and you only seem to modify si->state on the event loop, the mutex lock/unlock isn't needed, I think. | 16:03 | |
16:20
FROGGS[mobile] joined
16:30
FROGGS[mobile]2 joined
16:39
FROGGS[mobile] joined
16:43
cognominal joined
16:57
dalek joined
|
|||
hoelzro | jnthn: ah, ok, I was seeing some wonkiness there | 17:28 | |
I think because I was querying si->state outside of the async thread? | |||
jnthn: other than that, looks good? | 17:31 | ||
on another note, is there a way to tell if an MVMArgProcContext is the sole owner of its callsite? I found a memory leak where MVMCallsite objects aren't getting freed (rt.perl.org/Ticket/Display.html?id=126183) | 17:38 | ||
TimToady | that might explain the memory leak I see in rosettacode.org/wiki/Numerical_inte...ion#Perl_6 | 17:42 | |
hoelzro | TimToady: I've observed it when using subsignatures, but it may not be limited to that | 17:43 | |
whenever I try to fix it, I segfault Moar ='( | 17:45 | ||
18:04
FROGGS joined
|
|||
TimToady | I reduced my memory leak to: loop { 0, .1 ... 1000 } | 18:46 | |
there is an implicit * + .1 call generated in there, but it leaks with an explicit function as well | 18:47 | ||
18:48
ggoebel2 joined
|
|||
TimToady | I guess I'll RT it | 18:49 | |
RT #126189 | 19:19 | ||
jnthn | hoelzro: The usecapture thing is...more delicate than I'd like... | 19:41 | |
hoelzro | =/ | ||
jnthn | It was an optimization to avoid an allocation/copying | ||
hoelzro | jnthn: what about having a refcount on the callsite object? would that be acceptable? | ||
I'm willing to put in the work, I just don't want to start down a path we'll end up rejecting | 19:42 | ||
jnthn | But...the memory mangement of it is fraught, and we only really hit it on slow paths anyway | ||
hoelzro: I'd do a perl6-bench run, then make usecapture do exactly what savecapture does, then do another perl6-bench run, and if they come out the same, then we just make usecapture do exactly what savecapture does | 19:43 | ||
hoelzro | it looks to me that savecapture is the problem, though | ||
jnthn | Really? | 19:44 | |
savecapture makes a copy so it knows it can free it | |||
usecapture points to the live callsite so we have to try not to get into trouble | |||
hoelzro | it does, but it doesn't free it | ||
jnthn | Oh | ||
If it's its own copy, why? :S | 19:45 | ||
hoelzro | I'm trying to determine the condition in gc_free under which freeing is ok | ||
jnthn | I *thought* the ideas was "if savecapture always, if usecapture never" | ||
hoelzro | so there's the condition: github.com/MoarVM/MoarVM/blob/mast...ture.c#L61 | ||
however, effective_callsite is always equal to callsite in the situation I'm seeing | 19:46 | ||
due to github.com/MoarVM/MoarVM/blob/mast...rgs.c#L105 | |||
and github.com/MoarVM/MoarVM/blob/mast...rgs.c#L111 | |||
jnthn | Oh...it's trying to make sure it doesn't free interned callsites and only those creating due to flattening, I think | 19:47 | |
hoelzro | sounds right | 19:48 | |
21:30
tokuhiro_ joined
23:31
tokuhiro_ joined
|
|||
hoelzro | hmm...I have a fix in place that stops the leak, but now MVM segfaults when building Rakudo =/ | 23:41 | |
if I MVM_SPESH_DISABLE=1, it builds fine | |||
src/spesh scares me | |||
timotimo | :( | 23:57 |