Perl 6 - the future is here, just unevenly distributed

IRC log for #parrot, 2014-03-11

Parrot | source cross referenced

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:31 rurban1 joined #parrot
00:32 benabik joined #parrot
00:36 rurban2 joined #parrot
00:46 kid51 Parrot still builds on darwin/ppc!
00:46 kid51 http://smolder.parrot.org/app/projects/report_details/44341
01:43 kid51 rurban: Smolder may be getting some attention at the Perl QA Hackathon this weekend
01:43 kid51 http://act.yapc.eu/qa2014/wiki?node=Projects
01:44 kid51 You might want to email the relevant people a note about the problems you've been seeing
02:05 rurban1 joined #parrot
02:10 kid51_ joined #parrot
02:12 FROGGS_ joined #parrot
02:51 Chirag joined #parrot
03:06 rurban1 joined #parrot
04:08 rurban1 joined #parrot
05:09 rurban1 joined #parrot
05:10 rurban2 joined #parrot
05:43 drift joined #parrot
06:32 vincent22 joined #parrot
07:08 rurban1 joined #parrot
08:09 rurban1 joined #parrot
08:13 FROGGS joined #parrot
08:18 denis_boyun joined #parrot
08:53 User_ joined #parrot
09:10 rurban1 joined #parrot
09:22 TonyC joined #parrot
10:11 rurban1 joined #parrot
10:33 kid51 joined #parrot
11:09 denis_boyun joined #parrot
11:12 rurban1 joined #parrot
12:13 rurban1 joined #parrot
12:17 Chirag joined #parrot
12:31 woolfy joined #parrot
13:15 rurban1 joined #parrot
13:19 Chirag_ joined #parrot
14:08 benabik joined #parrot
14:13 bluescreen joined #parrot
14:16 rurban1 joined #parrot
15:16 rurban1 joined #parrot
15:25 bluescreen_ joined #parrot
16:11 dalek parrot/rurban/t-nci-sig: 7f91210 | rurban++ | / (3 files):
16:11 dalek parrot/rurban/t-nci-sig: t nci sig: bring back nci cstring support
16:11 dalek parrot/rurban/t-nci-sig:
16:11 dalek parrot/rurban/t-nci-sig: WIP. needed in most external code.
16:11 dalek parrot/rurban/t-nci-sig: review: https://github.com/parrot/parrot/commit/7f91210058
16:11 dalek parrot/rurban/t-nci-sig: 76282bb | rurban++ | / (3 files):
16:11 dalek parrot/rurban/t-nci-sig: t nci sig: bring back nci cstring support
16:11 dalek parrot/rurban/t-nci-sig:
16:11 dalek parrot/rurban/t-nci-sig: WIP. needed in most external code.
16:11 dalek parrot/rurban/t-nci-sig: review: https://github.com/parrot/parrot/commit/76282bb083
16:20 dalek parrot/rurban/SDL: caffe58 | rurban++ | runtime/parrot/library/SDL (3 files):
16:20 dalek parrot/rurban/SDL: [examples] SDL: fix concat and replace t with p sig
16:20 dalek parrot/rurban/SDL:
16:20 dalek parrot/rurban/SDL: really need to revert  0a8cc07d1cc5e remove support for deprecated "t" nci signatures
16:20 dalek parrot/rurban/SDL: review: https://github.com/parrot/parrot/commit/caffe58909
16:20 dalek parrot/rurban/SDL: d36f8e0 | rurban++ | runtime/parrot/library/SDL.pir:
16:20 dalek parrot/rurban/SDL: [examples] SDL: more libSDL_ttf-2.0 choices to search for
16:20 dalek parrot/rurban/SDL: review: https://github.com/parrot/parrot/commit/d36f8e0ebc
16:29 rurban1 joined #parrot
16:50 dalek parrot/rurban/t-nci-sig: caffe58 | rurban++ | runtime/parrot/library/SDL (3 files):
16:50 dalek parrot/rurban/t-nci-sig: [examples] SDL: fix concat and replace t with p sig
16:50 dalek parrot/rurban/t-nci-sig:
16:50 dalek parrot/rurban/t-nci-sig: really need to revert  0a8cc07d1cc5e remove support for deprecated "t" nci signatures
16:50 dalek parrot/rurban/t-nci-sig: review: https://github.com/parrot/parrot/commit/caffe58909
16:50 dalek parrot/rurban/t-nci-sig: 466ba2d | rurban++ | runtime/parrot/library/SDL (3 files):
16:50 dalek parrot/rurban/t-nci-sig: Merge branch 'rurban/SDL' into rurban/t-nci-sig
16:50 dalek parrot/rurban/t-nci-sig: review: https://github.com/parrot/parrot/commit/466ba2d10e
16:50 dalek parrot/rurban/t-nci-sig: 04a82d2 | rurban++ | runtime/parrot/library/SDL.pir:
16:51 dalek parrot/rurban/t-nci-sig: SDL: fix example to use t sig again
16:51 dalek parrot/rurban/t-nci-sig: review: https://github.com/parrot/parrot/commit/04a82d28f6
16:51 dalek parrot/rurban/t-nci-sig: e803cd9 | rurban++ | runtime/parrot/library/SDL.pir:
16:51 dalek parrot/rurban/t-nci-sig: SDL: more libSDL_ttf-2.0 choices to search for
16:51 dalek parrot/rurban/t-nci-sig: review: https://github.com/parrot/parrot/commit/e803cd9166
17:06 Chirag joined #parrot
17:06 Chirag_ joined #parrot
17:07 rurban1 joined #parrot
17:13 dalek parrot/rurban/SDL: d01289b | rurban++ | runtime/parrot/library/SDL.pir:
17:13 dalek parrot/rurban/SDL: [examples] SDL: print SDLLIBPATH= only on failure
17:13 dalek parrot/rurban/SDL: review: https://github.com/parrot/parrot/commit/d01289bf4f
17:13 dalek parrot/rurban/t-nci-sig: 04bc9a9 | rurban++ | runtime/parrot/library/SDL.pir:
17:13 dalek parrot/rurban/t-nci-sig: [examples] SDL: print SDLLIBPATH= only on failure
17:13 dalek parrot/rurban/t-nci-sig: review: https://github.com/parrot/parrot/commit/04bc9a9ca4
17:25 rurban1 joined #parrot
17:28 rurban2 joined #parrot
17:33 Chirag joined #parrot
17:47 denis_boyun joined #parrot
17:49 FROGGS joined #parrot
18:22 TonyC_ joined #parrot
18:47 rurban1 joined #parrot
18:49 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:50 Chirag rurban?
19:01 TonyC joined #parrot
19:13 rurban yes
19:13 rurban wait a sec. I guess 2.0.0
19:14 Chirag I am actually looking into 2.0.0
19:15 rurban The problem started with the pcc_hackathon_6Mar10
19:15 Chirag ok..
19:16 rurban yes, 363ca41fa8984c6c6859cdb6a7f3adfd seems to be it
19:16 Chirag ?
19:17 Chirag hash for?
19:17 rurban git show sha
19:18 rurban gitk is also nice. enter the sha into the SHA1 ID: field
19:19 Chirag ok .. let me try
19:20 rurban This hackathon also removed tailcall support as far as I see it
19:21 Chirag_ joined #parrot
19:22 rurban Did you also see http://lists.parrot.org/pipermail/parrot-dev/2013-February/007354.html ?
19:22 Chirag_ Yes
19:23 Chirag I actually posted a couple of questions on the google group as well
19:25 rurban You also need to register formally at the GSOC. I think the period started Monday
19:26 Chirag_ Yes .. I was wondering how to go about for writing he proposal
19:27 Chirag joined #parrot
19:29 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:30 rurban No. The objective is just to improve performance of PCC (method calls)
19:30 rurban I only gave some ideas how to do it.
19:31 rurban There is the sig objects handling overhead (non-cached)
19:31 Util joined #parrot
19:31 rurban The ResizableIntegerArray overhead (realloc when adding a arg)
19:32 rurban and the unoptimized pmc2c compiler
19:32 rurban If you have better ideas, alrighty :)
19:33 Chirag hmm... I was under an impression that these are independent problems and each of them have to be tackled
19:34 Util #ps time. We can make it quick, to return you to your current conversation.
19:34 Chirag oh.. I ll wait :)
19:40 rurban you don't have to tackle all of time, no
19:48 vincent22 joined #parrot
19:48 rurban1 joined #parrot
19:49 rurban pcc is short for parrot calling convention
19:49 Chirag hmm..
19:50 Chirag 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
19:51 rurban slurpy args can be slow imho. they are not so common
19:51 Chirag I debugged using a small test case in perl
19:51 Chirag new $P0, ['Integer']
19:51 rurban similar for named args. we need to optimize for the common case
19:51 rurban I just saw
19:52 rurban I'll answer soon
19:52 Chirag there were lots of pmcs being returned
19:52 Chirag i was hoping for just one
19:52 rurban new creates a new one, the probkl,em is when calling a method in this object
19:53 Chirag which method?
19:53 rurban any. get_integer e.g.
19:53 Chirag hmm..
19:53 rurban I'll give a good example
19:53 Chirag but that is an implicit call .. not part of the user's code
19:55 rurban t/pmc/pmc_2.pir is better e.g.
20:01 rurban or t/pmc/sub_1.pasm because it involves invokecc
20:03 rurban Parrot_pcc_set_lex_pad is i.e. not always needed. one of the points in http://lists.parrot.org/pipermail/parrot-dev/2013-February/007354.html
20:04 rurban 456        if (!PMC_IS_NULL(sub->lex_info)) {
20:04 rurban 457            Parrot_pcc_set_lex_pad(INTERP, context, Parrot_pmc_new_init(INTERP,
20:04 rurban 458                    Parrot_hll_get_ctx_HLL_type(INTERP, enum_class_LexPad),
20:04 rurban 459                    sub->lex_info));
20:04 rurban 460            VTABLE_set_pointer(INTERP, Parrot_pcc_get_lex_pad(INTERP, context), context);
20:04 rurban 461        }
20:05 rurban the compiler should store the need for a lexpad as a sub flag. this is probably too complicated
20:05 rurban Better leave that to me
20:05 Chirag hmm.. i can try
20:06 Chirag 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.
20:07 rurban 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
20:07 rurban yes
20:08 Chirag nice
20:08 rurban you can write that into a .gdbinit file. much easier to work with
20:08 rurban set breakpoint pending on
20:08 rurban start
20:08 rurban b ...
20:09 Chirag ok .. i ll try that
20:09 rurban and also use ./parrot --help-debug flags
20:09 rurban I use -d1000 to see the internally generated pasm code, the arguments for each opcode
20:10 rurban but for this you need to use a recent master
20:10 rurban -t trace works fine with older parrots
20:10 rurban but -d not
20:10 rurban -D is also for run-time flags
20:10 rurban -d is for the compiler only
20:11 Chirag Frankly I have never used any of this...
20:11 rurban me neither
20:11 Chirag :D
20:12 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
20:12 rurban nope
20:12 rurban pl is perl. pasm is the flattened version of pir
20:13 rurban to create the pasm or pir testcases from a pl or t you need to run it through perl.
20:13 rurban like perl t/pmc/sub.t
20:13 Chirag yeah.. its parrot asm
20:14 rurban and then yoiu can run parrot on the single tests. like ./parrot -d1000 -v -t /pmc/sub_68.pir
20:15 Chirag hmm..
20:15 rurban pir is a more readable and simplified version of pasm
20:16 rurban imcc, the compiler, creates pasm opcodes from pir input
20:16 Chirag i got it now..
20:17 rurban With -t, the tracer, you follow the execution of the pasm opcodes
20:17 rurban and with -D you can set more run-time debugging flags
20:18 rurban the interesting (or bad) bits happen only in gdb
20:19 rurban the pasm must not change
20:20 rurban We pass around a CallContext arg on each call, because we use continuation passing style, as in scheme
20:21 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
20:23 Chirag so do we try not to have callcontext as a pmc?
20:23 Chirag but that would require changing a lot of things
20:23 rurban that's probably too much
20:23 Chirag hmm i figured
20:23 rurban it's more the overhead of fresh creation
20:24 rurban but I'm not sure
20:25 rurban callgrind should help to find the bottlenecks
20:25 rurban do you know such profiler tools?
20:25 rurban Instruments on the mac
20:25 Chirag no, i dont
20:25 Chirag should i look into it?
20:26 rurban e.g. valgrind --tool=callgrind ./parrot t/pmc/sub_68.pir
20:27 rurban and then run cachegrind on the resulting file
20:28 Chirag thats what the thread said .. profiling helped in the analysis
20:29 rurban I blogged a how to: http://blogs.perl.org/users/rurban/2013/04/install-kachegrind-on-macosx-with-ports.html
20:30 rurban Thats how to install the KDE part, but the other qt part is much easier. should be on ubuntu
20:30 rurban and how to use it: http://blogs.perl.org/users/rurban/2013/04/using-kcachegrind-on-potion.html
20:30 rurban ubunto,  right?
20:30 Chirag yes
20:31 Chirag i just installed valgrind
20:31 rurban ubunto has only kcachegrind
20:31 rurban you can try that, if it works.
20:31 rurban But I compiled my own qcachegrind
20:32 Chirag ok.. i ll try
20:34 rurban I never tried valkyrie
20:34 rurban apt-cache search cachegrind
20:35 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
20:35 rurban but this is really huge.
20:35 Chirag i have eclipse
20:36 Chirag i think i can try installing this add one
20:36 rurban with graphical UIs profiling is usually much easier
20:36 Chirag on*
20:37 rurban yes, looks good: http://www.eclipse.org/linuxtools/projectPages/valgrind/
20:37 Chirag i installed valkyrie just now
20:37 rurban valkyrie seems to be useless
20:37 rurban no cachegrind support
20:38 Chirag o
20:38 Chirag i ll have to install cdt plugin .. its there on my windows not on ubuntu
20:39 Chirag will take a while..
20:39 rurban on windows msvc shoulds also have good UIs for profiling
20:40 Chirag coding on windows will be tedious .. i ll stick with ubuntu
20:40 rurban :)
20:41 rurban most perl6 devs work on windows. very good environment
20:42 Chirag i have mingw on windows
20:42 Chirag for c
20:42 Chirag i ll have to install something for perl
20:43 Chirag i ll do that
20:43 Chirag u like windows?
20:46 Chirag should I just go ahead and submit a proposal?
20:47 Chirag I can write about my understanding of what needs to be done and give your wiki's link as "additional info URL"
20:47 Chirag ?
20:49 rurban I don't like windows that much. Too cumbersome to setup a good environment
20:49 rurban1 joined #parrot
20:50 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
20:50 rurban And we need to agree on mid-term and end-term goals. Do define success and failure
20:51 Chirag a timeline?
20:51 rurban success would be defined as mergable branch
20:52 rurban And we shouldn't merge a branch which makes it worse. In reality we did it very often before
20:52 Chirag hmm..
20:52 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
20:53 rurban 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.
20:54 Chirag I agree
20:54 rurban the blogging platform per se is not important. something with syntax highlighting or proper code formatting helps
20:55 rurban 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?
20:55 rurban I usually write down everything in a formal github issue ticket, with a branch
20:56 rurban the proposal not, but the deliverables yes
20:56 rurban if you got better ideas during analysis
20:58 rurban 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
21:01 rurban 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:05 dalek parrot/rurban/t-nci-sig: d45e523 | rurban++ | / (3 files):
21:05 dalek parrot/rurban/t-nci-sig: t nci sig: bring back nci cstring support
21:05 dalek parrot/rurban/t-nci-sig:
21:05 dalek parrot/rurban/t-nci-sig: WIP. needed in most external code.
21:05 dalek parrot/rurban/t-nci-sig: review: https://github.com/parrot/parrot/commit/d45e523f08
21:05 dalek parrot/rurban/t-nci-sig: 7ff3dbc | rurban++ | runtime/parrot/library/SDL.pir:
21:05 dalek parrot/rurban/t-nci-sig: SDL: fix example to use t sig again
21:05 dalek parrot/rurban/t-nci-sig: review: https://github.com/parrot/parrot/commit/7ff3dbc47a
21:05 dalek parrot/rurban/t-nci-sig: 6ca95d9 | rurban++ | runtime/parrot/library/SDL.pir:
21:05 dalek parrot/rurban/t-nci-sig: SDL: more libSDL_ttf-2.0 choices to search for
21:05 dalek parrot/rurban/t-nci-sig: review: https://github.com/parrot/parrot/commit/6ca95d936b
21:05 dalek parrot/rurban/t-nci-sig: f4bae6c | rurban++ | runtime/parrot/library/SDL.pir:
21:05 dalek parrot/rurban/t-nci-sig: [examples] SDL: print SDLLIBPATH= only on failure
21:05 dalek parrot/rurban/t-nci-sig: review: https://github.com/parrot/parrot/commit/f4bae6c31f
21:05 dalek parrot/rurban/t-nci-sig: 1fe7641 | rurban++ | / (4 files):
21:05 dalek parrot/rurban/t-nci-sig: nci: broke the nci tests
21:05 dalek parrot/rurban/t-nci-sig:
21:05 dalek parrot/rurban/t-nci-sig: added cstr converters, and also pshort/pint/plong for PMC access to integers (Integer).
21:05 dalek parrot/rurban/t-nci-sig: review: https://github.com/parrot/parrot/commit/1fe7641a81
21:07 Chirag The PCC Hackathon is the one in 2009?
21:09 rurban I see pcc_hackathon_6Mar10 in the commit, but it was probably in summer 2009
21:09 Chirag ok
21:10 Chirag what do you think should be the mid goal and end goal?
21:20 rurban lemme google it :)
21:20 Chirag ok
21:22 rurban A good midterm goal would be "student is on track"
21:22 Chirag :)
21:23 Chirag I was thinking like - 16% faster
21:23 rurban Not so fast.
21:23 rurban Don't write down numbers
21:24 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.
21:25 Chirag oh..
21:26 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:27 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
21:27 rurban no, we make the call. all the mentors discuss it together, who should get the slot.
21:28 Chirag ok..
21:28 rurban and not only mentors, the whole community
21:28 Chirag but google pays
21:28 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
21:29 Chirag I get introduced to OpenSource coding and thats how the community benfits
21:29 Chirag oh...
21:29 Chirag I wish I had holidays .. could have given more time
21:30 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 rurban our coding task)
21:30 rurban * How competent they appear
21:30 rurban * How much they interact with the community during the application period.
21:30 rurban There's a strong correlation between that and how successful the student
21:30 rurban is during the project. Perhaps more so than how competent they appear.
21:30 rurban * We also asked a very specific interesting question which could generate
21:30 rurban amazingly useful answers - I'll come back to that.
21:30 rurban * We then provided a value which mentors could just assign a number to
21:30 rurban * Then there was just "how fun does it seem?" :-)
21:30 rurban * How useful?
21:30 rurban * Impression of overall effort on their application to date. (this does
21:30 rurban indeed seem to correlate with effort during the program incidentally)
21:30 rurban * We also ranked an apparent understanding of their own project proposal as
21:30 rurban well as their understanding of the project as a whole.
21:30 rurban * We then added it up, and ranked accordingly.
21:31 rurban This was another organisation, but you get the idea
21:31 Chirag yes
21:31 rurban gsoc is during the summer holidays. you'll have free time in summer, do you?
21:31 Chirag yes
21:31 Chirag plenty
21:31 rurban :)
21:32 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)
21:33 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?
21:33 rurban our threads student wrote a very nice thesis
21:33 rurban I'm from Graz, yes
21:33 Chirag wow!
21:33 rurban Architecture and Mathematics. LISP mostly
21:34 Chirag oh
21:34 rurban and now mainly compilers
21:34 Chirag There is this DAVE system there which is super interesting
21:34 Chirag Virtual reality stuff
21:35 rurban Oh, I worked in VR also
21:35 rurban back in the early 90ies, when it was fancy
21:35 Chirag nice!
21:35 rurban In Graz we had the best compgeom profs
21:36 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
21:36 rurban Most of our profs went to fancy US or british universities later.
21:37 Chirag oh..
21:41 rurban just seidel (from the gauss-seidel elimination), aurenhammer, aichholzer, edelsbrunner, ...
21:41 Chirag oh
21:42 Chirag thats pretty amazing actually
21:43 rurban yes, but too complicated for me. compilers are much easier than compgeom
21:43 rurban AI is also much easier
21:43 Chirag I am taking a course in compilers right now
21:44 Chirag AI ..I attend for fun
21:44 rurban one of our profs "solved" the hamilton path problem > 14, which is usually unsolvable
21:45 Chirag wow!
21:45 Chirag who?
21:49 rurban This guy: https://en.wikipedia.org/wiki/Rainer_Burkard
21:50 rurban1 joined #parrot
21:51 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
21:51 rurban ok, bye
21:51 Chirag ok
21:51 Chirag thanks!
21:52 Chirag bye
21:52 Chirag wait my background as in my profile
21:52 Chirag ?
22:51 rurban1 joined #parrot
23:06 Psyche^ joined #parrot
23:28 rurban1 joined #parrot
23:34 kid51 joined #parrot
23:37 denisboyun joined #parrot
23:41 kid51 joined #parrot
23:48 kid51 joined #parrot
23:49 benabik joined #parrot

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

Parrot | source cross referenced