timotimo | i wanted to look something up. lo and behold: github goes down a minute before that | 00:44 | |
geekosaur | yep | 00:47 | |
geekosaur too as it turns out | |||
status.github.com/ first graph kinda tells you all you need to know | |||
timotimo | yeah | ||
it went "boop" | |||
01:14
vendethiel joined
|
|||
diakopter | so... there's a reason the deserialize code is so slow.. it's not making use of the cached scid slot | 01:27 | |
trying to fix all the small mallocs I think isn't the right direction to diagnose | 01:28 | ||
05:36
vendethiel joined
06:21
vendethiel joined
06:50
vendethiel joined
07:14
vendethiel joined
07:22
domidumont joined
07:23
domidumont joined
07:28
domidumont joined
08:00
vendethiel joined
08:03
FROGGS joined
08:09
zakharyas joined
08:47
brrt joined
09:24
leont joined
|
|||
brrt | i've reduced asm fibonacci to 8 instructions :-) | 09:36 | |
and a loop of only 5 instructions | 09:37 | ||
jnthn | Can we code-gen that loop from NQP code yet? ;) | 09:38 | |
brrt | no | 09:41 | |
it requires xchg, and i have *no idea* on how to tile that | |||
which kind of suggests that peephole optimizations may be a better way to go | 09:42 | ||
gist.github.com/bdw/df7231ee485a4cd001ca | 09:44 | ||
well, except if we made a 'swap' node, but then you'd have to find some way to introduce it | 09:45 | ||
09:45
vendethiel joined
|
|||
brrt | quite possibly during optimization | 09:49 | |
timotimo | hm. how fast does fibonacci grow beyond the 64 bit range? how fast does it go beyond 32bit? | 10:10 | |
brrt | i have nooooo idea | 10:12 | |
well, i have some idea | |||
iirc, the ratio of fibonacci numbers trends to 1.69 after a while | 10:13 | ||
so it would be log(MAX_64_BIT)/log(1.69) | |||
brrt hums 'math! *oompf* what is it good for?' | |||
timotimo | heh. | 10:14 | |
brrt | its 1.61, btw | 10:16 | |
10:43
brrt` joined
11:17
vendethiel joined
12:06
vendethiel joined
12:32
vendethiel joined
13:00
vendethiel joined
|
|||
timotimo | i don't know much about the deserialization code yet; do we have more details about what diakopter pointed out? | 13:05 | |
brrt | not me | 13:06 | |
timotimo | i thought the cached scid slot was used when objects first get created and added to an SC | 13:09 | |
but i expect i'm wrong about that belief | |||
brrt | i have no idea myself | 14:48 | |
15:07
lizmat joined
15:11
lizmat joined
15:57
cognominal joined,
ggoebel15 joined
16:01
Hotkeys left
16:09
vendethiel joined
16:47
vendethiel joined
17:15
vendethiel joined
17:20
Hotkeys joined
17:21
Hotkeys left
17:31
domidumont joined
17:39
FROGGS joined
17:57
leont joined,
vendethiel joined
18:21
tony-o_ joined
|
|||
tony-o_ | any ideas on this one: gist.github.com/tony-o/c082d1057989d8af8d93 ? | 18:21 | |
timotimo | turn off jit? | 18:28 | |
download more ram? :S | 18:29 | ||
jnthn | tony-o_: Not really...it does look like some kind of "out of memory" | 18:30 | |
Or "can't allocate executable memory" maybe | |||
tony-o_ | timotimo: lol | 18:31 | |
jnthn | Can check that by MVM_JIT_DISABLE=1 since I think that's the only thing that does it | ||
timotimo | yup | ||
tony-o_ | okay, was afraid of it just being out of mem and not much i can do to remedy that particular problem | ||
giving jit a try now | 18:32 | ||
:-( thank you | 18:34 | ||
timotimo | that solves the issue? | 18:35 | |
do you have any kind of security stuff active? | |||
dalek | arVM: a030701 | jnthn++ | docs/ChangeLog: Update ChangeLog for 2016.01. |
18:39 | |
tony-o_ | nah it didn't solve the issue but i'm trying to set up a daily build for travis-ci and i'm doing it on an AWS micro server | 18:46 | |
so i'm not super worried about it not building, i'm building a vm right now to play around with trying to get that to work | |||
timotimo | oh, a micro server, eh? | 18:47 | |
you do realize how much ram it takes to compile the core setting? | |||
we do want to reduce that amount, but ... yeah, it's a bunch. | |||
tony-o_ | i don't but i'm assuming now that it's more than .5Gb :-) | ||
timotimo | i think so, yeah | 18:48 | |
the good thing is: | |||
on amazon, you can actually download more ram | |||
tony-o_ | may have to look at that if this test works | 18:51 | |
timotimo | you can just time the build on your local machine and see its maxrss reported | 18:52 | |
can you create a swapfile on a micro instance? :D | |||
tony-o_ | i can give it a shot, i think if it's one process that needs more ram than is available it will still poop out though | 18:55 | |
timotimo | could be | ||
and the core setting compilation process will definitely do that to you | 18:56 | ||
it's by far the biggest part of all of compiling rakudo | |||
19:37
leont joined
20:44
lizmat joined
|
|||
mst | 814 | 21:21 | |
bah | |||
diakopter | this code is new to me | 21:46 | |
dalek | arVM: f4485fe | jnthn++ | VERSION: Bump VERSION. |
21:56 | |
jnthn | [Coke]: I'm really tight for time (need to sleep soon, morning meeting). I'll cut the release, but don't have time to do portfile stuff | 22:02 | |
diakopter | jnthn++ | ||
[Coke] | jnthn: I'm hoping our new porter maintainer will take that on going forward. | 22:03 | |
jnthn | ah, ok :) | 22:11 | |
22:17
ely-se joined
|
|||
ely-se | How does MoarVM implement world stopping during GC cycles? | 22:17 | |
It's hard to figure out from the source code. | |||
diakopter | there are safe points, and plenty of places in the code that tell the GC that thread is at a safe point | 22:18 | |
ely-se | how are those implemented? | 22:19 | |
diakopter | so if the GC needs to cycle the areas, it waits for all the threads to reach a safe point | ||
almost always there is just one thread, so it doesn't have to wait | |||
ely-se | I see. | 22:20 | |
jnthn | ely-se: Every GC allocation is such a safepoint; see also GC_SYNC_POINT | ||
ely-se | ah ok :) | 22:21 | |
I grepped "safepoint" and couldn't find much of interest | |||
I like the way JVM implements safepoints. | |||
diakopter | which is? :) | 22:23 | |
ely-se | It avoids expensive atomic operations by accessing memory that is sometimes inaccessible (mprotect(2)), in which case it handles the segfault | ||
diakopter | cute | 22:24 | |
jnthn | We don't do any atomic operations at the safepoints themselves | ||
ely-se | there is a CAS in GC_SYNC_POINT | ||
22:24
FROGGS joined
|
|||
jnthn | There is? | 22:24 | |
#define GC_SYNC_POINT(tc) \ | 22:25 | ||
if (tc->gc_status) { \ | |||
MVM_gc_enter_from_interrupt(tc); \ | |||
} | |||
ely-se | orchestrate.c line 464 | ||
diakopter | yes, the cheap read of gc_status there is meant to fail in the fast path | ||
jnthn | The "do we need to GC" check done at non-allocating safepoints is tc->gc_status | ||
diakopter | fail = read false :D | ||
jnthn | ely-se: That bit isn't about safepoints though, that's about getting the threads to build consensus once we're already at one. | ||
ely-se | ah ok | 22:26 | |
jnthn | I've little doubt the JVM approach is smarter than what we're doing, though. | ||
ely-se | I should read the comments. | ||
jnthn | At least, they've had about 1,000 times the budget, so they'd better have come up with something smarter :P | ||
diakopter | if for some reason gc_status is out of sync across cores, we don't care if the GC has to wait a bit longer for it to be sync'd | ||
ely-se | but UB! | 22:27 | |
thanks for the help. it's time to sleep. :) | |||
bey! | |||
diakopter | jnthn: I think our approach is better XD | 22:28 | |
jnthn | OK, 2015.01 tagged | ||
uhhh | |||
2016.01 tagged | |||
(relax, I got the tag right :P) | |||
[Coke]: www.moarvm.org/releases/MoarVM-2016.01.tar.gz | 22:30 | ||
I'll do the website update at the weekend or so :) | 22:40 | ||
timotimo | now that you know so much javascript, i bet you could make links cycle colors of the rainbow | 22:45 | |
flussence | aaack! | ||
geekosaur | the <marquee> of the 2010s? | 22:48 | |
flussence | I'd say hamburger menus claim that throne... (literally mystery-meat navigation) | 22:50 | |
jnthn | Just 'cus you *can* do something doesn't mean you should :P | 22:59 | |
Sleep time...'night all o/ | 23:00 | ||
diakopter | o/ | ||
23:11
vendethiel joined
23:47
vendethiel joined
|