Parrot 6.1.0 "Black-collared Lovebird" | parrot.org/ | Log: irclog.perlgeek.de/parrot | #parrotsketch meeting Tuesday 19:30 UTC
Set by moderator on 18 February 2014.
00:31 rurban1 joined 00:32 benabik joined 00:36 rurban2 joined
kid51 Parrot still builds on darwin/ppc! 00:46
smolder.parrot.org/app/projects/rep...ails/44341
rurban: Smolder may be getting some attention at the Perl QA Hackathon this weekend 01:43
act.yapc.eu/qa2014/wiki?node=Projects
You might want to email the relevant people a note about the problems you've been seeing 01:44
02:05 rurban1 joined 02:10 kid51_ joined 02:12 FROGGS_ joined 02:51 Chirag joined 03:06 rurban1 joined 04:08 rurban1 joined 05:09 rurban1 joined 05:10 rurban2 joined 05:43 drift joined 06:32 vincent22 joined 07:08 rurban1 joined 08:09 rurban1 joined 08:13 FROGGS joined 08:18 denis_boyun joined 08:53 User_ joined 09:10 rurban1 joined 09:22 TonyC joined 10:11 rurban1 joined 10:33 kid51 joined 11:09 denis_boyun joined 11:12 rurban1 joined 12:13 rurban1 joined 12:17 Chirag joined 12:31 woolfy joined 13:15 rurban1 joined 13:19 Chirag_ joined 14:08 benabik joined 14:13 bluescreen joined 14:16 rurban1 joined 15:16 rurban1 joined 15:25 bluescreen_ joined
dalek rrot/rurban/t-nci-sig: 7f91210 | rurban++ | / (3 files):
t nci sig: bring back nci cstring support

WIP. needed in most external code.
16:11
rrot/rurban/t-nci-sig: 76282bb | rurban++ | / (3 files):
t nci sig: bring back nci cstring support

WIP. needed in most external code.
rrot/rurban/SDL: caffe58 | rurban++ | runtime/parrot/library/SDL (3 files):
[examples] SDL: fix concat and replace t with p sig

really need to revert 0a8cc07d1cc5e remove support for deprecated "t" nci signatures
16:20
rrot/rurban/SDL: d36f8e0 | rurban++ | runtime/parrot/library/SDL.pir:
[examples] SDL: more libSDL_ttf-2.0 choices to search for
16:29 rurban1 joined
dalek rrot/rurban/t-nci-sig: caffe58 | rurban++ | runtime/parrot/library/SDL (3 files):
[examples] SDL: fix concat and replace t with p sig

