01:56
FROGGS_ joined
02:40
btyler joined
03:16
lue joined
04:18
dalek joined
04:20
lue joined
05:54
colomon_ joined
|
|||
sergot | morgning o/ | 06:33 | |
06:47
FROGGS_ joined
06:58
zakharyas joined
07:43
ingy joined
|
|||
FROGGS | damn, is it bad that I am thinking about OpaquePointer.free() and other weird stuff? :D | 08:00 | |
08:39
brrt joined
|
|||
brrt | \o #moarvm | 08:48 | |
FROGGS | hi brrt | 08:50 | |
brrt | hi froggs :-) how's things | 08:51 | |
FROGGS | brrt: very well :o) | ||
brrt | :-) good | ||
any particular reason? | |||
FROGGS | yes, P6 is doing nicely and $dayjob is sort of fun also... | 08:52 | |
so it is like that everything seems to work out nicely what I touch this week | |||
brrt | that is nice :-) p6 is going pretty good i think, too | 08:55 | |
nwc10 | the ecosystem seems to be lagging behind the core | ||
brrt | which is so by necessity, or not? | 08:57 | |
nwc10 | I meant things like no Star :-( | 08:58 | |
but, more, not much that I can spot being written with Perl 6 | |||
eg IRC logging is still Perl 5 | |||
FROGGS | yes, true | 08:59 | |
brrt | imho that is because the IO situation wasn't very good up until recently? | 09:02 | |
FROGGS | it is always that way that we think that something is just ready since recently for I don't know what reason | 09:03 | |
brrt | so you're saying, just start writing perl6? | 09:04 | |
nwc10 | I'm certainly saying "start writing Perl 6" | ||
FROGGS | brrt: yes | ||
nwc10 | because someone has to find the rough edges, and the sooner the better | ||
brrt | fair enough | ||
but i'm writing asm first :-) | |||
FROGGS | see, I am porting Archive::Tar with not that difficulty for example... and this is very Perl5ish code | 09:05 | |
asm first, deal :o) | |||
brrt | it's actually a quite pleasant intellectual challenge | 09:06 | |
:-) | |||
FROGGS | yes, I love this kind of tasks too | ||
brrt | you know what one of the things was that started my interest in perl6? | ||
FROGGS | no? | 09:07 | |
brrt | i have this suite of scripts, which is a html-tidy-kind of things, a html recompiler of sorts | ||
it's in perl5 | |||
in perl5, managing stuff like 'classes', and 'objects', and the like, is a huge pain | |||
still, perl5 is very effective | |||
managing a tree structure, that is even a bigger pain | 09:08 | ||
FROGGS | true | ||
brrt | hint - i use a linear array with child-length and next-sibling-offsets | ||
tadzik | brrt uses perl5. It's super effective! | ||
FROGGS | eww | ||
brrt | python was too afraid too move | ||
:-p | 09:09 | ||
well, somewhat between eww and 'awesome hack' i'd say; i've mentioned luajit does the same | |||
these kind of data-munging projects is still imho what perl does best, and what perl6 (hopefully) does better | 09:10 | ||
FROGGS | yeah, that is also my impression | 09:12 | |
timotimo | yeah, nested data structures are kinda nice in p6 | 09:13 | |
though you have to wrap your head around item and flattening contexts and stuff | 09:14 | ||
brrt wonders if he can write && without jumping | 09:24 | ||
09:47
brrt joined
|
|||
brrt | ok, it can be done, it's a bit of flag-moving, but otherwise no problem | 09:59 | |
timotimo | moving bit flags? | 10:44 | |
brrt | :-) yes, actually, moving bits out of the flag register | 11:10 | |
it's a long story | |||
FROGGS | is it a bit long? | ||
11:32
carlin joined
12:17
jnap joined
13:35
btyler joined
13:43
colomon_ joined
13:54
zakharyas1 joined
14:31
FROGGS joined
14:42
cognominal joined
15:00
brrt joined
|
|||
brrt | when writing write barriers, one would wish we hadn't a generational GC | 15:36 | |
dalek | arVM/moar-jit: 979c207 | (Bart Wiegmans)++ | src/jit/ (4 files): Add support for vivifying versions of sp_p6oget These haven't been tested because I haven't added support for guards yet. |
15:44 | |
15:52
brrt left
|
|||
jnthn | Not having a generational GC would be worse in quite a few other ways :) | 15:59 | |
"After these results are accessed, the pairs are placed into the target register, and the new wine will burst the bottles, and be spilled, and the bottles perish: but they put new wine into new bottles, and both are preserved." | 16:51 | ||
Ahh...so that's how VMs work... :) | |||
kjp++ | |||
FROGGS | O.o | 16:52 | |
nice quote though | |||
timotimo | what prompted you to say the generational GC thing? | 16:53 | |
FROGGS | <brrt> when writing write barriers, one would wish we hadn't a generational GC | 16:54 | |
timotimo | i seem to have backlogged incompletely | 17:01 | |
ah, indeed | 17:02 | ||
17:57
zakharyas joined
|
|||
timotimo | is typevaropt not stable enough to be merged yet? | 18:12 | |
18:45
brrt joined
|
|||
brrt | hmm | 19:12 | |
i'm wondering if we might have to change the deopt architecture a bit | 19:14 | ||
(hopefully not) | 19:15 | ||
ok, i'm going to walk-and-ponder | |||
jnthn | ...oopos, missed brrt | ||
timotimo: seems not; I get some spectest fails | 19:17 | ||
timotimo | oh, hm. | 19:18 | |
jnthn | Not sure why, though | ||
What's odd is I get a very small number of them, and they see to fail in the same way | 19:20 | ||
timotimo | at least it's consistent, right? | 19:21 | |
jnthn | Turns out with MVM_SPESH_INLINE_DISABLE=1 it works, and the error looks like a deopt fail... | 19:25 | |
timotimo | is there a good technique we could employ to hunt deopt issues down further? | 19:26 | |
jnthn | Alcohol. | 19:29 | |
Then uncomment the fprintf's in deopt.c :) | 19:30 | ||
timotimo | hah | ||
all right | |||
you can do it! | |||
(i'm not that into alcoholic beverages) | |||
lizmat | WD-40? | ||
jnthn | Ingesting that doesn't go well... | 19:31 | |
lizmat | ah, it was for ingesting ? :-) | 19:32 | |
jnthn | my word do we deopt a lot... | 19:36 | |
jnthn shoves "remove unrelied on guards" up his todo list | |||
timotimo | less deopt means less running into that bug, right? ; | 19:37 | |
:P | |||
jnthn | yeah...I'll fix the bug *first* :P | 19:39 | |
20:10
brrt joined
|
|||
brrt | \o #moarvm | 20:10 | |
jnthn here? or has the alcohol already taken it's toll? | 20:11 | ||
jnthn | heh, didn't actually have any yet :) | 20:12 | |
brrt | :-) | 20:14 | |
hmm... so if i'm correct, deopt is basically about taking the current index of the bytecode (the deopt point), finding the index of the original bytecode, and moving the interpreter to that point | 20:16 | ||
jnthn | Basically | ||
Though if we're in inlined code it has to recreate the intermediate frames too that were elided thanks to inlining. | |||
brrt | right | 20:17 | |
jnthn | As for the index: we could potentially hardcode the index into the guard ops that do a deopt_one. | 20:18 | |
Rather than scan the table. | |||
For JIT I suggest we do emit the index though | |||
Because there's no bytecode to go hunting in. | 20:19 | ||
Well, no bytecode offset I mean. | 20:22 | ||
brrt | yes, that is what i meant to say :-) | 20:28 | |
ok, my plan was to move bytecode-offset hunting into a separate function, and frame-restoration into another | 20:29 | ||
so that the JIT can indeed emit a call with a hardcoded number | 20:30 | ||
jnthn | Yeah, the "middle" of deopt wants splitting out. | ||
brrt | ok, that can be a single commit i guess | 20:33 | |
jnthn | Grrr | 20:41 | |
Think the bug is in merging inline tables, and a failure to fix up return_deopt_idx | |||
brrt | bloody mosquito's | ||
jnthn | Which I can see is missing, but the obvious patch doesn't actually help... | 20:42 | |
timotimo | a mosquito's what? | ||
brrt | mosquito's biting | 20:43 | |
jnthn | It does, however, change the failure mode, which suggests I'm poking the right hting... | 20:45 | |
timotimo | that's a good hint, aye | 20:47 | |
possibly two stacked bugs | |||
FROGGS | or just one that stretches his legs :o) | 20:48 | |
timotimo | heh. | ||
i was thinking like a jenga tower of bugs :D | |||
20:50
lue joined
|
|||
jnthn | ugh, can't think straight... | 21:07 | |
jnthn afk for a bit | |||
brrt | yeah, me too | 21:09 | |
23:10
jnap1 joined
23:13
cognominal joined
|