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