00:51
tokuhirom joined
01:48
ilbot3 joined
01:56
zakharyas joined
04:24
retup__ joined
05:32
mtj_ joined
05:35
domidumont joined
05:40
domidumont joined
05:45
tokuhirom joined
05:55
domidumont joined
06:27
japhb joined
06:28
nwc10_ joined,
khagan joined
06:29
sivoais joined
06:35
brrt joined
|
|||
brrt | good * #moarvm | 07:18 | |
nine | Good moarning | 07:36 | |
09:04
domidumont joined
|
|||
hoelzro | moarning all | 12:27 | |
jnthn: do you think you could cut the 2016.05 moar release sometime today? I intend on doing most of the release work tonight my time and I would hate to bug you then =) | 12:28 | ||
jnthn | Yes, in a meeting now, will do it once I escape :-) | 12:30 | |
hoelzro | excellent =) | ||
12:45
domidumont1 joined
12:47
domidumont2 joined
|
|||
[Coke] | ++jnthn ++hoelzro | 13:34 | |
jnthn | OK, will make a cuppa and then get on with the release :) | 13:36 | |
hoelzro | thanks! | 13:37 | |
dalek | arVM: 8f9a9eb | jnthn++ | docs/ChangeLog: Update ChangeLog. |
14:16 | |
arVM: 1fa1e36 | jnthn++ | VERSION: Bump VERSION. |
|||
14:17
tokuhirom joined
|
|||
jnthn | www.moarvm.org/releases/MoarVM-2016.05.tar.gz | 14:26 | |
hoelzro: ^^ :) | |||
[Coke] | jnthn++ | 14:33 | |
hoelzro: note that, despite the ordering the manual, you could basically do the nqp release right now if you wanted. | 14:34 | ||
... wrong window, but close enough! | |||
dalek | href="https://moarvm.org:">moarvm.org: f92b9ea | jnthn++ | / (2 files): Update for 2016.05 release. |
14:37 | |
timotimo | hm. is the "speed up specialized frame allocation" part missing from the changelog? | 14:38 | |
is it kosher to update the chaneglog after the release has been cut? | |||
jnthn | It's in there, I just re-worded it | 14:39 | |
"Speed up initialization of non-specialized frames" | |||
[Coke] | timotimo: sure, why not | ||
jnthn | Felt clearer that way :) | ||
[Coke] | the changelog (and rakudo's release announcements) are just snapshots that might not reflect what was shipped at the time. | 14:40 | |
timotimo | but but but | ||
you also improved how *specialized* frames get allocated | |||
or did that not get into master? | |||
jnthn | No, that's in jnthn/opts :) | 14:41 | |
Deliberately excluded from release for risk reduction :) | |||
timotimo | oh! | 14:42 | |
that makes sense, yes | |||
14:45
brrt joined
|
|||
brrt needs more time in a day | 14:45 | ||
geekosaur | don't we all | 14:46 | |
timotimo | time to start the uberman sleep schedule | ||
brrt | hmm, i thought that was your game timotimo :-) | ||
timotimo | :\ | ||
brrt | :-P | 14:47 | |
i have a (cunning) plan to finally get started with the register allocator though | 14:48 | ||
but a billion things i also have to do that prevent me | |||
geekosaur | yaaaaaaaaaks :/ | 14:49 | |
14:49
lizmat joined
|
|||
brrt | like dinner... | 14:51 | |
timotimo | have a good nom in that case :) | 14:52 | |
hoelzro | jnthn++ | 15:06 | |
brrt | :-) | 15:17 | |
ok, i'm going to nom now | 15:35 | ||
15:54
domidumont joined
15:57
mst joined
|
|||
timotimo | should we just merge jnthn/opts into master now that the release has happened? | 16:52 | |
mst | wossat | 17:00 | |
timotimo | just some improvements that we didn't want to put into the release just yet | ||
[Coke] | with timed releases, better to put anything potentially risky just after a release (the thought goes) so we get a full month of testing. | 17:01 | |
17:21
cognominal joined
|
|||
mst | yep | 17:31 | |
19:53
tokuhirom joined
20:46
cognominal_ joined
20:47
cognominal joined
|
|||
jnthn | delivery.acm.org/10.1145/2760000/27...ifford.pdf | 21:37 | |
timotimo | An error occurred while processing your request. | 21:42 | |
:( | |||
imight need to be logged in or something? | |||
jnthn | gah | ||
research.google.com/pubs/pub43823.html | |||
Try that one | |||
timotimo | thanks :) | 21:43 | |
jnthn | Pretty easy reading, as GC papers go :) | ||
timotimo | the mementos they refer to are just bunches of slim records? | 21:45 | |
maybe a bit like our current "log" data? | |||
oh, it seems like they live directly next to the object in the nursery | 21:48 | ||
jnthn | Yeah :) | 21:51 | |
That's a cool trick | |||
timotimo | if you know how to skip them, then yeah :) | 21:56 | |
i suppose we could also use whatever little space we make for aligning objects for little pieces of feedback | 21:59 | ||
jnthn | Just make the things that'd be in the flag bits be something identifiable :) | 22:00 | |
TimToady | m: sub foo(+@a) { say @a; }; my @a = 1..Inf; foo(@a) | 22:05 | |
jnthn | One use we could make of it is seeing with P6opaques always end up getting mixed into, and just making enough space for the extra state | ||
TimToady | oops | ||
jnthn | *which P6opaques | ||
camelia | rakudo-moar c59e4d: OUTPUTĀ«(timeout)Ā» | 22:06 | |
timotimo | oh, yeah, we've probably got 95% cases where an object either never gets mixed into, or it gets mixed into before it gets marked the first time | ||
hm, so the memento has to remember for us where the object's allocation site was? | |||
jnthn | Seems that's the idea, yeah | ||
timotimo hasn't read that paper far enough yet, but that's what makes most sense to him | 22:07 | ||
jnthn | I need to read it when I'm not this tired also :) | ||
timotimo | we could put an evalbot in here, too. but since moarvm is half-way independent of the language, it should only accept copy-pasted .moarvm files :P | ||
jnthn | m: say "I'm here!" | ||
camelia | rakudo-moar c59e4d: OUTPUTĀ«I'm here!ā¤Ā» | ||
timotimo | oh | ||
well, that's fine, then | |||
jnthn | It just took ages 'cus timeout :) | ||
timotimo | also, we already have "compunit from buffer", so we actually *can* evaluate .moarvm files directly with camelia :D | 22:08 | |
geekosaur | I think it's just travis that needs updating? | ||
timotimo | but i don't think any useful .moarvm file would fit into an irc line including the nqp bits required to decorate it | ||
jnthn | geekosaur: Travis updating? | 22:09 | |
Oh wait, are you confusing here with the p6dev -> perl6-dev transition? :) | |||
geekosaur | maybe | ||
timotimo | now i have to find the spot in the paper that comes up with a good way to address the statistics accumulation point for a given allocation site | 22:12 | |
because so much of our stuff can move | |||
jnthn | Something for me to ponder when spesh gets its next overhaul anyways :) | 22:14 | |
timotimo | mhm | ||
jnthn | GC orchestration is ahead of it in the queue though :) | ||
timotimo | can you quickly outline a design for measuring the size (and what kind of shape) the orchestration overhead has? maybe i could implement that before you get to it | 22:15 | |
i remember reading about the "map" kind of thing they speak of (what v8 calls "hidden classes") by the pypy people | 22:16 | ||
jnthn | Well, you could meausre time from enter_from_allocator up to the point we've sync'd things up | ||
But performance isn't the main reason I'm going to give it a good going over. It's 'cus it can occasionally hang. | |||
timotimo | python has this mechanism called __slots__ where if you put that as a member into a class, it'll get much optimized memory layout, but you can't dynamically add attributes | ||
TimToady saw a talk at OSCON where a guy was doing 10Ghz processing in Lua by not calling anything that allocated to avoid the GC; would our stop-the-world GC clobber that, or do we have any way of exempting a thread from GC? | |||
timotimo | wow, it can? | ||
i didn't know about that | |||
TimToady | that's how we originally specced native types, actualy | 22:17 | |
*lly | |||
you can derive and add methods, but not storage | |||
timotimo | we can exempt a thread from gc by letting every single thing be allocated in the gen2 immediately | ||
TimToady | okay, was just wonderin' | ||
jnthn | TimToady: At the moment our stop-the-world will pause that thread too at a safe point | ||
timotimo | but that currently won't force the GC to skip waiting for that | ||
jnthn | TimToady: Was it a multi-threaded program or just Lua running on a single thread and never allocating? | 22:18 | |
TimToady | my impression was single thread, but he didn't say explicitly | 22:19 | |
timotimo | i'm not sure lua actually has a standard way to do multithreading | 22:20 | |
jnthn | Yeah. I mean, *that* we can do in so far as if you never trigger GC then you'll never run GC | ||
But the moment it's one thread of many and others allocate, then (at present) you're in bother | |||
TimToady | but if we have other threads stressing GC, it'll break | ||
right | |||
anyway, just something to bear in mind | 22:21 | ||
especially as our JIT approaches assembly speeds | |||
jnthn | There *are* concurrent GC algos. They often involve read barriers. | ||
timotimo | FWIW, you can get by that limitation by having multiple processes :P | ||
diakopter | XD | 22:22 | |
jnthn | If we're going to have one of those, much less of MoarVM is going to be written in C. :) | ||
('cus we have enough trouble getting the *write* barriers correct) | |||
diakopter is/has a write barrier | 22:23 | ||
timotimo | we don't have a way to get to "we know this list actually only ever stores int/num, so we specialize storage for that"? | 22:24 | |
TimToady | a cheap hack might be to mark a thread as never allocating, and it just blows up if they do | ||
TimToady quite understands this would not be terribly high on the priority list :) | 22:25 | ||
just somewhere we might want to be someday | |||
jnthn | TimToady: The trouble is that "never allocating" != "never talks about objects" | ||
TimToady | sure, everything would need to be nativeish | 22:26 | |
jnthn | TimToady: And if the GC moves an object it's looking at...boom. | ||
But yeah, it's something I'd like us to cope with eventually :) | |||
TimToady | certainly one would require a bit of explicit setup before entering that mode | ||
jnthn | TimToady: Did your OSCON talk happen yet? :) | ||
TimToady | yes, we're on the way home, sitting at John Wayne | ||
jnthn | ...at? | ||
TimToady | airport | ||
Orange County, CA | 22:27 | ||
diakopter | SNA | ||
jnthn | Oh! | ||
hah | |||
TimToady | aka Santa Ana | ||
jnthn | Also today's Friday so I shoulda guessed it was over :) | ||
TimToady | hence SNA | ||
it's one less day than it usedta be | 22:28 | ||
timotimo | when we have natives, we'll usually end up having LexRef, AttrRef or PosRef | 22:31 | |
that makes even native-ish code GC-y | |||
It is sufficient to check a single word of | 22:41 | ||
memory directly after the object to determine if the object | |||
carries a memento.1 | |||
^- i wonder if they don't have a flags vector like we do | |||
jnthn | Dunno :) | 22:43 | |
Sleep time :) 'night o/ | |||
timotimo | gnite jnthn | ||
23:54
tokuhirom joined
|