00:14 woolfy joined 00:31 cognominal__ joined 00:56 flussenc1 joined 00:59 hoelzro joined 01:00 rurban__ joined, cxreg joined 01:04 japhb joined 01:05 timotimo joined 01:19 ggoebel11111 joined 01:21 woolfy joined 01:27 jnap joined 01:41 woosley joined 02:10 FROGGS_ joined
dalek arVM: 343a6c4 | jimmy++ | / (6 files):
Add CPointer REPR
02:14
arVM: 73ac986 | jimmy++ | / (8 files):
Add CStr REPR
03:40
03:50 woosley1 joined 03:55 woosley joined 03:58 woosley2 joined
dalek arVM: 7f3856c | jimmy++ | src/6model/reprs/CStr.c:
small fix
04:10
04:13 woosley joined
dalek arVM: c2a5d7e | jimmy++ | src/6model/reprs/CStr.c:
Remove redundant semicolon
04:15
05:46 woosley1 joined 06:28 vincent22 joined
dalek arVM: 2bd6501 | jimmy++ | / (10 files):
Add CArray REPR
06:49
06:51 woosley joined 06:52 woosley2 joined 06:57 woosley joined 06:59 woosley1 joined 07:03 woosley joined
FROGGS_ JimmyZ++ 07:32
jnthn JimmyZ++ 07:56
That's useful :)
The invokes from within a REPR can't stay, but the rest looks good :)
JimmyZ good. 08:00
jnthn: There is a 'XXX' in allocate function in CStr.C 08:01
08:23 brrt joined 08:58 woosley1 joined 09:12 vincent21 joined 09:16 woolfy left
jnthn JimmyZ: Yeah. Memroy is already zeroed so that can go. 09:18
dalek arVM: 28c6728 | jimmy++ | src/6model/reprs/C (2 files):
small cleanups
09:23
JimmyZ jnthn: Do you mind if I changed most of 'allocate' static functions in 'this_repr' to 'MVM_gc_allocate_object'? 09:32
09:34 FROGGS[mobile] joined
jnthn JimmyZ: I don't understand what you're asking to change... 09:35
JimmyZ jnthn: gist.github.com/zhuomingliang/9503739 09:38
jnthn oh, the signatures match? :) 09:39
haha :)
I don't immediately see a problem.
It saves a call per allocation too :)
Which is dirty cheap in C, but still... 09:40
JimmyZ jnthn: most of reprs have this one :), if you don't mind, I will apply the patch :P
so we don't need to maintain the static one 09:42
jnthn yeah, think I'm fine with it.
JimmyZ good ,thanks 09:43
09:48 eternaleye joined
dalek arVM: 38343ba | jimmy++ | src/6model/reprs/ (29 files):
Clean up static allocate function in REPRs
09:54
10:17 eternaleye joined
jnthn Less code. More speed. Wow. :) 10:34
brrt jnthn - speaking about speed…
brrt wants to make butterflies fly 10:35
i'm wondering if there are any plans with regards to moarvm-JIT
jnthn brrt: Yes, I replied to you yesterday and you vanished and so I wondered if you hated the answer ;)
brrt one thing that I already see as positive is that moarvm executes - if i read the website correctly - and AST rather than a certain bytecode format
i vanished because i had to run
sorry :-)
jnthn np 10:36
brrt and i planned to go online that evening but life came in beetween
jnthn anyway, see log
np :)
Well, it is bytecode by the time it gets to the VM
But I already have some code on my box at home that assembles a CFG out of it.
Started working on the dominance calcs needed for SSA.
brrt … ok, i suppose thats a pretty big part of it already 10:37
jnthn So by the time you get to the JIT there's already an SSA representation of the program there.
Yeah. I see you're thinking of this for GSoC. I can have that aspect of it ready by GSoC start date I guess. When is that, if you know?
brrt noooo idea
some months from now
jnthn ok, O(months) I can manage. O(couple of weeks) would be harder :) 10:38
brrt fwiw, ConcBlockingQueue LGTM :-)
jnthn I'm open on what exactly we use to implement the JIT. I'd been looking a bit into dynasm.
Which seems to strike a balance between "avoids some annoying stuff" and "leaves us a lot of control". 10:39
brrt hmmm
brrt should see dynasm
jnthn But I'm in no way tied to it.
It just looked promising.
brrt ah, i see
there's also gnu lightning iirc
jnthn It basically saves you worrying about the details of assembling.
gnu lightning seems to do a bit more, in so far as it abstracts away the specifics of a particular assembly language 10:40
Which is a mixture of good and bad. 10:41
brrt what is the bad?
not seeing it obviously :-)
… directly
dynasm does support quite a few backends… so thats a thing 10:42
jnthn The abstraction layer probably carries a cost, and it may stop you reaching to specific instructions you might like to use.
brrt true
jnthn Like, some day we'd likely want to JIT hyper ops on int or flaot arrays into SIMD.
brrt there's also the issue on memory representation 10:43
hmmm yeah, i think that will be too much for a summer
jnthn And licensing. dynasm is no problem there; lightning is GPL...
Well, yeah, I don't expect you to do that bit int he summer :D
Just saying we should have a path that we can eventually take to get there :) 10:44
brrt i agree
jnthn need to take @student to lunch here...bbiab
brrt hmm, with a library like dynasm and you working (together) on brining the AST to SSA form… its less of a monstrous project i mimagined
ok, see you :-) 10:45
11:20 chipdude joined
jnthn back 11:29
timotimo i hope dinner was good :) 11:30
jnthn Some pork, some potato in creamy sauce thingy, and some salad :) 11:33
.tell brrt yes, I think it will be possible to get something interesting done in a summer :) 11:35
JimmyZ another thing is that we have been waiting for pushing NFG branch for half a year. 11:38
timotimo the branch exists, but is private? :( 11:41
jnthn JimmyZ: Well, nobody has jumped up to fix ropes, which means I'm gonna have to do it, which will probably have a drastic impact on mergabiltiy of any existing work. See the churn from IO for what happens when I decide to fix something. :P
The problem with ropes isn't so much the data structure is wrong, though, which it was in IO (as in, DecodeStream didn't exist). 11:42
More that the implementation (a) has bugs, and (b) makes them hard to find. 11:43
timotimo amen to that. i looked only briefly at the implementation and it scared me 11:44
though i must admit, i'm not really a rockstar-developer and without doing a bit of scribbling on a whiteboard or something such potentially complicated data structures and algorithms give me trouble 11:45
JimmyZ jnthn: speaking of dynasm, gerd said how about the one qemu is using 11:49
which is a bit like the tinycc one 11:50
yeah, tcg 11:53
jnthn timotimo: It's natural to need to scribble :) 11:55
timotimo: I had bits of paper with DAGs on all over my place at one point while working on the Perl 6 multi-dispatch... :) 11:56
timotimo that's reassuring :)
jnthn Data structure comprehension varies widely, though. I noticed that yesterday when I watched a couple of folks struggle over a hash of hashes, which I think I somehow have forgotten how to find hard. :) 11:57
timotimo hashes of hashes are only hard if you use hashes for the hash key :P :P
jnthn otoh, .Net makes it look like Dictionary<string, Dictionary<string, SomeThingy>> as the type :)
timotimo yeah, that can look a bit scary
what do we have, my %foo of Hash? 11:58
jnthn I find them more verbose than scary tbh
Well, we have the choice of not talking about the types :P
But yeah, my %foo of Hash is fine also. :)
timotimo right, but it *may* help
jnthn Yeah, sometimes type annotations make helpful documentatino. 11:59
timotimo neat. for some reason i thought the "of" thing was NYI
jnthn No, it's is (for container type) that is NYI
timotimo but "my Hash %foo" is the same as that, right? it's not the same as "my %foo is Hash"?
*that* can end up very confusing :) 12:00
jnthn my Hash %foo and my %foo of Hash are the same, yes.
timotimo i wonder if that spelling should warn and suggest the "of" spelling instead?
probably same for my Array @a or my List @a or something
i should take that to #perl6 in any case 12:01
jnthn Well, the key thing to learn is that a sigil already implies a type.
@ = Positional, % = Associative, & = Callable
r: multi x(Int &y) { say 1 }; multi x(Str &y) { say 2 }; sub z returns Int { }; x &z 12:02
camelia rakudo-moar 1aeb7c: OUTPUT«Cannot call 'x'; none of these signatures match:␤:(Int &y)␤:(Str &y)␤ in sub x at /tmp/tmpfile:1␤ in block at /tmp/tmpfile:1␤␤»
..rakudo-parrot 1aeb7c: OUTPUT«Cannot call 'x'; none of these signatures match:␤:(Int &y)␤:(Str &y)␤ in any at gen/parrot/BOOTSTRAP.nqp:1219␤ in any at gen/parrot/BOOTSTRAP.nqp:1210␤ in sub x at /tmp/tmpfile:1␤ in block at /tmp/tmpfile:1␤␤»
..rakudo-jvm 1aeb7c: OUTPUT«Cannot call 'x'; none of these signatures match:␤:(Int &y)␤:(Str &y)␤ in any at gen/jvm/BOOTSTRAP.nqp:1212␤ in any at gen/jvm/BOOTSTRAP.nqp:1202␤ in sub x at /tmp/tmpfile:1␤ in block at /tmp/tmpfile:1␤␤»
timotimo huh.
jnthn r: multi x(Int &y) { say 1 }; multi x(Str &y) { say 2 }; sub z of Int { }; x &z
camelia rakudo-moar 1aeb7c: OUTPUT«Cannot call 'x'; none of these signatures match:␤:(Int &y)␤:(Str &y)␤ in sub x at /tmp/tmpfile:1␤ in block at /tmp/tmpfile:1␤␤»
..rakudo-parrot 1aeb7c: OUTPUT«Cannot call 'x'; none of these signatures match:␤:(Int &y)␤:(Str &y)␤ in any at gen/parrot/BOOTSTRAP.nqp:1219␤ in any at gen/parrot/BOOTSTRAP.nqp:1210␤ in sub x at /tmp/tmpfile:1␤ in block at /tmp/tmpfile:1␤␤»
..rakudo-jvm 1aeb7c: OUTPUT«Cannot call 'x'; none of these signatures match:␤:(Int &y)␤:(Str &y)␤ in any at gen/jvm/BOOTSTRAP.nqp:1212␤ in any at gen/jvm/BOOTSTRAP.nqp:1202␤ in sub x at /tmp/tmpfile:1␤ in block at /tmp/tmpfile:1␤␤»
jnthn huh...was sure that worked.
r: sub z of Int { }; say &z ~~ Callable 12:03
camelia rakudo-parrot 1aeb7c, rakudo-jvm 1aeb7c, rakudo-moar 1aeb7c: OUTPUT«True␤»
jnthn r: sub z of Int { }; say &z ~~ Callable[Int]
camelia rakudo-parrot 1aeb7c, rakudo-jvm 1aeb7c, rakudo-moar 1aeb7c: OUTPUT«False␤»
jnthn hmmm
timotimo oh, huh. that seems wrong
jnthn I think it's meant to set Callable[Int] on it, yeah
JimmyZ jnthn: Did you look a bit into tcg? :P 12:06
timotimo doesn't know what that means 12:07
12:07 zakharyas joined
JimmyZ timotimo: git.qemu.org/?p=qemu.git;a=tree;f=tcg;hb=HEAD 12:08
timotimo ah
12:20 masak joined, brrt joined 12:21 cognominal__ joined
jnthn JimmyZ: 'tis also an option...with different trade-offs. :) 13:33
Choice is good :)
JimmyZ aye :P
13:58 jnap joined 16:21 jnap1 joined
brrt off 16:28
16:28 brrt left 16:52 jnap joined
jnthn on 20:48
timotimo heya jnthn :) 20:49
dalek arVM: 167c197 | jonathan++ | src/core/nativecall.c:
Support CPointer args and results.

With this, we can now pass t/nativecall/01-basic.t from NQP.
21:37
22:14 cognominal joined
timotimo gist.github.com/timo/eda741286aaa16a8a8b5 - moar segfault when trying to free a MVMString in vm_destroy_instance 22:19
jnthn hmm... 22:23
Ticket it along with what you dumped. Too tired to look now :)
timotimo can do
maybe i'll go hunt it instead
let you get back to NativeCall or what you're up to right now :)
jnthn Right now I'm drinking a class of water and wondering why my foot is so sore... 22:24
glass, even :) 22:25
lue
.oO(distilled class water)
22:27
jnthn figures he'll get some sleep 22:31
Should have some tuits tomorrow after teaching, and then got all Friday for Perl 6 things too :)
'night o/ 22:33
lue jnthn o/ 22:36
timotimo a whole day of Perl 6 work? Must be my birthday! 22:38
22:51 FROGGS joined 23:37 d4l3k_ joined, Util joined 23:38 tadzik joined