really need to revert 0a8cc07d1cc5e remove support for deprecated "t" nci signatures
16:50
rrot/rurban/t-nci-sig: 466ba2d | rurban++ | runtime/parrot/library/SDL (3 files):
Merge branch 'rurban/SDL' into rurban/t-nci-sig
rrot/rurban/t-nci-sig: 04a82d2 | rurban++ | runtime/parrot/library/SDL.pir:
SDL: fix example to use t sig again
rrot/rurban/t-nci-sig: e803cd9 | rurban++ | runtime/parrot/library/SDL.pir:
SDL: more libSDL_ttf-2.0 choices to search for
17:06 Chirag joined, Chirag_ joined 17:07 rurban1 joined
dalek rrot/rurban/SDL: d01289b | rurban++ | runtime/parrot/library/SDL.pir:
[examples] SDL: print SDLLIBPATH= only on failure
17:13
rrot/rurban/t-nci-sig: 04bc9a9 | rurban++ | runtime/parrot/library/SDL.pir:
[examples] SDL: print SDLLIBPATH= only on failure
17:25 rurban1 joined 17:28 rurban2 joined 17:33 Chirag joined 17:47 denis_boyun joined 17:49 FROGGS joined 18:22 TonyC_ joined 18:47 rurban1 joined
Chirag Hey! For the GSoC idea for Parrot "Improve performance of method signatures" .. I have been debugging Parrot 6.0.0 ... I wanted to compare it with the release that didnt make CallContext a pmc .. Can someone please suggest which release I should look into? 18:49
rurban? 18:50
19:01 TonyC joined
rurban yes 19:13
wait a sec. I guess 2.0.0
Chirag I am actually looking into 2.0.0 19:14
rurban The problem started with the pcc_hackathon_6Mar10 19:15
Chirag ok..
rurban yes, 363ca41fa8984c6c6859cdb6a7f3adfd seems to be it 19:16
Chirag ?
hash for? 19:17
rurban git show sha
gitk is also nice. enter the sha into the SHA1 ID: field 19:18
Chirag ok .. let me try 19:19
rurban This hackathon also removed tailcall support as far as I see it 19:20
19:21 Chirag_ joined
rurban Did you also see lists.parrot.org/pipermail/parrot-d...07354.html ? 19:22
Chirag_ Yes
Chirag I actually posted a couple of questions on the google group as well 19:23
rurban You also need to register formally at the GSOC. I think the period started Monday 19:25
Chirag_ Yes .. I was wondering how to go about for writing he proposal 19:26
19:27 Chirag joined
Chirag The three main objectives are the ones that you have mentioned on the wiki .. My proposal must include those and also my approach for the same right? 19:29
rurban No. The objective is just to improve performance of PCC (method calls) 19:30
I only gave some ideas how to do it.
There is the sig objects handling overhead (non-cached) 19:31
19:31 Util joined
rurban The ResizableIntegerArray overhead (realloc when adding a arg) 19:31
and the unoptimized pmc2c compiler 19:32
If you have better ideas, alrighty :)
Chirag hmm... I was under an impression that these are independent problems and each of them have to be tackled 19:33
Util #ps time. We can make it quick, to return you to your current conversation. 19:34
Chirag oh.. I ll wait :)
rurban you don't have to tackle all of time, no 19:40
19:48 vincent22 joined, rurban1 joined
rurban pcc is short for parrot calling convention 19:49
Chirag hmm..
so.. how does a case with slurpy args look like? 19:50
rurban perl6 already worked around most of the pmc2c issues. their remaining problem is one unnecessary pmc creation for each sub call
slurpy args can be slow imho. they are not so common 19:51
Chirag I debugged using a small test case in perl
new $P0, ['Integer']
rurban similar for named args. we need to optimize for the common case
I just saw
I'll answer soon 19:52
Chirag there were lots of pmcs being returned
i was hoping for just one
rurban new creates a new one, the probkl,em is when calling a method in this object
Chirag which method? 19:53
rurban any. get_integer e.g.
Chirag hmm..
rurban I'll give a good example
Chirag but that is an implicit call .. not part of the user's code
rurban t/pmc/pmc_2.pir is better e.g. 19:55
or t/pmc/sub_1.pasm because it involves invokecc 20:01
Parrot_pcc_set_lex_pad is i.e. not always needed. one of the points in lists.parrot.org/pipermail/parrot-d...07354.html 20:03
456\t if (!PMC_IS_NULL(sub->lex_info)) { 20:04
457\t Parrot_pcc_set_lex_pad(INTERP, context, Parrot_pmc_new_init(INTERP,
458\t Parrot_hll_get_ctx_HLL_type(INTERP, enum_class_LexPad),
459\t sub->lex_info));
460\t VTABLE_set_pointer(INTERP, Parrot_pcc_get_lex_pad(INTERP, context), context);
461\t }
the compiler should store the need for a lexpad as a sub flag. this is probably too complicated 20:05
Better leave that to me
Chirag hmm.. i can try
or maybe just the first one for now 20:06
rurban But basically, do as much as possible in the compiler to speed up run-time.
I would start with the pcc hackathon deoptimizations 20:07
Chirag 1 quick question .. am I using gdb right (not very good with it) .. i do gdb parrot .. run ... set br Parrot_pcc_build_call_from_varargs ... run the test case
rurban yes
Chirag nice 20:08
rurban you can write that into a .gdbinit file. much easier to work with
set breakpoint pending on
start
b ...
Chirag ok .. i ll try that 20:09
rurban and also use ./parrot --help-debug flags
I use -d1000 to see the internally generated pasm code, the arguments for each opcode
but for this you need to use a recent master 20:10
-t trace works fine with older parrots
but -d not
-D is also for run-time flags
-d is for the compiler only
Chirag Frankly I have never used any of this... 20:11
rurban me neither
Chirag :D
rurban I just enabled it again. it was butchered some time ago 20:12
Chirag do I always have to convert the test case .pasm to .pl, otherwise it throws an error
rurban nope
pl is perl. pasm is the flattened version of pir
to create the pasm or pir testcases from a pl or t you need to run it through perl. 20:13
like perl t/pmc/sub.t
Chirag yeah.. its parrot asm
rurban and then yoiu can run parrot on the single tests. like ./parrot -d1000 -v -t /pmc/sub_68.pir 20:14
Chirag hmm.. 20:15
rurban pir is a more readable and simplified version of pasm
imcc, the compiler, creates pasm opcodes from pir input 20:16
Chirag i got it now..
rurban With -t, the tracer, you follow the execution of the pasm opcodes 20:17
and with -D you can set more run-time debugging flags
the interesting (or bad) bits happen only in gdb 20:18
the pasm must not change 20:19
We pass around a CallContext arg on each call, because we use continuation passing style, as in scheme 20:20
Chirag so thats why multiple returns 20:21
rurban Then we have an extra return continuation, which was once part of the callcontext. 16% slower now
Chirag so do we try not to have callcontext as a pmc? 20:23
but that would require changing a lot of things
rurban that's probably too much
Chirag hmm i figured
rurban it's more the overhead of fresh creation
but I'm not sure 20:24
callgrind should help to find the bottlenecks 20:25
do you know such profiler tools?
Instruments on the mac
Chirag no, i dont
should i look into it?
rurban e.g. valgrind --tool=callgrind ./parrot t/pmc/sub_68.pir 20:26
and then run cachegrind on the resulting file 20:27
Chirag thats what the thread said .. profiling helped in the analysis 20:28
rurban I blogged a how to: blogs.perl.org/users/rurban/2013/04...ports.html 20:29
Thats how to install the KDE part, but the other qt part is much easier. should be on ubuntu 20:30
and how to use it: blogs.perl.org/users/rurban/2013/04...otion.html
ubunto, right?
Chirag yes
i just installed valgrind 20:31
rurban ubunto has only kcachegrind
you can try that, if it works.
But I compiled my own qcachegrind
Chirag ok.. i ll try 20:32
rurban I never tried valkyrie 20:34
apt-cache search cachegrind
Chirag i ll check it out 20:35
rurban and if you have a lot of space and time, eclipse-cdt-valgrind should also be quite good
but this is really huge.
Chirag i have eclipse
i think i can try installing this add one 20:36
rurban with graphical UIs profiling is usually much easier
Chirag on*
rurban yes, looks good: www.eclipse.org/linuxtools/projectP.../valgrind/ 20:37
Chirag i installed valkyrie just now
rurban valkyrie seems to be useless
no cachegrind support
Chirag o 20:38
i ll have to install cdt plugin .. its there on my windows not on ubuntu
will take a while.. 20:39
rurban on windows msvc shoulds also have good UIs for profiling
Chirag coding on windows will be tedious .. i ll stick with ubuntu 20:40
rurban :)
most perl6 devs work on windows. very good environment 20:41
Chirag i have mingw on windows 20:42
for c
i ll have to install something for perl
i ll do that 20:43
u like windows?
should I just go ahead and submit a proposal? 20:46
I can write about my understanding of what needs to be done and give your wiki's link as "additional info URL" 20:47
?
rurban I don't like windows that much. Too cumbersome to setup a good environment 20:49
20:49 rurban1 joined
rurban I would include most parts of my info into your proposal. if yiou agree with it. 20:50
Chirag yes all that I have understood
rurban And we need to agree on mid-term and end-term goals. Do define success and failure
Chirag a timeline? 20:51
rurban success would be defined as mergable branch
And we shouldn't merge a branch which makes it worse. In reality we did it very often before 20:52
Chirag hmm..
rurban I'm not a big fan of a strict timeline, but it makes it easier. Proper reporting of work in progress would be more important. to get faster feedback, when you hit a blocker
so our students get an parrot.org account and do blogging there 20:53
benabik I always liked to write weekly or bi-weekly goals, but also include a week or two of slack.
Chirag I agree 20:54
rurban the blogging platform per se is not important. something with syntax highlighting or proper code formatting helps
It's important to get more than one eye on the ideas and code 20:55
Chirag can the proposal be modified after I have submitted?
rurban I usually write down everything in a formal github issue ticket, with a branch
the proposal not, but the deliverables yes 20:56
if you got better ideas during analysis
we did the pcc hackathon to improve the situation not to make it worse. so it got better in some parts. e.g. we got down from 2 interim pmc's to one per call. so it's not a mere go back in time. it's more like a learning from the past 20:58
having a pmc for everything makes it nice for introspection. but if performance can be improved dramatically (and I think so) we can remove it. performance is our main problem 21:01
dalek rrot/rurban/t-nci-sig: d45e523 | rurban++ | / (3 files):
t nci sig: bring back nci cstring support

