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