Camelia, the Perl 6 bug

IRC log for #perl6, 2009-09-16

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs

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

All times shown according to UTC.

Time Nick Message
00:03 snarkyboojum_ joined #perl6
00:06 snarkyboojum_ joined #perl6
00:19 ihrd joined #perl6
00:19 ihrd left #perl6
00:21 nihiliad joined #perl6
00:30 diakopter rakudo: say(say(3)) # timeout?
00:30 p6eval rakudo a9ff30:  ( no output )
00:31 diakopter rakudo: say(say) # timeout??
00:32 p6eval rakudo a9ff30:  ( no output )
00:33 diakopter pmichaud: ^^ known issue?
00:35 pmichaud rakudo: say(1);
00:35 p6eval rakudo a9ff30:  ( no output )
00:35 pmichaud looks like a evalbot problem
00:35 pmichaud testing locally
00:35 diakopter rakudo: say(7,8);
00:36 p6eval rakudo a9ff30: OUTPUT«78␤»
00:36 pmichaud pmichaud@plum:~/rakudo$ ./perl6
00:36 pmichaud > say(say(3));
00:36 pmichaud 3
00:36 pmichaud 1
00:36 lambdabot <no location info>: parse error on input `;'
00:36 pmichaud works locally
00:36 diakopter moritz_: awaken! :)
00:37 diakopter (kidding)
00:38 diakopter rakudo: say(say,say)
00:38 p6eval rakudo a9ff30:  ( no output )
00:38 diakopter that's weird; got an error when msg p6eval directly
00:45 nihiliad joined #perl6
00:59 pmichaud well, say(say,say) should be an error
00:59 pmichaud "say requires an argument"
01:00 colomon pmichaud: Is {} interpolation supposed to eat trailing whitespace?
01:00 s1n yay, fedex just tried to deliver my laptop!
01:00 phenny s1n: 15 Sep 15:27Z <pmichaud> tell s1n saxby's in allen sounds good to me
01:01 s1n pmichaud: great, i'll try to send out the notice tonight
01:02 maja_ joined #perl6
01:02 pmichaud s1n: what did you end up getting? (laptop)
01:03 sm` joined #perl6
01:05 s1n pmichaud: dell mini 10v, 16g ssd, 6cell, $312 shipped
01:17 KyleHa joined #perl6
01:25 rhr joined #perl6
01:26 cognominal rakudo:  eval(  'package A;  sub ok { print "ok\n" };   bless {}', :lang<perl5> ).ok;
01:26 p6eval rakudo a9ff30: OUTPUT«ok␤Scalars leaked: 1␤»
01:26 cognominal jonathan++
01:27 cognominal rakudo:  eval(  'package A;  sub ok { print @_ . \n" };   bless {}', :lang<perl5> ).ok( "ok");
01:27 p6eval rakudo a9ff30: OUTPUT«String found where operator expected at (eval 2) line 1, at end of line␤Can't find string terminator '"' anywhere before EOF at (eval 2) line 1.␤»
01:28 cognominal rakudo:  eval(  'package A;  sub ok { print @_ . "\n" };   bless {}', :lang<perl5> ).ok( "ok");
01:28 p6eval rakudo a9ff30: OUTPUT«2␤Scalars leaked: 1␤»
01:29 cognominal rakudo:  eval(  'package A;  sub ok { print @_ . "\n" };   bless {}', :lang<perl5> ).ok( "aaaaaa");
01:29 p6eval rakudo a9ff30: OUTPUT«2␤Scalars leaked: 1␤»
01:30 cognominal rakudo:  eval(  'package A;  sub ok { print $_[0] . "\n" };   bless {}', :lang<perl5> ).ok( "aaaaaa");
01:30 p6eval rakudo a9ff30: OUTPUT«A=HASH(0x8c92f50)␤Scalars leaked: 1␤»
01:31 cognominal rakudo:  eval(  'package A;  sub ok { print $_[1] . "\n" };   bless {}', :lang<perl5> ).ok( "aaaaaa");
01:31 p6eval rakudo a9ff30: OUTPUT«aaaaaa␤Scalars leaked: 1␤»
01:34 pugs_svn r28248 | colomon++ | [t/spec] Start sketching in inverse trig functions as well.
01:34 cognominal rakudo:  eval(  'package A;  sub ok { print $_[1] . "\n" };   bless {}', :lang<perl5> ).ok( 1.1);
01:34 p6eval rakudo a9ff30: OUTPUT«1.1␤Scalars leaked: 1␤»
01:35 cognominal now I need to figure how p6eval is compiled, this error message is more helpful than a crash
01:35 cognominal which I have on my side
01:36 cognominal kudos, jnthn
01:40 sevvie joined #perl6
01:42 cognominal rakudo:  say eval(  'package A;  sub ok { print $_[1] . "\n";  (1,2) };   bless {}', :lang<perl5> ).ok( 1.1);
01:42 p6eval rakudo a9ff30: OUTPUT«1.1␤»
01:43 cognominal rakudo:  say eval(  'package A;  sub ok { print $_[1] . "\n";  1 };   bless {}', :lang<perl5> ).ok( 1.1);
01:43 p6eval rakudo a9ff30: OUTPUT«1.1␤»
02:12 colomon rakudo: say acosech(1.1, "degrees");
02:12 p6eval rakudo a9ff30: OUTPUT«46.7309477285262␤»
02:13 colomon rakudo: say cosech(46.730947728, "
02:13 p6eval rakudo a9ff30: OUTPUT«Confused at line 2, near "(46.730947"␤in Main (src/gen_setting.pm:3469)␤»
02:13 colomon rakudo: say cosech(46.730947728, "degrees");
02:13 p6eval rakudo a9ff30: OUTPUT«1.10000000001502␤»
02:22 justatheory joined #perl6
02:22 justatheory_ joined #perl6
02:26 astinus_ joined #perl6
02:30 jglick joined #perl6
02:40 TiMBuS joined #perl6
02:45 synth^3 joined #perl6
02:48 synth joined #perl6
02:53 Saran joined #perl6
03:00 Saran Hi,Would like to volunteer for perl6 development?can some one guide me please
03:02 s1n doh, hackathon notice sent out early, did get to elaborate on what the schedule entails
03:02 s1n pmichaud: should i send out _another_ email with more info?
03:11 Saran Hi,This is saran with 5+ yrs of exp in perl/unix.Lemme know how can i get into perl-6 development? can someone help me please ?
03:15 Saran_ joined #perl6
03:15 Confield left #perl6
03:17 s1n Saran: see perl6.org, you can help with the Community, contribute tests for the Specification, hack on a Compiler, contribute Documentation, or help out on Whatever perl6 code you want :)
03:18 Saran Am currently into perl6.org. Am more interested to hack into compiler.
03:18 Saran Thanks for the response s1n
03:19 KyleHa joined #perl6
03:20 Saran Which link shld i proceed with?
03:20 s1n Saran: rakudo is the most complete compiler so far
03:20 Saran @s1n : which link shld i proceed with ? sorry for asking newbie question
03:20 lambdabot Maybe you meant: run src wn
03:20 s1n depends, what do you want to do?
03:21 s1n and you don't have to apologize for asking questions :)
03:22 Saran @s1n . Thanks . Would like to contribute in coding part with a better algorithms
03:22 lambdabot Maybe you meant: run src wn
03:22 s1n Saran: if you want to work on a compiler, i urge you to look at either Rakudo (Parrot based, mix of languages) or SMOP (C based)
03:22 am0c joined #perl6
03:23 s1n Saran: also, we hand out commitbit to the test suite like candy
03:24 Saran @s1n : ok. Am currently on this link "http://rakudo.org/how-to-get-rakudo"
03:24 lambdabot Maybe you meant: run src wn
03:24 s1n Saran: that's a good start. you can pull down the git repo, submit patches to RT, or create your own fork and stash your patches if you know your way around git
03:26 Saran @s1n : Is it possible to setup rakudo in windows XP ?
03:26 lambdabot Maybe you meant: run src wn
03:27 s1n Saran: from what i hear, parrot works in windows, jnthn knows more about the windows development of rakudo
03:28 Saran @s1n : Thanks for guiding me to the new person.At present am downloading the zip file and thanks for the patience s1n
03:28 lambdabot Maybe you meant: run src wn
03:29 Saran @s1n : one more question . What is the fork and watch option ? it asks for a login credentials..
03:29 lambdabot Maybe you meant: run src wn
03:29 s1n Saran: well, if you create a fork of rakudo in github, you need a github account
03:30 s1n and watching just pulls in commit logs on to your dashboard so you can see what's happening
03:30 KyleHa By forking, you create a copy of the code as it is, in your own repository, for you to work on any way you want without it affecting the original.
03:31 KyleHa ...and once you have something awesome to contribute back, it's easy merge your work on the fork back into the original.
03:31 Saran @s1n @kyleha thanks for the explaning the meaning of "fork and watch" and tolerating with my newbie question
03:31 lambdabot Maybe you meant: run src wn
03:31 s1n you can do this without a fork though
03:32 KyleHa Yes, you don't have to use github to do the same thing as a 'fork' on github does.
03:32 s1n Saran: "tolerate"? i love answering questions, the more the merrier :)
03:32 KyleHa Without questions to answer, what use would I be?  8-)
03:33 s1n without questions, the community does not grow :)
03:33 Saran @s1n @Kyleha : Am in the process of signing up github . so hold on for a minute . thanks for ur guidance :)
03:33 lambdabot Maybe you meant: run src wn
03:33 agentzh joined #perl6
03:34 s1n Saran: btw, you don't need to add the @ in front of our nicks, it's confusing the lambabot
03:34 Saran @s1n @KyleHa : Do we need to give SSH keys for the free signup in github.wat is the use?Am  i making more complicated?
03:34 lambdabot Maybe you meant: run src wn
03:35 s1n Saran: i don't believe an ssh key is needed unless you want to push changes to your fork
03:35 KyleHa Giving an SSH key makes it easier to access github without having to type a password a lot, but it's not strictly necessary.
03:35 s1n Saran: but note that rakudo still accepts patches from RT
03:36 Saran @s1n @KyleHa : I shall go without SSH keys right now :)
03:36 lambdabot Maybe you meant: run src wn
03:36 KyleHa I've never gone without the SSH key, so I don't really know what the impact of not having it is.
03:39 Saran @kyleha @s1n : There is a option to "create,find repository" and then "peruse the github guides"  .Do i need to create a repository or to find an existing one
03:39 lambdabot Unknown command, try @list
03:41 am0c joined #perl6
03:42 Saran @kyleha @s1n : right now i am studying http://github.com/guides/using-git-an​d-github-for-the-windows-for-newbies . Is this the right point to start?
03:42 lambdabot Unknown command, try @list
03:42 s1n you should be able to just do a "git clone git://github.com/rakudo/rakudo"
03:42 KyleHa If you're trying to install Git on Windows, that looks like a place to start.
03:43 KyleHa If you have git already, s1n is right, just run with it.
03:43 s1n Saran: have fun, welcome to the community, but i need to go to bed
03:44 Saran @s1n : Thanks..pls drop me your mail id .so that i will mail you if i have any clarifications..is that ok ?
03:44 lambdabot Maybe you meant: run src wn
03:45 KyleHa Saran: For help by email, it would probably better to ask a mailing list.
03:45 KyleHa Like these:  http://dev.perl.org/perl6/lists/
03:46 KyleHa (Not that s1n wouldn't give helpful answers by mail, but the lists have even more helpful people to give helpful answers.)
03:47 s1n Saran: KyleHa is right, but you can just leave me a message here (my irc client will let me know) if you must
03:47 Saran @Kyleha @ s1n : Am already in  perl6-all-subscribe@perl.org. Will shoot a mail with my questions..
03:47 lambdabot Unknown command, try @list
03:48 Saran @s1n : thanks for your guidance .. Good night
03:48 lambdabot Maybe you meant: run src wn
03:48 * s1n bed&
03:48 Saran @kyleha : Do i need to create a new repository? What i need to do with that?
03:48 lambdabot Unknown command, try @list
03:49 KyleHa I haven't been following the whole conversation, so I'm not sure I'm up to speed on what you're going for.
03:49 KyleHa You want to work on Rakudo.  Is that right?
03:49 KyleHa You're trying to set up Git on your local machine to do that work.  Right?
03:50 Saran @Kyleha : I signed up for github free account.there are 3 options (Create , find repository and user guide)
03:50 lambdabot Unknown command, try @list
03:51 Saran @Kyleha : Do i need to create a repository to start setting up on my local machine. or shall i skip that part..right now?
03:51 lambdabot Unknown command, try @list
03:51 KyleHa OK.
03:51 KyleHa You don't need to create a repo.  You'd do that if you were starting your very own new project.
03:52 KyleHa If you're trying to work on Rakudo on your local machine, there are a couple of routes...
03:52 Saran @Kyleha : Thanks .. understood.
03:52 lambdabot Unknown command, try @list
03:53 Saran @kyleha : right now i am extracting the "rakudo-rakudo-9a61441ec3281​f0306f88f67d47eeee5a3ae35f4" on my local windows machine
03:53 lambdabot Unknown command, try @list
03:53 KyleHa Either way you go, this page is good to have up:  http://github.com/rakudo/rakudo
03:54 KyleHa I'm not sure what that means.
03:54 KyleHa So, the two ways to go are...
03:55 Saran @kyleha : am unzipping the git kit where i downloaded from the link "http://github.com/rakudo/rakudo"
03:55 lambdabot Unknown command, try @list
03:55 Saran @kyleha : Pls tell me the two ways
03:55 lambdabot Unknown command, try @list
03:55 KyleHa 1. clone the rakudo repo on your local machine.  You can do that with this command:  git://github.com/rakudo/rakudo.git
03:55 KyleHa oops.
03:55 KyleHa git clone git://github.com/rakudo/rakudo.git
03:55 KyleHa The other way is basically the same thing, but you have a copy of your work on github also.
03:56 KyleHa 2. click the 'fork' button on that github page, and it will create a repo for you there.  Then on your local machine, you'll 'git clone' THAT repo to work on it locally.
03:56 Saran @kyleha : Thanks.give me a minute
03:56 lambdabot Unknown command, try @list
03:57 KyleHa If you go the second way, I think it's easier to contribute your work back to project.  You get the benefit of github's tools for doing that.
03:58 Saran @kyleha : Do i need to give the "git clone git://github.com/rakudo/rakudo.git" in command prompt .. Do i need to clone before everyday starting my coding ?
03:58 lambdabot Unknown command, try @list
03:59 KyleHa Yes, the clone makes a copy of the main rakudo repo.
03:59 KyleHa Then you'd do whatever work you want on the clone.
04:00 Saran @kyleha : Got the following error in windows " C:\>git clone git://github.com/rakudo/rakudo.git 'git' is not recognized as an internal or external command, operable program or batch file."
04:00 lambdabot Unknown command, try @list
04:01 KyleHa OK, it looks as if you don't have git installed.
04:02 mberends joined #perl6
04:03 Saran @kyleha : Yes...am reading the read me file of git.give me a minute..Will install the git and come back to you
04:03 lambdabot Unknown command, try @list
04:05 mberends Saran, please stop typing @ signs in front of peoples' nicknames, that is confusing our lambdabot
04:06 mberends @messages
04:06 lambdabot You don't have any new messages.
04:06 KyleHa Time for me to head out.  Good luck, Saran, and thanks for your interest.
04:06 mberends @seen masak
04:06 lambdabot Unknown command, try @list
04:07 Saran @kyleha : thanks for your patience..
04:07 lambdabot Unknown command, try @list
04:08 mberends @tell masak proto installed-modules is incomplete but usable (if you fetch projects before installing)
04:08 lambdabot Consider it noted.
04:08 mberends Saran, please stop typing @ signs in front of peoples' nicknames, that is confusing our lambdabot
04:09 SmokeMachine joined #perl6
04:11 Saran ok mberends
04:12 mberends :-)
04:13 mberends Saran: you may want to read back logs of past chats sometimes: http://irclog.perlgeek.de/perl6 etc
04:17 Saran Thanks mberends. bookmarking the link . it will be very usefull for a newbie like me
04:18 mberends Saran: I'm curious what Windows users encounter when following http://rakudo.org/how-to-get-rakudo. There are mainly Unix users here, we could do with feedback from XP, Win7 etc.
04:20 mberends Damn, http://rakudo.org/how-to-get-rakudo has been spammed :(
04:21 Saran Sure mberends : Definitely will give feedback on my expereince with Win Xp . Am basically a unix user but my company doesnt supports to work on unix machines
04:21 frew_ joined #perl6
04:21 mberends Saran++
04:23 mberends Saran: if you still need Perl 5 on Windows system, the recommended one is from http://strawberryperl.com/ (you may have found that already).
04:25 Saran am reading this blog to setup "http://kylecordes.com/2008/04/30/git-windows-go/" mberends . thanks to kylecordes , Am in the process of downloading the exe from git
04:26 Saran mberends : i have perl 5.10 <snip> C:\rakudo-rakudo-9a61441ec3281f​0306f88f67d47eeee5a3ae35f4>perl -v  This is perl, v5.10.0 built for MSWin32-x86-multi-thread (with 3 registered patches, see perl -V for more detail) <snip> installed on my machine
04:27 Saran mberends : do i still need to install "strawberryperl" .. i installed active perl
04:28 mberends Saran: that looks excellent. ActivePerl is fine too, but it may be lacking some of these for you in future: CPAN access, XS module support, C compiler.
04:29 Saran mberends : seems strawberry perl has the latest copy . so shall i uninstall "active perl" and start with "Strawberryperl" . what is your comment on this ?
04:29 justatheory joined #perl6
04:30 mberends Saran, yes, I would recommend switching if you don't mind the effort :)
04:30 mberends (but I don't have much recent Perl on Windows experience)
04:30 Saran mberends : thanks . Lemme switch it to strawberry . Feeling like going to enjoy the fruit :)
04:31 mberends :-)
04:32 mberends I'm going to bookmark http://kylecordes.com/2008/04/30/git-windows-go/ and try it in Windows 7 sometime soon.
04:36 Saran mberends : yes.. that helps in windows very well . probably i am going to tweet the usefull link in http://twitter.com/perlsaran
04:37 mberends Saran++ that's what we like to see!
04:38 Saran_ mberends : do we have any hashtag for perl6 or rakudo ? lemme check it
04:38 mberends I'm not sure what you mean by 'hashtag'
04:42 Saran mberends : There wil be some "#<names> " in tweet . so ppl can tweet specific to the event by mentioning the "#perl6" something like that.  There is a option to search only for the tweets with "#perl6" tags.
04:43 Saran mberends : successfully uninstalled active perl 5.10 . excited to enjoy the strawberry fruit :)
04:44 mberends Saran: thanks, I wasn't thinking about Twitter. I'm sure the main tags will be exactly as you said, #perl6 and #rakudo.
04:44 mberends Saran, good going!
04:47 mberends apparently twitter.com/ perl6 and twitter.com/ rakudo (without spaces) are both empty :-(
04:51 mberends the right address is http://twitter.com/rakudoperl
04:52 mberends that guy API is very active on Twitter ;-) and so is web
04:53 Saran mberends : nice to see rakudoperl twitter account . I searched ( perl6,rakudo) with the searchbox in twitter page. Got many results.
04:54 mberends yes, nice
04:54 Saran mberends : see this url "http://twitter.com/#search?q=perl6"  and  " http://twitter.com/#search?q=rakudo"
04:57 mberends that's a healthy harvest! Just another tip, Saran, don't quote http:// style URLs and they become directly clickable
04:58 mberends Saran, how far has the installation gone?
04:59 Saran mberends : still 10 mins left to download the strawberry perl as i use data card (:
04:59 mberends that's fine :)
05:00 Saran mberends : so i am using this time to blog the difficulties faced
05:00 szabgab joined #perl6
05:00 mberends I'm looking forward to reading it!
05:00 mberends morning szabgab
05:00 szabgab mberends, good morning to you too
05:05 Confield joined #perl6
05:07 mberends heh, p5's File::Slurp is going to version 9999.13
05:22 snarkyboojum_ joined #perl6
05:29 TiMBuS hey all. does anyone know if there is a way to remove an inherited role from an object, and if rakudo supports doing it?
05:30 TiMBuS im working on a pluggable irc bot, using roles and MMD. just wnat to know if theres a simple way to unload/reload modules attached to the bot
05:35 mberends TiMBuS, not now afaik. When some of the object metamodel ideas get implemented, it may happen.
05:36 TiMBuS aw ok
05:43 meppl joined #perl6
05:46 Saran mberends : am bak :) .installed the strawberry perl
05:46 zamolxes joined #perl6
05:46 mberends Saran: nice, where does that put you along http://kylecordes.com/2008/04/30/git-windows-go/ ?
05:48 Saran mberends : now i am cloning the "git clone git://github.com/rakudo/rakudo" using git bash
05:48 mberends that looks good
05:50 Saran mberends : do i need to create a ssh key . Is it necessary at this point
05:54 mberends Saran, the ssh key is not required for anonymous cloning and pulling from github. You might need it later, it's easy to add when required.
05:54 Saran mberends : Am mean ssh key to signup for a github account
05:54 Saran mberends : thanks
05:55 mberends yes, for a github account you would need a key, but not to install Rakudo.
05:55 Saran mberends : Cloning completed using "git clone git://github.com/rakudo/rakudo" command . IS the rakudo installation complete?
05:56 mberends Saran, you now have the source code.
05:56 mberends next you should cd into rakudo and run perl Configure.pl --gen-parrot
05:57 mberends that will require svn, the subversion client
06:00 Saran mberends : ok. after installin the strawberryperl . when i run the command it shows the following error <snip> C:\rakudo>perl Configure.pl --gen-parrot 'perl' is not recognized as an internal or external command, operable program or batch file. <snip> . Did i missed any step apart from installing the strawberry perl
06:01 mberends it looks like the perl 5 executable cannot be found in your PATH
06:01 mberends maybe the Strawberry directory needs to be added to PATH
06:03 Saran mberends : yes . PATH needs to be added..wondering how?
06:03 mberends I think it's in some Computer Properties (Advanced)
06:07 sm` joined #perl6
06:08 Saran mberends : already "C:\strawberry\perl\bin " is added in PATH environment variable
06:08 zloyrusskiy joined #perl6
06:08 mberends Was the command window already opened before installing Strawberry?
06:11 moritz_ rakudo: say 1
06:12 p6eval rakudo a9ff30: OUTPUT«1␤»
06:12 Saran mberends : WOW! you are right
06:13 mberends Saran, try svn --version
06:14 Woody2143 joined #perl6
06:14 Saran mberends : back after a coffee..pls :)
06:22 sri_kraih_ joined #perl6
06:23 mberends Saran, there are more useful hints here: http://www.perlfoundation.org/perl6/index​.cgi?roadmap_to_helping_with_development
06:31 Saran mberends : Thanks for the link . do i need to install subversion on my machine?
06:32 mberends Saran, yes, because Rakudo uses Parrot and Parrot is a Subversion repository
06:41 orafu joined #perl6
06:42 Saran mberends : Am in the process of installing svn
06:44 mberends ok, I'm going afk # shower
06:44 Saran mberends : which one shall i use "http://subversion.tigris.org/getting.html#windows"
06:45 Saran There are so many third party softwares to install svn .. am i on the right track (:
06:46 jauaor joined #perl6
06:47 mberends I would guess the Perlfoundation wiki page is the most current, it names svn-win32-1.6.0.zip svn-win32-1.6.0_dev.zip svn-win32-1.6.0_pl.zip
06:49 Saran mberends : thanks .. Pls take shower
06:49 mberends Saran, it looks like you need only http://subversion.tigris.org/files/docum​ents/15/46531/Setup-Subversion-1.6.5.msi
06:49 mberends afk --shower &
06:52 barney joined #perl6
06:53 iblechbot joined #perl6
07:10 cmv joined #perl6
07:14 dukeleto joined #perl6
07:16 rfordinal joined #perl6
07:32 masak joined #perl6
07:32 masak good morning, camelians.
07:32 lambdabot masak: You have 1 new message. '/msg lambdabot @messages' to read it.
07:32 masak lambdabot: oh, so you've started taking messages again?
07:33 masak @massage
07:33 lambdabot mberends said 3h 24m 26s ago: proto installed-modules is incomplete but usable (if you fetch projects before installing)
07:33 masak mberends++
07:33 masak will try sometime today.
07:36 rgrau joined #perl6
07:41 Matt-W o/
07:41 masak \o
07:41 moritz_ |o|
07:42 Matt-W :D
07:42 Patterner <8((><
07:43 Patterner rakudo segfaulting is bad, right?
07:43 moritz_ yes, very bad
07:43 moritz_ we had some problems with that last week
07:44 moritz_ so if you didn't already, please try to upgrade to the latest rakudo
07:45 frederico joined #perl6
07:45 Patterner I'm updating parrot and rakuto right now.
07:49 ascent joined #perl6
07:50 flip913 joined #perl6
07:52 fredrecsky joined #perl6
07:54 ascent_ joined #perl6
07:56 flip913 In P5 I'd have used an array of refs to build a tree structure.
07:57 flip913 If I do in P6 something like "push @.children, $child" will that put a reference on the array?
07:57 flip913 Or is that a copy?
07:57 moritz_ a reference
07:57 flip913 so just like P5, thanks
07:58 moritz_ rakudo: my @a; my $b = [3, 4]; @a.push: $b; @a[0][1] = 7; say $b[1]
07:58 p6eval rakudo a9ff30: OUTPUT«7␤»
07:58 moritz_ it's easy to try out ;-)
07:59 flip913 And is there a way to get a packed array of references? like a "type *array[]" in C, where NULL is "unused"?
07:59 flip913 I think that a normal reference takes a lot more space than just a pointer.
08:00 flip913 I read about the int32 and int64 types ... but I can't remember reading about a pointer.
08:00 moritz_ no, you can't
08:00 moritz_ basically that's an implementation detail that's hidden from you
08:03 barney joined #perl6
08:04 flip913 So I'll pay a fair bit more for an big array of references? hmmmm
08:04 flip913 And there's no way to put the objects in an array, which could be indexed with int32, is there?
08:05 moritz_ well, arrays are by default indexed by Int, and int32 is a possible representation of an Int
08:05 moritz_ (though not yet implemented in Rakudo)
08:07 flip913 But the array will still hold references and not the actual objects, doesn't it?
08:07 flip913 So that space would be lost.
08:07 * Patterner wonders if it is all gcc 4.4.1's fault...
08:07 flip913 (I'm thinking about several million objects here ... that could take a fair chunk of memory, especially if the objects need to be referenced via several trees each.)
08:08 moritz_ flip913: Perl and other dynamic languages usually place ease of use over memory usage ...
08:09 moritz_ flip913: if you absolutely need more memory efficiency, it's worth thinking of writing a C library, and interfacing that from $other_language
08:12 masak Saran: hey, welcome! I was going to write to you on Twitter, but I see you're still here.
08:14 masak moritz_: in http://irclog.perlgeek.de/perl6/2009-09-16 , the URLs with only become links up to the '?' sign.
08:15 moritz_ masak: uhm, which URLs exactly?
08:15 masak http://irclog.perlgeek.de/​perl6/2009-09-16#i_1503016
08:16 moritz_ uhm, question marks in anchors? how curious...
08:16 masak mberends++ # for greeting Saran nicely
08:16 masak moritz_: not really.
08:17 masak moritz_: aren't you using Regexp::Common or something?
08:17 Matt-W There was something in the initial design of Perl 6 about packed arrays, I think. It was probably more along the lines of 'if you specify particular types, the implementation may well choose a more efficient underlying structure'
08:17 cmv joined #perl6
08:18 moritz_ masak: yes; and it ignores anchors.
08:19 masak oh.
08:19 mberends oh hai, back from the wet space. I hope Saran is still making good progress on the Rakudo install for Windows. His discoveries can help us improve the README.
08:20 moritz_ Matt-W: and that's still the case for lower case types (num32, uint8 etc)
08:20 Matt-W moritz_: yes, so what flip913 was saying could happen - it's just you don't get conscious control over it
08:21 moritz_ well, not quite
08:21 moritz_ you'd have to specify that you don't allow binding of array elements, for example
08:22 Matt-W mmm point
08:22 Matt-W hmm
08:22 moritz_ masak: I hacked together a regex for the anchors myself, but so far I haven't found a good specification of what is allowed in anchors and what not
08:22 Matt-W maybe you would need to use a specifically different storage class
08:24 jnthn o/
08:24 moritz_ \o jnthn
08:24 * jnthn glances through the backscroll to see who talked aobut him / wanted him. :-)
08:25 masak lolitsjnthn
08:25 Matt-W oh hai
08:28 pugs_svn r28249 | moritz++ | [irclog] there are more characters allowed in URL anchors than I previously thought. masak++
08:28 mikehh rakudo (9a61441) builds on parrot r41289 - make test / make spectest (up to 28248) PASS - Ubuntu 9.04 amd64
08:28 mikehh no qualifications on the tests on amd64
08:29 mikehh moritz_: I am going over to i386 soon - do you still need that patch tested?
08:31 moritz_ mikehh: don't think it's necessary anymore, thanks
08:31 mikehh moritz_: well I'll report the results anyway :-}
08:32 flip913 matt-w, moritz_: how would I say that binding is not wanted? Will that be possible in Rakudo * ;-) ?
08:32 moritz_ flip913: by writing your own array class that doesn't support binding. And no, probably not in Rakudo *.
08:35 moritz_ but rakudo is generally so inefficient in terms of memory and speed that this would be the least of my worries
08:36 moritz_ colomon: wow, that code (generate-tests.pl) *is* ugly ;-)
08:37 colomon moritz_: Amen.
08:37 colomon And it generates an ugly test file, too.
08:38 colomon But it also generates 5408 tests from 304 lines of code, and that's going to nearly double before I'm done here, I think.
08:39 colomon Any suggestions on how to make it cleaner?
08:39 moritz_ the generated code isn't too bad, it's just the commented lines that make it look a bit ugly
08:39 colomon I don't like that it's indented incorrectly.
08:40 colomon I guess I'm looking for suggestions in three areas:
08:40 colomon Fixing the indenting in the generated code.
08:40 moritz_ $code.subst: /^^' '**8/, '', :g;
08:40 moritz_ or something like that
08:41 colomon Making the code block that generates that code much less ugly.
08:41 colomon I hate all that escaping.
08:41 moritz_ aye, that's ugly as hell
08:42 colomon And possibly how to move the TrigFunction declarations to a config file rather than being piled inline like that.
08:44 moritz_ I think I've managed to outdent some of the code
08:47 colomon I was thinking a function which grabs the first chunk of whitespace and tries to eliminate it throughout the $code string?
08:48 moritz_ yes, that's what I'm doing, I'll commit in a minute
08:48 colomon Groovy!
08:53 pugs_svn r28250 | moritz++ | [t/spec] make generate-tests.pl emit less ugly indented code.
08:53 pugs_svn r28250 |
08:53 pugs_svn r28250 | Also emit warning about the code being generated, and prevent vim users from
08:53 pugs_svn r28250 | accidentally changing the emitted code.
08:56 Saran mberends : am back after a lunch..installed svn successfully :)
08:57 mberends Saran, ok, now we need to test whether your system can run a make...
08:57 moritz_ masak: btw the twitter search links now seem to work fine in the IRC logs
08:58 masak moritz_++
08:58 mberends Saran, btw, I'm going to follow in your footsteps on a nearby Windows 7 laptop
08:58 colomon And again moritz_++!
08:58 moritz_ colomon: currently the generated tests abort with "Method 'sinh' not found for invocant of class 'Rat'" - do you expect that?
08:59 snearch joined #perl6
08:59 colomon moritz_: Yes.  It's fixed on my local Rakudo, but I was planning on waiting until I had more patches to push it to the world.
09:00 moritz_ 'push early, push often' (as long as you don't break things along the way ;-)
09:00 colomon You sure?  I was getting worried I was doing too many small commits.
09:00 moritz_ I fear I reduced the number of passing tests yesterday when I removed some duplicates
09:00 moritz_ colomon: yes, sure.
09:01 colomon (I noticed that by commit-count I am already one of the top twenty patch authors for Rakudo, which is utterly surreal....)
09:01 moritz_ colomon: when I applied some of your early patches I squashed them into one because they would partially break things in isolation, not because they were too small on its own
09:02 colomon Okay, it will take me a bit to properly rebase and spectest here, but I'll push up my changes as soon as I've done do.
09:02 moritz_ colomon: the commit counts also include the days when Rakudo was still in the parrot repo...
09:02 moritz_ some many people just commited one or two whitespace fixes or so
09:02 moritz_ which is why we have lots of commiters, but not many actually contributed much directly to rakudo
09:04 * moritz_ just pushed another one-line patch ;-)
09:07 Saran mberends : sure i am mentioning all steps in twitter.com/perlsaran
09:07 moritz_ Saran++
09:07 sharada joined #perl6
09:08 colomon Okays, trying to pull and merge now.
09:08 mberends Saran++ nice blog http://twitter.com/perlsaran
09:09 colomon moritz_: Just got to thinking about this.  For those blocks of code, instead of relying on p6's interpolation (requiring all that escaping), perhaps it would be better to use subst to make a quick ad-hoc template system?
09:09 colomon Seems like that might be much cleaner.
09:10 Saran mberends : in the process of installing MinGw compiler..do we need it ?
09:10 Aqee joined #perl6
09:10 mberends Saran, yes, to build Parrot
09:10 dalek rakudo: d054b7e | moritz++ | docs/ChangeLog:
09:10 dalek rakudo: [docs] another ChangeLog item
09:10 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/d​054b7ec3450e8a911392b9361d7a9d79973158a
09:10 Aqee left #perl6
09:10 moritz_ colomon: depends on how many variables you actually interpolate... but yes, would be cleaner
09:11 colomon I think I'll take a stab at that change in the morning.  (currently 5 AM local time, should try getting back to bed).
09:11 colomon Thanks again for your help.
09:12 masak hm, 5 AM... is that the US East Coast?
09:12 colomon yes
09:13 masak oh well, I won't keep you up with idle chit-chat. good night to you, sir.
09:14 mberends moritz_, colomon, I was wondering about trying to curb or reduce the huge number of trig tests. Could you dynamically generate a small number of unique spot checks per test run, seeded by the date/time for example, and then just log the failures?
09:14 Saran mberends : "running perl-configure.pl --gen-parrot" <snip> C:\rakudo>perl Configure.pl --gen-parrot Generating Parrot ... C:\strawberry\perl\bin\perl.exe build/gen_parrot.pl --prefix=C:/rakudo/parrot_install  The system cannot find the path specified. Checking out Parrot r41267 via svn... A    parrot\DEPRECATED.pod A    parrot\runtime </snip>
09:14 Saran svn process is going on
09:15 moritz_ mberends: I think that only complicates things
09:15 mberends ok moritz_
09:17 mberends Saran, I cannot figure what is missing to cause "The system cannot find the path specified" up there.
09:17 Saran <mberends> : am more curious abt why there is no file named "parrot_install " in rakudo zip ?
09:18 mberends Saran, that folder will be created if the --gen-parrot succeeds
09:18 mberends you will get rakudo/parrot and rakudo/parrot_install
09:19 Saran mberends : is expecting any empty folder like "parrot_install" ?
09:20 mberends ah, you might be lacking a 'make' utility. Windows--
09:21 mberends there might be a different name/dir for it in the Strawberry tree
09:22 Saran mberends : i believe there shld be "nmake" doing the same operation for windows
09:23 mberends yes, but not installed as default. You may have mingw32-make
09:24 moritz_ shouldn't parrot's Configure.pl detect that?
09:27 donaldh joined #perl6
09:27 donaldh left #perl6
09:27 mberends moritz_, *should* ;-)
09:28 moritz_ so is there actually a problem right now? I haven't seen an error message, I think
09:29 moritz_ my dealings with parrot's Configure.pl were quite reasonable so far
09:30 mberends there a so few Windows users, the experienced ones such as jnthn++ probably have Visual Studio etc for toolchain.
09:31 moritz_ aye
09:31 jnthn Yes, I use visual Studio toolchain to build.
09:31 soupdragon joined #perl6
09:33 * mberends is catching up to Saran++ with Strawberry Perl on Windows
09:34 Saran mberends : things so far so good except a little expection of secure connection truncated ..might be a warning <snip> svn: REPORT of '/parrot/!svn/vcc/default': Could not read response body: Secure connection truncated (https://svn.parrot.org)  Configuring Parrot ... C:\strawberry\perl\bin\perl.exe Configure.pl --prefix=C:/rakudo/parrot_install Parrot Version 1.6.0 Configure 2.0 Copyright (C) 2001-2009, Parrot Foundation.  Hello, I'
09:35 mberends Saran, that looks pretty healthy so far
09:36 mberends you might try running parrot.exe -h in the appropriate dir
09:36 rbaumer joined #perl6
09:39 Saran mberends : it throws serious of files with <snip> No such file: examples/tutorial/83_external_libraries.pir No such file: examples/tutorial/90_writing_tests.pir  Ack, some files were missing!  I can't continue running without everything here.  Please try to find the above files and then try running Configure again. </snip>
09:39 moritz_ Saran: please go to the rakudo/parrot directory and type 'svn up' there
09:40 masak mm, #69152 and #69160 are both juicy ones.
09:40 masak and they show that people are picking up Rakudo and playing with it.
09:41 Saran @moritz : when it tried to pull some defualt configuration files from perl5 it throws the "no file error"
09:41 lambdabot Unknown command, try @list
09:42 moritz_ Saran: it seems your svn checkout of parrot is incomplete, maybe because of network errors
09:42 moritz_ which is why I suggested 'svn up', which should complete the checkout
09:43 Saran moritz : running "svn up" in parrot directory
09:43 jnthn So, I wonder if I can figure out the calls-on-Perl 5-packages bug tonight...
09:45 Saran mberends : which path shld i try "parrot.exe -h" ?
09:45 masak maybe we should recommend people to download Parrot with git-svn instead? :)
09:46 masak faster and more reliable.
09:46 masak s/git-svn/git, from some git mirror/
09:46 jnthn masak: aye, but svn is more widely installed by default...
09:46 jnthn ah, though git from a git mirror could work
09:46 mberends Saran, either rakudo/parrot/parrot.exe or rakudo/parrot_install/bin/parrot.exe
09:47 moritz_ and it's a bit easier to get the correct revision from svn... but that can be worked around
09:48 Saran mberends : already tried ..see the snip <snip> C:\rakudo\parrot>parrot.exe -h 'parrot.exe' is not recognized as an internal or external command, operable program or batch file.  C:\rakudo\parrot>cd ..  C:\rakudo>cd parrot_install The system cannot find the path specified. </snip>
09:49 moritz_ Saran: when 'svn up' completed successfully, you can go back to the rakudo directory and run 'perl Configure.pl --gen-parrot' again
09:49 mberends Saran, the cause of that is probably the 'make' of Parrot
09:50 riffraff joined #perl6
09:52 Saran mberends : make shld be the next step after "perl configure.pl --gen-parrot" . why is it creating a problem now ?
09:52 masak Saran: as a rule, people here will never feel that someone asking a question disturbs any serious discussion. there's plenty of room in the backlog. :)
09:53 mberends Saran, because --gen-parrot nests a make as well, and your system has no make command
09:53 masak ah, wayland76++ answered something similar by email.
09:53 moritz_ (currently 2.4G room in the backlog ;-)
09:54 Saran mberends : thanks..let me install nmake asap
09:54 mberends Saran, you could try the Strawberry one...
09:54 jnthn Saran: Suggest grabbing the Windows Platform SDK, or Visual C++ Express Edition.
09:54 jnthn Otherwise you'll probably later finding you've got other missing thingies.
09:55 mberends copy c:\strawberry\c\bin\mingw32-make.exe c:\strawberry\c\bin\make.exe
09:55 Saran mberends : am using strawberry perl..do u mean nmake for strawberry perl
09:55 mberends it's just a different filename
09:55 jnthn Or if you already have Visual Studio installed, then probs nmake should be in your path.
09:55 Saran mberends : thanks for the path..lemme check it
09:56 mberends Saran, if the download is not too slow jnthn++'s suggestion is also a good idea.
09:57 moritz_ masak: #69152 was discovered by having a merge conflict in the spec tests ;-)
09:57 moritz_ the <<<<<<< .mine is svn's conflict marker
09:57 masak yes, so I gathered. :) it's not minimal, by the way.
09:58 masak and it only occurs when running a file, not when running from -e
09:58 moritz_ neither surprise me
09:58 Saran mberends++ . copied and renamed to make.exe
09:59 Saran jnthn : will try installing vc++ later..internet is too slwo
10:00 Saran mberends : Got error <snip> Reading configuration information from parrot_install/bin/parrot_config ... 'parrot_install' is not recognized as an internal or external command, operable program or batch file. Died at Configure.pl line 119. </snip>
10:01 mberends Saran, in rakudo/parrot, try running make install-dev
10:01 Saran mberends : src\runcore\cores.c: In function `Parrot_runcore_cgoto_init': src\runcore\cores.c:622: error: `_CONST_STRING_622' undeclared (first use in this function) mingw32-make: *** [src\runcore\cores.o] Error 1
10:02 mberends Saran: ouch. ouch.
10:02 Saran mberends : as u said missing make while compiling core.c
10:02 Saran mberends : Reading configuration information from parrot_install/bin/parrot_config ... 'parrot_install' is not recognized as an internal or external command, operable program or batch file. Died at Configure.pl line 119.
10:03 mberends oh, those forward slashes need to be backslashes in Windows :/
10:04 Saran mberends : might be ..pushing to home..catch  u guys after 40 minutes
10:04 mberends Saran, ok
10:08 pjcj joined #perl6
10:08 masak it takes 84 minutes to run the spectests. it's partly due to more tests lately, but probably also due to slower Rakudo/Parrot.
10:10 mberends there was a big slowdown in Parrot with the pmc3 merge
10:11 moritz_ github++ # the links to files on the overview pages now always go to the latest version, not identified by SHA-1
10:14 mberends well, perl6 -e"3.say" works here on Windows 7 with Strawberry toolchain
10:14 mberends pity about the double quotes
10:26 masak what's the way to get the name of a class?
10:26 moritz_ rakudo: class A::B { }; say A::B.HOW
10:26 p6eval rakudo a9ff30: OUTPUT«A::B()<0xb6b41118>␤»
10:26 moritz_ no, that's wrong...
10:26 moritz_ rakudo: class A::B { }; say A::B.WHAT #
10:26 p6eval rakudo a9ff30: OUTPUT«A::B()␤»
10:27 moritz_ that's better
10:27 masak I don't want parens.
10:27 jnthn .perl
10:27 moritz_ rakudo: class A::B { }; say A::B.perl
10:27 p6eval rakudo a9ff30: OUTPUT«A::B␤»
10:27 jnthn no
10:27 jnthn well yes
10:27 jnthn :-)
10:27 masak jnthn++
10:27 jnthn .WHAT.perl if you have an object though.
10:27 masak rakudo: class eyes {}; class ears {}; class noses {}; class teeth {}; class tongues {}; class parts is eyes is ears is noses is teeth is tongues {}; parts.^parents(:local)>>.perl.join(" and ").fmt("I only have %s for you.").say
10:27 jnthn (that is, you want to call .perl on the proto-object, not on an instance)
10:27 p6eval rakudo a9ff30: OUTPUT«I only have eyes and ears and noses and teeth and tongues for you.␤»
10:28 masak \o/
10:28 * jnthn sings "heads and shoulders, knees and toes, knees and toes..."
10:28 masak lunch &
10:29 moritz_ you can all blame me that rakudo now passes only 15497 tests, not 15500 as it used to be
10:30 jnthn wtf...we pass over 15,000 now?
10:30 jnthn Damm, I should have more vacation.
10:33 jnthn Wow, that latest graph is scary.
10:33 jnthn folks++
10:33 moritz_ colomon++ mostly
10:37 dakkar joined #perl6
10:51 masak that latest graph is scary... do we even need the devs anymore? :P
10:52 Matt-W Yes
10:52 Matt-W Get coding
10:52 * Matt-W cracks his whip
10:52 * Matt-W wnats to write Perl 6, but has to do work instead
10:52 * masak gets coding, like, really quickly
10:52 masak not with Perl 6, though :/
10:52 payload joined #perl6
10:52 Matt-W I would, but it's a bit difficult to use Perl 6 to write classes that need to go into C++ programmes
10:56 masak rakudo: class Cell { our class Golgi {} }
10:56 p6eval rakudo a9ff30: OUTPUT«Malformed declaration at line 2, near "class Golg"␤in Main (src/gen_setting.pm:3469)␤»
10:56 masak std: class Cell { our class Golgi {} }
10:56 p6eval std 28250: OUTPUT«ok 00:02 37m␤»
10:56 cognominal jnthn, nice, the calling of p5 method from blizkost.
10:56 masak std: class Cell { our class Golgi {} }; Cell::Golgi
10:56 p6eval std 28250: OUTPUT«ok 00:02 37m␤»
10:56 masak \o/
10:58 masak rakudo: class Dog { is Any }
10:58 p6eval rakudo a9ff30: OUTPUT«Could not find non-existent sub is␤»
10:58 moritz_ I'm not sure if that syntax is a good idea to support
10:59 cognominal rakudo:  eval(  'package A;  sub ok { print "$_[1]\n" };   bless {}', :lang<perl5> ).ok( "ok");
10:59 p6eval rakudo a9ff30: OUTPUT«ok␤Scalars leaked: 1␤»
10:59 masak moritz_: why not?
11:00 moritz_ masak: 1) there's already a sub is() in Test.pm that does something completely different
11:00 Matt-W i think it's there so you can say
11:00 Matt-W class Foo;
11:00 Matt-W is Bar;
11:00 moritz_ masak: 2) I like to have the more important information (inheritence, role composition) up front
11:00 masak Matt-W: well, you can say 'class Foo is Bar;' also...
11:00 Matt-W masak: can you? Oh good, in that case, nuke it.
11:00 Matt-W as far as I'm concerned
11:01 Matt-W maybe TimToady has some elaborate explanation as to why it's necessary
11:01 masak moritz_: (2) is easily dismissed as personal preference. (1) doesn't bother me too much.
11:01 masak moritz_: there are many cases where would-be function calls are parsed as special syntax.
11:01 masak Matt-W: I think with a complicated list of 'is' and 'does' relations, it might simply be better-looking.
11:03 schmalbe joined #perl6
11:03 moritz_ the 'is Parent;' form in the class body might give far worse error messages
11:03 moritz_ but that's just guessing now
11:03 moritz_ anyway, I'm not strongly opposing it
11:06 masak why worse error messages? because it's evaluated later than the class declaration?
11:07 moritz_ if you forgot to load the parent class it's evaluated later
11:08 moritz_ which leads me to another question about r28199
11:08 dalek rakudo: 8277559 | (Solomon Foster)++ | src/setting/Any-num.pm:
11:08 dalek rakudo: Add forward hyperbolic functions to Any.
11:08 dalek rakudo: Adds Any.sinh, Any.cosh, etc., which convert their argument to
11:08 dalek rakudo: Num and then redispatch to Num.sinh, Num.cosh, etc.
11:08 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/8​277559df4d7ffd0a2ede6c5e720f256c2a81fc5
11:08 dalek rakudo: d1f2d4c | (Solomon Foster)++ | :
11:08 dalek rakudo: Merge branch 'trig'
11:08 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/d​1f2d4c71aaad13873d2b4f0ded1b61342cb999d
11:09 moritz_ I'd better carry that to p6l though
11:09 masak aye.
11:10 moritz_ oh, my question was answered by reading the diff again ;-)
11:11 Matt-W lunch &
11:11 masak I'd like to address something I've come to think of as the ABCB problem. I don't really know yet whether it's a flaw in the language, or just a piece of Best Practices to be aware of.
11:11 cognominal afk&
11:12 masak let's say module A includes (with 'use') modules B and C. in the C module, mentions are made to things defined in B.
11:12 masak so, when A is compiled, everything works. but when C is compiled, there are missing references to things.
11:13 moritz_ C needs to use B
11:13 masak moritz_: in an ideal Perl 6, you mena?
11:13 moritz_ and rakudo shouldn't let defintions leak into C
11:13 masak s/mena/mean/
11:13 moritz_ masak: yes
11:14 masak because I think I can create exactly such a situation in Rakudo.
11:14 moritz_ my understanding is that the 'use B;' in A should have no effect on the compilation of C
11:15 masak good.
11:15 masak that solves that.
11:16 moritz_ but importing isn't sufficiently lexically in rakudo yet
11:16 masak here's a small example that I just created: A.pm[use B; use C;] B.pm[use Test] C.pm[plan 0]
11:17 zamolxes joined #perl6
11:17 blaze-x I'd like to write a perl6 grammar to complete a DSL, much like zsh does it when you complete ssh, it lists <users> and <hosts> as possible tokens. How could I accomplish this? (just learning p6)
11:18 saran joined #perl6
11:18 blaze-x more accurately, how to let the user disambiguate
11:18 masak blaze-x: I'm sorry, I'm not sure I understand your use case. could you be more specific?
11:18 moritz_ I don't think you can read single key strokes from the terminal yet
11:19 saran mberends : am back
11:19 moritz_ and your application looks more like generating strings matching a regex than actually matching
11:19 masak well, Tene has some curses lib that lets you do keystrokes, IIUC.
11:23 blaze-x I really like the p6 grammar constructs. I wanted to build a grammar around things i type regularly. ex: todo: phone customer_x about problem_y
11:24 blaze-x in the end I just want to learn perl6, but I thought it would be nice to try and parse these kind of short strings
11:24 moritz_ that seems entirely possible
11:25 mberends saran: ok, I got parrot and rakudo compiled by copying to make.exe first. For you I suggest nuking the parrot and parrot_install and re-running perl Configure.pl --gen-parrot
11:25 moritz_ rule todo { 'todo:' <action> }
11:25 blaze-x the more my DSL grammar understands, the more I can log into another system (I'm not looking to write a natural language parser btw)
11:25 moritz_ token action { <phone> | <mail> | <buy> |  ... }
11:26 moritz_ rule phone { 'phone' <who> (.*) }
11:26 moritz_ ...
11:27 masak blaze-x: that sounds like a pretty cool application.
11:27 blaze-x moritz_: I follow you. But i wonder, how could I get a list of all actions? as to be able to tab complete them sometime later
11:27 saran mberends : do i need to install msys ?
11:27 moritz_ blaze-x: that's a very good question, and there will be a nice solution for that
11:28 moritz_ blaze-x: Perl 6 allows you to parameterize tokens...
11:28 blaze-x masak: thanks :)
11:28 moritz_ proto token actions { ... } # literal ... here
11:29 masak blaze-x: I hope you won't shy away from sharing any code you write. we're always on the lookout for new code to peruse. :)
11:29 moritz_ token actions:what<phone> { <what> <who> (.*) }
11:29 blaze-x ok, I'll read about proto.
11:29 moritz_ token actions:what<buy> { <buy> (.*) }
11:29 blaze-x masak: sure, can't see why not :)
11:29 moritz_ and then when you simply match against <actions> it matches all the alternatives in parallel
11:30 moritz_ and at some point we'll have introspection to list all available proto tokens
11:30 moritz_ but that's quite a bit in the future
11:30 masak oh, 'proto' works already?
11:30 blaze-x moritz_: interesting, I suppose by xmas? ;-)
11:30 moritz_ masak: only in STD.pm :/
11:31 moritz_ blaze-x: I hope sooner ;-)
11:31 mberends saran, apparently not, msys-git was enough there. mind you, its bin directory has a lot of tools, but no make
11:31 masak moritz_: ah. that squares better with my expectations.
11:31 saran mberends : as per the link "http://www.perlfoundation.org/perl6/index​.cgi?roadmap_to_helping_with_development" .do i need to download haskell as well ?
11:32 moritz_ saran: only if you intend to hack on pugs
11:32 moritz_ which nobody did for the last 1.5 years or so
11:32 moritz_ blaze-x: I fear that proto tokens are badly documented so far, but there are lots of examples in >
11:32 mberends saran, not today ;-) you would use it to build pugs, if ever
11:32 moritz_ >
11:32 moritz_ > Modified: docs/Perl6/Spec/S04-control.pod
11:32 moritz_ > ==================================​=================================
11:32 moritz_ > --- docs/Perl6/Spec/S04-control.pod2009-09-07 17:43:11 UTC (rev 28198)
11:32 lambdabot not an expression: `'
11:32 lambdabot not an expression: `--- docs/Perl6/Spec/S04-control.pod        2009-09-07 1...
11:32 lambdabot Not in scope: data constructor `Modified'Not in scope: `docs'Not in scope: ...
11:32 lambdabot <no location info>:
11:32 lambdabot parse error on input `============================...
11:32 moritz_ > +++ docs/Perl6/Spec/S04-control.pod2009-09-07 17:53:06 UTC (rev 28199)
11:32 lambdabot <no location info>: parse error on input `+++'
11:33 moritz_ > @@ -823,7 +823,7 @@
11:33 lambdabot <no location info>: parse error on input `@@'
11:33 moritz_ >  sets the topic in its signature can be broken out of.  At run time,
11:33 lambdabot <no location info>: parse error on input `in'
11:33 moritz_ >  C<break> uses a control exception to scan up the dynamic chain to
11:33 lambdabot Not in scope: data constructor `C'Not in scope: `uses'Not in scope: `contro...
11:33 moritz_ >  find the activation record belonging to that same outer block, and
11:33 lambdabot <no location info>: parse error on input `,'
11:33 moritz_ > -when it has found that scope, it does a C<.leave> on it to unwinde
11:33 lambdabot <no location info>: parse error on input `,'
11:33 moritz_ > +when it has found that scope, it does a C<.leave> on it to unwind
11:33 saran thanks mberends and moritz_ . hw abt haskell ? is it mandatory at this point ?
11:33 lambdabot <no location info>: parse error on input `+'
11:33 moritz_ >  the contexts.  If any arguments are supplied to the C<break> function,
11:33 lambdabot <no location info>: parse error on input `,'
11:33 moritz_ >  they are passed out via the C<leave> method.  Since leaving a block is
11:33 lambdabot Not in scope: `they'Not in scope: `are'Not in scope: `passed'Not in scope: ...
11:33 moritz_ >  considered a successful return, breaking out of one is also considered
11:33 lambdabot <no location info>: parse error on input `,'
11:33 moritz_ >
11:33 lambdabot not an expression: `'
11:33 moritz_ sorry
11:33 moritz_ saran: no
11:33 was kicked by moritz_: moritz_
11:33 moritz_ sorry for the paste flood
11:33 * moritz_ too dumb to work with irssi
11:34 moritz_ blaze-x: what I meant to say was... lots of examples in http://svn.pugscode.org/pugs/src/perl6/STD.pm
11:34 mberends moritz_ is a n00b at something?
11:34 moritz_ sure, at lots of things actually
11:35 blaze-x moritz_: thanks, I'll have a look
11:45 synth joined #perl6
11:49 saran joined #perl6
11:53 iblechbot joined #perl6
12:01 colomon moritz_: I tried to move your $code.=subst: / ^^ ' ' ** 12 /, '', :g; into a function of its own, but when I do that, I get "too few arguments passed (1) - 3 params expected" when I call it.
12:02 colomon rakudo: sub c(Str $s is copy) { $s.=subst: / ^^ ' ' ** 12 /, '', :g; }; my $a = c("This is a test"); say $a;
12:02 p6eval rakudo a9ff30: OUTPUT«This is a test␤»
12:03 colomon rakudo: class A { method c(Str $s is copy) { $s.=subst: / ^^ ' ' ** 12 /, '', :g; }; }; my $a = A.new; my $b = $a.c("This is a test"); say $b;
12:03 p6eval rakudo a9ff30: OUTPUT«This is a test␤»
12:04 moritz_ colomon: there's a known problem with .subst and mulit subs
12:05 moritz_ anyway, if you plan to return a modified version there's no reason to all it as $.=subst
12:06 colomon return $code.subst: / ^^ ' ' ** 12 /, '', :g; gets the error too.
12:07 moritz_ rakudo: sub f($x) { $x.subst: / ^^ ' ' ** 12 /, '', :g }; say f((' ' x 14) ~ 'bar' )
12:07 p6eval rakudo a9ff30: OUTPUT«  bar␤»
12:12 saran joined #perl6
12:14 takadonet joined #perl6
12:14 takadonet morning all
12:15 saran mberends : First step completed successfully .. Now trying to run "mingw32-make"
12:17 cognominal rakudo: eval(  'package A;  sub ok { print "@{$_[1]}\n" };   bless {}', :lang<perl5> ).ok( ["o", "k"]);
12:17 p6eval rakudo a9ff30: OUTPUT«Sorry, we do not support marshalling most things to Perl 5 yet.␤in Main (/tmp/sxkPQpRSdn:2)␤»
12:17 cognominal how much time it takes for p6eval to take the changes on rakudo/blizkost?
12:18 moritz_ both are rebuilt hourly
12:18 mberends saran, nice
12:18 moritz_ starting at 14:45 for example
12:19 moritz_ but if there's dire need I can trigger one earlier ;-)
12:20 mikehh joined #perl6
12:21 moritz_ colomon: it seems the makefile is suboptimal... the last pmc change did not trigger a rebuild
12:21 mikehh rakudo (d1f2d4c) builds on parrot r41292 - make test / make spectest (up to 28250) PASS - Ubuntu 9.04 i386
12:21 moritz_ rakudo: eval(  'package A;  sub ok { print "@{$_[1]}\n" }; bless {}', :lang<perl5> ).ok( ["o", "k"]);
12:21 p6eval rakudo a9ff30: OUTPUT«Sorry, we do not support marshalling most things to Perl 5 yet.␤in Main (/tmp/mahQL0c2vq:2)␤»
12:22 colomon moritz_: Eh?
12:22 moritz_ colomon: sorry, menat cognominal
12:22 moritz_ moritz_ + tab fail
12:26 saran @mberends : make-test PASS :) <snip> All tests successful. Files=29, Tests=236, 89 wallclock secs ( 0.33 usr +  0.84 sys =  1.17 CPU) Result: PASS <snip> I think the installation part is over..Thanks to mberends,s1n and all monkers
12:26 payload1 joined #perl6
12:26 cai joined #perl6
12:27 mberends saran: well done! you should also 'make install', and if you have an hour of idle time, 'make spectest'
12:28 mberends saran++, and of course reward yourself with a little "hello world" script in perl6
12:29 saran started with "mingw32-make install" . wat does "make spectest" does..
12:30 rfordinal3643 joined #perl6
12:31 jnthn cognominal: Fancy some debugging?
12:31 jnthn cognominal: If so, see what I just pushed.
12:31 saran mberends : started with "mingw32-make install" . wat does "make spectest" does..Do i need to run "make spectest"
12:32 jnthn cognominal: Basically, though, build latest blizkost, add this patch to Rakudo: http://gist.github.com/188017
12:32 jnthn cognominal: After that, just do
12:32 mberends saran, 'make spectest' gives rakudo a heavy workout, and ensures that your installation is fully working. but it runs over an hours on most machines.
12:33 jnthn use CGI:from<perl5>; print CGI.header # sanity check, works for me, should for you too
12:33 jnthn Then
12:33 jnthn use CGI:from<perl5>; print CGI.new.header # oh noes, explodes
12:33 jnthn I've spent like, ages trying to work out why.
12:34 jnthn So if you can crack this one, then we'll be looking real good. :-)
12:36 colomon rakudo: sub clean_and_interpolate_code(Str $code) { return $code.subst(/ ^^ ' ' ** 12 /, '', :g); }; say clean_and_interpolate_code("his is a test");
12:36 jnthn cognominal: So far as I could see, dSP in the call to .header was setting SP to something bad.
12:36 p6eval rakudo a9ff30: OUTPUT«his is a test␤»
12:36 jnthn cognominal: So I suspect stack screw...somehow...though I'm lost on how.
12:41 * jnthn -> dinner
12:49 masak rakudo: class screw {}; class jnthn { method suspect($t) { say "{self.perl} suspects {$t.foo}" } }; role stack[::T] { method foo() { "stack " ~ T.perl } }; jnthn.suspect(stack[screw])
12:49 p6eval rakudo a9ff30: OUTPUT«jnthn suspects stack screw␤»
12:49 masak what could I write instead of the literal Str "stack " inside .foo?
12:50 saran mberends : tried h   hello world program ..got this error . "C:\rakudo\parrot>perl -e "say 'hello world\n'" String found where operator expected at -e line 1, near "say 'hello world\n'"         (Do you need to predeclare say?) syntax error at -e line 1, near "say 'hello world\n'" Execution of -e aborted due to compilation errors. "
12:50 masak saran: perl6, not perl.
12:50 moritz_ masak: $?PACKAGE once that's available
12:50 masak moritz_: would $?CLASS work as well?
12:51 moritz_ masak: $?CLASS evaluates to the class the role is composed into
12:51 masak ah.
12:52 saran masak : see the error tried befor <snip> C:\rakudo\parrot>perl6 -e "say 'hello world\n'" 'perl6' is not recognized as an internal or external command, operable program or batch file.</snip>
12:53 moritz_ saran: you have to add C:\rakudo\parrot_install\bin to the PATH environment variable
12:53 mberends saran, change directory to \rakudo
12:53 masak rakudo: role A { method foo { self.Str } }; say A.foo
12:53 p6eval rakudo a9ff30: OUTPUT«()<0xb6ace1c8>␤»
12:53 saran masak : executing this hello world program after successfull "make-install" .. did i missed to install anything ?
12:53 * masak submits rakudobug
12:53 masak saran: no, it should work. but maybe it's undertested in Windows.
12:54 moritz_ saran: probably the installation did work, but windows doesn't know where to search for the perl6.exe
12:54 moritz_ which is why you have to add the path to the PATH environment variable
12:54 mberends ...and then restart the command shell
12:56 saran mberends ,masak and moritz : cool!! super!! Got it <snip> C:\rakudo>perl6 -e "say 'hello world'" hello world <snip>
12:56 masak saran++
12:57 masak saran: welcome to the Perl 6 community! \o/
12:57 Matt-W \o/
12:58 saran masak : yes i am so excited to work on perl-6 and contributing my work to the community
12:58 masak saran: it will be great! looking forward to working by your side.
12:59 saran mberends : wat does pugs plays a role here ? do i need to checkout pugs from svn
13:00 mberends saran++: Pugs was the earlier Haskell based implementation of Perl 6, unfortunately not actively developed any more.
13:00 moritz_ so you don't really need it (IMHO)
13:00 Matt-W There are still some relevant things in the Pugs repository, but Pugs itself isn't required if you're going to work on Rakudo
13:01 mberends Rakudo does use the Perl 6 test suite from the Pugs repo
13:01 moritz_ but the pugs repository holds much more than just pugs - there's also the specification, test suite, our standard grammar (STD.pm), elf, smop, mildew and other good things in there
13:01 Matt-W elf, smop and mildew are all in there? wow
13:02 saran mberends and masak : would like to develop "Data::Dumper" module for perl6 .. Any comments on this ?
13:02 moritz_ and mp6, kp6, the smartlinks package, p6eval, thecode for the IRC logs
13:02 moritz_ saran: there's one built into Perl 6
13:02 moritz_ it's the .perl method
13:02 moritz_ rakudo: say [1, 3, 'foo'].perl
13:02 p6eval rakudo a9ff30: OUTPUT«[1, 3, "foo"]␤»
13:03 masak saran: however, there's one interesting unsolved problem with .perl that you're very welcome to attack. that of circular references.
13:03 sm` joined #perl6
13:04 saran masak : wat do u mean by ".perl" .some documents related to ".perl" to get working on the circular references
13:05 masak saran: I think I can dig up an old RT ticket for you.
13:05 diakopter masak: without allowing assignments into temporary/local hashes, it would need some "special" (exclusive) syntax
13:06 masak saran: but the basic problem is that Rakudo hangs when trying to do .perl on circular refs.
13:06 masak diakopter: not at all. just do 'my %temp1 = ...' inside the .perl expression.
13:07 moritz_ that's what diakopter meant by temporary/local hashes, I think
13:07 diakopter moritz_: thnx
13:07 masak yes, I realize that.
13:07 masak my reply was a bit... confused. :)
13:08 masak I guess I mean that I think that's an acceptable solution.
13:08 diakopter "not at all" in the sense of "not a problem" as opposed to "you're wrong" :)
13:08 masak right.
13:08 masak saran: et voila. http://rt.perl.org/rt3/Tic​ket/Display.html?id=58922
13:09 masak saran: that ticket is stalled, mostly because no-one knows what a good solution is.
13:10 masak saran: even making Rakudo not hang, and emitting "hey, this structure is circular! you can't do that!" would be a big win, if you ask me.
13:10 * moritz_ has a crazy idea about how contextual variables could solve that
13:10 mberends saran, at the shallow end, try perl6 -e"my %a = {}; %a<b>={}; %a<b><c>=42;say %a.perl" to see what .perl does
13:10 diakopter moritz_: :) yep
13:11 moritz_ %*DOT_PERL_SEEN{$reference}++
13:11 diakopter that's the solution Data::JavaScript took... I jettisoned that quickly while solving the same problem for vivjs two days ago
13:11 diakopter (what mberends said I mean)
13:12 diakopter I'll commit vivjs soon; it does the equiv of what moritz_ just typed
13:13 diakopter in Perl 5 tho
13:13 diakopter heh; actually it should be vijs, right? ;)
13:13 * diakopter looks for TimToady
13:15 diakopter for circular refs it has to stack up "post declaration" member assignments...
13:15 moritz_ vijs, yes
13:15 saran joined #perl6
13:15 diakopter so it needs to track both "seen" and "inside"
13:16 saran masak : hope i can debug the circular references problem in ".perl" step by step . Is perl6 -d option works ?
13:17 Matt-W Anybody want to show off some Perl 6? http://thedailywtf.com/Art​icles/Kirkmans-Ladies.aspx <- even though the problem spec discriminates against functional programmers
13:17 masak saran: unfortunately not.
13:17 masak saran: doing just 'perl6' gets you into a REPL, though.
13:18 masak saran: but be aware that variables don't survive from line to line in the REPL right now, so many programs become one-liners.
13:18 TiMBuS just use global vars
13:18 moritz_ how many characters fit into one line in IRC? 255?
13:18 Matt-W err
13:18 Matt-W impossible to say
13:18 arnsholt Depends a bit on the server IIRC
13:18 masak TiMBuS: global vars work... to an extent. you have to explicitly initialize global hashes, for example.
13:18 moritz_ s/characters/bytes/
13:19 Matt-W not sure if the protocol specifies a minimum...
13:19 TiMBuS $*vars used to work too. damn whoever fixed them :(
13:20 saran masak : pls give me the details abt ".perl" . Lemme start with the manual debugging to penetrate into circular references
13:20 arnsholt Matt-W: The "it should print not return the list" is fixed by something along the lines of (mapcar #'print (find-arrangment)) (assuming you speak Lisp)
13:20 masak saran: start by trying things like this:
13:20 masak rakudo: say [1,2, [3,4,5, []].perl
13:21 saran mberends : Glad to be the part of perl6 community. Looking forward to work on some interesting development . Get me to the right direction
13:21 p6eval rakudo a9ff30: OUTPUT«say requires an argument at line 2, near " [1,2, [3,"␤in Main (src/gen_setting.pm:2565)␤»
13:21 masak rakudo: say [1,2, [3,4,5, []]].perl
13:21 p6eval rakudo a9ff30: OUTPUT«[1, 2, [3, 4, 5, []]]␤»
13:21 saran masak : msg incomplete
13:21 masak saran: as you see, .perl works much like the old Data::Dumper.
13:22 Matt-W arnsholt: that's just wrapping your solution function in another one though - it says that the function that finds the solution should do the printing. It seems a bit ridiculous to me though - it's almost always better to structure algorithms without any output code anyway.
13:22 Matt-W arnsholt: admittedly that might be my Haskell-derived prejudices coming out :)
13:23 moritz_ hey, it's the daily WTF!
13:23 Matt-W this is true
13:23 mberends saran: nice to have you on board. we need contributions at so many levels, you'll just have to try stuff out to find out where you best fit in :)
13:23 Matt-W perhaps they're now encouraging the writing of code which they can feature later so that they don't run out of material
13:25 pugs_svn r28251 | colomon++ | [t/spec] Replace the ugly code as qq strings (which required all sorts of nasty escaping) with q strings plus simple hand interpolation using subst.
13:25 saran masak : am testing ".perl" method. will be back in a minute
13:26 masak saran: cool! check out src/setting/List.pm, line 42, to see how List.perl is defined.
13:28 masak saran: Mapping.perl (the one for hashes) isn't translated from PIR to Perl 6 yet. it's on line 243 of src/classes/Mapping.pir. I see no obvious reason why it couldn't be moved into the setting, though.
13:28 * masak tries to do that right away
13:28 diakopter moritz_: I guess %*seen could store both "seen" and "inside" by distinguishing between existence and zero
13:29 diakopter moritz_: did you see the p6eval weirdness from (my) last night?
13:29 mikehh joined #perl6
13:29 moritz_ diakopter: I did. No idea what went wrong.
13:29 diakopter rakudo: say(say(3))
13:29 p6eval rakudo a9ff30: OUTPUT«3␤1␤»
13:30 diakopter hm; works now
13:31 carlin Matt-W: http://github.com/carlins/perl​6-examples/tree/master/tdwtf/ :)
13:31 saran masak : Got it. please drop in ur mailid to discuss further when i have some clarifications
13:31 Matt-W carlin: cool!
13:31 saran masak : will be back after my gym and dinner
13:31 sri_kraih joined #perl6
13:34 * diakopter tinkers with different ways of arranging the ast
13:36 jaldhar joined #perl6
13:38 moritz_ rakudo: say (1..10).grep(* !% 3).perl
13:38 p6eval rakudo a9ff30: OUTPUT«[]␤»
13:38 moritz_ BUG
13:39 moritz_ rakudo: say (1..10).grep({ $_ !% 3}).perl
13:39 p6eval rakudo a9ff30: OUTPUT«[3, 6, 9]␤»
13:40 flip913 rakudo: say (1..10).grep({ * !% 3 }).perl
13:40 p6eval rakudo a9ff30: OUTPUT«[]␤»
13:41 flip913 rakudo: say (1..10)».{ * %! 3}
13:41 p6eval rakudo a9ff30: OUTPUT«Method 'postcircumfix:{ }' not found for invocant of class 'Int'␤»
13:43 masak flip913: you need an explicit 'map' or 'grep' there.
13:43 flip913 rakudo: say (1..10)».map({ * %! 3})
13:44 p6eval rakudo a9ff30: OUTPUT«!whatever_closure!whatever_closure!wha​tever_closure!whatever_closure!whatever_closu​re!whatever_closure!whatever_closure!whatever​_closure!whatever_closure!whatever_closure␤»
13:44 diakopter it's odd; sometimes viv/STD will parse in half a second.  sometimes it will parse (the same input) in >2 seconds... curiouser&
13:44 flip913 rakudo: say (1..10)».map( * %! 3)
13:44 p6eval rakudo a9ff30: OUTPUT«12345678910␤»
13:45 flip913 rakudo: for ^10 { if * %! 3 { say } }
13:45 p6eval rakudo a9ff30:  ( no output )
13:45 flip913 rakudo: for ^10 { if $_ %! 3 { say } }
13:46 p6eval rakudo a9ff30: OUTPUT«say requires an argument at line 2, near "} }"␤in Main (src/gen_setting.pm:2582)␤»
13:46 flip913 does it?
13:46 flip913 rakudo: for ^10 { if .%! 3 { .say } }
13:46 p6eval rakudo a9ff30: OUTPUT«Confused at line 2, near ".%! 3 { .s"␤in Main (src/gen_setting.pm:3469)␤»
13:46 flip913 rakudo: for ^10 { if $_ %! 3 { .say } }
13:46 p6eval rakudo a9ff30: OUTPUT«1␤2␤3␤4␤5␤6␤7␤8␤9␤»
13:47 flip913 flip913: confused
13:47 flip913 rakudo: for ^10 { say $_ % 3  }
13:47 p6eval rakudo a9ff30: OUTPUT«0␤1␤2␤0␤1␤2␤0␤1␤2␤0␤»
13:47 flip913 rakudo: for ^10 { say $_ %! 3  }
13:47 p6eval rakudo a9ff30: OUTPUT«0␤1␤2␤3␤4␤5␤6␤7␤8␤9␤»
13:47 flip913 rakudo: for ^10 { say $_ !% 3  }
13:47 p6eval rakudo a9ff30: OUTPUT«1␤0␤0␤1␤0␤0␤1␤0␤0␤1␤»
13:47 flip913 rakudo: for ^10 { if $_ !% 3 { .say } }
13:48 p6eval rakudo a9ff30: OUTPUT«0␤3␤6␤9␤»
13:48 flip913 rakudo: for ^10 { if .!% 3 { .say } }
13:48 p6eval rakudo a9ff30: OUTPUT«Confused at line 2, near ".!% 3 { .s"␤in Main (src/gen_setting.pm:3469)␤»
13:48 flip913 what's the %! operator?
13:48 [particle] you're calling postfix !% on $_. rakudo doesn't understand that
13:49 flip913 No, really the <%!> operator.
13:49 flip913 It was accepted as "$_ !% 3"
13:49 saran Lesson learnt in installing rakudo " we need to make a copy of "copy c:\strawberry\c\bin\mingw32-make.exe c:\strawberry\c\bin\make.exe
13:49 flip913 <!%> is "not-modulo", "evenly divisable" or whatever it's called.
13:49 [particle] for ^10 { if $_ ! % 3 { .say } }
13:49 [particle] rakudo: for ^10 { if $_ ! % 3 { .say } }
13:49 p6eval rakudo a9ff30: OUTPUT«Confused at line 2, near "! % 3 { .s"␤in Main (src/gen_setting.pm:3469)␤»
13:50 flip913 space too much?
13:50 saran Lesson learnt after installing rakudo : missing make in strawberry perl . then found by mberends that we need to make a copy "copy c:\strawberry\c\bin\mingw32-make.exe c:\strawberry\c\bin\make.exe " .. can someone document this part to avoid errors ?
13:51 mberends saran, I'm preparing that for perlfoundation.org/perl6 and also the Rakudo README
13:51 flip913 rakudo: say infix:<%!>.perl
13:51 p6eval rakudo a9ff30: OUTPUT«Confused at line 2, near ":<%!>.perl"␤in Main (src/gen_setting.pm:3469)␤»
13:52 [particle] mberends: why would you copy make to a different name, rather than config rakudo to recognize the proper make engine?
13:53 mberends [particle]: true, a bit more toolchain detection could sniff out make, nmake or mingw32-make automagically. I'll take a look at that also :)
13:54 mberends [particle]: today's efforts were just a quick and dirty get-started ;)
14:03 Matt-W rakudo: say &infix:<%!>.perl
14:03 p6eval rakudo d1f2d4: OUTPUT«undef␤»
14:04 ruoso joined #perl6
14:05 ruoso Hello!
14:06 moritz_ wb ruoso
14:06 diakopter ruoso: howdy
14:06 Matt-W hey ruso
14:06 Matt-W ruoso, argh
14:06 Matt-W not awake at all today
14:07 * moritz_ wonders if his comment about not bikeshedding deterred everybody from answering his mail about perl6.org on p6l
14:08 diakopter None Dare Call It Bikeshedding
14:09 diakopter (the "considered harmful" meme equivalent of the middle 20th century USA)
14:12 KyleHa joined #perl6
14:17 justatheory joined #perl6
14:19 payload joined #perl6
14:20 ispy_ joined #perl6
14:20 ispy_ left #perl6
14:20 ruoso moritz_, well, you just proposed to drive the effort ;) we're just passengers now ;)
14:21 nihiliad joined #perl6
14:23 moritz_ how stupid of me ;-)
14:23 colomon rakudo: say Inf.Num;
14:23 mikehh rakudo (d1f2d4c) builds on parrot r41295 - make test / make spectest (up to 28251) PASS - Ubuntu 9.04 amd64
14:23 p6eval rakudo d1f2d4: OUTPUT«Inf␤»
14:23 ruoso moritz_, but anyway, sometimes silence just means agreement...
14:26 cdarroch joined #perl6
14:27 Matt-W or indifference
14:27 diakopter or fatalism :)  or relative indifference, related by busyness.
14:28 TiMBuS damn. my multimethod is being called three times using '.*'
14:28 TiMBuS im guessing this is a bug?
14:30 moritz_ depends on what you do, exactly
14:30 moritz_ .* calls all matching multi methods
14:30 abra joined #perl6
14:30 TiMBuS yep
14:30 moritz_ ... except when you're in a regex ;-)
14:30 TiMBuS but its calling the same method
14:30 TiMBuS "Dispatching on message. Method called. Method called. Method called. Done dispatching"
14:30 TiMBuS is the output
14:31 TiMBuS only one of my methods is printing that
14:31 moritz_ well, it's hard to comment on that without seeing the code
14:31 TiMBuS say 'Dispatching on message'; $bot.*messaged(~$text, ~$from, ~$channel); say 'Done dispatching';
14:32 TiMBuS the matching method is just a one liner
14:32 TiMBuS it is a role, though
14:32 colomon rakudo: say cosh(Inf)
14:32 p6eval rakudo d1f2d4: OUTPUT«Inf␤»
14:32 TiMBuS inherited
14:33 moritz_ TiMBuS: if you could reduce that to a minimal example and submit as a bug report, that would be awesome
14:33 TiMBuS ill try.. i was just wondering if this is to be expected using .*
14:34 TiMBuS might have something to do with parent.. walking
14:34 TiMBuS i dont know
14:34 moritz_ if there's just one method messaged defined in your code, it's not expected
14:34 moritz_ if you have multiple such methods, it depends on the exact declaration
14:34 moritz_ if you just want the best fit, a normal $bot.messaged() call might be best
14:35 TiMBuS theres multiple messages, but only one prints
14:35 TiMBuS and only one seems to be called three times
14:35 TiMBuS messaged needs to be .* because its a pluggable dispatch
14:35 TiMBuS people can add more if they want
14:36 TiMBuS i wonder how many OO programmers i have offended using a parent class to call child methods.
14:37 moritz_ in general there's nothing wrong with it
14:37 colomon rakudo: say exp(Inf)
14:37 p6eval rakudo d1f2d4: OUTPUT«Inf␤»
14:38 moritz_ rakudo: say exp(-Inf)
14:38 p6eval rakudo d1f2d4: OUTPUT«0␤»
14:38 colomon oooo...
14:38 colomon forgot about that.
14:38 moritz_ how very well defined
14:38 moritz_ such a beauty it makes you weep
14:38 colomon I'm trying to figure out what the hyperbolic stuff should return when you pass it +-Inf.
14:39 colomon I suspect the implementation is currently smarter than my tests.  :)
14:39 moritz_ cosh(Inf) ~~ Inf looks right to me
14:39 moritz_ same for cosh(-Inf)
14:40 moritz_ sinh(Inf) ~~ Inf
14:40 moritz_ sinh(-Inf) ~~ -Inf
14:40 colomon rakudo: say tanh(Inf)
14:40 p6eval rakudo d1f2d4: OUTPUT«1␤»
14:41 moritz_ and tanh(-Inf) == -1
14:41 colomon rakudo: say sech(Inf)
14:41 p6eval rakudo d1f2d4: OUTPUT«0␤»
14:41 colomon rakudo: say 1.0 / Inf
14:41 p6eval rakudo d1f2d4: OUTPUT«0␤»
14:43 Psyche^ joined #perl6
14:46 rfordinal joined #perl6
14:47 pmichaud Good morning, #perl6
14:47 colomon o/
14:47 moritz_ \o
14:48 jnthn \o/
14:48 diakopter ]o[
14:48 moritz_ õ
14:50 pmichaud lol   # wave like an egyptian
14:52 colomon Err... just got a weird error.
14:53 colomon I passed too few parameters to .new, and instead of complaining about too few, it said "too many arguments passed (5) - 1 param expected"
14:53 colomon Mind you, I passed four, and should have passed six.
14:54 jnthn Parrot can't count.
14:55 moritz_ the 5 can easily be explained - it counts the invocant too
14:55 jnthn aye
14:55 colomon That makes sense.
14:56 colomon Is one also a an acceptable number of params for the default .new?  So the issue is that it should be one or six, and it only mentions the one in the error message?
14:57 moritz_ yes, the default .new takes only the invocant (1)
14:57 moritz_ plus optionally named ones
15:05 colomon So basically, a less than awesome error message, but a perfectly sensible one.
15:06 moritz_ no
15:06 moritz_ either it does multi dispatch
15:06 moritz_ then it has to complain that no candidate was found
15:06 moritz_ or it does single dispatch
15:07 moritz_ then the error message has to fit to the candidate it tried to invoke
15:07 colomon Known issue, or should I try to isolate and reproduce it?
15:08 moritz_ don't know if it's know
15:14 colomon oooo, another fun issue.  Apparently is(cosech(-Inf), -0, "whatever") doesn't work, even though
15:15 colomon rakudo: say cosech(-Inf)
15:15 p6eval rakudo d1f2d4: OUTPUT«-0␤»
15:16 moritz_ rakudo: use Test; plan 1; is(cosech(-Inf), -0, "whatever")
15:16 p6eval rakudo d1f2d4:  ( no output )
15:16 colomon just occurred to me that "-0" might work, trying that now.
15:16 colomon I think the problem is
15:17 moritz_ rakudo: use Test; plan 1; is(cosech(-Inf), -0, "whatever")
15:17 colomon rakudo: say -0
15:17 p6eval rakudo d1f2d4:  ( no output )
15:17 p6eval rakudo d1f2d4: OUTPUT«0␤»
15:17 colomon need to run exercise now, more later...
15:18 moritz_ colomon: comparing with == 0 should work
15:26 mberends pmichaud, it's tempting to easily replace ~/.perl6lib in @*INC with ~/.perl6/lib leaving the door open for ~/.perl6/bin etc. DO you think that would be a change for the better or worse? The code needs to be adapted a little for Windows, anyway.
15:30 abra joined #perl6
15:34 pmichaud mberends: how about just ~/.perl6 ?
15:35 pmichaud in the Perl world I sometimes have difficulty distinguishing between "lib" and "bin"  :-)
15:35 pmichaud one person's application ends up being another person's library
15:36 moritz_ pmichaud: more to the point, the proto hackers also considered putting configuration files into ~/.perl6/proto/ or s
15:36 moritz_ o
15:36 pmichaud I prefer "~/.perl6" or "~/.rakudo" to "~/.perl6lib"
15:36 pmichaud whether that is then subdivided is up to others :)
15:37 pmichaud more to the point, my initial inclination would be that it would be ~/.perl6 in the @*INC path rather than ~/.perl6/lib .  I don't know why that's my inclination, but it is.
15:38 pmichaud But I'm fine with ~/perl6/lib
15:38 pmichaud er, ~/.perl6/lib
15:39 jrtayloriv joined #perl6
15:41 mberends ok, there were some other motivations for ~/.perl6/lib, but I don't remember them. I guess we try it out and change it anyway if it's bad. I do know TimToady++ is strongly _against_ any kind of ~/.perl6.conf, as he was in Perl 5
15:42 pmichaud seems to me that a "perl6.conf" is really just a specialized setting
15:42 moritz_ mberends: I think TimToady's point was the running programs should not be affected by a global configuration file - configuration files that organize module installing are just fine, I think
15:43 mberends Perl scripts should predeclare how they mutate the default environment or ecosystem, ie they should call modules for everything
15:44 pmichaud exactly.  So the equivalent of perl6.conf is    ./perl6 -L myconf ...
15:44 mberends moritz_: yes, another way of saying the same thing
15:45 pugs_svn r28252 | moritz++ | [perl6.org] start the new site as announced on p6l
15:45 pugs_svn r28252 |
15:45 pugs_svn r28252 | It is currently not visisble on perl6.org (and won't be until it all works
15:45 pugs_svn r28252 | properly).
15:45 pugs_svn r28252 |
15:45 pugs_svn r28252 | This commit just adds two pages and a tiny peace of infrastructure.
15:45 pmichaud it's always nice to have peaceful infrastructures.  :)
15:46 moritz_ ouch.
15:46 mberends peace unfortunately tends to be short lived
15:46 moritz_ I shouldn't have  touched a keyboard today
15:47 pmichaud mberends:  "short lived?  What are you talking about?  Wanna fight about it?!?!"  :-)
15:48 mberends 45 seconds this time ;)
15:49 pugs_svn r28253 | colomon++ | [t/spec] Expand trig tests to handle Inf and -Inf tests properly.
15:49 huf what do you expect? people cant stand peace with its googly eyes and pores seeping mucus
15:50 * moritz_ expects world domination, real fast
15:50 mberends peace by peace
15:51 huf that's a very small square
15:51 moritz_ "I know there are people in this world who do not love their fellow human people and I *hate* people like that" -- Tom Lehrer
15:51 pmichaud (Tom Lehrer)++
15:52 moritz_ indeed
15:52 moritz_ he has lots of cool stuff
15:52 * pmichaud opens up music player to hear "National Brotherhood Week" again :)
15:52 cognominal rakudo: eval(  'package A;  sub ok { print "@{$_[1]}\n" };   bless {}', :lang<perl5> ).ok( ["o", "k"]);
15:52 p6eval rakudo d1f2d4:  ( no output )
15:52 cognominal ouch
15:53 moritz_ colomon: that died with a segfault
15:53 pmichaud what is that @{$_[1]}   supposed to be/do?
15:53 pmichaud oh, it's :perl5
15:53 pmichaud nm
15:54 moritz_ rakudo: eval(  'package A;  sub ok { print "@{$_[1]}\n" }; bless {}', :lang<perl5> ).ok( ["o", "k"]); # with blizkost freshly recompiled
15:54 p6eval rakudo d1f2d4: OUTPUT«Sorry, we do not support marshalling most things to Perl 5 yet.␤in Main (/tmp/gnk6rRHDKk:2)␤»
15:54 masak "World Domination, peace by peace". I like that slogan. :)
15:55 dalek rakudo: b29506b | masak++ | src/ (2 files):
15:55 dalek rakudo: translated Mapping.perl to the setting
15:55 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/b​29506b0ed448e2744beccc76eae3255c2b0f0e9
15:56 pmichaud maybe omit the 'return' ?
15:57 mberends pmichaud: that was the documentation ;)
15:57 pmichaud or we can leave it there, and hopefully someday the compiler can optimize it out
15:57 moritz_ should we mention blizkost in the Rakudo release announcement?
15:57 pmichaud +0.5
15:58 drbean joined #perl6
15:58 moritz_ it's +0.5 here too ;-)
15:58 masak I like explicit returns. in this case, I also copied-and-modified the code in List.perl, which has a 'return'.
15:59 pmichaud (explicit returns)  I won't push it yet, just keep in mind that explicit returns do impose some overhead.
15:59 pmichaud (an extra function call, create an exception, throw the exception, catch the exception, unpack the arguments)
16:02 masak nod.
16:02 TimToady the last one in a block should be easy to optimize away
16:02 masak usually .perl is made in conjunction with I/O, so here it would probably be premature optimisation to remove it.
16:03 masak but in case it isn't, my claiming it's premature optimisation probably counts as premature dismissal. :P
16:03 ejs joined #perl6
16:04 masak my rationale for leaving an explicit 'return' in the code is a bit stronger in long methods. I think I picked up the habit from PBP.
16:04 payload joined #perl6
16:04 pmichaud I do understand the desire for explicit return -- it does read better in many cases.
16:05 TimToady might make more sense to put void; at the end of routines that *don't* return :)
16:05 moritz_ I documented it in docs/guide_to_setting.pod anyway (advocation of implicit returns)
16:05 moritz_ masak: as long as you don't dare to complain about rakudo's speed... ;-)
16:05 jnthn If the last statement is a return, then yes, I suspect we can optimize that without too much trouble.
16:05 masak moritz_: oh, I can complain, if that's called for... :)
16:05 jnthn Probably even for Rakudo *.
16:05 pmichaud I think it has to be the last statement of the sub block, though.  last statement of a nested block might not be so easy
16:06 TimToady we don't require consistency here :)
16:06 jnthn pmichaud: Agreed, that's what I had in mind. :-)
16:06 moritz_ TimToady: should introspection of attribute allow returning the value?
16:06 TimToady I meant last statement in a routine, not block
16:06 pmichaud ...and we have to make sure that return() hasn't been overridden.  :-P
16:06 moritz_ I wanted to write Object.perl, and found it quite impossible without that feature
16:06 jnthn pmichaud: ewww.
16:06 pmichaud ...and that there's not a CONTROL block in effect
16:07 pmichaud (these are all doable, yes.)
16:07 TimToady moritz_: don't ask hard questions :)
16:07 jnthn plz I can retire before we write to optimizer? ;-)
16:07 dalek rakudo: fa7142a | moritz++ | docs/guide_to_setting.pod:
16:07 dalek rakudo: [docs] recommend implicit return for setting files
16:07 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/f​a7142a8c57cfd0d1272f5c9ef1b6c0a316bd3d6
16:07 jnthn s/to/the/
16:08 cognominal moritz_, are you sure that p6eval pulls the last blizkost?
16:08 pmichaud here's my recommend explicit return:     #`(return) $value;
16:08 pmichaud :-P
16:08 cognominal ho, jonathan had added stuff
16:08 jnthn moritz_: Are you meaning .^attributes ?
16:08 TimToady moritz_: I suspect we can only gurarantee that we can return a closure that will return the value if called
16:08 jnthn cognominal: Aye. Did you fix the SEGV yet? ;-)
16:09 moritz_ maybe we can have a 'use speed;' flag that tells the compiler that if certain things are not overridden at compile time they won't be at run time either
16:09 cognominal nope, I am just discovering what you just added
16:09 TimToady but my coffee level is still to low
16:09 moritz_ jnthn: yes
16:09 jnthn cognominal: hehe.
16:09 jnthn cognominal: I writed some code. ;-)
16:09 cognominal nice
16:09 moritz_ TimToady: I don't care either way as long as I can obtain those values somehow
16:10 jnthn cognominal: If we can fix that SEGV then we can probably about use DBI:from<perl5>; and then be able to actually use it.
16:10 moritz_ cognominal: pretty sure, yes
16:10 sevvie joined #perl6
16:10 jnthn TimToady: That sounds sensible, but I'm tired.
16:10 TimToady actually, you can introspect an attribute without an object, so I think there's no guarantee
16:11 jnthn TimToady: Well, that's the hard part. :-)
16:11 cognominal moritz_,  indeed, jnthn had added code, that's why it did not work as I expexted.
16:11 jnthn All the introspection we have so far is through the metaclass.
16:11 jnthn TimToady: And this calls for introspection of an individual object.
16:12 TimToady are there desirable MOPs that would not be able to do that?
16:12 jnthn OTOH, it'd be the metaclass that knows how to do this...
16:12 TimToady for instance, if it's not provided by the underlying VM
16:12 moritz_ we need that anyway, for properly introspecting attributes that were mixed in at run time
16:12 jnthn Well, we can make it an optional rather than required part of the MOP.
16:12 TimToady though you'd think it could be faked
16:13 TimToady well, you couldn't suppress side effects, if that's what you mean by "introspect"
16:13 TimToady though for common MOPs $!foo should be get-at-able somehow
16:13 jnthn yeah, true
16:13 jnthn Aye.
16:13 jnthn I think we should provide a way.
16:14 jnthn If only because we can't write the default .perl otherwise...
16:14 TimToady but it sounds like one of those things that if you try to generalize/standardize, it could slow things down
16:14 cognominal jnthn,  blizkost :  scripting Perl 5 in Perl 6 or  "the power of Perl 6 with the speed of Perl 5"
16:14 moritz_ ah well, there are other uses for serialization, not only .perl
16:15 TimToady well, maybe every MOP has to provide a was to do .perl or the components thereof
16:15 TimToady *way
16:15 jnthn cognominal: I was aiming more for migration strategy and making CPAN available to languages running on Parrot... :-)
16:16 moritz_ TimToady: yes, and the interface to that is $obj.^attributes, no? ;-)
16:17 TimToady the "the" is a lie, I suspect
16:17 moritz_ s/the/an/
16:18 TimToady it might not be the path that $!foo uses
16:18 TimToady in fact, I think it's quite unlikely
16:19 TimToady certainly our brains don't access data via introspection :)
16:19 jnthn aye
16:20 jnthn The introspection way doesn't have to be nice.
16:20 moritz_ right
16:21 jnthn I think it falls into the "everything's possible, but some things are discouraged" camp
16:23 gabiruh_ joined #perl6
16:24 jauaor joined #perl6
16:29 stephenlb joined #perl6
16:30 cognominal jnthn, migration is such a scary word :)
16:30 jnthn cognominal: I already did it twice. ;-)
16:31 jnthn OK, sleep time here :-)
16:31 jnthn night all
16:32 moritz_ good night
16:33 abra joined #perl6
16:35 rfordinal left #perl6
17:13 ruoso TimToady, have you seen my comments on the slides you mentioned?
17:15 TimToady yes, and I don't think you've quite got the distinction Guy was trying to make wrt flat lists
17:16 zloyrusskiy joined #perl6
17:20 TimToady you're assuming the "divide" has already happened on the divide-and-conquer, while I'm saying that our iterator interface needs to support "divide"
17:21 TimToady and not just in the car/cdr sense, which is Guy's point
17:26 ruoso TimToady, er... I was actually assuming that our interface for "get the elements for the first dimenion" is how we ask the split to happen
17:26 ruoso there's no need for both APIs
17:27 ruoso I mean... if the list supports this kind of splitting, it should be able to split itself in the "first dimension"
17:27 TimToady something has to request that explicitly, or we get confused with real multi-dims
17:27 ruoso but that's something good
17:28 TimToady not for generic code
17:28 ruoso (map {... }, @a, map {...}, @b)
17:28 ruoso er...
17:28 ruoso ((map {... }, @a),( map {...}, @b))
17:28 stephenl1 joined #perl6
17:29 TimToady there might be diffulties with ambiguous dispatch too
17:29 TimToady *difficulties with spelling too...
17:30 ruoso my point is that keeping the same primitives will make regular code more parallelizable
17:30 TimToady anyway, at the iterator level we need some way to tell the iterator to make multiple threads
17:31 ruoso In my head, every iterator is associated with a "pipe" (in the unix sense)
17:31 M_o_C joined #perl6
17:31 ruoso (but not in the unix implementation)
17:31 ruoso I mean...
17:32 ruoso every lazy operation is automatically splitted in several "light threads"
17:32 TimToady pipes single threaded in the "bad" sense Guy is talking about
17:32 ruoso that's the point... they're not single-threaded
17:32 TimToady well, lazy lists are single-threaded more-or-less by definition
17:33 TimToady it's the eager and hyper you can parallelize
17:33 TimToady and hyper explicitly requests it
17:33 ruoso but I think I see what you mean now, we need to specifiy what "hyper iterator" means
17:34 TimToady yeah, I'm kinda groping for the same kind of thing Guy is talking about there
17:34 TimToady he is, of course, much more eloquent on the subject
17:35 TimToady but I also just want to alert our "design team" to keep a watch for other spots where we might have made Von Neumann assumptions unnecessarily
17:35 ruoso I see...
17:35 zamolxes joined #perl6
17:36 ruoso basically, we need a parallelizable way to iterate ((map {...},@a),(map {...},@b))
17:36 TimToady we need a way to turn map {...}, @c into that
17:37 TimToady and it seems like asking @c to divide itself is close to the right way
17:37 TimToady if it degrades to car/cdr, that's no worse than we were :)
17:37 TimToady abstractly speacking
17:38 TimToady *speaking, gah, can't type today
17:38 pugs_svn r28254 | moritz++ | [new perl6.org] initial menu (not yet styled)
17:40 ruoso TimToady, isn't "divide itself" the same as "car/cdr" implemented in OO?
17:40 TimToady did anyone here grab the #perl6 twitter account?  It's "taken"...
17:41 TimToady I don't understand your question
17:41 TimToady did you look at Guy's slides about balanced tree reprs?
17:42 ruoso TimToady, yeah, but I don't see very much how that fits with lazyness
17:42 ruoso he kinda assumes the cost of generating the data structures to be nil
17:42 ruoso i.e. the data is already there
17:42 TimToady he kinda assumes we're going to have parallism
17:43 TimToady *parallelism
17:43 ruoso but "balanced tree" doesn't make much sense with lazyness
17:43 TimToady we're not talking about lazyness here
17:43 hudnix joined #perl6
17:43 TimToady we're talking about hyper
17:44 ruoso I'm talking about mixing both
17:44 ruoso how do hypers operate on lazy lists
17:44 ruoso (trees, actually, if you consider it doesn't flatten)
17:45 TimToady hypers are contextual, and bias all the operations away from lazy within their scope
17:46 TimToady it's quite possible that hyper and eager are the same thing in the long run
17:47 TimToady unless there's a good reason to bias things toward multiple threads vs one thread of eagerness
17:47 ruoso TimToady, that's my point
17:47 TimToady well, that's not what you said
17:47 TimToady you were talking about laziness
17:47 ruoso ok... I didn't express myself very well
17:48 ruoso I was talking about the process of consuming a lazy list inside an hyper operation
17:48 pugs_svn r28255 | moritz++ | [perl6.org] set svn props, convert NOTES and TODO to unix/native line endings
17:48 TimToady think more like P5 "there's no such thing as a list in scalar context"
17:49 ruoso I should have said capture instead of list
17:49 ruoso since it's multidimensional
17:50 TimToady I look at it like this, when you start up an iterator, you can "work ahead". and lazy/eager/hyper allocate 0/1/* threads to working ahead
17:51 ruoso right... that's what I have in mind too
17:53 TimToady depending on the data structure coming in, we may have several different ways of divvying up the work
17:53 ruoso right... my idea was to use the multi-dimensionality to do that
17:53 TimToady including degrading hyper to eager
17:53 TimToady where eager is more or less car/cdr
17:53 TimToady that feels like a mistake to me
17:54 ruoso it comes with the benefit that situations like ((map {...},@a),(map {...},@b)) naturally are more parallelizable
17:55 TimToady let's put it this way, the parallelizer can use dimensionality if it's there, but dimensionality is not the only way to do that
17:56 ruoso that'd be fine
17:56 * ruoso needs to go extinguish a fire
17:57 TimToady hijacking the dimensionality notation for that therefore feels like a mismatch, but then, maybe so is my conjecture
17:58 TimToady and it's all done on the make-me-an-iterator level
17:58 TimToady but that iterator also has to be dealable-with in a non car/cdr fashion, maybe that's the crux of the problem
17:59 ruoso I think then it's the Iterator that would answer the "divide", not the list
17:59 ruoso then the Iterator would look "is this multidim?"
17:59 ruoso and decide the best strategy to parallelize its own consuming
18:00 * ruoso brb &
18:08 sm^^^ joined #perl6
18:53 pugs_svn r28256 | diakopter++ | [std-vijs] initial JS interpreter (emitter, mostly). will add readme soon
19:01 cmv joined #perl6
19:09 pugs_svn r28257 | diakopter++ | [std-vijs] oops; forgot comment open when pasting non-copyright notice in json2.js
19:21 rapacity joined #perl6
19:28 * ruoso back
19:29 ruoso TimToady, so, what do you think of letting the decision of parallelization strategy to the iterator?
19:29 ruoso instead of the list, that is
19:30 TimToady a list might want to choose an alternate implementation (balanced trees) if it knows it will be used by a hyper iterator
19:33 TimToady mainly we need to make sure the API will support context propagation
19:33 pugs_svn r28258 | diakopter++ | [std-vijs] added README, for moritz_++ moritz++
19:33 ruoso TimToady, there's a detail...
19:33 ruoso the Iterator is returned by the list
19:34 ruoso and the context of the iterator is propagated
19:34 ruoso (flattening vs non-flatteniing)
19:36 ruoso I guess an hyper operator would ask for parallel instances of that iterator
19:37 ruoso for (1..$max_threads) { my $subiterator = $iterator.parallel; ... }
19:38 TimToady perhaps some kind of hypermap is primitive
19:39 TimToady at some point we hit a scheduler, and it will have some notion of threads
19:39 ruoso rewriting the above snippet....
19:40 ruoso for $iterator.parallel -> $subiterator { async { ... } }
19:40 TimToady and perhaps there's some SIMD interface to the scheduler resembling a hypermap
19:40 TimToady (not SIMD in the lockstep sense)
19:41 ruoso in my head, every iterator has two ends, and two threads are connected to each end... in $iterator.parallel, this iterator will have several outputs, and one thread to each output
19:41 TimToady your .parallel is returning a lazy list of threads?
19:42 ruoso a lazy list of iterators to be managed by different threads
19:42 TimToady you're assuming a hyper context there...
19:42 ruoso yes
19:42 TimToady how do you maintain the order of the thread results?
19:43 ruoso getting the results in the order you got the original iterators
19:43 PZt joined #perl6
19:43 TimToady still seems like you're assuming the solution in your solutoin
19:44 ruoso hm?
19:45 ruoso the result is (@lazy_result_for_p_iterator_1, @lazy_result_for_p_iterator_2, ... )
19:46 dalek rakudo: 177a379 | pmichaud++ | docs/spectest-progress.csv:
19:46 dalek rakudo: spectest-progress.csv update: 436 files, 15497 (71.5% of 21671) pass, 0 fail
19:46 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/1​77a379cc84eea3bf2e3ad0cd3e75bac13ec878b
19:46 TimToady okay, if each of those can in turn be lazy results, all autoflattened, then it'll probably work
19:49 TimToady but we have to be able to divide the problem without inducing extra capture structure
19:49 TimToady since the user may be depending on what the user expects :)
19:50 ruoso I guess the fact that the List is returning the Iterator allows the list to decide that
19:50 ruoso in the end, it's everything in the control of the list
19:50 ruoso and it might see: This is simply a range object, I can get the first half and the second half as parallel threads...
19:51 TimToady my conjecture was aimed at trying to use multiple dispatch to distinguish the splittable from non-splittable cases
19:52 ruoso hmm...
19:52 TimToady but it might be malformed
19:52 * ruoso trying to see what that really means
19:52 TimToady something that distinguishes leaves from branches, basically
19:53 ruoso I think it's probably better to avoid exposing that kind of logic
19:53 TimToady but if the hypermap is a primitive, what would you write differently in the body
19:53 TimToady ?
19:53 TimToady yes
19:54 TimToady well, let's see how it works out underneath and then talk about exposition :)
19:54 ruoso I think hypermap would replace the for $iterator.parallel -> $subiterator { async { ... } } part
19:54 ruoso ;)
19:54 ruoso basically, it would implement that logic
19:55 ruoso hypermap { something() }, @a;
19:56 ruoso would result in for @a.Iterator.parallel -> $subiterator { async { while (my $item = $subiterator.get) { something() } } }
19:57 TimToady without making separate captures for each result like ordinary map does
19:57 ruoso hmm... I was afraid you'd say that ;)
19:57 ruoso but yes, it makes sense
20:00 TimToady phone
20:01 jaldhar joined #perl6
20:01 ruoso TimToady, but I thought map was already potentially hyper, wasn't it?
20:02 __ash__ joined #perl6
20:03 Intensity joined #perl6
20:05 SmokeMachine joined #perl6
20:08 moritz_ diakopter: does the v8 build-from-source has to be trunk? or is a release new enough?
20:10 moritz_ (taking trunk now)
20:14 __ash__ moritz_ i have a question about roles, if you have a role that has some attributes, like say role property { has $.type is rw; has $.attr is rw; } can you set that when do a does statement like... my $a does property('foo', 'bar'); ?
20:14 TimToady ruoso: not sure if 'hyper map' is the primitive or not
20:15 iblechbot joined #perl6
20:15 moritz_ __ash__: I think you need named arguments for that... I have to look it up in S14...
20:15 TimToady arguably the primitive hypermap is more like, "traverse this capture tree and apply code to each node"
20:16 moritz_ S14 says "A role applied with does may be parameterized with an initializer in parentheses, but only if the role supplies exactly one attribute to the mixin class:"
20:17 moritz_ it's silent about the syntax for multiiple attributes
20:17 moritz_ maybe it's does property[:foo<foo>, :bar<bar>] or so
20:19 moritz_ or maybe the "parameterized" is not the same as in "parameterized role"
20:19 __ash__ well, for now i am just doing it over multiple lines of $a.type = 'foo'; $a.attr = 'bar'; i just was wondering if there was a constructor or something i could override
20:19 __ash__ well, not really a constructor but whatever a role equivilent would be
20:20 diakopter moritz_: trunk is "stable"... bleeding_edge is not
20:22 diakopter moritz_: (pushes to trunk are "releases", essentially)
20:23 moritz_ ok, installing V8 and perl-v8 seemed to work
20:31 ruoso TimToady, but map already has to traverse the sub-captures anyway
20:31 ruoso the map closure never sees a branch, it only sees the leafs
20:32 tann joined #perl6
20:33 tann rakudo: caller; # :)
20:33 p6eval rakudo 177a37: OUTPUT«caller() is not yet implemented in Rakudo, sorry␤in sub caller (src/gen_setting.pm:1842)␤called from Main (/tmp/kJv3Xp4Q50:2)␤»
20:34 TimToady but the hyper map may well want to delegate higher level nodes one way or another, so the tree structure ends up as implementation structure, not just solution structure
20:35 ruoso TimToady, I see, but I mean, in terms of execution strategy, are we enforcing that map will run sequentially?
20:36 TimToady makes sense to be sequential when you're lazy
20:36 ruoso if we allow map to run in several threads, it already can behave as the hypermap
20:36 TimToady and lazy is the default
20:36 ruoso but that's why it's the list that returns the iterator
20:36 ruoso and the list knows if it makes sense to be parallel or not
20:36 TimToady sorry, still trying to pay attention to phone call
20:37 ruoso in summary: map already fullfits the purpose of the hypermap you're proposing
20:40 pugs_svn r28259 | moritz++ | [src/perl6] 'make snap' should copy viv, and symlink the js/ directory
20:42 pugs_svn r28260 | moritz++ | [evalbot] vijs target
20:43 p6eval joined #perl6
20:43 diakopter vijs: say(20,3)
20:43 p6eval vijs 28259: OUTPUT«sh: /usr/bin/perlviv: No such file or directory␤»
20:43 alexn_org joined #perl6
20:43 diakopter WOW it's FAST
20:45 pmurias joined #perl6
20:48 pugs_svn r28261 | diakopter++ | fix typo
20:48 diakopter p6eval: restart
20:48 diakopter p6eval: control restart
20:48 diakopter evalbot control restart
20:49 p6eval joined #perl6
20:49 pmurias vivjs: say "hi"
20:49 diakopter nope
20:49 diakopter tee hee
20:49 moritz_ just a sec
20:49 p6eval joined #perl6
20:49 moritz_ vivjs: say 'hi'
20:50 moritz_ vijs: say 'hi'
20:50 p6eval vijs 28259: OUTPUT«Undefined subroutine &ToJS::emit_js called at viv line 154.␤»
20:50 pmurias timeout?
20:50 diakopter oh it needs ToJS.pm too.
20:50 diakopter the snap
20:51 pugs_svn r28262 | moritz++ | [src/perl6] copy ToJS.pm to snap
20:51 Lorn_ joined #perl6
20:51 moritz_ vijs: say 'hi'
20:52 p6eval vijs 28259: OUTPUT«execute(): execute error: Type quote__S_Single_Single not found!␤undefined at viv line 154.␤{"T":"quote__S_Single_Single","BEG​":4,"WS":1,"_specific":1,"SYM":"---\n- ''''\n-
20:52 p6eval ..''''\n","nibble":{"T":"nibbler","TEX​T":"hi","BEG":5,"nibbles":[],"END":7},​"END":8,"M":{"T":"nibbler","TEXT":"…
20:52 diakopter tee hee
20:52 moritz_ vijs: say(42)
20:52 p6eval vijs 28259: OUTPUT«42␤␤   time in interpreter: 0.009774 s␤»
20:52 diakopter it needs a better "not implemented" exception
20:54 pmurias diakopter: i'm not sure adding a --js option to viv is a good idea
20:54 diakopter see the readme; it'll be its own Actions override at some point.
20:55 diakopter till then, --js isn't in anyone's way afaik
20:56 diakopter vijs: say(3,4)
20:56 p6eval vijs 28259: OUTPUT«34␤␤   time in interpreter: 0.031730 s␤»
20:57 pmurias the README doesn't clearly imply that it will be detached from viv at a later point
20:58 diakopter it wouldn't be detached from viv; it would still use Actions from viv
20:58 jrtayloriv TOP is just the "start symbol" for my grammar, correct? If so, is that just a convention, or does TOP have some special meaning in Perl6?
20:59 moritz_ .parse calls TOP - that's the only speciality
20:59 pmichaud TOP is specifically defined as the start symbol in a grammar
20:59 moritz_ (and .parsefile does too)
20:59 pmurias diakopter: mildew includes stuff from viv using do 'viv'
21:00 diakopter ok... I didn't add any dependencies.
21:00 diakopter (that aren't string-eval'd) :)
21:00 moritz_ I think it's fine for now
21:02 diakopter lol at nibbles/nibbler
21:02 moritz_ anyway, diakopter++ for yet another Perl 6 compiler!
21:02 diakopter <sigh /> like the 5th [false] start from me.
21:04 jrtayloriv moritz_, pmichaud -- thanks for clearing that up
21:04 moritz_ diakopter++ # still trying after 4 failed attempts
21:04 diakopter hm.
21:05 diakopter vijs: say(3,4,5)
21:05 p6eval vijs 28262: OUTPUT«345␤␤  time in interpreter: 0.017193 s␤»
21:05 diakopter vijs: say(3,4,5,6)
21:06 p6eval vijs 28262: OUTPUT«3456␤␤ time in interpreter: 0.020439 s␤»
21:07 moritz_ vijs: say(3, say(5))
21:07 p6eval vijs 28262: OUTPUT«5␤3␤␤   time in interpreter: 0.017085 s␤»
21:08 jauaor joined #perl6
21:08 moritz_ vijs: say(5, say(3), say(4))
21:08 p6eval vijs 28262: OUTPUT«3␤4␤5␤␤  time in interpreter: 0.024220 s␤»
21:21 diakopter :) (I dunno)
21:22 moritz_ so say() doesn't return 1 yet, it seems
21:29 payload joined #perl6
21:44 japhb joined #perl6
21:58 mikehh joined #perl6
22:01 mikehh rakudo (177a379) builds on parrot r41308 - make test PASS / make spectest (up to 28262) FAIL - Ubuntu 9.04 amd64
22:01 mikehh rakudo - t/spec/S02-magicals/env.rakudo - Failed tests:  7, 10
22:01 mikehh rakudo - t/spec/S02-names_and_variables/perl.rakudo -   Failed tests:  71, 73, 77, 81, 83
22:01 mikehh rakudo - t/spec/S06-signature/slurpy-and-interplation.t - Failed test:  6
22:01 mikehh rakudo - t/spec/S10-packages/basic.rakudo - TODO passed:   3
22:06 sri_kraih joined #perl6
22:08 pmichaud yes, I'm seeing failures in Rakudo as well (against Parrot r41267
22:10 pmichaud running another set of tests...
22:11 pugs_svn r28263 | diakopter++ | [vijs] move some JS out of viv; make say() return 1
22:11 diakopter it's funny how my irc client gets notification of the svn commit before my svn client.
22:18 pmurias joined #perl6
22:22 stephenlb joined #perl6
22:27 pmurias perl6: say (say 3)
22:27 p6eval elf 28263, pugs, rakudo 177a37: OUTPUT«3␤1␤»
22:27 mikehh pmichaud: everything passed for me on r41295 - rakudo (d1f2d4c) - make spectest (up to 28251) PASS
22:29 synth^2 joined #perl6
22:40 diakopter TimToady: why is nibbler's SYM == "---\n- '\"'\n- '\"'\n"
22:46 jrtayloriv joined #perl6
22:52 mikehh I don't think the rakudo failures are a parrot problen - I re-installed parrot r41295 on which rakudo had previously PASSed make spectest and it gives the same failures
22:54 hercynium joined #perl6
22:56 TimToady diakopter: hoistast does that if it sees something it doesn't grok
23:01 pmichaud mikehh: I agree -- they weren't there as of midnight
23:04 diakopter TimToady: what do you mean? it's a valid parse..?
23:06 TimToady well, I assume you wouldn't have got a tree at all if it weren't valid
23:06 diakopter oh
23:06 TimToady but I have no idea what you were trying to parse
23:06 diakopter say(" ")
23:07 pmichaud mikehh: I'm guessing it's the "translate Mapping.perl to the setting" commit that is causing problems.
23:07 TimToady you can probably safely ignore it
23:10 synth joined #perl6
23:11 diakopter TimToady: I don't know how to interpret quote__S_Double_Double
23:11 diakopter it has the .nibble member
23:12 sevvie joined #perl6
23:12 diakopter so I guess my question is, how do I know when to descend into the .nibble member.
23:12 diakopter hrm.
23:13 * hercynium does the happy dance
23:14 hercynium my second system shirt came in today
23:14 pmichaud does it look any good?
23:14 hercynium yeah
23:14 hercynium the printing seems to be a dye instead of screened
23:15 hercynium Even fine print like the "TM" mark is clear
23:15 pmichaud excellent!
23:16 hercynium the material is thicker than this year's YAPC::NA shirt... it's about the same thickness/texture to the 2007 YAPC::NA shirt
23:16 pmichaud this one came from spreadshirt, yes?
23:16 hercynium uep
23:16 pmichaud okay, good to know.
23:16 pmichaud I'll see about ordering one for me :)
23:16 hercynium shipping was quick, shipped the next day from someplace in PA, delivery confirmation was included.
23:21 TimToady diakopter: looks like it's loosing the TEXT nodes of the nibbles, probably about the same time it's generating the bad SYM
23:21 TimToady *losing
23:22 pmichaud a-ha.... the Mapping change forgot to add Mapping.pm to the setting
23:22 diakopter oh...
23:23 * pmichaud fixes Makefile.in and re-spectests
23:26 diakopter TimToady: it's like SYM got yamlized
23:26 TimToady diakopter: that's from the ::Dump in viv
23:26 lisppaste3 diakopter pasted "yamlized" at http://paste.lisp.org/display/87203
23:27 TimToady if you add a -m to the viv you can see the original match too, and the nibbles are all there in that form, so it's another tree-rewrite malformation, probably
23:28 pmichaud diakopter++  # I'm really happy to see vijs
23:29 diakopter pmichaud: thanks :)  .oO( someone to pre-debug STD for you ) :P
23:29 * TimToady hides behind a stop sign
23:29 pmichaud yes, that's part of it, but also because I'm also wanting to evaluate other backends for Perl 6 (i.e., other than Parrot)
23:30 diakopter oh.. I read something about parrot morphing into an llvm IR generator?
23:30 pmichaud yes, that's another piece that is gaining momentum
23:31 pmichaud but more to the point I'm also hoping that the PGE rewrite will be retargetable to other platforms (e.g., javascript, jvm, clr)
23:31 pmichaud or at least that it can be a good starting point for other platforms
23:31 pmichaud so more than simply debugging STD, you're also exploring the javascript vm a fair bit
23:32 pmichaud that might end up being a big Win
23:33 diakopter yeah; V8 works great on i386, amd64, and arm
23:34 diakopter vijs: say(say(3),say(4))
23:34 p6eval vijs 28263: OUTPUT«3␤4␤11␤␤  time in interpreter: 0.019825 s␤»
23:34 TimToady diakopter: reproduced the :3 loop here, though it's a large loop, alas, so something probably backtracking badly
23:37 diakopter o
23:43 diakopter well, the yamlized thing I pasted got better when I replaced '::Dump($v)' with '$v' in hoistast
23:44 diakopter now I can see it's an array of the quotation marks the nibbler nibbled
23:45 payload joined #perl6
23:46 diakopter I mean, it doesn't need to be double-yamlized
23:46 diakopter or just plain double-serialized/marshalled/whatever
23:46 TimToady SYM is not supposed to be there at all
23:47 TimToady I suspect
23:49 pugs_svn r28264 | lwall++ | [STD] trap malformed :3 radix
23:53 frew_ joined #perl6

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

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs