Perl 6 - the future is here, just unevenly distributed

IRC log for #moarvm, 2016-05-20

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

All times shown according to UTC.

Time Nick Message
00:51 tokuhirom joined #moarvm
01:48 ilbot3 joined #moarvm
01:48 Topic for #moarvm is now https://github.com/moarvm/moarvm | IRC logs at  http://irclog.perlgeek.de/moarvm/today
01:56 zakharyas joined #moarvm
04:24 retup__ joined #moarvm
05:32 mtj_ joined #moarvm
05:35 domidumont joined #moarvm
05:40 domidumont joined #moarvm
05:45 tokuhirom joined #moarvm
05:55 domidumont joined #moarvm
06:27 japhb joined #moarvm
06:28 nwc10_ joined #moarvm
06:28 khagan joined #moarvm
06:29 sivoais joined #moarvm
06:35 brrt joined #moarvm
07:18 brrt good * #moarvm
07:36 nine Good moarning
09:04 domidumont joined #moarvm
12:27 hoelzro moarning all
12:28 hoelzro 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:30 jnthn Yes, in a meeting now, will do it once I escape :-)
12:30 hoelzro excellent =)
12:45 domidumont1 joined #moarvm
12:47 domidumont2 joined #moarvm
13:34 [Coke] ++jnthn ++hoelzro
13:36 jnthn OK, will make a cuppa and then get on with the release :)
13:37 hoelzro thanks!
14:16 dalek MoarVM: 8f9a9eb | jnthn++ | docs/ChangeLog:
14:16 dalek MoarVM: Update ChangeLog.
14:16 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/8f9a9eb3d3
14:16 dalek MoarVM: 1fa1e36 | jnthn++ | VERSION:
14:16 dalek MoarVM: Bump VERSION.
14:16 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/1fa1e36c38
14:17 tokuhirom joined #moarvm
14:26 jnthn http://www.moarvm.org/releases/MoarVM-2016.05.tar.gz
14:26 jnthn hoelzro: ^^ :)
14:33 [Coke] jnthn++
14:34 [Coke] hoelzro: note that, despite the ordering the manual, you could basically do the nqp release right now if you wanted.
14:34 [Coke] ... wrong window, but close enough!
14:37 dalek moarvm.org: f92b9ea | jnthn++ | / (2 files):
14:37 dalek moarvm.org: Update for 2016.05 release.
14:37 dalek moarvm.org: review: https://github.com/MoarVM/moarvm.org/commit/f92b9ea391
14:38 timotimo hm. is the "speed up specialized frame allocation" part missing from the changelog?
14:38 timotimo is it kosher to update the chaneglog after the release has been cut?
14:39 jnthn It's in there, I just re-worded it
14:39 jnthn "Speed up initialization of non-specialized frames"
14:39 [Coke] timotimo: sure, why not
14:39 jnthn Felt clearer that way :)
14:40 [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
14:40 timotimo you also improved how *specialized* frames get allocated
14:40 timotimo or did that not get into master?
14:41 jnthn No, that's in jnthn/opts :)
14:41 jnthn Deliberately excluded from release for risk reduction :)
14:42 timotimo oh!
14:42 timotimo that makes sense, yes
14:45 brrt joined #moarvm
14:45 * brrt needs more time in a day
14:46 geekosaur don't we all
14:46 timotimo time to start the uberman sleep schedule
14:46 brrt hmm, i thought that was your game timotimo :-)
14:46 timotimo :\
14:47 brrt :-P
14:48 brrt i have a (cunning) plan to finally get started with the register allocator though
14:48 brrt but a billion things i also have to do that prevent me
14:49 geekosaur yaaaaaaaaaks :/
14:49 lizmat joined #moarvm
14:51 brrt like dinner...
14:52 timotimo have a good nom in that case :)
15:06 hoelzro jnthn++
15:17 brrt :-)
15:35 brrt ok, i'm going to nom now
15:54 domidumont joined #moarvm
15:57 mst joined #moarvm
16:52 timotimo should we just merge jnthn/opts into master now that the release has happened?
17:00 mst wossat
17:00 timotimo just some improvements that we didn't want to put into the release just yet
17:01 [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:21 cognominal joined #moarvm
17:31 mst yep
19:53 tokuhirom joined #moarvm
20:46 cognominal_ joined #moarvm
20:47 cognominal joined #moarvm
21:37 jnthn http://delivery.acm.org/10.1145/2760000/2754181/p105-clifford.pdf
21:42 timotimo An error occurred while processing your request.
21:42 timotimo :(
21:42 timotimo imight need to be logged in or something?
21:42 jnthn gah
21:42 jnthn http://research.google.com/pubs/pub43823.html
21:42 jnthn Try that one
21:43 timotimo thanks :)
21:43 jnthn Pretty easy reading, as GC papers go :)
21:45 timotimo the mementos they refer to are just bunches of slim records?
21:45 timotimo maybe a bit like our current "log" data?
21:48 timotimo oh, it seems like they live directly next to the object in the nursery
21:51 jnthn Yeah :)
21:51 jnthn That's a cool trick
21:56 timotimo if you know how to skip them, then yeah :)
21:59 timotimo i suppose we could also use whatever little space we make for aligning objects for little pieces of feedback
22:00 jnthn Just make the things that'd be in the flag bits be something identifiable :)
22:05 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
22:05 TimToady oops
22:05 jnthn *which P6opaques
22:06 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
22:06 timotimo hm, so the memento has to remember for us where the object's allocation site was?
22:06 jnthn Seems that's the idea, yeah
22:07 * 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 :)
22:07 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
22:07 jnthn m: say "I'm here!"
22:07 camelia rakudo-moar c59e4d: OUTPUT«I'm here!␤»
22:07 timotimo oh
22:07 timotimo well, that's fine, then
22:07 jnthn It just took ages 'cus timeout :)
22:08 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?
22:08 timotimo but i don't think any useful .moarvm file would fit into an irc line including the nqp bits required to decorate it
22:09 jnthn geekosaur: Travis updating?
22:09 jnthn Oh wait, are you confusing here with the p6dev -> perl6-dev transition? :)
22:09 geekosaur maybe
22:12 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 timotimo because so much of our stuff can move
22:14 jnthn Something for me to ponder when spesh gets its next overhaul anyways :)
22:14 timotimo mhm
22:14 jnthn GC orchestration is ahead of it in the queue though :)
22:15 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:16 timotimo 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
22:16 jnthn But performance isn't the main reason I'm going to give it a good going over. It's 'cus it can occasionally hang.
22:16 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
22:16 * 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?
22:16 timotimo wow, it can?
22:16 timotimo i didn't know about that
22:17 TimToady that's how we originally specced native types, actualy
22:17 TimToady *lly
22:17 TimToady you can derive and add methods, but not storage
22:17 timotimo we can exempt a thread from gc by letting every single thing be allocated in the gen2 immediately
22:17 TimToady okay, was just wonderin'
22:17 jnthn TimToady: At the moment our stop-the-world will pause that thread too at a safe point
22:17 timotimo but that currently won't force the GC to skip waiting for that
22:18 jnthn TimToady: Was it a multi-threaded program or just Lua running on a single thread and never allocating?
22:19 TimToady my impression was single thread, but he didn't say explicitly
22:20 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
22:20 jnthn But the moment it's one thread of many and others allocate, then (at present) you're in bother
22:20 TimToady but if we have other threads stressing GC, it'll break
22:20 TimToady right
22:21 TimToady anyway, just something to bear in mind
22:21 TimToady especially as our JIT approaches assembly speeds
22:21 jnthn There *are* concurrent GC algos. They often involve read barriers.
22:21 timotimo FWIW, you can get by that limitation by having multiple processes :P
22:22 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. :)
22:22 jnthn ('cus we have enough trouble getting the *write* barriers correct)
22:23 * diakopter is/has a write barrier
22:24 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
22:25 * TimToady quite understands this would not be terribly high on the priority list :)
22:25 TimToady just somewhere we might want to be someday
22:25 jnthn TimToady: The trouble is that "never allocating" != "never talks about objects"
22:26 TimToady sure, everything would need to be nativeish
22:26 jnthn TimToady: And if the GC moves an object it's looking at...boom.
22:26 jnthn But yeah, it's something I'd like us to cope with eventually :)
22:26 TimToady certainly one would require a bit of explicit setup before entering that mode
22:26 jnthn TimToady: Did your OSCON talk happen yet? :)
22:26 TimToady yes, we're on the way home, sitting at John Wayne
22:26 jnthn ...at?
22:26 TimToady airport
22:27 TimToady Orange County, CA
22:27 diakopter SNA
22:27 jnthn Oh!
22:27 jnthn hah
22:27 TimToady aka Santa Ana
22:27 jnthn Also today's Friday so I shoulda guessed it was over :)
22:27 TimToady hence SNA
22:28 TimToady it's one less day than it usedta be
22:31 timotimo when we have natives, we'll usually end up having LexRef, AttrRef or PosRef
22:31 timotimo that makes even native-ish code GC-y
22:41 timotimo It is sufficient to check a single word of
22:41 timotimo memory directly after the object to determine if the object
22:41 timotimo carries a memento.1
22:41 timotimo ^- i wonder if they don't have a flags vector like we do
22:43 jnthn Dunno :)
22:43 jnthn Sleep time :) 'night o/
22:43 timotimo gnite jnthn
23:54 tokuhirom joined #moarvm

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