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