WIP. needed in most external code.
21:05
rrot/rurban/t-nci-sig: 7ff3dbc | rurban++ | runtime/parrot/library/SDL.pir:
SDL: fix example to use t sig again
rrot/rurban/t-nci-sig: 6ca95d9 | rurban++ | runtime/parrot/library/SDL.pir:
SDL: more libSDL_ttf-2.0 choices to search for
rrot/rurban/t-nci-sig: f4bae6c | rurban++ | runtime/parrot/library/SDL.pir:
[examples] SDL: print SDLLIBPATH= only on failure
rrot/rurban/t-nci-sig: 1fe7641 | rurban++ | / (4 files):
nci: broke the nci tests

added cstr converters, and also pshort/pint/plong for PMC access to integers (Integer).
Chirag The PCC Hackathon is the one in 2009? 21:07
rurban I see pcc_hackathon_6Mar10 in the commit, but it was probably in summer 2009 21:09
Chirag ok
what do you think should be the mid goal and end goal? 21:10
rurban lemme google it :) 21:20
Chirag ok
rurban A good midterm goal would be "student is on track" 21:22
Chirag :)
I was thinking like - 16% faster 21:23
rurban Not so fast.
Don't write down numbers
Chirag hmm... that was just based on the thread 21:24
rurban mid-term is more about following guidelines, coding style, understood the problem and is able to perform the task in the end.
Chirag oh.. 21:25
rurban I would also leave out numbers in the end-goal. >5% speedup sounds good, but that depends on the measurement. realistically we can also get only 2-3% percent speed up, but it coudl also be 10-20%. google likes to hear 150-200% speedup, I know. 21:26
Chirag oh... how does this work? google makes the call/ 21:27
rurban The main goal is to make you a good student and get mutual benefit
no, we make the call. all the mentors discuss it together, who should get the slot.
Chirag ok.. 21:28
rurban and not only mentors, the whole community
Chirag but google pays
rurban likely we'll have 10 applicants and 5 slots. yours seem very likely to be in the upper half. but we don't know
Chirag I get introduced to OpenSource coding and thats how the community benfits 21:29
oh...
I wish I had holidays .. could have given more time
rurban These were some previous arguments made for the ranking: * How well their coding task worked out (we split this into 3 pieces due to 21:30
our coding task)
* How competent they appear
* How much they interact with the community during the application period.
There's a strong correlation between that and how successful the student
is during the project. Perhaps more so than how competent they appear.
* We also asked a very specific interesting question which could generate
amazingly useful answers - I'll come back to that.
* We then provided a value which mentors could just assign a number to
* Then there was just "how fun does it seem?" :-)
* How useful?
* Impression of overall effort on their application to date. (this does
indeed seem to correlate with effort during the program incidentally)
* We also ranked an apparent understanding of their own project proposal as
well as their understanding of the project as a whole.
* We then added it up, and ranked accordingly.
This was another organisation, but you get the idea 21:31
Chirag yes
rurban gsoc is during the summer holidays. you'll have free time in summer, do you?
Chirag yes
plenty
rurban :)
my last student had to work during summer, but still got it done. well 50% of it 21:32
Chirag i was trying for a thesis which would start in aug ( if it comes through)
rurban you could use it as a thesis topic if your prof is nice 21:33
Chirag I was going through your profile, u studied at TU Graz?
rurban our threads student wrote a very nice thesis
I'm from Graz, yes
Chirag wow!
rurban Architecture and Mathematics. LISP mostly
Chirag oh 21:34
rurban and now mainly compilers
Chirag There is this DAVE system there which is super interesting
Virtual reality stuff
rurban Oh, I worked in VR also 21:35
back in the early 90ies, when it was fancy
Chirag nice!
rurban In Graz we had the best compgeom profs
Chirag Do you happen to know Dr. Marcel by any chance .. He's at ETH Zurich now 21:36
rurban but no money for expensive equipment
Most of our profs went to fancy US or british universities later.
Chirag oh.. 21:37
rurban just seidel (from the gauss-seidel elimination), aurenhammer, aichholzer, edelsbrunner, ... 21:41
Chirag oh
thats pretty amazing actually 21:42
rurban yes, but too complicated for me. compilers are much easier than compgeom 21:43
AI is also much easier
Chirag I am taking a course in compilers right now
AI ..I attend for fun 21:44
rurban one of our profs "solved" the hamilton path problem > 14, which is usually unsolvable
Chirag wow! 21:45
who?
rurban This guy: en.wikipedia.org/wiki/Rainer_Burkard 21:49
21:50 rurban1 joined
Chirag Its 3.20 am here... I have an 8 o clock class .. I should sleep :) 21:51
rurban Your application should not mention the goals strictly, more your background and what you seem to understand
ok, bye
Chirag ok
thanks!
bye 21:52
wait my background as in my profile
?
22:51 rurban1 joined 23:06 Psyche^ joined 23:28 rurban1 joined 23:34 kid51 joined 23:37 denisboyun joined 23:41 kid51 joined 23:48 kid51 joined 23:49 benabik joined