|
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 | |