Parrot 5.3.0 "W00tstock Parrot" | parrot.org/ | Log: irclog.perlgeek.de/parrot | #parrotsketch meeting Tuesday 19:30 UTC
Set by moderator on 17 April 2013.
01:06 kid51 joined
sa1 dukeleto: pong 02:09
sa1 just woke up.
04:29 Psyche^ joined 06:23 Mike-PerlRecruiter_ joined 06:34 kurahaupo joined 07:13 denisboyun_ joined 07:28 denisboyun joined 08:05 brrt joined 08:23 dukeleto_tmp joined
dukeleto_tmp sa1: pong? 08:23
sa1 dukeleto_tmp: Yes, I am here.
dukeleto_tmp sa1: amazing! 08:24
sa1 I was still in the process of drafting a reply to the email.
dukeleto_tmp sa1: we seem to be in opposite time zones
sa1: great!
sa1 I did run into the same problem in unigy_build_system branch 08:25
dukeleto_tmp sa1: ok
sa1 unify*
dukeleto_tmp sa1: don't worry too much
sa1: can you run the parrot-libgit2 tests?
sa1 dukeleto_tmp: no 08:26
pastie.org/7704598
It builds fine however.
dukeleto_tmp sa1: can you run "parrot" on the failed file and output that 08:27
sa1: failed test output without details is hard to debug :)
sa1 I know. I was not sure how to get more detailed output.
dukeleto_tmp: pastie.org/7714974 08:28
dukeleto_tmp sa1: looks like you don't have parrot-libgit2 in a findable place 08:31
sa1: rather, libgit2
sa1: have you installed libgit2?
sa1: granted, parrot-libgit2 should warn loudly if you don't have it installed properly
sa1 Oh, I thought it shipped with git
dukeleto_tmp sa1: libgit2 is different that git 1.x 08:32
sa1: libgit2.github.com
sa1: basically, it is the insides of Git 2.x
sa1 Right, I should have realized that.
dukeleto_tmp sa1: gsoc is all about learning :)
sa1: it is a new project and a small niche of the Git world right now
sa1: which timezone are you in?
sa1: do you feel like you have enough info to write a first draft of a proposal? 08:33
sa1 dukeleto_tmp: UTC+5:30
dukeleto_tmp: No. I need to read a lot before I can start writing a proposal.
dukeleto_tmp sa1: i am UTC-(7/8) depending on DST :) 08:34
sa1: i suggest you write and then read. They are due soon :)
sa1: you will need feedback. Best is to get us something to give you feedback on, as fast as possible.
I will be incommunicado from April29-May6, and I think students proposals are due before May6
sa1 I know. I just need a little more info to go on. Some milestones I can divide my project into.
Its May 3 08:35
dukeleto_tmp sa1: milestones: updating the parrot-libgit2 API bindings to the latest stable release (may involve fixing our build tools)
sa1 dukeleto_tmp: What currently works and doesn't? 08:36
As in does it already work with most Parrot languages?
dukeleto_tmp sa1: this is the full libgit2 API : libgit2.github.com/libgit2/#HEAD
sa1: parrot-libgit2 has tests that use PIR, Winxed and NQP, I believe
sa1: it could easily be used in Rakudo, too. If we make it work well :) 08:37
sa1: right now, only a tiny portion of the libgit2 api has proper bindings and tests/docs
sa1: one milestone is for you to write this using parrot-libgit2: libgit2.github.com/libgit2/ex/HEAD/...index.html 08:38
sa1: i.e. translate that example into code written in a Parrot language that uses parrot-libgit2
sa1: that example uses various API functions.
sa1: you need to make sure they are all accessible, work correctly, have documentation
sa1 okay. We parse header files to convert them into PIR, right? 08:39
dukeleto_tmp sa1: is that a bit more concrete? I think that is a good basis for a proposal
sa1: yes. There is a crazy little utility that parses libgit2 C header files (!) and generates all the dlfunc glue to make the functions accessible to PIR
sa1: in addition to that, there is an object-oriented Git2 interface written in Winxed 08:40
sa1 dukeleto_tmp: Yes, it is. I also need to see how PIR is accessed by languages, and need to know about issues I will have to care about? Object lifetimes? GC? Or is that taken care of by Winxed?
dukeleto_tmp sa1: winxed is a parrot language, vaguely javascript-ish
sa1: winxed does memory management. You can be gleefully unaware of the GC :) 08:41
sa1: btw, feel free to pick a different libgit2 example to implement. That looked like one of the easier ones :)
sa1: half the api funcions in that example already exist :) 08:42
sa1 I'm still a little confused
If we use glue code to generate functions, then do we need to do more stuff on top? 08:43
As in, why are half the api functions unimplemented?
And can I schedule my project on the basis of adding those functions properly? 08:44
dukeleto_tmp sa1: some glue does not get generated, because our header parser is not perfect
sa1: also, just about all things are available from PIR, but that is very low-level 08:45
sa1 Oh, I will have to add them to the OO interface then.
dukeleto_tmp sa1: winxed is a higher-level interface, which is more pleasant, but needs for the walls to be painted and the carpet to be put down :)
sa1: yes, mostly to the higher level interface. But some low-level PIR funcs are missing due to header mis-parsing 08:46
sa1: if you can think of a better way, other than manual, please let me know :)
sa1: the script allows us to deal with large libgit2 API changes. Those are mostly behind us, but I am sure we will see a few more.
sa1 okay.
dukeleto_tmp sa1: which college/uni do you attend? 08:47
dukeleto_tmp is curious :)
sa1 dukeleto_tmp: IIT Kharagpur, India
I will also look at how other language bindings take care of API updates then. 08:49
dukeleto_tmp sa1: sounds great! 08:51
sa1: your english is very good :) 08:52
sa1: i would like to do a google hangout with you if you are up for it. Not now, but sometime in the next 3 days
sa1 dukeleto_tmp: Yeah, I'm better at it than my mother tongue, at least at writing it. 08:53
dukeleto_tmp sa1: i think it will help you, but you seem to be pretty self-sufficient so far
sa1: which of the many languages in India is your mother tongue?
sa1 dukeleto_tmp: Hindi
dukeleto_tmp: There may be some firewall-related issues with a Hangout. I am not sure, I'll have to test it. 08:54
dukeleto_tmp sa1: ok, no worries. IRC is fine, too. Seeing each others face and hearing a voice helps a lot, though.
sa1: i can do Skype too, or try something else that works for you
sa1 Right, I'll check what works. 08:55
dukeleto_tmp will go to sleep in a few minutes
sa1 Meanwhile I've installed libgit2 and have run ldconfig, but I seem to be having the same issues.
dukeleto_tmp had a long long day and it is now 2am $localtime
sa1: make sure you have the dir that you installed libgit2 into in your LD_LIBRARY_PATH 08:56
sa1: or make sure it is in a dir that is being searched
sa1 okay, good night then. I'll start writing my draft proposal.
dukeleto_tmp sa1: you can use "strace command" to see every system call and what is happening
sa1: awesome! Best of luck. Very excited. libgit2 is the future! :)
sa1 dukeleto_tmp: I think arch should handle directories correctly. I'll check.
dukeleto_tmp sa1: i rarely install into normal dirs, so I use LD_LIBRARY_PATH a lot 08:57
sa1 hmm, stat("/usr/lib/parrot/5.3.0/languages/winxed/dynext/io_ops.so", 0x7fff928165a0) = -1 ENOENT (No such file or directory) 08:58
seems to be the only error
08:59 denisboyun_ joined
dukeleto_tmp denisboyun_: hola 09:02
denisboyun_ dukeleto_tmp: hi
dukeleto_tmp sa1: hmmmmm
denisboyun_: howdy!
denisboyun_: i am around for a few more minutes. What do you need help with?
sa1: travis-ci.org/letolabs/parrot-libg...ds/6622654
sa1: i just got travis CI running the parrot-libgit2 tests again
denisboyun_: which project were you interested in again? 09:03
denisboyun_: also, which timezone are you in and which school do you attend?
dukeleto_tmp likes to know :)
sa1 dukeleto_tmp: Is test output missing there? 09:05
dukeleto_tmp sa1: it is really big and slow and you might need to click on something
denisboyun_ dukeleto_tmp: I was interesting on Improve Web UI of app-parrot-create project. I live on UTC/GMT +2 hours
dukeleto_tmp sa1: reaaaally big and slow
sa1: there is travis-lite.com, i think, that is no-js 09:06
denisboyun_: oh yes, app-parrot-create
denisboyun_: you sound like you have a lot of perl experience
denisboyun_: you can be creative, but what we need is a function app that can generate language skeletons and that has a nice UI
denisboyun_: nice CSS, with links to useful documentation 09:07
denisboyun_: this will be a community resource and it is quite important
sa1 dukeleto_tmp: I meant I can see the results of build command, not for test command.
dukeleto_tmp denisboyun_: the code is kind of crappy right now. The idea is awesome and important. The current implementation is Less Than Awesome
sa1: hmmm. will need to look at that tomorrow 09:08
denisboyun_ I understand. I was finishing the proposal and I'll send you soon 09:09
sa1 dukeleto_tmp: okay
denisboyun_ dukeleto_tmp: I understand. I was finishing the proposal and I'll send you soon
dukeleto_tmp denisboyun_: awesome!
dukeleto_tmp gets some much-need sleep
great to talk to you GSoC students! You are the future. Keep doing amazing things. 09:10
09:44 denisboyun joined
dalek p: 8c9a25c | jnthn++ | src/vm/jvm/QAST/Compiler.nqp:
Map HLL interop ops (though not implemented yet).
09:54
p: 906e635 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/ (2 files):
Implement nqp::settypehll[role]? on JVM.
09:55
p: b18c101 | jnthn++ | src/vm/jvm/ (2 files):
Implement nqp::isbig_I.
p: f28e949 | jnthn++ | src/vm/jvm/ (2 files):
Implement nqp::getpayload.
kudo/jvm-support: b51e852 | jnthn++ | tools/build/Makefile-JVM.in:
Start building Perl6::World in JVM build.

