Parrot 6.5.0 "Black-winged Lovebird" | parrot.org/ | Log: irclog.perlgeek.de/parrot | #parrotsketch meeting Tuesday 19:30 UTC
Set by moderator on 17 June 2014.
01:05 FROGGS_ joined 01:17 woosley joined 03:25 woosley joined 05:05 dalek joined 05:15 dalek joined 05:39 dalek joined 05:50 dalek joined 06:18 dalek joined 06:53 basiliscos joined 06:56 FROGGS joined 08:02 GeJ_ joined 10:12 tadzik joined, tadzik left 12:20 Util joined 13:38 awwaiid joined 13:47 rurban joined 13:56 Chirag joined
Chirag rurban: Hey! 14:00
rurban_ Hey 14:02
Chirag Are you still in Orlando? 14:03
14:05 FROGGS joined
rurban_ No, just arrived back home in the office. Still a bit tired. 14:05
Chirag oh.. no problem :) 14:06
rurban_ I implemented some parts by myself to check performance. 4% for return and another 4% for self only.
How is your stuff going? Afraid to share it?
Chirag No.. I committed 5 days back.. hit a blocker.. 14:07
github.com/ZYROz/parrot/tree/ZYROz/pcc-gh1080
rurban_ I see, almost 14:09
Chirag It just took me a few hours to code for that...
rurban_ I mean almost right :)
return is easier than the args
and the hard-coded indices 0-3 don't look right 14:10
Chirag I couldn't make much sense of the small letter signatures..
yeah the indices.. deffinitely wrong
but that was according callContext
to callContext*
Also, maybe my perl code is a little untidy.. 14:11
rurban_ Your perl looks okay, just the indices look wrong. 14:13
I'll check against mine... (I didn't push it on purpose yet :)
Chirag Also, I haven't handled -- i, o, s
Yeah... no spoilers :D
rurban_ i can be ignired I guess. or checked for sanity, i is for self only 14:14
Chirag hmm.. but I couldn't figure which call would be made in that case.. 14:15
rurban_ i is just a hint fpor the prev P rthat' 14:17
s it is for self. but we already know that's it's self from $params_varargs
Chirag ok.. so maybe it's just the indices.. 14:19
rurban_ I'll show you the return part: gist.github.com/rurban/0bd64ed6643ac8851212 14:20
Chirag umm.. why did you put 0 for all cases? 14:22
rurban_ 0 is the position of the arg in the CallContext 14:24
0 for 1st arg or return, 1 for 2nd and so on
Chirag I didn't get it .. i was under an impression that each type corresponds to an index --- 0 for PCC, 1 for INTEGER ..... 14:27
rurban_ no, the type is encoded as the VTABLE_get_${$type}_keyed_int function name 14:29
for pmc,string,number,integer
Chirag ok.. can you please elaborate a little on the what exactly you meant by -- position of the arg in the CallContext ?? 14:30
rurban_ args are stored in CallContext as simple array. 1st arg at index 0, 2nd arg at index 1, ... 14:36
this arg is re-used also for the return value 14:37
kind of an arg and return values stack
so the fix is to use: $params_vararg_list[$arg_index] = VTABLE_get_${$type}_keyed_int(interp, _call_object, $arg_index);
nope: $params_vararg_list[$arg_index] = VTABLE_get_${type}_keyed_int(interp, _call_object, $arg_index); 14:38
type is a simple hash lookup into my $sigtype = {'P' => 'pmc',
'S' => 'string',
'I' => 'integer',
'N' => 'number'};
Chirag my $arg_index is just a counter..
rurban_ yes, the n-th arg 14:39
1st arg from 0, 2nd from 1, ...
Chirag I think I have tried that already .. Will try again
rurban_ like in gist.github.com/rurban/3d7fac25d31785b472ac 14:40
And your editor still has the wrong whitespace setttings. 4 for indent, no ending whitespace 14:41
Chirag ah..didnt take care of indent.. 14:42
14:45 bluescreen joined
rurban_ Does $params_varargs always start with a '&'? 14:48
Chirag I tried printing.. and it seemed like that 14:50
rurban_ we also get s and n sig types with stringbuilder 15:06
15:59 rurban1 joined 16:06 Chirag_ joined 16:10 rurban joined
Chirag_ rurban: Won't "II" in fileHandle call VTABLE_set_.... twice?? 16:47
I see you are dealing with this case separately.. just curious... 16:48
rurban_ I just pass that to the old code.
it sets 2 return values
Chirag_ yes.. 16:49
rurban_ It's easy to code, but I was too lazy
Chirag_ i called it twice but it throws an error
rurban_ See gist.github.com/rurban/0bd64ed6643...-patch-L33 16:50
you need to set indicesx 0 and 1
indices
Chirag_ ah.. got it
16:56 FROGGS joined
Chirag_ rurban: github.com/ZYROz/parrot/commit/677...66f9452f20 16:58
throws an error -- Cannot open FileHandle, no path
rurban_ I think I got the same now... 17:01
no, now I've got libicuuc.so: undefined reference to `__cxa_throw_bad_array_new_length@CXXABI_1.3.8' 17:02
Chirag_ with my branch?
rurban_ yes, and some more fixes of mine 17:03
Chirag_ i could try handling the "II" case separately like you did?
rurban_ I would first only optimize the common cases, not the rare ones 17:04
It's only FileHandle.tell 17:05
I see, glibc conflict 17:07
I'll reboot
this is my current work: gist.github.com/rurban/d9f4571019b479b4b616 17:09
Chirag_ github.com/ZYROz/parrot/commit/ecf...48a12f5ca1 17:19
doesnt include your patch though ... 17:20
17:42 rurban joined
rurban rebooted 17:43
Chirag_ works?
rurban nope. icu problem I guess 17:47
I got a new backwards incompat libstdc++
Chirag_ github.com/ZYROz/parrot/commit/ecf...48a12f5ca1 .. but without your patch
rurban Found the problem in my /usr/local 17:57
$$sigtype loks wrong to me 17:58
ok, got it working now. the problem was a mismatch between the new system gcc-4.9 and my old gcc-4.8 env in /usr/local 17:59
FAIL: t/pmc/class.t 13, 23-25 18:03
Chirag_ $sigtype doesn't work ..
rurban I see why. $sigtype->{$returns_signature} it needs to be with your version 18:04
it's a hashref, not a hash
18:04 rurban1 joined
rurban with my other patch I only get t/pmc/class.t: 13 failing 18:14
Chirag_ hmm.. i still get Cannot open FileHandle, no path
rurban looks like the return "II" issue with tell to me 18:20
Chirag_ but I handled that with Parrot_pcc_set_call_from_c_args 18:24
rurban yes, I don't see the error yet 18:25
I see, you don't check for o yet 18:53
Parrot_FileHandle_nci_open needs to use the old call with o or implement optional arg handling
See gist.github.com/rurban/d9f4571019b...patch-L125 where I check for the arg adverbs c,f,l,n,o,p,s 19:00
19:05 rurban1 joined
rurban That's the code needed for :optional gist.github.com/rurban/8ec67d23ba5d52c08cc6 19:09
Chirag_ hmm.. return is not the problem then .. will do 19:25
I will try to implement optional-handling by tomorrow... 19:30
rurban optional is a bit tricky... 19:33
I implemented it now, but it's not quite correct yet 19:55
20:06 rurban1 joined 20:49 Coke joined 21:12 bluescreen_ joined