01:07 vendethiel joined
japhb
.oO( Funny, it doesn't *look* throwish ... )
01:24
01:37 raiph joined 02:43 colomon joined 05:27 vendethiel joined 06:51 brrt joined
brrt timotimo: because yours truly is quite an idiot, and simply didn't do that yet 06:51
06:52 zakharyas joined 07:13 FROGGS joined
brrt but they should be, as near as i can tell 07:18
ok, any advice on my options 07:47
a): hack something in graph.c by stealing a register from the out-args buffer (which will be cleared before use *anyway*)
b): write a tiny bit of ASM code to deal with ordat/ordfirst 07:48
a) has the 'cleanliness' bit to it
or rather, the 'lets not add too much ASM just yet please' bit 07:49
option c):
use spesh optimization step to translate ordat to something i *can* jit more easily
07:50 vendethiel joined
brrt i'm not so fond of c because fragile 07:52
b): is *so easy*
a): is rigth? I'm not even sure
does this case even show up anywhere? i have half a mind to throw in an interupt just to see 07:53
nwc10 jnthn: I'm trying your patch with ASAN. 08:12
no ASAN output, but RSS is at 42g 08:13
and slowly rising
at the first NQP build step
brrt nwc10: what patch, did i miss anything? 08:15
or is dalek dead
lizmat dalek was fine just now on #perl6
nwc10 brrt: last night, a gist on github 08:17
brrt ah, ok
42g is not 42 gigabyte right 08:18
that seems ... excessive
jnthn It gets into an infinite loop allocating. I warned you it eats memory, in hope somebody may ulimit it :P
nwc10 oh, I thought you'd said it blew up in Rakudo 08:19
jnthn But hey, if you've 42g of memory at hand...
nwc10: That's all I tried it on, but I figured it may be way back... :)
nwc10 there might be more than that
brrt wonders what kind of machines have >42g memory 08:20
anyway. any favorites? a): jit graph hackery, b): simple ASM code, c): spesh graph hackery?
c) is not really an option because i have no way to represent ordat /without/ the negative check
properly, i mean
nwc10 big machines. 08:22
jnthn brrt: d) work on the expression tree stuff and then see what's the best solution? ;)
nwc10 (also, expensive machines)
and most certainly "not a machine that I own, or paid for personally"
brrt jnthn: d is by far the preferable solution
but not one i'm really able to do over between exams and presentations :-) 08:23
because the expression tree can just express the check-and-call easily, and currently we canb't
but, that settles it, i'll do b) because b) can serve as a template for d) 08:24
brrt notes that 'primitive' in the moarvm jit more likely means 'something we can't easily express as a generic other thing' 08:27
why do i still get a moarvm-is-too-old error? 08:46
ah, my moarvm says it's version 4, and nqp wants version 8 08:48
when / how did that happen 08:49
does the moarvm version get updated at configuration time perchance?
jnthn brrt: yes 08:53
brrt ah 08:55
does the nfg stuff have spectests yet?
i want to know because i inserted an interrupt just to see if special ordat code is running 08:58
no point in adding code that doesn't run... :-) 08:59
ugh, only scheduler blowups yet 09:02
hmmm 09:16
i'm not 100% confident pushing now
dalek arVM: de45927 | brrt++ | src/jit/ (2 files):
Support NFG synthetics in ordat/ordfirst for JIT