It'll need a few more changes and depends on a couple of missing ops, but it does now cross-compile.
09:56
10:23 brrt joined
dalek p: adfa9c8 | jnthn++ | src/vm/parrot/ (2 files):
Add nqp::isint/nqp::isnum/nqp::isstr for Parrot.
10:52
p: 9c79d1f | jnthn++ | src/vm/jvm/ (2 files):
Add nqp::isint/nqp::isnum/nqp::isstr for JVM.
kudo/jvm-support: 26dc105 | jnthn++ | / (2 files):
Eliminate final pir:: in Perl6::Pod.
10:56
kudo/jvm-support: 70c0109 | jnthn++ | / (3 files):
Eliminate final pir:: in optimizer.
kudo/jvm-support: 97f7855 | jnthn++ | tools/build/Makefile-JVM.in:
Add Perl6::Pod to the JVM build.
10:57 xcombelle joined
dalek p: 12b0eb8 | jnthn++ | tools/build/Makefile-JVM.in:
Start building/installing P5Regex library on JVM.
12:16
12:19 bluescreen joined 12:44 mtk joined
dalek p: d228c92 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
Error reporting tweak.
12:58
p: 2ac90f3 | jnthn++ | src/vm/jvm/ (2 files):
Implement neg_I and abs_I for JVM.
p: 115b38c | jnthn++ | src/vm/jvm/ (2 files):
Implement nqp::radix_I.
p: 14266b9 | jnthn++ | tools/build/Makefile-JVM.in:
Try to unbust Linux/Unix build.

