|
github.com/moarvm/moarvm | IRC logs at irclog.perlgeek.de/moarvm/today Set by moderator on 16 July 2013. |
|||
|
00:29
benabik joined
00:52
dalek joined
00:54
Util joined,
PerlJam joined
01:01
tadzik joined
02:05
colomon joined
04:48
birdwindupbird joined
05:25
FROGGS joined
|
|||
| JimmyZ | good morning, FROGGS | 05:26 | |
| FROGGS | morning JimmyZ | 05:27 | |
| later today I'm going to push MVM_{get,set}_bigint refactoring, which makes the last two bigint test fails pass | 05:29 | ||
| JimmyZ | nice | 05:30 | |
| sorear | o/ FROGGS | 05:31 | |
| FROGGS | hi sorear | ||
| dalek | arVM: 54b68ff | jimmy++ | / (4 files): added radix_I op |
06:35 | |
| arVM: 0c947c6 | jimmy++ | src/ (3 files): added isbig_I op |
07:11 | ||
| arVM: 706c550 | jimmy++ | / (7 files): added exp_n, log_n ops |
07:36 | ||
| arVM: b552672 | jimmy++ | / (2 files): fixed bug, passed 53-knowhow.t |
08:41 | ||
|
09:15
donaldh joined
|
|||
| JimmyZ | the CPS invocation is really tricky | 09:43 | |
| jnthn | That's not a bad thing :) | 09:44 | |
| jnthn would like relatively light use of that. | 09:45 | ||
| JimmyZ | :( | 09:48 | |
| jnthn | The number of places it should be needed is O(10-20). If it happens more than that, I'll probably be worried. | 09:50 | |
| JimmyZ | yeah | 09:53 | |
| FROGGS | jnthn: I (locally) added a ->{get,set}_mp_int to the reprs, which doesnt convert from/to double in contrast to ->{get,set}_int | 09:59 | |
| because for some ops we converted a double to mp_int and back, totally unneeded | 10:00 | ||
| jnthn | um, that sounds wrong... | ||
| FROGGS | meh, I feared you say that | ||
| this ->get_mp_int is only used in bigintops.c of course, if will never be returned to user land | 10:01 | ||
| JimmyZ wonders how parrot/jvm does what FROGGS++ wants | 10:02 | ||
| JimmyZ decommutes | |||
| jnthn | There's a get_ref thingy on Parrot that is closest to right | 10:03 | |
| FROGGS | but then the code in bigintops.c must decide if the thing got was a P6bigint or a P6int, to call the right method | 10:04 | |
| what I did right now would just say: hey, give me a mp_int, and for a P6int it will create one, otherwise just copy its | 10:05 | ||
| jnthn | Wait, what? | 10:06 | |
| No, this sounds terribly wrong... :S | |||
| The Int type in Perl 6 is a P6opaque | |||
| Which has an mp_int inlined into its body | |||
| FROGGS | the body.i, right? | 10:07 | |
| ahh, ohh | |||
| jnthn | No | ||
| FROGGS | hmmm | ||
| jnthn | That's what the get_ref thing does; returns a pointer into the object body where a certain representation is inlined. | ||
| FROGGS | lunch & | 10:15 | |
|
10:33
colomon joined
11:02
FROGGS joined
|
|||
| FROGGS | jnthn: is it possible that you meant get_storage_spec by any chance? | 11:04 | |
| because get_boxed_ref for P6int and P6opaque will just throw an exception | 11:05 | ||
| I think I could have a switch over spec.boxed_primitive, and then device from which field I read the int or mp_int value | 11:10 | ||
| jnthn | FROGGS: github.com/perl6/nqp/blob/master/s...que.c#L729 | 11:14 | |
| FROGGS | ahh | 11:15 | |
| jnthn: so I get the mp_int * for a P6bigint and and MVMint64 * for a P6int? | |||
| jnthn | FROGGS: You should never be using bigint ops on something that's a P6int. | 11:16 | |
| P6int doesn't come into this stuff at all | 11:17 | ||
| FROGGS | yeah, I see | ||
| jnthn | The Int type in Perl 6 uses a P6bigint, not P6int. | ||
| FROGGS | okay, I think I know what to do now | ||
| thank you | |||
|
12:31
benabik joined
12:42
benabik joined
12:52
colomon joined
14:04
colomon joined
14:44
colomon joined
15:59
pmichaud joined
16:35
FROGGS joined
16:46
benabik joined
|
|||
| FROGGS | jnthn: how can it be that repr_data->unbox_slots is false-ish for an P6opaque holing a bigint? | 17:48 | |
| (I'm currently working on get_boxed_ref) | |||
| holding* | 17:49 | ||
| jnthn | FROGGS: Maybe the relevant stuff ain't deserialized? | 18:13 | |
| FROGGS: Or, wait... | |||
| FROGGS: You're doing runtime type construction so probably it's just not set up | |||
| FROGGS | jnthn: any hint what code I have to "steal" from vm/parrot? | 18:19 | |
| jnthn | FROGGS: Just search for ->unbox_slots in P6opaque :) | 18:26 | |
| FROGGS: It isn't mentioned in many places, I don't imagine. | |||
| FROGGS: You're looking for the one in the codepath that originates from compose | |||
| FROGGS | meh, been there, done that | ||
| jnthn | /* Also list in the by-repr unbox list. */ | 18:27 | |
| FROGGS | in function compute_allocation_strategy perhaps? | ||
| ahh, cool | |||
| jnthn: thanks! | |||
| can't believe it, it does something | 19:14 | ||
|
19:16
colomon joined
19:33
ggoebel joined
19:34
cognominal joined
19:47
donaldh joined
|
|||
| FROGGS | jnthn: I hope it is sane this time: gist.github.com/FROGGS/0c98a6eb54b44ba962d8 | 20:29 | |
| jnthn | Looking much better | 20:32 | |
| FROGGS++ | |||
| FROGGS | \\o/ | ||
| dalek | arVM: 0353e3b | (Tobias Leich)++ | src/ (5 files): added REPR->box_func->get_boxed_ref ... especially for P6bigint, to be able to respect the REPR when accessing boxed and unboxed bigints. |
20:55 | |
| arVM: 885e9cd | (Tobias Leich)++ | nqp-cc/t/nqp/60-bigint.t: added (all-passing) bigint test |
|||
| jnthn builds latest and runs tests :) | 21:05 | ||
| FROGGS | me too (on windows) | ||
| t\\nqp\\57-construction.t ............... Failed 2/2 subtests | 21:21 | ||
| I'm not sure if this is new or not | |||
| passes on linux though | |||
| jnthn | Odd, it passes here for me also | 21:22 | |
| On Windows | |||
| FROGGS | C:\\MoarVM\\nqp-cc>nqp nqp-moar-cc.nqp t\\nqp\\57-construction.t | ||
| 1..2 | |||
| that's all | |||
| just followed by a newline | |||
| jnthn | Hm, segv maybe? | 21:23 | |
| 32 or 64 bit? | |||
| FROGGS | 32 | 21:24 | |
| this dies silently: my $x := A.bless(foo => [1, 2, 3], bar => 'BARBAR'); | 21:25 | ||
| jnthn | Hm | ||
| FROGGS | succeeds using nqp@parrot though | 21:26 | |
| it survives if I remove the args from bless() | 21:27 | ||
| ahh, the existance of arg 'bar' triggers it | 21:28 | ||
| so, it dies when accessing its parent? | |||
| (checking out an 2days old commit) | 21:29 | ||
| hmmm no, failed two days ago too | 21:35 | ||
| jnthn finds the throwcat* ops in MoarVM a little cruel-sounding... | 21:42 | ||
| Poor cats. | |||
| FROGGS | hehe | ||
| I've two huge cats :o) | |||
| dalek | arVM: 2c3ec44 | jnthn++ | nqp-cc/src/QASTOperationsMAST.nqp: Map some more of the exception related ops. |
21:45 | |
| FROGGS | jnthn: you are working on try/catch? | 21:46 | |
| jnthn | yeah | ||
| FROGGS | awesome :D | ||
| jnthn | It's one of the big NQPHLL leftovers. | ||
| FROGGS | I might pick sprintf next, that was my plan after having bigints in passings its tests | 21:50 | |
| s/in // | |||
| jnthn | Well, but sprintf is implemented in NQP these days. | 21:51 | |
| So we don't need a sprintf op any more. :) | |||
| In C, I mean. | |||
| We can do that Rakudo JVM does :) | |||
|
21:51
colomon joined
|
|||
| jnthn | er, NQP JVM | 21:51 | |
| FROGGS | nqp@jvm has a C sprintf? | 21:53 | |
| O.o | |||
| I thought the way to go is src/HLL/sprintf.nqp | 21:55 | ||
| hmmm, maybe you said that we dont need a sprintf op in C these days | |||
| yeah, must be it :o) | |||
| jnthn | Right. :) | ||
| FROGGS | I just want to get it in place and fix the last ops that are missing or broken | 21:56 | |
| diakopter pops in for a sec | |||
| FROGGS .oO( now follows SPAGAIN? ) | 21:57 | ||
| diakopter | ? | 22:07 | |
| hm, I killed the room :( | 22:44 | ||
| jnthn | I suspect night time in Europe is more likely to blame :P | 22:45 | |