Perl 6 - the future is here, just unevenly distributed

IRC log for #moarvm, 2015-08-03

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

All times shown according to UTC.

Time Nick Message
04:37 vendethiel joined #moarvm
06:48 FROGGS joined #moarvm
07:23 brrt joined #moarvm
07:25 brrt \o
07:25 brrt yes, i think i will start with size propagation first
07:26 nwc10 o/
08:07 dalek MoarVM/even-moar-jit: 1f134dd | brrt++ | src/jit/ (3 files):
08:07 dalek MoarVM/even-moar-jit: Propagate value sizes from the tree
08:07 dalek MoarVM/even-moar-jit:
08:07 dalek MoarVM/even-moar-jit: Size information comes from LOAD, CONST, and predefined values,
08:07 dalek MoarVM/even-moar-jit: and for correctness it is important for certain nodes (e.g. nz and
08:07 dalek MoarVM/even-moar-jit: or 'test') to have their correct values supplied.
08:07 dalek MoarVM/even-moar-jit: review: https://github.com/MoarVM/MoarVM/commit/1f134dd525
08:08 brrt now the next thing is actually the harder problem...
08:11 brrt according to github, i did nothing the past few weeks.... :-o weird
08:12 brrt oh, it's not counted because it's not in master
08:12 brrt very wow
08:19 jnthn Good morning, #moarvm
08:22 brrt good morning, jnthn
08:24 jnthn dobré JITro, brrt o/
08:25 * brrt wonders about the language used :-)
08:25 nwc10 it's slavic, and I'm going to assume Czech
08:25 jnthn Yes, Czech
08:27 brrt how is learning czech going?
08:29 FROGGS špatný :D
08:29 FROGGS damn, that language has not much in common with the languages I know
08:30 FROGGS dobré means good, that's something I'd understand at least
08:30 FROGGS dunno what a suffix ro could mean though
08:32 jnthn FROGGS: dobré jitro just means "good (late) morning" :)
08:33 FROGGS ohh
08:34 FROGGS a language that has a word for late morning certainly deserves karma
08:34 FROGGS so, Czech++
08:36 jnthn brrt: So far it's been more osmosis than actual study, though thanks to knowing bits of some other Slavic languages I've been able to absorb enough to survive the grocery store, ordering beer/food at the bar, and buying a tram ticket...
08:37 nwc10 pivo!
08:37 * jnthn got himself a study book at the weekend
08:37 brrt nice :-)
08:37 * brrt knows hardly anything of slavic languages
08:38 brrt i'm not sure how to do store insertion just yet
08:39 jnthn Well, you work into something labeled "potraviny" and then you're in a store...oh, wait, we've switched back to the JIT?? :)
08:39 brrt :-)
08:39 brrt not sure now
08:49 brrt ehm, jnthn, when is a spesh candidate actually destroyed?
08:49 brrt nobody now calls MVM_jit_code_destroy
08:55 jnthn brrt: When the MVMStaticFrame is GC'd
08:56 brrt aha
08:56 jnthn (It has a gc_free function in MVMStaticFrame.c)
08:56 jnthn (Which apparently needs something added to it ;))
08:56 brrt aye
09:00 brrt working on it :-)
09:04 brrt i'm going to assume we're not going to free the callsize
09:04 brrt *callsite
09:04 jnthn No
09:04 jnthn Those are interned across the VM
09:05 vendethiel joined #moarvm
09:06 brrt ok
09:33 dalek MoarVM: 48f3fa5 | brrt++ | src/ (3 files):
09:33 dalek MoarVM: Destroy spesh candidate in staticframe gc
09:33 dalek MoarVM:
09:33 dalek MoarVM: MVMStaticFrame cleanup did not properly destroy the spesh
09:33 dalek MoarVM: candidates, so allocated JIT code was never cleaned up, either.
09:33 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/48f3fa554e
09:50 brrt :-o i just found myself a rather nice (45 minute break in madrid) flight to granada
09:52 * jnthn needs to do that
09:52 jnthn Still waiting for annoying immigration-related crap to know if I'm booking for one or for two... :/
09:53 brrt google flights is a pretty good interface
09:53 brrt well, fwiw, i don't know if i'm booking for one or two, but i expect one
09:53 brrt how... difficult is it for an ukranian to immigrate into the EU?
09:53 brrt isn't ukraine schengen zone?
09:54 jnthn Ukraine isn't even EU, let along Schengen.
09:54 brrt hmmm
09:54 jnthn It's not *meant* to be difficult.
09:54 nwc10 Schengen includes non-EU
09:54 brrt oh, right, that was the whole war situation was about :-(
09:55 jnthn s:2nd/was/is/ :-/
09:55 brrt no, i suppose it shouldn't be, not after you're married in most cases
09:55 jnthn Just because the media got bored of talking about it doesn't mean it's over.
09:55 * brrt wonders why europe lets a significant part of it's area blister like that
09:55 brrt i... was under the impression there was a cease-fire of sorts?
09:55 brrt wrong impression, i guess
09:55 jnthn "of sorts"
09:56 jnthn I mean, sure, it's better than it has been.
09:56 jnthn But hardly peace.
09:57 jnthn Anyway, EU law is fairly strong on this area in theory, but it seems in practice that various consulates have somewhat selective memory of EU law.
09:58 jnthn (on the immigration of a spouse thing, I mean)
09:58 jnthn But in reality, we've only just hit the point where we're starting to deal with the immigration-y bits
09:58 jnthn It took nearly two months for her to get an updated passport with the name change in.
10:01 brrt wow :-(
10:06 dalek MoarVM/even-moar-jit: c40e8a7 | jnthn++ | src/gc/collect. (2 files):
10:06 dalek MoarVM/even-moar-jit: 32 bits will be sufficient for this flag; nwc10++.
10:06 dalek MoarVM/even-moar-jit: review: https://github.com/MoarVM/MoarVM/commit/c40e8a7176
10:06 dalek MoarVM/even-moar-jit: 48f3fa5 | brrt++ | src/ (3 files):
10:06 dalek MoarVM/even-moar-jit: Destroy spesh candidate in staticframe gc
10:06 dalek MoarVM/even-moar-jit:
10:06 dalek MoarVM/even-moar-jit: MVMStaticFrame cleanup did not properly destroy the spesh
10:06 dalek MoarVM/even-moar-jit: candidates, so allocated JIT code was never cleaned up, either.
10:06 dalek MoarVM/even-moar-jit: review: https://github.com/MoarVM/MoarVM/commit/48f3fa554e
10:06 dalek MoarVM/even-moar-jit: c826133 | brrt++ | src/ (5 files):
10:06 dalek MoarVM/even-moar-jit: Merge branch 'master' into even-moar-jit
10:06 dalek MoarVM/even-moar-jit: review: https://github.com/MoarVM/MoarVM/commit/c826133822
10:07 TimToady_ joined #moarvm
10:14 * jnthn likes the moments where something you did on gut instinct in a design shows up to to be really right for a reason you didn't see coming
10:16 brrt ooh, tell us :-)
10:17 brrt although, i'm off for lunch
10:48 FROGGS jnthn: aye, I share the excitement for these rare moments too :o)
11:43 brrt joined #moarvm
11:47 jnthn lunch; bbi15
11:53 brrt that's a short lunch
12:06 jnthn Was just a case of warming leftovers from yesterday and nomming them :)
12:10 zakharyas joined #moarvm
12:13 brrt that's usually faster
12:13 brrt :-)
12:21 colomon joined #moarvm
12:31 * jnthn digs back into GLR stuff, after taking care of some small admin things
12:32 * FROGGS .oO( small admin things == things in the fridge )
12:34 jnthn ;)
12:34 jnthn Actually accounting and legal. Far less exciting. :)
12:34 jnthn Taking care of the things in the fridge was far more fun :)
12:38 TimToady joined #moarvm
13:50 synbot6 joined #moarvm
13:52 synbot6 joined #moarvm
14:08 synbot6 joined #moarvm
14:33 brrt joined #moarvm
14:37 camelia joined #moarvm
14:40 brrt hmm
14:40 brrt i've though about it, and conservatively adding stores during expr tree building is probably best
14:41 brrt you can always remove them in an optimization pass
14:41 timotimo that's how we ended/end up with a million "set" instructions :)
14:45 * jnthn has reached the bit of the GLR involving getting Array in place
14:45 jnthn Which is argh because it's the first user-visible mutable thing :)
14:45 jnthn On the up side, probably also the only one :)
14:51 JimmyZ jnth++ # I don't know what word is better :)
14:51 JimmyZ err, jnthn++
14:51 brrt i thought GLR was outside of scope for jnthn?
14:52 brrt yeah, well, i'm not saying it's easy timotimo :-)
14:54 brrt correctness is important, annoyingly enough :-)
14:54 jnthn brrt: It was, until nobody else did it, so now it's on my plate also.
14:54 brrt i think a lot of things end up on your plate that way
14:55 jnthn Aye
14:57 jnthn I didn't really want to pick this one up because folks have this desire for it to always DWIM, and some of the IMs are contradictory, and trying to satisfy too many of them got us to where we are today.
14:58 jnthn Thankfully, there's at least now consensus that things that generate values and things that remember values need to be different types.
14:58 brrt i'm thinking i'm going to add a MVMSpeshGraphCursor type
14:58 jnthn Which does give a lot of nice things
14:58 brrt oh, yes, i think that makes sense
14:58 jnthn Though I'm going to take some crap when people realize they can't do @a.map(*.uc)[5]
14:59 jnthn Because map returns a Seq and that isn't Positional.
14:59 jnthn Well, I may take some...I can always hope not :P
14:59 brrt i suppose you can always say @a.map(*.uc).take(5)
14:59 brrt orsomethinglikethat
14:59 jnthn Or @a.map(*.uc).list[5]
14:59 brrt yeah
15:00 jnthn I don't think we'll run into that one often.
15:00 brrt too me it'd make more sense to write @a[5].uc
15:00 brrt if that's what you want
15:00 jnthn well, yeah, the fact I had to write a silly example kinda shows how relatively rare it's likely to be in real code :)
15:01 brrt right
15:01 brrt although- i think you're going to see this one happen more often
15:01 brrt my @b = @a.map(*.uc); say @b[5];
15:01 jnthn That one is *fine*
15:01 brrt why..oh
15:02 brrt yes, i see
15:02 jnthn Because you're assigning the sequence into the array, which drains it.
15:02 brrt i keep forgetting the complexity of perl6
15:02 jnthn Well, I'm sorta trying to reduce the complexity ;)
15:02 jnthn But yeah, assignment isn't binding.
15:02 brrt i should make a t-shirt out of that
15:03 jnthn I'm sure this code's gonna survive though. It says right in the middle of it that it has a future.
15:03 jnthn has $!future;
15:03 jnthn See? :)
15:04 brrt my class punk { has no $!future; }
15:06 brrt anyway: the point is this; if i pass a spesh graph cursor to the expr tree generator, i'm no longer obliged to consume a whole basic block
15:07 jnthn I've no problem with adding that if it's useful to what you're doing.
15:07 jnthn Well, no problem with *you* adding it... :)
15:07 brrt which is just as well, because some things (e.g. jumplist, vm-invoke) are *better* implemented outside the expr tree
15:07 brrt :-)
15:08 brrt i'm quite excited about perl6 these days
15:09 brrt i also need a way to allocate a block of labels, not just one-label-at-a-time
15:11 brrt so... many things :-o
15:12 JimmyZ @(@a.map(*.uc))[5]  ...
15:13 * brrt afk for tonight
15:13 brrt see you!
15:13 TimToady well, .[] could be overloaded on iterator to have one-pass semantics, with restrictions on the ordering of the indices
15:13 brrt or you could sort the indixes
15:14 brrt (i should shut up :-P)
15:14 TimToady a Schwartzian index...
15:14 brrt and then rearrange them after the fact
15:14 TimToady something like hyper
15:15 jnthn brrt: Have a nice evening :)
15:15 brrt yes, you too
15:15 brrt (you all)
15:23 dalek MoarVM/even-moar-jit: d27a475 | brrt++ | src/jit/e (3 files):
15:23 dalek MoarVM/even-moar-jit: Conservatively add stores
15:23 dalek MoarVM/even-moar-jit:
15:23 dalek MoarVM/even-moar-jit: MoarVM opcodes include a store, much as I would wish they
15:23 dalek MoarVM/even-moar-jit: didn't. So now I conservatively add them during tree generation.
15:23 dalek MoarVM/even-moar-jit: I think some of them may be removed during a separate optimization
15:23 dalek MoarVM/even-moar-jit: pass.
15:23 dalek MoarVM/even-moar-jit: review: https://github.com/MoarVM/MoarVM/commit/d27a475cb9
15:23 dalek MoarVM/even-moar-jit: e39bb32 | brrt++ | tools/tiler-table-generator.pl:
15:23 dalek MoarVM/even-moar-jit: Define sortn routine for numeric sorting
15:23 dalek MoarVM/even-moar-jit: review: https://github.com/MoarVM/MoarVM/commit/e39bb32bde
15:28 jnthn TimToady: I...guess it *could*. Do we need it?
15:36 TimToady there might be some demand for the monotically increasing case, just as a kind of grep-on-position
15:36 jnthn *nod*
15:36 TimToady we could conservatively restrict it to that
15:36 jnthn It won't be hard to add later
15:37 jnthn For now I'm more trying to get the core model in place
15:37 TimToady sure
15:37 jnthn I'll certainly share the progress so far today (in the evening)
15:38 TimToady I'm wondering if we should bring it up using the old types as a scaffold, so we can convert the setting in some order other than first to last
15:38 TimToady so rename Array to OldArray and such, then gradually extirpate them
15:39 TimToady maybe we can just do it in order, my impression is that's how you did the previous refabrications
15:39 jnthn Yeah
15:40 * TimToady wonders how we can ease the user's transition...
15:40 jnthn That's going to be...hard.
15:40 TimToady may need to run parallel distrib for a month or two
15:41 jnthn I think (so far) my plan of attack would be to keep evolving the new implementation of things until a point where it does the things other bits of the setting demand of it.
15:41 jnthn And then swap the one out for the other and debug until the thing builds.
15:42 jnthn If I can incrementally bring the setting up on a new VM, I'd hope I can pull it off for a new list implementation...
15:42 TimToady the setting itself only needed a few tweaks to make list assignment non-flattening, but making the inside of [] composer not flatten is a bit harder, at least in glrish
15:43 jnthn I've already got that not flattening in the new impl.
15:43 jnthn It's easier bottom-up...
15:43 TimToady I suspect as much
15:43 TimToady *suspected
15:45 jnthn I've gone with the more object-y API I suspected would work out better
15:45 jnthn Factoring it for inlinability
15:45 jnthn So far, I see that Moar's inlining thresholding needs some tweaks. :)
15:46 jnthn (It's not as aggressive as I'd like it to be.)
15:48 jnthn Though I think maybe part of it is that we should consider "how big is the code to inline *after* we've specialized it"
15:57 jnthn Time for a break; bbl
16:06 timotimo oh, brrt, i just realized i didn't touch the "parse graph.c" tool in at least a week :(
17:12 colomon joined #moarvm
17:45 lizmat joined #moarvm
18:01 FROGGS joined #moarvm
18:06 zakharyas joined #moarvm
18:53 * jnthn returns
18:57 timotimo return_o jnthn?
18:58 * jnthn feels objectified
18:58 timotimo that wasn't my intention
18:59 timotimo if you'd said you returned from noms, i'd return_n'd you
18:59 * jnthn was in fact just nomming :)
19:00 jnthn So, what failing test did I leave for myself...
19:00 jnthn oh my...
19:11 nwc10 this is the anti-beer-fridge?
19:11 nwc10 leaving future you something unpleasant?
19:11 jnthn The fridge has some nice things in it
19:11 jnthn Oh
19:11 jnthn Yeah
19:11 jnthn Well, it's not that nasty
19:11 jnthn Just infinite listy stuff
20:29 dalek MoarVM: 8aa709f | timotimo++ | tools/update_ops.p6:
20:29 dalek MoarVM: [update_ops.p6] make module MAST::Ops a proper unit module
20:29 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/8aa709f78f
21:02 Ven joined #moarvm
21:09 TEttinger joined #moarvm
21:15 Ven joined #moarvm
22:09 lizmat joined #moarvm

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