nwc10++ and [Coke]++ for reporting/diagnosis.
13:06
13:33 darbelo joined 13:38 denisboyun joined 14:04 isBEKaml joined
isBEKaml rurban: (cygwin issues) - rebaseall and restart didn't solve the fork/memory issue that I reported a couple of days back. 14:06
rurban i'll try
isBEKaml rurban: searching through cywin DL didn't reveal anything.
any other ideas?
rurban a second cygwin1.dll in the PATH? 14:07
isBEKaml rurban: :O 14:08
I see two pairs of cygwin1.dll and cygwind-0.dll in /usr/bin and /bin. 14:09
rurban /usr/bin and /bin are hardlinked
isBEKaml rurban: maybe I'm mistaken, but ls -l didn't reveal anything.
rurban: if they are hardlinked like you say, shouldn't timestamps be the same? They are different. Oct19 2012 and Jan 1 2013 in /bin and /usr/bin respectively. 14:11
rurban can you open a ticket on github please
what? that might be your problem
if so don't open a ticket
can you check with a windows tool if cywgin/bin and cygwin/usr/bin both exist? if so that's your problem 14:12
isBEKaml rurban: /usr/bin doesn't show up on explorer. 14:14
rurban good 14:18
your old issue is already outr of my irc backlog. can you please add a ticket? it was on rakudo with 5.3.0 right? 14:19
isBEKaml rurban: yes, I'd faced this issue on parrot HEAD. 14:20
rurban do you have another parrot already installed? does /usr/local/lib/libparrot.dll.a exist?
isBEKaml rurban: no, parrot installs are local, not global.
rurban I get a gcc-4 -o pbc_to_exe.exe src/string/api.c:659: failed assertion 'encoding' 14:21
rakudo: perl Configure.pl --gen-parrot=HEAD, right? 14:23
p6eval rakudo 37c995: OUTPUTĆƒā€šĆ‚Ā«[31m===[0mSORRY![31m===[0mĆƒĀ¢ĆÆĀæĀ½Ć‚Ā¤Two terms in a rowĆƒĀ¢ĆÆĀæĀ½Ć‚Ā¤at /tmp/iHoMONE3eW:1ĆƒĀ¢ĆÆĀæĀ½Ć‚Ā¤------> [32mrl Configure.pl --gen-parrot=HEAD, right[33m�[31m?[0mĆƒĀ¢ĆÆĀæĀ½Ć‚Ā¤ expecting any of:ĆƒĀ¢ĆÆĀæĀ½Ć‚Ā¤ argument listĆƒĀ¢ĆÆĀæĀ½Ć‚Ā¤ postfixĆƒĀ¢ĆÆĀæĀ½Ć‚Ā¤ infix stopperĆƒĀ¢ĆÆĀæĀ½Ć‚Ā¤ infix or meta-infixĆƒĀ¢ĆÆĀæĀ½Ć‚Ā¤ statemĆƒĀ¢Ć¢ā€šĀ¬Ć‚Ā¦
isBEKaml rurban: No, I build them all separately. 14:24
rurban: this happened right after I git pull'd.
rurban so you first git pull a parrot, make install it and then build rakudo? 14:25
isBEKaml rurban: I usually do: git pull && perl Configure --prefix=$PWD && make -j3
rurban: yes.
rurban I see
isBEKaml rurban: passing --with-parrot=<local/path/to/parrot> to nqp and rakudo.
rurban and the parrot prefix is /usr/local? 14:26
or something private?
isBEKaml rurban: no, $PWD. the current directory where parrot resides.
rurban hmm. I never tested this. And this worked with 5.2, right? 14:27
isBEKaml rurban: yes, this failure is fairly recent.
14:28 brrt joined
rurban I'm trying normal rakudo --gen-parrot=HJEAD which does perl Configure.pl --optimize --prefix=/usr/src/parrot/rakudo-git/install, like yours 14:29
isBEKaml rurban: Okay. Since this always happens with cyggcc*dll, how do I check if there had been any accidental upgrades? 14:31
cyggcc_s-1.dll
rurban /var/log/setup.log or such 14:32
isBEKaml rurban: on 18 Apr, it installed autorebase - I don't recall doing this. 14:35
rurban this came with the new setup 14:36
dukeleto ~~
isBEKaml rurban: that's the only thing I found. Nothing else. 14:37
dukeleto: I'm happy to see gsoc activity on parrot this year too! 14:38
rurban well, some cyggcc_s.dll version had some issues with C++ AFAI remember. wrong binutils
But I need to see your context. So please add a ticket.
tickets are cheap
isBEKaml rurban: Okay, will do. :-) 14:39
rurban thanks
isBEKaml dukeleto: ISTR you were posting gsoc outcomes every year but couldn't find the link for last year. :) 14:40
dukeleto: erm, post gsoc updates/reports.
rurban isBEKaml: please attach cygcheck -s -v -r > cygcheck.out also 14:44
isBEKaml rurban: sure 14:45
rurban At which stage does your error exactly appear?
I'm ok up to src/gen/CORE.setting now 14:46
isBEKaml rurban: you got to CORE.setting? Does that mean you got parrot built? In my case parrot build itself had failed, so I can't proceed to nqp or rakudo. 14:52
rurban yes, I compiled everything. It's something corrupt in your system 14:53
dalek p: 1fd7f29 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
Correction to freshcoderef.
14:59
p: 1c43791 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/sixmodel/SerializationWriter.java:
Improve error reporting.
p: e8b076b | jnthn++ | src/NQP/Actions.nqp:
Fix compiling our-scoped subs.

Not sure why we ever got away without this on Parrot.
kudo/jvm-support: a996710 | jnthn++ | / (3 files):
Perl6::Ops is backend-specific.
15:01
kudo/jvm-support: 32f7240 | jnthn++ | / (2 files):
Add a partly translated Perl6::Ops for JVM.

We'll have some Perl 6 specific ops in JVM land. This translates the mappings, though of course the ops all still need implementing. This just means we can compile things that refer to them.
kudo/jvm-support: 8c05ec6 | jnthn++ | src/Perl6/Actions.nqp:
nqp::concat => nqp::concat_s

They are just synonyms by now.
kudo/jvm-support: 72ab250 | jnthn++ | / (2 files):
Add Perl6::Actions to the JVM build.
15:06 brrt joined
isBEKaml rurban: yep, problem's somewhere in gcc. clang threw gobs of warning, but parrot compiled on my machine. 15:21
rurban reinstall gcc-core
nope. gcc4-core it is 15:22
better: libgcc1-4.5.3-3
15:24 isBEKaml_ joined 15:26 brrt joined 15:45 isBEKaml joined
isBEKaml rurban: reinstalling gcc fixed it. . 15:46
rurban: thanks for all the help!
rurban good! 15:49
dalek p: 7853513 | jnthn++ | src/vm/jvm/ (2 files):
Greatly shrink lexical name list code size.

Can further optimize this later as many times the names are not needed at all in execution.
16:24
kudo/jvm-support: a79969d | jnthn++ | tools/build/Makefile-JVM.in:
Add Perl6::Grammar to JVM build.
kudo/jvm-support: 491bf5e | jnthn++ | tools/build/Makefile-JVM.in:
Add Perl6::Optimizer to the JVM build.
kudo/jvm-support: 2877033 | jnthn++ | tools/build/Makefile-JVM.in:
Add Perl6::Compiler to JVM build.
16:28 contingencyplan joined
dalek kudo/jvm-support: 982d91e | jnthn++ | / (2 files):
Add compiler frontend program to the JVM build.
16:40
kudo/jvm-support: 911d56b | jnthn++ | .gitignore:
Update .gitignore.
16:50 darbelo joined 16:52 alester joined 18:23 Mike-PerlRecruiter_ joined 18:35 jleto joined
jleto ~~ 18:35
dukeleto_tmp blarg
arnsholt The hero of a thousand IRC clients? =) 18:36
dukeleto_tmp really need to fix my irc setup
18:43 estrabd joined
dukeleto ~~ 18:47
estrabd: welcome
denisboyun dukeleto: I sent you my proposal 19:18
dukeleto denisboyun: i see that 19:20
denisboyun: you are getting a commit bit right now. Are you prepared to use it for good? 19:21
denisboyun: you now have push+pull privs on letolabs/parrot-libgit2 on github 19:22
denisboyun: do you know how to change your git remotes?
denisboyun: feel free to create any branches you want in that repo 19:23
denisboyun: and please fix the bugs you found. You can do that in master 19:27
denisboyun: bug fixing in master is fine. If you think you will break something, make a branch.
denisboyun: there is continuous integration on Travis CI, but the emails only go to me
denisboyun: i need to fix that. There is no mailing list, yet.
sa1 dukeleto: er, are you confusing us? denisbuyon is working on app-parrot-create, right? 19:30
confusing between*
dukeleto sa1: sorry 19:31
sa1: you will get the libgit2 commit bit, and he will get the app-parrot-create bit
dukeleto fixes it
denisboyun dukeleto: yes i'm workind with app-parrot-create 19:32
sa1 Right, I'm still working on my proposal. :) I will complete a first draft tomorrow.
dukeleto denisboyun: ok, you now have access to the correct repo :) 19:33
sa1: you too :)
sa1: use your bit for good! Don't break stuff, make branches for things "bigger than a breadbox" :)
sa1 dukeleto: I was looking at winxed and winxed.org is down.
There's only a google code page.
dukeleto winxed.net
new domain
somebody stole the old one 19:34
sa1: would you mind submitting a pull request updating that? Various things in parrot.git and other repos need to be fixed.
sa1 Oh, that url needs to be changed in the readme then.
dukeleto just learned this the other day
sa1 Yeah, I will.
dukeleto sa1: thanks so much!
sa1: if you are ever stuck and I am not here, emailing me at duke@leto.net is the best way to get feedback. And people in here are very nice :) 19:35
denisboyun: same goes for you. don't be afraid to ask questions here and on parrot-dev and/or parrot-users. You can tell them I sent you :)
sa1 dukeleto: Right, I will. 19:36
dukeleto parrot-users is for things related to users (what is the best way to use parrot language/libary/widget X) whereas parrot-dev is most for parrot.git core development
if you run into a parrot.git bug, send it to parrot-dev
winxed is releases as part of parrot.git, but it has it's own repo 19:37
hasn't seen action lately, but i have a hunch it will pick back up soon
PerlJam dukeleto++ 20:03
dukeleto PerlJam: for what? 20:04
dukeleto likes to know
what people appreciate, that is.
PerlJam being a nice guy I guess. Helping sa1, continuing to shepherd people and projects relating to parrot, etc. 20:05
dukeleto PerlJam: thank you. I appreciate it. 20:06
Coke dukeleto++
20:18 kurahaupo joined 20:42 brrt joined 20:49 brrt left 21:03 kurahaupo joined
dalek p: a33f00e | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/ (6 files):
Simplify invokeInternal exception handling.

Part of preparation for moving it into the generated code.
21:24
p: 3326be2 | jnthn++ | src/vm/jvm/ (2 files):
Generate handler currently in invokeInternal.
p: fbf65e4 | jnthn++ | src/vm/jvm/ModuleLoader.nqp:
Eliminate use of a hack.
p: 2a34af7 | jnthn++ | src/vm/jvm/ (3 files):
Basic usage of invokedynamic for sub calls.

Plenty left to improve yet, but this gets the basics in place.
21:30
Coke do we need ConfigureJVM in rakudo to support --gen-nqp ? 21:45
that seems like LHF for a fiver.
21:47 kurahaupo left 22:29 kurahaupo joined 22:30 kurahaupo left
dalek p: ba958d2 | jnthn++ | src/vm/jvm/ (2 files):
Support calling invokedynamic BS with extra args.
22:37
p: b1d4669 | jnthn++ | src/vm/jvm/ (2 files):
Pass name as extra string arg.

This avoids running into issus where we use chars that are not allowed in JVM method names, fixing the 11-sub.t regression.
p: 55e954c | jnthn++ | src/vm/jvm/ (2 files):
Pass call site index as static data, not per call.
22:40 kid51 joined 23:15 sivoais joined