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
|