00:35 _ilbot joined 02:51 colomon joined, benabik joined 06:23 FROGGS[mobile] joined 07:48 FROGGS joined 07:53 ssutch joined
jnthn You can maybe make soem guess by figuring out where the first state var is...but it won't be an accurate guess :) 08:02
diakopter first line? 08:05
90% in? 08:06
FROGGS *g*
jnthn damm, the coffee so ain't working 08:14
FROGGS hold on, I'll check a new one here... 08:18
nwc10 try gin? 08:20
jnthn nwc10: wat? :P 08:26
FROGGS hmm, coffee is okay here, you can come over on now :o) 08:29
err, come on over
I hope that is a correct idiom
jnthn well, let's try this cup...and teach... :) 08:30
FROGGS you had the chance :o) 08:32
nwc10 I think that your coffee might have gone cold by the time he could get to you 08:39
Error while compiling op openpipe: No registered operation handler for 'openpipe' 09:18
that's the expected place we get to?
FROGGS yes 09:19
nwc10: feel free to implement openpipe :o)
jnthn: how do I add a debug stmt to my xor implementation? 09:48
this: push_op(@ops, 'say', $qastcomp.coerce($qastcomp.as_mast(QAST::SVal.new( :value<789> ), :want($MVM_reg_obj)), $MVM_reg_str).result_reg);
throws: operand type 32 does not match register type 64
:/ 09:49
nwc10 FROGGS: sorry, busy fighting hateful code at work
FROGGS nwc10: I might have to fight PHP and VisualBasic code today :/
so, very very hateful code 09:50
nwc10 My nemesis is website testing code written in JS
I find that the docs make as much sense if I s/asychronous/smurf/g
FROGGS :o)
yeah
nwc10 to be fair, I've stopped trusting the docs, and I'm reading the source code.
it seems that the (incomplete) docs are written as if "callback" and "asychronous" mean the same. 09:51
FROGGS could be a bit disturbing, yeah
FROGGS .oO( hmmm, tasty reactive asynchronous callbacks, Yum! ) 09:53
jnthn Callbacks. The goto of the async era... 10:18
FROGGS: You Want to my $sreg = $*REGALLOC.fresh_s(); or so, and then do a const_s to get the string into the register, and then use say on it. 10:19
FROGGS thanks!
:D
my $sreg := $*REGALLOC.fresh_s(); 10:37
push_op(@ops, 'const_s', $sreg, MAST::SVal.new( :value($n) ));
push_op(@ops, 'say', $sreg);
operand type 32 does not match register type 64
:(
though... maybe this is from the ops afterwards? 10:38
ahh, nvm 10:40
it was the code afterwards
jnthn ah :) 10:42
FROGGS I thought there is no extra check stage when executing the ops, so I thought it will run my say() in all cases when I put it upfront 10:43
jnthn Oh lots of validation happens in different places
Some sanity checks int he assembler
And detailed checks at validation time 10:44
FROGGS why that? I write perfect code :o)
it is just hard for me to locate the error when there is no hint 10:45
jnthn The 32 and 64 are hints ;) 10:47
You can look those up in I guess interp.h 10:48
diakopter also at the top of the qast->mast files 10:56
FROGGS yeah, I know what that means, but I have three candidates which could produce that 11:16
11:37 cognominal joined 11:46 colomon joined 12:15 tgt joined
jnthn FROGGS: you could always gist the code and see if anybody else can spot it ;) 12:40
FROGGS NOOOOOO! 12:42
because I almost got it :o)
but thanks for the offer :o)
jnthn wfm :P 12:43
FROGGS jnthn: what is the equivalent or pir's: and $I0, $P0, $P1 btw? 12:52
or better: what is the op for logical and?
ahh, just if? 12:53
nqp: say(nqp::if(1, 2)) 12:54
camelia nqp-moarvm, nqp-jvm, nqp-parrot: OUTPUT«2␤»
FROGGS :D
but hmmmm, is push_op(@ops, 'if', $i, $t, $u), like $i = if($t, $u) ? 12:59
13:31 ggoebel110 joined
FROGGS yes, that is the only thing that does not work currently 13:33
:/ 13:34
it does not seem to set $i
13:56 tgt joined 14:15 woolfy left 14:34 jnap joined
FROGGS jnthn: do I need to nest another instruction list to do $i = $t && $u ? 14:40
jnthn Instruction lists jsut flatten at assembly time anyway 14:41
They don't mean anything really
FROGGS k 14:42
how do I do that then? using labels?
and if_i? 14:43
jnthn yeah
FROGGS oaky
jnthn that's what && compiles down to
FROGGS k
jnthn Isn't taht what the Parrot version does?
14:51 benabik joined
FROGGS it works! 14:55
jnthn FROGGS++ 14:56
FROGGS here it is: gist.github.com/FROGGS/6e3c00076afcb5c3c1f0 15:00
I'll look later into releasing registers...
dunno if I have to do that or not, must read first 15:01
15:01 FROGGS[mobile] joined 15:27 arnsholt joined
diakopter FROGGS++ # learning the qast->mast "system" 15:32
jnthn Releasing registers isn't *required*, but if you don't then we generate worse code. 15:33
diakopter to compare, the codegen for parrot never reuses registers... and so... yeah. 15:37
15:51 FROGGS joined
FROGGS so it looks like I need to release every fresh_* and every .as_mast() 16:27
17:07 Woodi joined
jnthn FROGGS: Except the one you return as the instruction list's result_reg 18:09
FROGGS k, good to know 18:10
jnthn: do I need to release two when I coerce?
jnthn Example? 18:11
FROGGS $bpost := $qastcomp.coerce($bpast, $MVM_reg_obj);
I'd release $bpast and $bpost 18:12
jnthn Yeah, unless $bpost is the result of course
FROGGS k
jnthn Better to ues :want(...) in the call to as_mast when possible, though.
FROGGS yeah, I think I an optimize that 18:13
18:37 ssutch joined 19:17 lue joined 19:44 rurban joined
FROGGS I must have messed something up when getting rid of the coerce by using :want 20:17
jnthn
.oO( do not want... )
20:19
FROGGS ohh, it seems to work now with strings, but not with ints 20:20
jnthn oh? 20:22
jnthn thought it worked on objects primarily... :)
(e.g. boxed things)
FROGGS well, I guess I just test a side effect then 20:23
jnthn Error while compiling op openpipe: No registered operation handler for 'openpipe' 20:30
FROGGS yeah :/
jnthn That's at, like, 732...
FROGGS that one sounds like work (to implement)
jnthn True, though we could stub it and leave it until later
FROGGS true
not very needed for the next weeks 20:31
diakopter you're a pipe 20:33
FROGGS you are even (a) piper!
20:34 sricloud joined
dalek arVM: b235e2e | jonathan++ | / (5 files):
Stub openpipe op.
20:41
timotimo oh, you don't actually have to put the interp.c stuff? 20:45
jnthn No
timotimo it won't advance the IP, though, right?
jnthn oh, uh...I wonder if you do for not breaking cgoto... :)
diakopter nah 20:46
jnthn timotimo: On the normal runcore it'll just hit the "huh, wtf is this op" thing and throw :)
diakopter er
yes :)
jnthn (switch one)
I dunno what cgoto does ;)
timotimo ah, hehe.
diakopter cgoto reprograms your cpu into an fpga
jnthn oh...is it me or is newexception missing something... :) 20:47
timotimo oh, somebody went ahead and added it? cool!
timotimo looks at the implementation
diakopter jnthn: yeah probably missing an abort()
timotimo oh, so it *can* use BOOTException!
i thought i'd have to find out how to get at the non-boot-exception class 20:48
jnthn yeah, but whoever shoved it in forgoet to cur_op += 2, and goto next. :)
timotimo froggs :)
FROGGS ummm
dalek arVM: ed9b09d | jonathan++ | src/core/interp.c:
Fix newexception; make openpipe throw NYI.
20:49
jnthn Error while compiling op xor: No registered operation handler for 'xor' 20:50
Good job somebody's working on that... :)
timotimo i was expecting setpayload and the other op regarding newexception would be up next, though
jnthn I guess that's the ^^ at 3695
That's already in, I believe 20:51
timotimo cool 20:52
FROGGS I am pushing in a minute 20:55
timotimo yays :) 20:56
jnthn builds it 21:00
timotimo how far do we get now? :3 21:01
jnthn Will know soon ) 21:02
timotimo --optimize is safe now, btw?
FROGGS seems like
though is not ideal for backtraces in gdb :o)
timotimo hehe 21:03
jnthn p6stateinit 21:08
Is the next one
FROGGS yeah, I remember
shall I stub it?
jnthn Can do. 21:09
State vars will need some work in Moar...
But I odn't have energy for that todya.
*today
FROGGS "Can do" means you're stubbing it? 21:10
timotimo so am i correct in thinking MoarVM is currently not multithreading the garbage collections?
FROGGS it at least feels single threaded 21:11
jnthn FROGGS: No, you can take it :) 21:13
FROGGS k, got it :o)
jnthn timotimo: The garbage collector will run on multiple threads if multiple threads are already running.
timotimo oh, i thought it would stop the world and just thread out as far as it deems helpful 21:15
jnthn No, it doesn't do that
So far, at least.
timotimo OK 21:16
is there a flag or something that can tell how much time is spent, all in all, doing GC work?
jnthn Not afaik
I mostly get those numbers by profiling.
FROGGS timotimo: the link to the ps/pdf file I pasted had some numbers about that 21:19
Error while compiling op backtrace: No registered operation handler for 'backtrace' 21:23
okay, this is mean to return a list of hashes containing about file, line, sub and annotations 21:24
s/about// 21:25
jnthn yeah
should be doable
FROGGS it should, yeah
let's doit then :o)
21:37 benabik joined
jnthn takes an early night & 21:45
FROGGS gnight 21:48
dalek arVM: 58e6fae | (Tobias Leich)++ | / (8 files):
implement op backtrace
22:24
arVM: ff050d0 | (Tobias Leich)++ | / (6 files):
stub op symlink and link
22:47
23:18 BenGoldberg joined
dalek arVM: 54eed98 | (Tobias Leich)++ | / (8 files):
implement gethostname
23:25
FROGGS I am curious what happens now 23:26
diakopter STUB ALL THE THINGS 23:28
FROGGS thing is, what I stubbed now was in line 16944 23:29
err, s/stubbed/implemented/ 23:30
stolen, even
tadzik keeps getting better
FROGGS tadzik: do you have time to look at the PRß 23:31
?
tadzik probably yep 23:32
tadzik looks
diakopter boggles at what PRß could mean 23:34
tadzik PRss 23:35
PullRequestsss
diakopter much beter
FROGGS now it complains about p6staticouter in line 2603, as if it does methods composition 23:38
don't wanna get stubby fingers :o)
gnight
lue good ♞ FROGGS o/ 23:39
(that should've been PBẞ...) 23:40
diakopter I find some of rakudo's custom ops curious.. some of them don't seem very performance critical and can also be implemented in the HLL and/or other custom ops 23:42