ordat and ordfirst want to return the base of an NFG synthetic, so *if* the character is a synthetic, it should be converted. This patch does just that, at the cost of converting the c-call to a custom piece of amd64 asm. This will be fixed soon, I hope.
09:22
brrt ... how short *should* the lines be for dalek to print them correctly 09:24
hell is iOS build systems 10:03
10:29 Ven joined 10:31 vendethiel joined, Ven_ joined 10:33 oetiker joined 11:15 vendethiel joined 11:16 brrt joined 12:22 harrow joined 12:46 Ven joined 13:28 raiph joined 14:12 Ven joined 15:23 vendethiel joined
[Coke] Each release of nqp depends specifically on a release of moarvm, yes? Is there ever a case where we'd want to support a release of nqp against a range of moarvm releases? 15:55
lizmat I guess technically, the release bump indicates the lower boundary under which a version of nqp will work (most of the time?) 15:56
timotimo brrt, why did the |1: at the end of the MVM_JIT_CONTROL_THROWISH_PRE disappear in that patch? 15:57
[Coke] in my particular case, this is for the macports; so there will be a port for rakudo@release, which will depend on nqp@release, which will depend on moarvm@release - I'm not looking forward to figuring out combinations that might work, so I'm going to just go for latest depends on latest. 15:58
lizmat [Coke]: that sounds sane to me 16:05
16:09 vendethiel joined 16:38 vendethiel joined 16:43 brrt joined
brrt jnthn is wedding this weekend? 16:49
how very awesome! jnthn++ for life succes
16:50 synbot6 joined
brrt also, get well soon 16:51
lizmat brrt: yes, this weekend 16:57
brrt very nice indeed 16:58
hopefully the weather will be good
TimToady good weather for jnthn++ is likely to be Too Cold for us Californians :) 17:02
brrt google says temperature in LA is 'only' 17 degrees, and will reach 24 degrees (celsius) today 17:05
that's not *that* warm
TimToady well, the current season in California is called "glummer"; we don't generally lose the marine layer till July 4 or so 17:08
we also get spring before we get winter, which is why they schedule the Rose Parade on Jan 1 17:09
brrt what 17:10
pacific climate is weird
on the other hand, northern european gulf-stream supported climate is also weird, in a global sense
TimToady it's nearly always a beautiful spring day when people watch the rose parade, and then they decide to come out to california in either winter or glummer, and say, what the heck? 17:11
the hottest month in LA is often September 17:12
brrt the oracle at mountain view has no idea what glummer is 17:14
TimToady oracle is not in mountain view, it's in redwood city or so :) 17:21
japhb brrt: Don't be misled by TimToady's playful abuse of English. ;-) 17:49
(Me, in 11th grade: "Why can't I create new words. After all, Shakespeare did, and we applaud him for it." Teacher: "You're welcome to do that when you are as skilled as Shakespeare.") 17:50
s:1st/'.'/?/ 17:51
brrt :-) 17:52
i think rather more people make up new words than become vernacular
TimToady that word was actually made up by a columnist for the LA Times, though I don't think the word has achieved widespread usage 18:00
it does describe the weather in May/June rather accurately though :)
japhb True ... 18:02
timotimo which word is that? glummer? 18:07
japhb nodndo 18:08
brrt what does isdev do? 18:15
brrt bbiab 18:19
timotimo probably checks if something is a special device, like block devices on linux in /dev 18:22
18:23 synbot6 joined 18:38 synbot6 joined 18:54 brrt joined
brrt uhm, where should i put MVM_file_isatty 19:05
MVM_file_stat won't work because it uses a filename
timotimo dunno :S 19:24
brrt: anything standing in our way to jit throwdyn? 19:26
or do i basically just have to hook up the C function?
brrt no, except that they also have to be made throwish
i think 19:27
i'm not 100% sure though
timotimo well, yeah, but that's a tiny change to make :) 19:28
thanks
i'll do it later today and see if the send-more-money-loops benchmark will benefit from that at all
in theory, it should be able to inline THROW into next, but it didn't seem to do that last time i looked
brrt pious hope says it should all work out 19:29
timotimo of course :P
brrt but i'm not very sure
hmm 19:30
yeah, ok, it should work
i'm not even terribly sure throwish is necessary, or even effective
what kind of things are marked throwish now?
timotimo i know "die" is 19:32
brrt pff 19:34
what kind of idiot made that JIT
its possible, as i see it now, that, we invoke() a handler, which would not be caught correctly by throwish-post 19:39
can... anybody advice on how to create an invoked (rather than a goto) handler?
timotimo: are you trying now, or should I? 19:47
actually, no, the invoked() handlers are no problem
it is the goto handlers which are potentially problematic 19:48
timotimo sorry, i was distracted
brrt np :-)
damnit, if only i knew what goto handlers really look like 19:52
19:54 zakharyas joined
timotimo you mean examples of those? 20:03
brrt yes
timotimo isn't that like when we optimize a "next" inside a while loop to become a goto to the start of the loop? 20:04
brrt preferably when the goto goes to the correct label
brrt forgot 50% of how this all worked 20:12
timotimo hah 20:14
i'm glad you'll be paid to work again :)
i wonder why the category in throwcat* is a 64bit number; do we even have more categories than fit in 8 bits? 20:15
with my changes to jit throw* operations, it seems nqp build is hanging 20:20
i added :throwish to all the throw* ops and just refer to the C functions 20:22
but maybe i haven't translated properly
the fact that the cur_op gets increased before the C function is called is handled by :throwish and the jit graph builder automatically, right?
and when i MVM_BC_get_I64, i'd just have to get ins->operands[*].lit_i64, no? 20:23
ah
easy. i forgot to bump the argument count up
i wonder if there's a __attribute__ in gcc and friends that'd automatically ensure the number before "args" corresponds to the size of args if it's a literal expression 20:24
that seems to not be the only problem in the code, though
ah, hehe. 20:25
i'm making many, many mistakes :D
brrt let me read properly
if it hangs after you think you have no more mistakes, then i'm very interested 20:26
because i think that's entirely possible
timotimo oh? 20:27
brrt but yes, cur_op is more-or-less guaranteed to be an OK value
timotimo well, i can surely push to a branch now
everything seems all right ... ish ;)
that's always the case with code i write :P 20:28
brrt yeah, a branch would do fine
dalek arVM/jit_throw_ops: 4affad6 | timotimo++ | src/ (3 files):
jit throw[cat]{dyn,lex,lexotic}

currently hangs execution.
20:29
brrt hmm, my hacking time today is over 20:32
my guess is that throwish-post doesn't handle the goto-handler well 20:33
*case
brrt afk & 20:35
20:48 Peter_R joined 22:03 vendethiel joined 22:09 lizmat joined 22:55 vendethiel joined 22:59 jepeway joined 23:34 vendethiel joined