»ö« | perl6.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo: / pugs: / std: | irclog: irc.pugscode.org/ | UTF-8 is our friend! Set by Juerd on 28 August 2009. |
|||
00:03
snarkyboojum_ joined,
snarkyboojum left,
snarkyboojum_ is now known as snarkyboojum
00:06
snarkyboojum_ joined
00:19
ihrd joined,
ihrd left
00:21
nihiliad joined
00:24
snarkyboojum left,
snarkyboojum_ is now known as snarkyboojum
|
|||
diakopter | rakudo: say(say(3)) # timeout? | 00:30 | |
p6eval | rakudo a9ff30: ( no output ) | ||
diakopter | rakudo: say(say) # timeout?? | 00:31 | |
p6eval | rakudo a9ff30: ( no output ) | 00:32 | |
diakopter | pmichaud: ^^ known issue? | 00:33 | |
pmichaud | rakudo: say(1); | 00:35 | |
p6eval | rakudo a9ff30: ( no output ) | ||
pmichaud | looks like a evalbot problem | ||
testing locally | |||
diakopter | rakudo: say(7,8); | ||
p6eval | rakudo a9ff30: OUTPUT«78» | 00:36 | |
pmichaud | pmichaud@plum:~/rakudo$ ./perl6 | ||
> say(say(3)); | |||
3 | |||
1 | |||
lambdabot | <no location info>: parse error on input `;' | ||
pmichaud | works locally | ||
diakopter | moritz_: awaken! :) | ||
(kidding) | 00:37 | ||
rakudo: say(say,say) | 00:38 | ||
p6eval | rakudo a9ff30: ( no output ) | ||
diakopter | that's weird; got an error when msg p6eval directly | ||
00:42
nihiliad left
00:45
nihiliad joined
00:57
Whiteknight left
|
|||
pmichaud | well, say(say,say) should be an error | 00:59 | |
"say requires an argument" | |||
colomon | pmichaud: Is {} interpolation supposed to eat trailing whitespace? | 01:00 | |
s1n | yay, fedex just tried to deliver my laptop! | ||
phenny | s1n: 15 Sep 15:27Z <pmichaud> tell s1n saxby's in allen sounds good to me | ||
s1n | pmichaud: great, i'll try to send out the notice tonight | 01:01 | |
01:02
maja_ joined
|
|||
pmichaud | s1n: what did you end up getting? (laptop) | 01:02 | |
01:03
sm^^^ left,
sm` joined
|
|||
s1n | pmichaud: dell mini 10v, 16g ssd, 6cell, $312 shipped | 01:05 | |
01:13
maja left
01:17
KyleHa joined
01:23
rhr_ left
01:25
rhr joined
|
|||
cognominal | rakudo: eval( 'package A; sub ok { print "ok\n" }; bless {}', :lang<perl5> ).ok; | 01:26 | |
p6eval | rakudo a9ff30: OUTPUT«okScalars leaked: 1» | ||
cognominal | jonathan++ | ||
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 lineCan't find string terminator '"' anywhere before EOF at (eval 2) line 1.» | ||
cognominal | rakudo: eval( 'package A; sub ok { print @_ . "\n" }; bless {}', :lang<perl5> ).ok( "ok"); | 01:28 | |
p6eval | rakudo a9ff30: OUTPUT«2Scalars leaked: 1» | ||
cognominal | rakudo: eval( 'package A; sub ok { print @_ . "\n" }; bless {}', :lang<perl5> ).ok( "aaaaaa"); | 01:29 | |
p6eval | rakudo a9ff30: OUTPUT«2Scalars leaked: 1» | ||
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» | ||
cognominal | rakudo: eval( 'package A; sub ok { print $_[1] . "\n" }; bless {}', :lang<perl5> ).ok( "aaaaaa"); | 01:31 | |
p6eval | rakudo a9ff30: OUTPUT«aaaaaaScalars leaked: 1» | ||
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); | ||
p6eval | rakudo a9ff30: OUTPUT«1.1Scalars leaked: 1» | ||
cognominal | now I need to figure how p6eval is compiled, this error message is more helpful than a crash | 01:35 | |
which I have on my side | |||
kudos, jnthn | 01:36 | ||
01:37
justatheory left
01:40
sevvie joined
|
|||
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» | ||
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» | ||
colomon | rakudo: say acosech(1.1, "degrees"); | 02:12 | |
p6eval | rakudo a9ff30: OUTPUT«46.7309477285262» | ||
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)» | ||
colomon | rakudo: say cosech(46.730947728, "degrees"); | ||
p6eval | rakudo a9ff30: OUTPUT«1.10000000001502» | ||
02:21
hercynium left
02:22
justatheory joined,
justatheory_ joined
02:23
REPLeffect left
02:26
astinus_ joined
02:28
astinus left
02:30
jglick joined
02:36
payload1 left
02:40
TiMBuS joined
02:45
synth^3 joined
02:46
justatheory left,
justatheory_ is now known as justatheory,
bgs100 left
02:47
synth left,
synth^3 left
02:48
synth^2 left,
synth joined
02:53
Saran joined
|
|||
Saran | Hi,Would like to volunteer for perl6 development?can some one guide me please | 03:00 | |
03:01
KyleHa left
|
|||
s1n | doh, hackathon notice sent out early, did get to elaborate on what the schedule entails | 03:02 | |
pmichaud: should i send out _another_ email with more info? | |||
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:11 | |
03:15
Saran_ joined,
Confield left
|
|||
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:17 | |
Saran | Am currently into perl6.org. Am more interested to hack into compiler. | 03:18 | |
Thanks for the response s1n | |||
03:19
KyleHa joined
|
|||
Saran | Which link shld i proceed with? | 03:20 | |
s1n | Saran: rakudo is the most complete compiler so far | ||
Saran | @s1n : which link shld i proceed with ? sorry for asking newbie question | ||
lambdabot | Maybe you meant: run src wn | ||
s1n | depends, what do you want to do? | ||
and you don't have to apologize for asking questions :) | 03:21 | ||
Saran | @s1n . Thanks . Would like to contribute in coding part with a better algorithms | 03:22 | |
lambdabot | Maybe you meant: run src wn | ||
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
|
|||
s1n | Saran: also, we hand out commitbit to the test suite like candy | 03:23 | |
Saran | @s1n : ok. Am currently on this link "rakudo.org/how-to-get-rakudo" | 03:24 | |
lambdabot | Maybe you meant: run src wn | ||
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 | ||
Saran | @s1n : Is it possible to setup rakudo in windows XP ? | 03:26 | |
lambdabot | Maybe you meant: run src wn | ||
s1n | Saran: from what i hear, parrot works in windows, jnthn knows more about the windows development of rakudo | 03:27 | |
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 | ||
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 | ||
s1n | Saran: well, if you create a fork of rakudo in github, you need a github account | ||
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. | ||
...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 | ||
lambdabot | Maybe you meant: run src wn | ||
s1n | you can do this without a fork though | ||
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 :) | ||
KyleHa | Without questions to answer, what use would I be? 8-) | ||
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 :) | ||
lambdabot | Maybe you meant: run src wn | ||
03:33
agentzh joined
|
|||
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? | ||
lambdabot | Maybe you meant: run src wn | ||
03:35
SmokeMachine left
|
|||
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. | ||
s1n | Saran: but note that rakudo still accepts patches from RT | ||
Saran | @s1n @KyleHa : I shall go without SSH keys right now :) | 03:36 | |
lambdabot | Maybe you meant: run src wn | ||
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
am0c left
|
|||
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
|
|||
Saran | @kyleha @s1n : right now i am studying github.com/guides/using-git-and-git...or-newbies . Is this the right point to start? | 03:42 | |
lambdabot | Unknown command, try @list | ||
s1n | you should be able to just do a "git clone git://github.com/rakudo/rakudo" | ||
KyleHa | If you're trying to install Git on Windows, that looks like a place to start. | ||
If you have git already, s1n is right, just run with it. | 03:43 | ||
03:43
nihiliad left
|
|||
s1n | Saran: have fun, welcome to the community, but i need to go to bed | 03:43 | |
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 | ||
KyleHa | Saran: For help by email, it would probably better to ask a mailing list. | 03:45 | |
Like these: dev.perl.org/perl6/lists/ | |||
(Not that s1n wouldn't give helpful answers by mail, but the lists have even more helpful people to give helpful answers.) | 03:46 | ||
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 [email@hidden.address] Will shoot a mail with my questions.. | ||
lambdabot | Unknown command, try @list | ||
Saran | @s1n : thanks for your guidance .. Good night | 03:48 | |
lambdabot | Maybe you meant: run src wn | ||
s1n bed& | |||
Saran | @kyleha : Do i need to create a new repository? What i need to do with that? | ||
lambdabot | Unknown command, try @list | ||
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 | |
You want to work on Rakudo. Is that right? | |||
You're trying to set up Git on your local machine to do that work. Right? | |||
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 | ||
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 | |
KyleHa | OK. | ||
lambdabot | Unknown command, try @list | ||
KyleHa | You don't need to create a repo. You'd do that if you were starting your very own new project. | ||
If you're trying to work on Rakudo on your local machine, there are a couple of routes... | 03:52 | ||
Saran | @Kyleha : Thanks .. understood. | ||
lambdabot | Unknown command, try @list | ||
Saran | @kyleha : right now i am extracting the "rakudo-rakudo-9a61441ec3281f0306f88f67d47eeee5a3ae35f4" on my local windows machine | 03:53 | |
lambdabot | Unknown command, try @list | ||
KyleHa | Either way you go, this page is good to have up: github.com/rakudo/rakudo | ||
I'm not sure what that means. | 03:54 | ||
So, the two ways to go are... | |||
Saran | @kyleha : am unzipping the git kit where i downloaded from the link "github.com/rakudo/rakudo" | 03:55 | |
lambdabot | Unknown command, try @list | ||
Saran | @kyleha : Pls tell me the two ways | ||
lambdabot | Unknown command, try @list | ||
KyleHa | 1. clone the rakudo repo on your local machine. You can do that with this command: git://github.com/rakudo/rakudo.git | ||
oops. | |||
git clone git://github.com/rakudo/rakudo.git | |||
The other way is basically the same thing, but you have a copy of your work on github also. | |||
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 | ||
lambdabot | Unknown command, try @list | ||
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:57 | |
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 | ||
KyleHa | Yes, the clone makes a copy of the main rakudo repo. | 03:59 | |
Then you'd do whatever work you want on the clone. | |||
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 | ||
KyleHa | OK, it looks as if you don't have git installed. | 04:01 | |
04:02
mberends joined
|
|||
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 | ||
mberends | Saran, please stop typing @ signs in front of peoples' nicknames, that is confusing our lambdabot | 04:05 | |
@messages | 04:06 | ||
lambdabot | You don't have any new messages. | ||
KyleHa | Time for me to head out. Good luck, Saran, and thanks for your interest. | ||
mberends | @seen masak | ||
lambdabot | Unknown command, try @list | ||
04:06
KyleHa left
|
|||
Saran | @kyleha : thanks for your patience.. | 04:07 | |
lambdabot | Unknown command, try @list | ||
mberends | @tell masak proto installed-modules is incomplete but usable (if you fetch projects before installing) | 04:08 | |
lambdabot | Consider it noted. | ||
mberends | Saran, please stop typing @ signs in front of peoples' nicknames, that is confusing our lambdabot | ||
04:09
justatheory left,
SmokeMachine joined
|
|||
Saran | ok mberends | 04:11 | |
mberends | :-) | 04:12 | |
Saran: you may want to read back logs of past chats sometimes: irclog.perlgeek.de/perl6 etc | 04:13 | ||
Saran | Thanks mberends. bookmarking the link . it will be very usefull for a newbie like me | 04:17 | |
mberends | Saran: I'm curious what Windows users encounter when following rakudo.org/how-to-get-rakudo. There are mainly Unix users here, we could do with feedback from XP, Win7 etc. | 04:18 | |
Damn, rakudo.org/how-to-get-rakudo has been spammed :( | 04:20 | ||
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 | |
04:21
frew_ joined
|
|||
mberends | Saran++ | 04:21 | |
Saran: if you still need Perl 5 on Windows system, the recommended one is from strawberryperl.com/ (you may have found that already). | 04:23 | ||
Saran | am reading this blog to setup "kylecordes.com/2008/04/30/git-windows-go/" mberends . thanks to kylecordes , Am in the process of downloading the exe from git | 04:25 | |
mberends : i have perl 5.10 <snip> C:\rakudo-rakudo-9a61441ec3281f0306f88f67d47eeee5a3ae35f4>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:26 | ||
mberends : do i still need to install "strawberryperl" .. i installed active perl | 04:27 | ||
04:28
jglick left
|
|||
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:28 | |
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 | |
04:29
justatheory joined
|
|||
mberends | Saran, yes, I would recommend switching if you don't mind the effort :) | 04:30 | |
(but I don't have much recent Perl on Windows experience) | |||
Saran | mberends : thanks . Lemme switch it to strawberry . Feeling like going to enjoy the fruit :) | ||
mberends | :-) | 04:31 | |
04:32
cmv left
|
|||
mberends | I'm going to bookmark kylecordes.com/2008/04/30/git-windows-go/ and try it in Windows 7 sometime soon. | 04:32 | |
Saran | mberends : yes.. that helps in windows very well . probably i am going to tweet the usefull link in twitter.com/perlsaran | 04:36 | |
04:36
tak11 left
|
|||
mberends | Saran++ that's what we like to see! | 04:37 | |
Saran_ | mberends : do we have any hashtag for perl6 or rakudo ? lemme check it | 04:38 | |
04:38
Saran_ left
|
|||
mberends | I'm not sure what you mean by 'hashtag' | 04:38 | |
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:42 | |
mberends : successfully uninstalled active perl 5.10 . excited to enjoy the strawberry fruit :) | 04:43 | ||
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 | |
Saran, good going! | |||
apparently twitter.com/ perl6 and twitter.com/ rakudo (without spaces) are both empty :-( | 04:47 | ||
04:48
Woody2143 left
|
|||
mberends | the right address is twitter.com/rakudoperl | 04:50 | |
that guy API is very active on Twitter ;-) and so is web | 04:52 | ||
Saran | mberends : nice to see rakudoperl twitter account . I searched ( perl6,rakudo) with the searchbox in twitter page. Got many results. | 04:53 | |
mberends | yes, nice | 04:54 | |
Saran | mberends : see this url "twitter.com/#search?q=perl6" and " twitter.com/#search?q=rakudo" | ||
04:55
szabgab left
|
|||
mberends | that's a healthy harvest! Just another tip, Saran, don't quote http:// style URLs and they become directly clickable | 04:57 | |
Saran, how far has the installation gone? | 04:58 | ||
Saran | mberends : still 10 mins left to download the strawberry perl as i use data card (: | 04:59 | |
mberends | that's fine :) | ||
Saran | mberends : so i am using this time to blog the difficulties faced | 05:00 | |
05:00
szabgab joined
|
|||
mberends | I'm looking forward to reading it! | 05:00 | |
morning szabgab | |||
szabgab | mberends, good morning to you too | ||
05:05
Confield joined
|
|||
mberends | heh, p5's File::Slurp is going to version 9999.13 | 05:07 | |
05:11
justatheory left
05:15
agentzh left
05:22
snarkyboojum_ joined,
snarkyboojum left,
snarkyboojum_ is now known as snarkyboojum
|
|||
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:29 | |
05:30
stephenlb left
|
|||
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:30 | |
05:34
frew_ left
|
|||
mberends | TiMBuS, not now afaik. When some of the object metamodel ideas get implemented, it may happen. | 05:35 | |
TiMBuS | aw ok | 05:36 | |
05:43
meppl joined
|
|||
Saran | mberends : am bak :) .installed the strawberry perl | 05:46 | |
05:46
zamolxes joined
|
|||
mberends | Saran: nice, where does that put you along kylecordes.com/2008/04/30/git-windows-go/ ? | 05:46 | |
Saran | mberends : now i am cloning the "git clone git://github.com/rakudo/rakudo" using git bash | 05:48 | |
mberends | that looks good | ||
Saran | mberends : do i need to create a ssh key . Is it necessary at this point | 05:50 | |
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 | ||
mberends : thanks | |||
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? | ||
mberends | Saran, you now have the source code. | 05:56 | |
next you should cd into rakudo and run perl Configure.pl --gen-parrot | |||
that will require svn, the subversion client | 05:57 | ||
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:00 | |
mberends | it looks like the perl 5 executable cannot be found in your PATH | 06:01 | |
maybe the Strawberry directory needs to be added to PATH | |||
Saran | mberends : yes . PATH needs to be added..wondering how? | 06:03 | |
mberends | I think it's in some Computer Properties (Advanced) | ||
06:04
sm` left
06:07
sm` joined
|
|||
Saran | mberends : already "C:\strawberry\perl\bin " is added in PATH environment variable | 06:07 | |
06:08
zloyrusskiy joined
|
|||
mberends | Was the command window already opened before installing Strawberry? | 06:08 | |
moritz_ | rakudo: say 1 | 06:11 | |
p6eval | rakudo a9ff30: OUTPUT«1» | 06:12 | |
Saran | mberends : WOW! you are right | ||
mberends | Saran, try svn --version | 06:13 | |
06:14
Woody2143 joined
|
|||
Saran | mberends : back after a coffee..pls :) | 06:14 | |
06:22
sri_kraih_ joined
|
|||
mberends | Saran, there are more useful hints here: www.perlfoundation.org/perl6/index....evelopment | 06:23 | |
Saran | mberends : Thanks for the link . do i need to install subversion on my machine? | 06:31 | |
mberends | Saran, yes, because Rakudo uses Parrot and Parrot is a Subversion repository | 06:32 | |
06:33
zamolxes left
06:39
sri_kraih left,
sri_kraih_ is now known as sri_kraih
06:40
orafu left
06:41
orafu joined
|
|||
Saran | mberends : Am in the process of installing svn | 06:42 | |
mberends | ok, I'm going afk # shower | 06:44 | |
Saran | mberends : which one shall i use "subversion.tigris.org/getting.html#windows" | ||
There are so many third party softwares to install svn .. am i on the right track (: | 06:45 | ||
06:46
jauaor joined
|
|||
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:47 | |
Saran | mberends : thanks .. Pls take shower | 06:49 | |
mberends | Saran, it looks like you need only subversion.tigris.org/files/documen...-1.6.5.msi | ||
afk --shower & | |||
06:52
barney joined
06:53
iblechbot joined
07:06
synth left
07:10
cmv joined,
cmv left
07:13
dukeleto left
07:14
dukeleto joined
07:16
rfordinal joined
07:32
masak joined
|
|||
masak | good morning, camelians. | 07:32 | |
lambdabot | masak: You have 1 new message. '/msg lambdabot @messages' to read it. | ||
masak | lambdabot: oh, so you've started taking messages again? | ||
@massage | 07:33 | ||
lambdabot | mberends said 3h 24m 26s ago: proto installed-modules is incomplete but usable (if you fetch projects before installing) | ||
masak | mberends++ | ||
will try sometime today. | |||
07:36
rgrau joined
07:39
viklund left
|
|||
Matt-W | o/ | 07:41 | |
masak | \o | ||
moritz_ | |o| | ||
Matt-W | :D | 07:42 | |
Patterner | <8((>< | ||
rakudo segfaulting is bad, right? | 07:43 | ||
moritz_ | yes, very bad | ||
we had some problems with that last week | |||
so if you didn't already, please try to upgrade to the latest rakudo | 07:44 | ||
07:45
frederico joined
|
|||
Patterner | I'm updating parrot and rakuto right now. | 07:45 | |
07:49
ascent left,
ascent joined
07:50
flip913 joined,
ascent left
07:52
fredrecsky joined
07:54
ascent_ joined
|
|||
flip913 | In P5 I'd have used an array of refs to build a tree structure. | 07:56 | |
If I do in P6 something like "push @.children, $child" will that put a reference on the array? | 07:57 | ||
Or is that a copy? | |||
moritz_ | a reference | ||
flip913 | so just like P5, thanks | ||
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
rgrau left
|
|||
moritz_ | it's easy to try out ;-) | 07:58 | |
07:59
barney left
|
|||
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 | |
I think that a normal reference takes a lot more space than just a pointer. | |||
I read about the int32 and int64 types ... but I can't remember reading about a pointer. | 08:00 | ||
moritz_ | no, you can't | ||
basically that's an implementation detail that's hidden from you | |||
08:03
barney joined
|
|||
flip913 | So I'll pay a fair bit more for an big array of references? hmmmm | 08:04 | |
And there's no way to put the objects in an array, which could be indexed with int32, is there? | |||
moritz_ | well, arrays are by default indexed by Int, and int32 is a possible representation of an Int | 08:05 | |
(though not yet implemented in Rakudo) | |||
flip913 | But the array will still hold references and not the actual objects, doesn't it? | 08:07 | |
So that space would be lost. | |||
Patterner wonders if it is all gcc 4.4.1's fault... | |||
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.) | ||
moritz_ | flip913: Perl and other dynamic languages usually place ease of use over memory usage ... | 08:08 | |
flip913: if you absolutely need more memory efficiency, it's worth thinking of writing a C library, and interfacing that from $other_language | 08:09 | ||
08:09
fredrecsky left
|
|||
masak | Saran: hey, welcome! I was going to write to you on Twitter, but I see you're still here. | 08:12 | |
08:12
frederico left
|
|||
masak | moritz_: in irclog.perlgeek.de/perl6/2009-09-16 , the URLs with only become links up to the '?' sign. | 08:14 | |
moritz_ | masak: uhm, which URLs exactly? | 08:15 | |
masak | irclog.perlgeek.de/perl6/2009-09-16#i_1503016 | ||
moritz_ | uhm, question marks in anchors? how curious... | 08:16 | |
masak | mberends++ # for greeting Saran nicely | ||
moritz_: not really. | |||
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
|
|||
moritz_ | masak: yes; and it ignores anchors. | 08:18 | |
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. | ||
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 | ||
moritz_ | well, not quite | 08:21 | |
you'd have to specify that you don't allow binding of array elements, for example | |||
Matt-W | mmm point | 08:22 | |
hmm | |||
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 | ||
Matt-W | maybe you would need to use a specifically different storage class | ||
jnthn | o/ | 08:24 | |
moritz_ | \o jnthn | ||
jnthn glances through the backscroll to see who talked aobut him / wanted him. :-) | |||
masak | lolitsjnthn | 08:25 | |
Matt-W | oh hai | ||
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 | ||
no qualifications on the tests on amd64 | |||
moritz_: I am going over to i386 soon - do you still need that patch tested? | 08:29 | ||
moritz_ | mikehh: don't think it's necessary anymore, thanks | 08:31 | |
mikehh | moritz_: well I'll report the results anyway :-} | ||
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 *. | ||
but rakudo is generally so inefficient in terms of memory and speed that this would be the least of my worries | 08:35 | ||
colomon: wow, that code (generate-tests.pl) *is* ugly ;-) | 08:36 | ||
colomon | moritz_: Amen. | 08:37 | |
And it generates an ugly test file, too. | |||
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:38 | ||
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 | ||
colomon | I don't like that it's indented incorrectly. | ||
I guess I'm looking for suggestions in three areas: | 08:40 | ||
Fixing the indenting in the generated code. | |||
moritz_ | $code.subst: /^^' '**8/, '', :g; | ||
or something like that | |||
colomon | Making the code block that generates that code much less ugly. | 08:41 | |
I hate all that escaping. | |||
moritz_ | aye, that's ugly as hell | ||
colomon | And possibly how to move the TrigFunction declarations to a config file rather than being piled inline like that. | 08:42 | |
moritz_ | I think I've managed to outdent some of the code | 08:44 | |
colomon | I was thinking a function which grabs the first chunk of whitespace and tries to eliminate it throughout the $code string? | 08:47 | |
moritz_ | yes, that's what I'm doing, I'll commit in a minute | 08:48 | |
colomon | Groovy! | ||
pugs_svn | r28250 | moritz++ | [t/spec] make generate-tests.pl emit less ugly indented code. | 08:53 | |
r28250 | | |||
r28250 | Also emit warning about the code being generated, and prevent vim users from | |||
r28250 | accidentally changing the emitted code. | |||
Saran | mberends : am back after a lunch..installed svn successfully :) | 08:56 | |
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 | ||
masak | moritz_++ | 08:58 | |
mberends | Saran, btw, I'm going to follow in your footsteps on a nearby Windows 7 laptop | ||
colomon | And again moritz_++! | ||
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
|
|||
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. | 08:59 | |
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. | ||
moritz_ | I fear I reduced the number of passing tests yesterday when I removed some duplicates | ||
colomon: yes, sure. | |||
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 | ||
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... | ||
some many people just commited one or two whitespace fixes or so | |||
which is why we have lots of commiters, but not many actually contributed much directly to rakudo | |||
moritz_ just pushed another one-line patch ;-) | 09:04 | ||
Saran | mberends : sure i am mentioning all steps in twitter.com/perlsaran | 09:07 | |
moritz_ | Saran++ | ||
09:07
sharada joined
|
|||
colomon | Okays, trying to pull and merge now. | 09:08 | |
mberends | Saran++ nice blog twitter.com/perlsaran | ||
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 | |
Seems like that might be much cleaner. | |||
Saran | mberends : in the process of installing MinGw compiler..do we need it ? | 09:10 | |
09:10
Aqee joined
|
|||
mberends | Saran, yes, to build Parrot | 09:10 | |
dalek | kudo: d054b7e | moritz++ | docs/ChangeLog: [docs] another ChangeLog item |
||
09:10
Aqee left
|
|||
moritz_ | colomon: depends on how many variables you actually interpolate... but yes, would be cleaner | 09:10 | |
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 | |
Thanks again for your help. | |||
masak | hm, 5 AM... is that the US East Coast? | 09:12 | |
colomon | yes | ||
masak | oh well, I won't keep you up with idle chit-chat. good night to you, sir. | 09:13 | |
09:13
rbaumer left
|
|||
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> | ||
svn process is going on | |||
moritz_ | mberends: I think that only complicates things | 09:15 | |
mberends | ok moritz_ | ||
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 ? | ||
mberends | Saran, that folder will be created if the --gen-parrot succeeds | 09:18 | |
you will get rakudo/parrot and rakudo/parrot_install | |||
Saran | mberends : is expecting any empty folder like "parrot_install" ? | 09:19 | |
mberends | ah, you might be lacking a 'make' utility. Windows-- | 09:20 | |
there might be a different name/dir for it in the Strawberry tree | 09:21 | ||
Saran | mberends : i believe there shld be "nmake" doing the same operation for windows | 09:22 | |
mberends | yes, but not installed as default. You may have mingw32-make | 09:23 | |
moritz_ | shouldn't parrot's Configure.pl detect that? | 09:24 | |
09:27
donaldh joined,
donaldh left
|
|||
mberends | moritz_, *should* ;-) | 09:27 | |
moritz_ | so is there actually a problem right now? I haven't seen an error message, I think | 09:28 | |
my dealings with parrot's Configure.pl were quite reasonable so far | 09:29 | ||
mberends | there a so few Windows users, the experienced ones such as jnthn++ probably have Visual Studio etc for toolchain. | 09:30 | |
moritz_ | aye | 09:31 | |
jnthn | Yes, I use visual Studio toolchain to build. | ||
09:31
soupdragon joined,
sharada left
|
|||
mberends is catching up to Saran++ with Strawberry Perl on Windows | 09:33 | ||
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 (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:34 | |
mberends | Saran, that looks pretty healthy so far | 09:35 | |
you might try running parrot.exe -h in the appropriate dir | 09:36 | ||
09:36
rbaumer joined
|
|||
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 | ||
masak | mm, #69152 and #69160 are both juicy ones. | 09:40 | |
and they show that people are picking up Rakudo and playing with it. | |||
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 | ||
moritz_ | Saran: it seems your svn checkout of parrot is incomplete, maybe because of network errors | 09:42 | |
which is why I suggested 'svn up', which should complete the checkout | |||
09:42
snearch left
|
|||
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... | ||
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? :) | ||
faster and more reliable. | 09:46 | ||
s/git-svn/git, from some git mirror/ | |||
jnthn | masak: aye, but svn is more widely installed by default... | ||
ah, though git from a git mirror could work | |||
mberends | Saran, either rakudo/parrot/parrot.exe or rakudo/parrot_install/bin/parrot.exe | ||
moritz_ | and it's a bit easier to get the correct revision from svn... but that can be worked around | 09:47 | |
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:48 | |
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
|
|||
Saran | mberends : make shld be the next step after "perl configure.pl --gen-parrot" . why is it creating a problem now ? | 09:52 | |
09:52
iblechbot left
|
|||
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:52 | |
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. | ||
moritz_ | (currently 2.4G room in the backlog ;-) | ||
Saran | mberends : thanks..let me install nmake asap | 09:54 | |
mberends | Saran, you could try the Strawberry one... | ||
jnthn | Saran: Suggest grabbing the Windows Platform SDK, or Visual C++ Express Edition. | ||
Otherwise you'll probably later finding you've got other missing thingies. | |||
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 | ||
mberends | it's just a different filename | ||
jnthn | Or if you already have Visual Studio installed, then probs nmake should be in your path. | ||
Saran | mberends : thanks for the path..lemme check it | ||
mberends | Saran, if the download is not too slow jnthn++'s suggestion is also a good idea. | 09:56 | |
moritz_ | masak: #69152 was discovered by having a merge conflict in the spec tests ;-) | 09:57 | |
the <<<<<<< .mine is svn's conflict marker | |||
masak | yes, so I gathered. :) it's not minimal, by the way. | ||
and it only occurs when running a file, not when running from -e | 09:58 | ||
moritz_ | neither surprise me | ||
Saran | mberends++ . copied and renamed to make.exe | ||
jnthn : will try installing vc++ later..internet is too slwo | 09:59 | ||
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:00 | ||
10:01
soupdragon left
|
|||
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 | ||
mberends | Saran: ouch. ouch. | 10:02 | |
Saran | mberends : as u said missing make while compiling core.c | ||
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. | |||
mberends | oh, those forward slashes need to be backslashes in Windows :/ | 10:03 | |
Saran | mberends : might be ..pushing to home..catch u guys after 40 minutes | 10:04 | |
mberends | Saran, ok | ||
10:08
pjcj joined,
Saran left
|
|||
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:08 | |
mberends | there was a big slowdown in Parrot with the pmc3 merge | 10:10 | |
moritz_ | github++ # the links to files on the overview pages now always go to the latest version, not identified by SHA-1 | 10:11 | |
mberends | well, perl6 -e"3.say" works here on Windows 7 with Strawberry toolchain | 10:14 | |
pity about the double quotes | |||
masak | what's the way to get the name of a class? | 10:26 | |
moritz_ | rakudo: class A::B { }; say A::B.HOW | ||
p6eval | rakudo a9ff30: OUTPUT«A::B()<0xb6b41118>» | ||
moritz_ | no, that's wrong... | ||
rakudo: class A::B { }; say A::B.WHAT # | |||
p6eval | rakudo a9ff30: OUTPUT«A::B()» | ||
moritz_ | that's better | 10:27 | |
masak | I don't want parens. | ||
jnthn | .perl | ||
moritz_ | rakudo: class A::B { }; say A::B.perl | ||
p6eval | rakudo a9ff30: OUTPUT«A::B» | ||
jnthn | no | ||
well yes | |||
:-) | |||
masak | jnthn++ | ||
jnthn | .WHAT.perl if you have an object though. | ||
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 | ||
jnthn | (that is, you want to call .perl on the proto-object, not on an instance) | ||
p6eval | rakudo a9ff30: OUTPUT«I only have eyes and ears and noses and teeth and tongues for you.» | ||
masak | \o/ | 10:28 | |
jnthn sings "heads and shoulders, knees and toes, knees and toes..." | |||
masak | lunch & | ||
moritz_ | you can all blame me that rakudo now passes only 15497 tests, not 15500 as it used to be | 10:29 | |
jnthn | wtf...we pass over 15,000 now? | 10:30 | |
Damm, I should have more vacation. | |||
Wow, that latest graph is scary. | 10:33 | ||
folks++ | |||
moritz_ | colomon++ mostly | ||
10:37
dakkar joined
10:49
mikehh left
|
|||
masak | that latest graph is scary... do we even need the devs anymore? :P | 10:51 | |
Matt-W | Yes | 10:52 | |
Get coding | |||
Matt-W cracks his whip | |||
Matt-W wnats to write Perl 6, but has to do work instead | |||
masak gets coding, like, really quickly | |||
not with Perl 6, though :/ | |||
10:52
payload joined
|
|||
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:52 | |
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)» | ||
masak | std: class Cell { our class Golgi {} } | ||
p6eval | std 28250: OUTPUT«ok 00:02 37m» | ||
cognominal | jnthn, nice, the calling of p5 method from blizkost. | ||
masak | std: class Cell { our class Golgi {} }; Cell::Golgi | ||
p6eval | std 28250: OUTPUT«ok 00:02 37m» | ||
masak | \o/ | ||
rakudo: class Dog { is Any } | 10:58 | ||
p6eval | rakudo a9ff30: OUTPUT«Could not find non-existent sub is» | ||
moritz_ | I'm not sure if that syntax is a good idea to support | ||
cognominal | rakudo: eval( 'package A; sub ok { print "$_[1]\n" }; bless {}', :lang<perl5> ).ok( "ok"); | 10:59 | |
p6eval | rakudo a9ff30: OUTPUT«okScalars leaked: 1» | ||
10:59
jauaor left
|
|||
masak | moritz_: why not? | 10:59 | |
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 | ||
class Foo; | |||
is Bar; | |||
moritz_ | masak: 2) I like to have the more important information (inheritence, role composition) up front | ||
masak | Matt-W: well, you can say 'class Foo is Bar;' also... | ||
Matt-W | masak: can you? Oh good, in that case, nuke it. | ||
as far as I'm concerned | |||
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. | ||
moritz_: there are many cases where would-be function calls are parsed as special syntax. | |||
Matt-W: I think with a complicated list of 'is' and 'does' relations, it might simply be better-looking. | |||
11:03
schmalbe joined
|
|||
moritz_ | the 'is Parent;' form in the class body might give far worse error messages | 11:03 | |
but that's just guessing now | |||
anyway, I'm not strongly opposing it | |||
masak | why worse error messages? because it's evaluated later than the class declaration? | 11:06 | |
moritz_ | if you forgot to load the parent class it's evaluated later | 11:07 | |
which leads me to another question about r28199 | 11:08 | ||
dalek | kudo: 8277559 | (Solomon Foster)++ | src/setting/Any-num.pm: Add forward hyperbolic functions to Any. Num and then redispatch to Num.sinh, Num.cosh, etc. |
||
kudo: d1f2d4c | (Solomon Foster)++ | : Merge branch 'trig' |
|||
moritz_ | I'd better carry that to p6l though | 11:09 | |
masak | aye. | ||
moritz_ | oh, my question was answered by reading the diff again ;-) | 11:10 | |
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. | ||
cognominal | afk& | ||
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 | |
so, when A is compiled, everything works. but when C is compiled, there are missing references to things. | |||
moritz_ | C needs to use B | 11:13 | |
masak | moritz_: in an ideal Perl 6, you mena? | ||
moritz_ | and rakudo shouldn't let defintions leak into C | ||
masak | s/mena/mean/ | ||
moritz_ | masak: yes | ||
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 | ||
masak | good. | 11:15 | |
that solves that. | |||
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:16
barney left
11:17
zamolxes joined
|
|||
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:17 | |
11:18
saran joined
|
|||
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? | ||
moritz_ | I don't think you can read single key strokes from the terminal yet | ||
saran | mberends : am back | 11:19 | |
moritz_ | and your application looks more like generating strings matching a regex than actually matching | ||
11:19
am0c left
|
|||
masak | well, Tene has some curses lib that lets you do keystrokes, IIUC. | 11:19 | |
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:23 | |
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 | ||
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> } | ||
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) | ||
moritz_ | token action { <phone> | <mail> | <buy> | ... } | ||
rule phone { 'phone' <who> (.*) } | 11:26 | ||
... | |||
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 | ||
saran | mberends : do i need to install msys ? | ||
moritz_ | blaze-x: that's a very good question, and there will be a nice solution for that | ||
blaze-x: Perl 6 allows you to parameterize tokens... | 11:28 | ||
11:28
riffraff left
|
|||
blaze-x | masak: thanks :) | 11:28 | |
moritz_ | proto token actions { ... } # literal ... here | ||
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> (.*) } | ||
blaze-x | ok, I'll read about proto. | ||
moritz_ | token actions:what<buy> { <buy> (.*) } | ||
blaze-x | masak: sure, can't see why not :) | ||
moritz_ | and then when you simply match against <actions> it matches all the alternatives in parallel | ||
and at some point we'll have introspection to list all available proto tokens | 11:30 | ||
but that's quite a bit in the future | |||
masak | oh, 'proto' works already? | ||
blaze-x | moritz_: interesting, I suppose by xmas? ;-) | ||
moritz_ | masak: only in STD.pm :/ | ||
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 | ||
masak | moritz_: ah. that squares better with my expectations. | ||
saran | mberends : as per the link "www.perlfoundation.org/perl6/index....velopment" .do i need to download haskell as well ? | ||
moritz_ | saran: only if you intend to hack on pugs | 11:32 | |
which nobody did for the last 1.5 years or so | |||
blaze-x: I fear that proto tokens are badly documented so far, but there are lots of examples in > | |||
mberends | saran, not today ;-) you would use it to build pugs, if ever | ||
moritz_ | > | ||
> Modified: docs/Perl6/Spec/S04-control.pod | |||
> =================================================================== | |||
> --- docs/Perl6/Spec/S04-control.pod2009-09-07 17:43:11 UTC (rev 28198) | |||
lambdabot | not an expression: `' | ||
not an expression: `--- docs/Perl6/Spec/S04-control.pod 2009-09-07 1... | |||
Not in scope: data constructor `Modified'Not in scope: `docs'Not in scope: ... | |||
<no location info>: | |||
parse error on input `============================... | |||
moritz_ | > +++ docs/Perl6/Spec/S04-control.pod2009-09-07 17:53:06 UTC (rev 28199) | ||
lambdabot | <no location info>: parse error on input `+++' | ||
moritz_ | > @@ -823,7 +823,7 @@ | 11:33 | |
lambdabot | <no location info>: parse error on input `@@' | ||
moritz_ | > sets the topic in its signature can be broken out of. At run time, | ||
lambdabot | <no location info>: parse error on input `in' | ||
moritz_ | > C<break> uses a control exception to scan up the dynamic chain to | ||
lambdabot | Not in scope: data constructor `C'Not in scope: `uses'Not in scope: `contro... | ||
moritz_ | > find the activation record belonging to that same outer block, and | ||
lambdabot | <no location info>: parse error on input `,' | ||
moritz_ | > -when it has found that scope, it does a C<.leave> on it to unwinde | ||
lambdabot | <no location info>: parse error on input `,' | ||
saran | thanks mberends and moritz_ . hw abt haskell ? is it mandatory at this point ? | ||
moritz_ | > +when it has found that scope, it does a C<.leave> on it to unwind | ||
lambdabot | <no location info>: parse error on input `+' | ||
moritz_ | > the contexts. If any arguments are supplied to the C<break> function, | ||
lambdabot | <no location info>: parse error on input `,' | ||
moritz_ | > they are passed out via the C<leave> method. Since leaving a block is | ||
lambdabot | Not in scope: `they'Not in scope: `are'Not in scope: `passed'Not in scope: ... | ||
moritz_ | > considered a successful return, breaking out of one is also considered | ||
lambdabot | <no location info>: parse error on input `,' | ||
moritz_ | > | ||
lambdabot | not an expression: `' | ||
moritz_ | sorry | ||
saran: no | |||
11:33
lambdabot was kicked by moritz_ (moritz_))
|
|||
moritz_ | sorry for the paste flood | 11:33 | |
moritz_ too dumb to work with irssi | |||
blaze-x: what I meant to say was... lots of examples in svn.pugscode.org/pugs/src/perl6/STD.pm | 11:34 | ||
mberends | moritz_ is a n00b at something? | ||
moritz_ | sure, at lots of things actually | ||
blaze-x | moritz_: thanks, I'll have a look | 11:35 | |
11:36
saran left
11:45
synth joined
11:49
saran joined
11:53
iblechbot joined
|
|||
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:01 | |
12:01
saran left
|
|||
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» | ||
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» | ||
moritz_ | colomon: there's a known problem with .subst and mulit subs | 12:04 | |
anyway, if you plan to return a modified version there's no reason to all it as $.=subst | 12:05 | ||
colomon | return $code.subst: / ^^ ' ' ** 12 /, '', :g; gets the error too. | 12:06 | |
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
12:14
takadonet joined
|
|||
takadonet | morning all | 12:14 | |
saran | mberends : First step completed successfully .. Now trying to run "mingw32-make" | 12:15 | |
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)» | ||
cognominal | how much time it takes for p6eval to take the changes on rakudo/blizkost? | ||
moritz_ | both are rebuilt hourly | 12:18 | |
mberends | saran, nice | ||
moritz_ | starting at 14:45 for example | ||
but if there's dire need I can trigger one earlier ;-) | 12:19 | ||
12:20
mikehh joined
|
|||
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 | ||
moritz_ | rakudo: eval( 'package A; sub ok { print "@{$_[1]}\n" }; bless {}', :lang<perl5> ).ok( ["o", "k"]); | ||
p6eval | rakudo a9ff30: OUTPUT«Sorry, we do not support marshalling most things to Perl 5 yet.in Main (/tmp/mahQL0c2vq:2)» | ||
colomon | moritz_: Eh? | 12:22 | |
moritz_ | colomon: sorry, menat cognominal | ||
moritz_ + tab fail | |||
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 | |
12:26
payload1 joined,
payload left,
cai joined
|
|||
mberends | saran: well done! you should also 'make install', and if you have an hour of idle time, 'make spectest' | 12:27 | |
saran++, and of course reward yourself with a little "hello world" script in perl6 | 12:28 | ||
saran | started with "mingw32-make install" . wat does "make spectest" does.. | 12:29 | |
12:30
rfordinal3643 joined
|
|||
jnthn | cognominal: Fancy some debugging? | 12:31 | |
12:31
cmv left
|
|||
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" | ||
jnthn | cognominal: Basically, though, build latest blizkost, add this patch to Rakudo: gist.github.com/188017 | 12:32 | |
cognominal: After that, just do | |||
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. | ||
jnthn | use CGI:from<perl5>; print CGI.header # sanity check, works for me, should for you too | 12:33 | |
Then | |||
use CGI:from<perl5>; print CGI.new.header # oh noes, explodes | |||
I've spent like, ages trying to work out why. | |||
So if you can crack this one, then we'll be looking real good. :-) | 12:34 | ||
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. | ||
p6eval | rakudo a9ff30: OUTPUT«his is a test» | ||
jnthn | cognominal: So I suspect stack screw...somehow...though I'm lost on how. | ||
jnthn -> dinner | 12:41 | ||
12:45
rfordinal left
12:48
payload1 left
|
|||
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» | ||
masak | what could I write instead of the literal Str "stack " inside .foo? | ||
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. | ||
moritz_ | masak: $?PACKAGE once that's available | ||
masak | moritz_: would $?CLASS work as well? | ||
moritz_ | masak: $?CLASS evaluates to the class the role is composed into | 12:51 | |
masak | ah. | ||
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:52 | |
moritz_ | saran: you have to add C:\rakudo\parrot_install\bin to the PATH environment variable | 12:53 | |
mberends | saran, change directory to \rakudo | ||
masak | rakudo: role A { method foo { self.Str } }; say A.foo | ||
p6eval | rakudo a9ff30: OUTPUT«()<0xb6ace1c8>» | ||
saran | masak : executing this hello world program after successfull "make-install" .. did i missed to install anything ? | ||
masak submits rakudobug | |||
saran: no, it should work. but maybe it's undertested in Windows. | |||
moritz_ | saran: probably the installation did work, but windows doesn't know where to search for the perl6.exe | 12:54 | |
which is why you have to add the path to the PATH environment variable | |||
mberends | ...and then restart the command shell | ||
saran | mberends ,masak and moritz : cool!! super!! Got it <snip> C:\rakudo>perl6 -e "say 'hello world'" hello world <snip> | 12:56 | |
masak | saran++ | ||
saran: welcome to the Perl 6 community! \o/ | 12:57 | ||
Matt-W | \o/ | ||
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. | ||
saran | mberends : wat does pugs plays a role here ? do i need to checkout pugs from svn | 12:59 | |
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) | ||
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 | ||
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 | ||
Matt-W | elf, smop and mildew are all in there? wow | ||
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 | ||
saran: there's one built into Perl 6 | |||
it's the .perl method | |||
rakudo: say [1, 3, 'foo'].perl | |||
p6eval | rakudo a9ff30: OUTPUT«[1, 3, "foo"]» | ||
masak | saran: however, there's one interesting unsolved problem with .perl that you're very welcome to attack. that of circular references. | 13:03 | |
13:03
sm` left,
rfordinal3643 left,
sm` joined
|
|||
saran | masak : wat do u mean by ".perl" .some documents related to ".perl" to get working on the circular references | 13:04 | |
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 | ||
masak | saran: but the basic problem is that Rakudo hangs when trying to do .perl on circular refs. | 13:06 | |
diakopter: not at all. just do 'my %temp1 = ...' inside the .perl expression. | |||
moritz_ | that's what diakopter meant by temporary/local hashes, I think | 13:07 | |
diakopter | moritz_: thnx | ||
masak | yes, I realize that. | ||
my reply was a bit... confused. :) | |||
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" :) | ||
masak | right. | ||
saran: et voila. rt.perl.org/rt3/Ticket/Display.html?id=58922 | |||
saran: that ticket is stalled, mostly because no-one knows what a good solution is. | 13:09 | ||
13:10
saran left
|
|||
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
sri_kraih left
|
|||
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 | ||
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 | ||
(what mberends said I mean) | |||
I'll commit vivjs soon; it does the equiv of what moritz_ just typed | 13:12 | ||
in Perl 5 tho | 13:13 | ||
heh; actually it should be vijs, right? ;) | |||
diakopter looks for TimToady | |||
for circular refs it has to stack up "post declaration" member assignments... | 13:15 | ||
moritz_ | vijs, yes | ||
13:15
saran joined
|
|||
diakopter | so it needs to track both "seen" and "inside" | 13:15 | |
saran | masak : hope i can debug the circular references problem in ".perl" step by step . Is perl6 -d option works ? | 13:16 | |
Matt-W | Anybody want to show off some Perl 6? thedailywtf.com/Articles/Kirkmans-Ladies.aspx <- even though the problem spec discriminates against functional programmers | 13:17 | |
masak | saran: unfortunately not. | ||
saran: doing just 'perl6' gets you into a REPL, though. | |||
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 | ||
moritz_ | how many characters fit into one line in IRC? 255? | ||
Matt-W | err | ||
arnsholt | Depends a bit on the server IIRC | ||
Matt-W | impossible to say | ||
masak | TiMBuS: global vars work... to an extent. you have to explicitly initialize global hashes, for example. | ||
moritz_ | s/characters/bytes/ | ||
Matt-W | not sure if the protocol specifies a minimum... | 13:19 | |
TiMBuS | $*vars used to work too. damn whoever fixed them :( | ||
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) | ||
masak | saran: start by trying things like this: | ||
rakudo: say [1,2, [3,4,5, []].perl | |||
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)» | ||
masak | rakudo: say [1,2, [3,4,5, []]].perl | ||
p6eval | rakudo a9ff30: OUTPUT«[1, 2, [3, 4, 5, []]]» | ||
saran | masak : msg incomplete | ||
masak | saran: as you see, .perl works much like the old Data::Dumper. | ||
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 | |
arnsholt: admittedly that might be my Haskell-derived prejudices coming out :) | |||
13:23
mikehh left
|
|||
moritz_ | hey, it's the daily WTF! | 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 :) | ||
Matt-W | this is true | ||
perhaps they're now encouraging the writing of code which they can feature later so that they don't run out of material | |||
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 | ||
masak | saran: cool! check out src/setting/List.pm, line 42, to see how List.perl is defined. | 13:26 | |
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 | |||
diakopter | moritz_: I guess %*seen could store both "seen" and "inside" by distinguishing between existence and zero | ||
moritz_: did you see the p6eval weirdness from (my) last night? | 13:29 | ||
13:29
mikehh joined
|
|||
moritz_ | diakopter: I did. No idea what went wrong. | 13:29 | |
diakopter | rakudo: say(say(3)) | ||
p6eval | rakudo a9ff30: OUTPUT«31» | ||
diakopter | hm; works now | 13:30 | |
carlin | Matt-W: github.com/carlins/perl6-examples/t...ter/tdwtf/ :) | 13:31 | |
saran | masak : Got it. please drop in ur mailid to discuss further when i have some clarifications | ||
Matt-W | carlin: cool! | ||
saran | masak : will be back after my gym and dinner | ||
13:31
sri_kraih joined
|
|||
diakopter tinkers with different ways of arranging the ast | 13:34 | ||
13:35
jaldhar left
13:36
jaldhar joined
|
|||
moritz_ | rakudo: say (1..10).grep(* !% 3).perl | 13:38 | |
p6eval | rakudo a9ff30: OUTPUT«[]» | ||
moritz_ | BUG | ||
rakudo: say (1..10).grep({ $_ !% 3}).perl | 13:39 | ||
p6eval | rakudo a9ff30: OUTPUT«[3, 6, 9]» | ||
flip913 | rakudo: say (1..10).grep({ * !% 3 }).perl | 13:40 | |
p6eval | rakudo a9ff30: OUTPUT«[]» | ||
flip913 | rakudo: say (1..10)».{ * %! 3} | 13:41 | |
p6eval | rakudo a9ff30: OUTPUT«Method 'postcircumfix:{ }' not found for invocant of class 'Int'» | ||
13:42
zloyrusskiy left
|
|||
masak | flip913: you need an explicit 'map' or 'grep' there. | 13:43 | |
flip913 | rakudo: say (1..10)».map({ * %! 3}) | ||
p6eval | rakudo a9ff30: OUTPUT«!whatever_closure!whatever_closure!whatever_closure!whatever_closure!whatever_closure!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& | ||
flip913 | rakudo: say (1..10)».map( * %! 3) | ||
p6eval | rakudo a9ff30: OUTPUT«12345678910» | ||
flip913 | rakudo: for ^10 { if * %! 3 { say } } | 13:45 | |
p6eval | rakudo a9ff30: ( no output ) | ||
flip913 | rakudo: for ^10 { if $_ %! 3 { say } } | ||
p6eval | rakudo a9ff30: OUTPUT«say requires an argument at line 2, near "} }"in Main (src/gen_setting.pm:2582)» | 13:46 | |
flip913 | does it? | ||
rakudo: for ^10 { if .%! 3 { .say } } | |||
p6eval | rakudo a9ff30: OUTPUT«Confused at line 2, near ".%! 3 { .s"in Main (src/gen_setting.pm:3469)» | ||
flip913 | rakudo: for ^10 { if $_ %! 3 { .say } } | ||
p6eval | rakudo a9ff30: OUTPUT«123456789» | ||
flip913 | flip913: confused | 13:47 | |
rakudo: for ^10 { say $_ % 3 } | |||
p6eval | rakudo a9ff30: OUTPUT«0120120120» | ||
flip913 | rakudo: for ^10 { say $_ %! 3 } | ||
p6eval | rakudo a9ff30: OUTPUT«0123456789» | ||
flip913 | rakudo: for ^10 { say $_ !% 3 } | ||
p6eval | rakudo a9ff30: OUTPUT«1001001001» | ||
flip913 | rakudo: for ^10 { if $_ !% 3 { .say } } | ||
p6eval | rakudo a9ff30: OUTPUT«0369» | 13:48 | |
flip913 | rakudo: for ^10 { if .!% 3 { .say } } | ||
p6eval | rakudo a9ff30: OUTPUT«Confused at line 2, near ".!% 3 { .s"in Main (src/gen_setting.pm:3469)» | ||
flip913 | what's the %! operator? | ||
[particle] | you're calling postfix !% on $_. rakudo doesn't understand that | ||
flip913 | No, really the <%!> operator. | 13:49 | |
It was accepted as "$_ !% 3" | |||
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 | ||
[particle] | for ^10 { if $_ ! % 3 { .say } } | ||
flip913 | <!%> is "not-modulo", "evenly divisable" or whatever it's called. | ||
[particle] | rakudo: for ^10 { if $_ ! % 3 { .say } } | ||
p6eval | rakudo a9ff30: OUTPUT«Confused at line 2, near "! % 3 { .s"in Main (src/gen_setting.pm:3469)» | ||
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 ? | ||
mberends | saran, I'm preparing that for perlfoundation.org/perl6 and also the Rakudo README | 13:51 | |
flip913 | rakudo: say infix:<%!>.perl | ||
p6eval | rakudo a9ff30: OUTPUT«Confused at line 2, near ":<%!>.perl"in Main (src/gen_setting.pm:3469)» | ||
[particle] | mberends: why would you copy make to a different name, rather than config rakudo to recognize the proper make engine? | 13:52 | |
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:53 | |
[particle]: today's efforts were just a quick and dirty get-started ;) | 13:54 | ||
Matt-W | rakudo: say &infix:<%!>.perl | 14:03 | |
p6eval | rakudo d1f2d4: OUTPUT«undef» | ||
14:04
ruoso joined
|
|||
ruoso | Hello! | 14:05 | |
moritz_ | wb ruoso | 14:06 | |
diakopter | ruoso: howdy | ||
Matt-W | hey ruso | ||
ruoso, argh | |||
not awake at all today | |||
moritz_ wonders if his comment about not bikeshedding deterred everybody from answering his mail about perl6.org on p6l | 14:07 | ||
diakopter | None Dare Call It Bikeshedding | 14:08 | |
(the "considered harmful" meme equivalent of the middle 20th century USA) | 14:09 | ||
14:12
KyleHa joined
14:17
justatheory joined
14:19
payload joined
14:20
ispy_ joined,
ispy_ left
|
|||
ruoso | moritz_, well, you just proposed to drive the effort ;) we're just passengers now ;) | 14:20 | |
14:21
nihiliad joined,
cai left
|
|||
moritz_ | how stupid of me ;-) | 14:23 | |
colomon | rakudo: say Inf.Num; | ||
mikehh | rakudo (d1f2d4c) builds on parrot r41295 - make test / make spectest (up to 28251) PASS - Ubuntu 9.04 amd64 | ||
p6eval | rakudo d1f2d4: OUTPUT«Inf» | ||
ruoso | moritz_, but anyway, sometimes silence just means agreement... | ||
14:26
cdarroch joined
|
|||
Matt-W | or indifference | 14:27 | |
diakopter | or fatalism :) or relative indifference, related by busyness. | ||
TiMBuS | damn. my multimethod is being called three times using '.*' | 14:28 | |
14:28
saran left
|
|||
TiMBuS | im guessing this is a bug? | 14:28 | |
moritz_ | depends on what you do, exactly | 14:30 | |
.* calls all matching multi methods | |||
14:30
abra joined,
zamolxes left
|
|||
TiMBuS | yep | 14:30 | |
moritz_ | ... except when you're in a regex ;-) | ||
TiMBuS | but its calling the same method | ||
"Dispatching on message. Method called. Method called. Method called. Done dispatching" | |||
is the output | |||
only one of my methods is printing that | 14:31 | ||
moritz_ | well, it's hard to comment on that without seeing the code | ||
TiMBuS | say 'Dispatching on message'; $bot.*messaged(~$text, ~$from, ~$channel); say 'Done dispatching'; | ||
the matching method is just a one liner | 14:32 | ||
it is a role, though | |||
colomon | rakudo: say cosh(Inf) | ||
p6eval | rakudo d1f2d4: OUTPUT«Inf» | ||
TiMBuS | inherited | ||
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 .* | ||
might have something to do with parent.. walking | 14:34 | ||
i dont know | |||
14:34
abra left
|
|||
moritz_ | if there's just one method messaged defined in your code, it's not expected | 14:34 | |
if you have multiple such methods, it depends on the exact declaration | |||
if you just want the best fit, a normal $bot.messaged() call might be best | |||
TiMBuS | theres multiple messages, but only one prints | 14:35 | |
and only one seems to be called three times | |||
messaged needs to be .* because its a pluggable dispatch | |||
people can add more if they want | |||
i wonder how many OO programmers i have offended using a parent class to call child methods. | 14:36 | ||
moritz_ | in general there's nothing wrong with it | 14:37 | |
colomon | rakudo: say exp(Inf) | ||
p6eval | rakudo d1f2d4: OUTPUT«Inf» | ||
moritz_ | rakudo: say exp(-Inf) | 14:38 | |
p6eval | rakudo d1f2d4: OUTPUT«0» | ||
colomon | oooo... | ||
forgot about that. | |||
moritz_ | how very well defined | ||
such a beauty it makes you weep | |||
colomon | I'm trying to figure out what the hyperbolic stuff should return when you pass it +-Inf. | ||
I suspect the implementation is currently smarter than my tests. :) | 14:39 | ||
moritz_ | cosh(Inf) ~~ Inf looks right to me | ||
same for cosh(-Inf) | |||
sinh(Inf) ~~ Inf | 14:40 | ||
sinh(-Inf) ~~ -Inf | |||
colomon | rakudo: say tanh(Inf) | ||
p6eval | rakudo d1f2d4: OUTPUT«1» | ||
moritz_ | and tanh(-Inf) == -1 | 14:41 | |
14:41
payload left
|
|||
colomon | rakudo: say sech(Inf) | 14:41 | |
p6eval | rakudo d1f2d4: OUTPUT«0» | ||
colomon | rakudo: say 1.0 / Inf | ||
p6eval | rakudo d1f2d4: OUTPUT«0» | ||
14:43
Psyche^ joined
14:46
rfordinal joined
|
|||
pmichaud | Good morning, #perl6 | 14:47 | |
colomon | o/ | ||
moritz_ | \o | ||
jnthn | \o/ | 14:48 | |
diakopter | ]o[ | ||
moritz_ | õ | ||
pmichaud | lol # wave like an egyptian | 14:50 | |
colomon | Err... just got a weird error. | 14:52 | |
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 | ||
Mind you, I passed four, and should have passed six. | |||
jnthn | Parrot can't count. | 14:54 | |
moritz_ | the 5 can easily be explained - it counts the invocant too | 14:55 | |
jnthn | aye | ||
colomon | That makes sense. | ||
14:55
TiMBuS left
14:56
Patterner left,
Psyche^ is now known as Patterner
|
|||
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:56 | |
moritz_ | yes, the default .new takes only the invocant (1) | 14:57 | |
plus optionally named ones | |||
colomon | So basically, a less than awesome error message, but a perfectly sensible one. | 15:05 | |
moritz_ | no | 15:06 | |
either it does multi dispatch | |||
then it has to complain that no candidate was found | |||
or it does single dispatch | |||
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? | ||
moritz_ | don't know if it's know | 15:08 | |
colomon | oooo, another fun issue. Apparently is(cosech(-Inf), -0, "whatever") doesn't work, even though | 15:14 | |
rakudo: say cosech(-Inf) | 15:15 | ||
p6eval | rakudo d1f2d4: OUTPUT«-0» | ||
15:15
iblechbot left
|
|||
moritz_ | rakudo: use Test; plan 1; is(cosech(-Inf), -0, "whatever") | 15:16 | |
p6eval | rakudo d1f2d4: ( no output ) | ||
colomon | just occurred to me that "-0" might work, trying that now. | ||
I think the problem is | |||
moritz_ | rakudo: use Test; plan 1; is(cosech(-Inf), -0, "whatever") | 15:17 | |
colomon | rakudo: say -0 | ||
p6eval | rakudo d1f2d4: ( no output ) | ||
rakudo d1f2d4: OUTPUT«0» | |||
colomon | need to run exercise now, more later... | ||
moritz_ | colomon: comparing with == 0 should work | 15:18 | |
15:22
sevvie left
|
|||
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:26 | |
15:30
abra joined
|
|||
pmichaud | mberends: how about just ~/.perl6 ? | 15:34 | |
in the Perl world I sometimes have difficulty distinguishing between "lib" and "bin" :-) | 15:35 | ||
one person's application ends up being another person's library | |||
moritz_ | pmichaud: more to the point, the proto hackers also considered putting configuration files into ~/.perl6/proto/ or s | 15:36 | |
o | |||
pmichaud | I prefer "~/.perl6" or "~/.rakudo" to "~/.perl6lib" | ||
whether that is then subdivided is up to others :) | |||
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:37 | ||
But I'm fine with ~/perl6/lib | 15:38 | ||
er, ~/.perl6/lib | |||
15:39
jrtayloriv joined
|
|||
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:41 | |
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 | ||
mberends | Perl scripts should predeclare how they mutate the default environment or ecosystem, ie they should call modules for everything | 15:43 | |
pmichaud | exactly. So the equivalent of perl6.conf is ./perl6 -L myconf ... | 15:44 | |
mberends | moritz_: yes, another way of saying the same thing | ||
pugs_svn | r28252 | moritz++ | [perl6.org] start the new site as announced on p6l | 15:45 | |
r28252 | | |||
r28252 | It is currently not visisble on perl6.org (and won't be until it all works | |||
r28252 | properly). | |||
r28252 | | |||
r28252 | This commit just adds two pages and a tiny peace of infrastructure. | |||
pmichaud | it's always nice to have peaceful infrastructures. :) | ||
moritz_ | ouch. | 15:46 | |
mberends | peace unfortunately tends to be short lived | ||
moritz_ | I shouldn't have touched a keyboard today | ||
pmichaud | mberends: "short lived? What are you talking about? Wanna fight about it?!?!" :-) | 15:47 | |
mberends | 45 seconds this time ;) | 15:48 | |
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 | ||
moritz_ expects world domination, real fast | 15:50 | ||
mberends | peace by peace | ||
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 | ||
pmichaud | (Tom Lehrer)++ | ||
moritz_ | indeed | 15:52 | |
he has lots of cool stuff | |||
pmichaud opens up music player to hear "National Brotherhood Week" again :) | |||
cognominal | rakudo: eval( 'package A; sub ok { print "@{$_[1]}\n" }; bless {}', :lang<perl5> ).ok( ["o", "k"]); | ||
p6eval | rakudo d1f2d4: ( no output ) | ||
cognominal | ouch | ||
moritz_ | colomon: that died with a segfault | 15:53 | |
pmichaud | what is that @{$_[1]} supposed to be/do? | ||
oh, it's :perl5 | |||
nm | |||
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)» | ||
masak | "World Domination, peace by peace". I like that slogan. :) | ||
15:55
drbean left
|
|||
dalek | kudo: b29506b | masak++ | src/ (2 files): translated Mapping.perl to the setting |
15:55 | |
pmichaud | maybe omit the 'return' ? | 15:56 | |
mberends | pmichaud: that was the documentation ;) | 15:57 | |
pmichaud | or we can leave it there, and hopefully someday the compiler can optimize it out | ||
moritz_ | should we mention blizkost in the Rakudo release announcement? | ||
pmichaud | +0.5 | ||
15:58
drbean joined
|
|||
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'. | ||
pmichaud | (explicit returns) I won't push it yet, just keep in mind that explicit returns do impose some overhead. | 15:59 | |
(an extra function call, create an exception, throw the exception, catch the exception, unpack the arguments) | |||
masak | nod. | 16:02 | |
TimToady | the last one in a block should be easy to optimize away | ||
masak | usually .perl is made in conjunction with I/O, so here it would probably be premature optimisation to remove it. | ||
but in case it isn't, my claiming it's premature optimisation probably counts as premature dismissal. :P | 16:03 | ||
16:03
ejs joined
|
|||
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 | |
16:04
payload joined
|
|||
pmichaud | I do understand the desire for explicit return -- it does read better in many cases. | 16:04 | |
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) | ||
masak: as long as you don't dare to complain about rakudo's speed... ;-) | |||
jnthn | If the last statement is a return, then yes, I suspect we can optimize that without too much trouble. | ||
masak | moritz_: oh, I can complain, if that's called for... :) | ||
jnthn | Probably even for Rakudo *. | ||
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 | ||
TimToady | we don't require consistency here :) | 16:06 | |
jnthn | pmichaud: Agreed, that's what I had in mind. :-) | ||
moritz_ | TimToady: should introspection of attribute allow returning the value? | ||
TimToady | I meant last statement in a routine, not block | ||
pmichaud | ...and we have to make sure that return() hasn't been overridden. :-P | ||
16:06
abra left
|
|||
moritz_ | I wanted to write Object.perl, and found it quite impossible without that feature | 16:06 | |
jnthn | pmichaud: ewww. | ||
pmichaud | ...and that there's not a CONTROL block in effect | ||
(these are all doable, yes.) | 16:07 | ||
TimToady | moritz_: don't ask hard questions :) | ||
jnthn | plz I can retire before we write to optimizer? ;-) | ||
dalek | kudo: fa7142a | moritz++ | docs/guide_to_setting.pod: [docs] recommend implicit return for setting files |
||
jnthn | s/to/the/ | ||
cognominal | moritz_, are you sure that p6eval pulls the last blizkost? | 16:08 | |
pmichaud | here's my recommend explicit return: #`(return) $value; | ||
:-P | |||
cognominal | ho, jonathan had added stuff | ||
jnthn | moritz_: Are you meaning .^attributes ? | ||
TimToady | moritz_: I suspect we can only gurarantee that we can return a closure that will return the value if called | ||
jnthn | cognominal: Aye. Did you fix the SEGV yet? ;-) | ||
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 | ||
TimToady | but my coffee level is still to low | ||
moritz_ | jnthn: yes | ||
jnthn | cognominal: hehe. | ||
cognominal: I writed some code. ;-) | |||
cognominal | nice | ||
moritz_ | TimToady: I don't care either way as long as I can obtain those values somehow | ||
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
|
|||
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 | ||
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. | ||
jnthn | All the introspection we have so far is through the metaclass. | ||
TimToady: And this calls for introspection of an individual object. | |||
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... | ||
TimToady | for instance, if it's not provided by the underlying VM | ||
moritz_ | we need that anyway, for properly introspecting attributes that were mixed in at run time | ||
jnthn | Well, we can make it an optional rather than required part of the MOP. | ||
TimToady | though you'd think it could be faked | ||
well, you couldn't suppress side effects, if that's what you mean by "introspect" | 16:13 | ||
though for common MOPs $!foo should be get-at-able somehow | |||
jnthn | yeah, true | ||
Aye. | |||
I think we should provide a way. | |||
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 | ||
cognominal | jnthn, blizkost : scripting Perl 5 in Perl 6 or "the power of Perl 6 with the speed of Perl 5" | ||
moritz_ | ah well, there are other uses for serialization, not only .perl | ||
TimToady | well, maybe every MOP has to provide a was to do .perl or the components thereof | 16:15 | |
*way | |||
jnthn | cognominal: I was aiming more for migration strategy and making CPAN available to languages running on Parrot... :-) | ||
moritz_ | TimToady: yes, and the interface to that is $obj.^attributes, no? ;-) | 16:16 | |
TimToady | the "the" is a lie, I suspect | 16:17 | |
16:17
schmalbe left
|
|||
moritz_ | s/the/an/ | 16:17 | |
TimToady | it might not be the path that $!foo uses | 16:18 | |
in fact, I think it's quite unlikely | |||
16:19
payload left
|
|||
TimToady | certainly our brains don't access data via introspection :) | 16:19 | |
jnthn | aye | ||
The introspection way doesn't have to be nice. | |||
moritz_ | right | 16:20 | |
jnthn | I think it falls into the "everything's possible, but some things are discouraged" camp | 16:21 | |
16:23
gabiruh left,
gabiruh_ joined
16:24
jauaor joined
16:28
dukeleto left
16:29
stephenlb joined
|
|||
cognominal | jnthn, migration is such a scary word :) | 16:30 | |
jnthn | cognominal: I already did it twice. ;-) | ||
OK, sleep time here :-) | 16:31 | ||
night all | |||
moritz_ | good night | 16:32 | |
16:33
abra joined
16:35
rfordinal left
16:40
masak left
|
|||
ruoso | TimToady, have you seen my comments on the slides you mentioned? | 17:13 | |
TimToady | yes, and I don't think you've quite got the distinction Guy was trying to make wrt flat lists | 17:15 | |
17:16
zloyrusskiy joined
|
|||
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:20 | |
and not just in the car/cdr sense, which is Guy's point | 17:21 | ||
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 | |
there's no need for both APIs | |||
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 | ||
ruoso | but that's something good | ||
TimToady | not for generic code | 17:28 | |
ruoso | (map {... }, @a, map {...}, @b) | ||
er... | |||
((map {... }, @a),( map {...}, @b)) | |||
17:28
stephenl1 joined
|
|||
TimToady | there might be diffulties with ambiguous dispatch too | 17:29 | |
*difficulties with spelling too... | |||
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 | ||
ruoso | In my head, every iterator is associated with a "pipe" (in the unix sense) | 17:31 | |
17:31
M_o_C joined
|
|||
ruoso | (but not in the unix implementation) | 17:31 | |
I mean... | |||
TimToady | pipes single threaded in the "bad" sense Guy is talking about | 17:32 | |
ruoso | every lazy operation is automatically splitted in several "light threads" | ||
17:32
abra left
|
|||
ruoso | that's the point... they're not single-threaded | 17:32 | |
TimToady | well, lazy lists are single-threaded more-or-less by definition | ||
it's the eager and hyper you can parallelize | 17:33 | ||
and hyper explicitly requests it | |||
ruoso | but I think I see what you mean now, we need to specifiy what "hyper iterator" means | ||
TimToady | yeah, I'm kinda groping for the same kind of thing Guy is talking about there | 17:34 | |
he is, of course, much more eloquent on the subject | |||
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
|
|||
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 | ||
and it seems like asking @c to divide itself is close to the right way | 17:37 | ||
if it degrades to car/cdr, that's no worse than we were :) | |||
abstractly speacking | |||
*speaking, gah, can't type today | 17:38 | ||
17:38
stephenlb left
|
|||
pugs_svn | r28254 | moritz++ | [new perl6.org] initial menu (not yet styled) | 17:38 | |
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"... | ||
I don't understand your question | 17:41 | ||
did you look at Guy's slides about balanced tree reprs? | |||
17:41
astinus_ is now known as astinus
|
|||
ruoso | TimToady, yeah, but I don't see very much how that fits with lazyness | 17:42 | |
17:42
rbaumer left
|
|||
ruoso | he kinda assumes the cost of generating the data structures to be nil | 17:42 | |
i.e. the data is already there | |||
TimToady | he kinda assumes we're going to have parallism | ||
*parallelism | 17:43 | ||
ruoso | but "balanced tree" doesn't make much sense with lazyness | ||
TimToady | we're not talking about lazyness here | ||
we're talking about hyper | |||
17:43
hudnix joined
|
|||
ruoso | I'm talking about mixing both | 17:44 | |
how do hypers operate on lazy lists | |||
(trees, actually, if you consider it doesn't flatten) | |||
TimToady | hypers are contextual, and bias all the operations away from lazy within their scope | 17:45 | |
it's quite possible that hyper and eager are the same thing in the long run | 17:46 | ||
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 | ||
TimToady | well, that's not what you said | ||
you were talking about laziness | |||
ruoso | ok... I didn't express myself very well | ||
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 | ||
TimToady | think more like P5 "there's no such thing as a list in scalar context" | ||
ruoso | I should have said capture instead of list | 17:49 | |
since it's multidimensional | |||
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:50 | |
ruoso | right... that's what I have in mind too | 17:51 | |
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 | ||
TimToady | including degrading hyper to eager | ||
where eager is more or less car/cdr | |||
17:53
SmokeMachine left
|
|||
TimToady | that feels like a mistake to me | 17:53 | |
ruoso | it comes with the benefit that situations like ((map {...},@a),(map {...},@b)) naturally are more parallelizable | 17:54 | |
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:55 | |
ruoso | that'd be fine | 17:56 | |
ruoso needs to go extinguish a fire | |||
TimToady | hijacking the dimensionality notation for that therefore feels like a mismatch, but then, maybe so is my conjecture | 17:57 | |
and it's all done on the make-me-an-iterator level | 17:58 | ||
but that iterator also has to be dealable-with in a non car/cdr fashion, maybe that's the crux of the problem | |||
ruoso | I think then it's the Iterator that would answer the "divide", not the list | 17:59 | |
then the Iterator would look "is this multidim?" | |||
and decide the best strategy to parallelize its own consuming | |||
ruoso brb & | 18:00 | ||
18:08
ejs left,
sm^^^ joined
18:11
sevvie left
18:14
stephenl1 is now known as stephenlb
18:18
sm` left
18:32
kent\n left
18:40
meppl left
18:51
PZt left
|
|||
pugs_svn | r28256 | diakopter++ | [std-vijs] initial JS interpreter (emitter, mostly). will add readme soon | 18:53 | |
19:01
cmv joined
|
|||
pugs_svn | r28257 | diakopter++ | [std-vijs] oops; forgot comment open when pasting non-copyright notice in json2.js | 19:09 | |
19:21
rapacity joined
|
|||
ruoso back | 19:28 | ||
TimToady, so, what do you think of letting the decision of parallelization strategy to the iterator? | 19:29 | ||
instead of the list, that is | |||
TimToady | a list might want to choose an alternate implementation (balanced trees) if it knows it will be used by a hyper iterator | 19:30 | |
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++ | ||
ruoso | TimToady, there's a detail... | ||
the Iterator is returned by the list | |||
and the context of the iterator is propagated | 19:34 | ||
(flattening vs non-flatteniing) | |||
I guess an hyper operator would ask for parallel instances of that iterator | 19:36 | ||
for (1..$max_threads) { my $subiterator = $iterator.parallel; ... } | 19:37 | ||
TimToady | perhaps some kind of hypermap is primitive | 19:38 | |
at some point we hit a scheduler, and it will have some notion of threads | 19:39 | ||
ruoso | rewriting the above snippet.... | ||
for $iterator.parallel -> $subiterator { async { ... } } | 19:40 | ||
TimToady | and perhaps there's some SIMD interface to the scheduler resembling a hypermap | ||
(not SIMD in the lockstep sense) | |||
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? | ||
ruoso | a lazy list of iterators to be managed by different threads | 19:42 | |
TimToady | you're assuming a hyper context there... | ||
ruoso | yes | ||
TimToady | how do you maintain the order of the thread results? | ||
ruoso | getting the results in the order you got the original iterators | 19:43 | |
19:43
PZt joined
|
|||
TimToady | still seems like you're assuming the solution in your solutoin | 19:43 | |
ruoso | hm? | 19:44 | |
the result is (@lazy_result_for_p_iterator_1, @lazy_result_for_p_iterator_2, ... ) | 19:45 | ||
19:45
Intensity left
|
|||
dalek | kudo: 177a379 | pmichaud++ | docs/spectest-progress.csv: spectest-progress.csv update: 436 files, 15497 (71.5% of 21671) pass, 0 fail |
19:46 | |
TimToady | okay, if each of those can in turn be lazy results, all autoflattened, then it'll probably work | ||
but we have to be able to divide the problem without inducing extra capture structure | 19:49 | ||
since the user may be depending on what the user expects :) | |||
ruoso | I guess the fact that the List is returning the Iterator allows the list to decide that | 19:50 | |
in the end, it's everything in the control of the list | |||
and it might see: This is simply a range object, I can get the first half and the second half as parallel threads... | |||
TimToady | my conjecture was aimed at trying to use multiple dispatch to distinguish the splittable from non-splittable cases | 19:51 | |
ruoso | hmm... | 19:52 | |
TimToady | but it might be malformed | ||
ruoso trying to see what that really means | |||
TimToady | something that distinguishes leaves from branches, basically | ||
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 | ||
? | |||
yes | |||
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 | ||
;) | |||
basically, it would implement that logic | |||
19:54
zloyrusskiy left
|
|||
ruoso | hypermap { something() }, @a; | 19:55 | |
would result in for @a.Iterator.parallel -> $subiterator { async { while (my $item = $subiterator.get) { something() } } } | 19:56 | ||
19:56
jaldhar left
|
|||
TimToady | without making separate captures for each result like ordinary map does | 19:57 | |
ruoso | hmm... I was afraid you'd say that ;) | ||
but yes, it makes sense | |||
19:59
mikehh left
|
|||
TimToady | phone | 20:00 | |
20:01
jaldhar joined
|
|||
ruoso | TimToady, but I thought map was already potentially hyper, wasn't it? | 20:01 | |
20:02
__ash__ joined
20:03
Intensity joined
20:05
SmokeMachine joined
|
|||
moritz_ | diakopter: does the v8 build-from-source has to be trunk? or is a release new enough? | 20:08 | |
(taking trunk now) | 20:10 | ||
__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
|
|||
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" | ||
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:16 | |
it's silent about the syntax for multiiple attributes | 20:17 | ||
maybe it's does property[:foo<foo>, :bar<bar>] or so | |||
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 | ||
well, not really a constructor but whatever a role equivilent would be | |||
20:20
jaldhar left,
jauaor left
|
|||
diakopter | moritz_: trunk is "stable"... bleeding_edge is not | 20:20 | |
moritz_: (pushes to trunk are "releases", essentially) | 20:22 | ||
moritz_ | ok, installing V8 and perl-v8 seemed to work | 20:23 | |
ruoso | TimToady, but map already has to traverse the sub-captures anyway | 20:31 | |
the map closure never sees a branch, it only sees the leafs | |||
20:32
tann joined
|
|||
tann | rakudo: caller; # :) | 20:33 | |
p6eval | rakudo 177a37: OUTPUT«caller() is not yet implemented in Rakudo, sorryin sub caller (src/gen_setting.pm:1842)called from Main (/tmp/kJv3Xp4Q50:2)» | ||
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:34 | |
ruoso | TimToady, I see, but I mean, in terms of execution strategy, are we enforcing that map will run sequentially? | 20:35 | |
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 | ||
TimToady | and lazy is the default | ||
ruoso | but that's why it's the list that returns the iterator | ||
and the list knows if it makes sense to be parallel or not | |||
TimToady | sorry, still trying to pay attention to phone call | ||
ruoso | in summary: map already fullfits the purpose of the hypermap you're proposing | 20:37 | |
pugs_svn | r28259 | moritz++ | [src/perl6] 'make snap' should copy viv, and symlink the js/ directory | 20:40 | |
r28260 | moritz++ | [evalbot] vijs target | 20:42 | ||
20:42
p6eval left
20:43
p6eval joined
|
|||
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
|
|||
diakopter | WOW it's FAST | 20:43 | |
20:44
japhb left
20:45
pmurias joined
|
|||
pugs_svn | r28261 | diakopter++ | fix typo | 20:48 | |
diakopter | p6eval: restart | ||
p6eval: control restart | |||
evalbot control restart | |||
20:48
p6eval left
20:49
p6eval joined
|
|||
pmurias | vivjs: say "hi" | 20:49 | |
diakopter | nope | ||
20:49
p6eval left
|
|||
diakopter | tee hee | 20:49 | |
moritz_ | just a sec | ||
20:49
p6eval joined
|
|||
moritz_ | vivjs: say 'hi' | 20:49 | |
vijs: say 'hi' | 20:50 | ||
p6eval | vijs 28259: OUTPUT«Undefined subroutine &ToJS::emit_js called at viv line 154.» | ||
pmurias | timeout? | ||
diakopter | oh it needs ToJS.pm too. | ||
the snap | |||
pugs_svn | r28262 | moritz++ | [src/perl6] copy ToJS.pm to snap | 20:51 | |
20:51
Lorn_ joined
|
|||
moritz_ | vijs: say 'hi' | 20:51 | |
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 | |
..''''\n","nibble":{"T":"nibbler","TEXT":"hi","BEG":5,"nibbles":[],"END":7},"END":8,"M":{"T":"nibbler","TEXT":"… | |||
diakopter | tee hee | ||
moritz_ | vijs: say(42) | ||
p6eval | vijs 28259: OUTPUT«42 time in interpreter: 0.009774 s» | ||
diakopter | it needs a better "not implemented" exception | ||
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. | ||
till then, --js isn't in anyone's way afaik | 20:55 | ||
20:56
Lorn left
|
|||
diakopter | vijs: say(3,4) | 20:56 | |
p6eval | vijs 28259: OUTPUT«34 time in interpreter: 0.031730 s» | ||
pmurias | the README doesn't clearly imply that it will be detached from viv at a later point | 20:57 | |
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:58
dakkar left
|
|||
moritz_ | .parse calls TOP - that's the only speciality | 20:59 | |
pmichaud | TOP is specifically defined as the start symbol in a grammar | ||
moritz_ | (and .parsefile does too) | ||
pmurias | diakopter: mildew includes stuff from viv using do 'viv' | ||
diakopter | ok... I didn't add any dependencies. | 21:00 | |
(that aren't string-eval'd) :) | |||
moritz_ | I think it's fine for now | ||
diakopter | lol at nibbles/nibbler | 21:02 | |
moritz_ | anyway, diakopter++ for yet another Perl 6 compiler! | ||
diakopter | <sigh /> like the 5th [false] start from me. | ||
21:04
alexn_org left
|
|||
jrtayloriv | moritz_, pmichaud -- thanks for clearing that up | 21:04 | |
moritz_ | diakopter++ # still trying after 4 failed attempts | ||
diakopter | hm. | ||
vijs: say(3,4,5) | 21:05 | ||
p6eval | vijs 28262: OUTPUT«345 time in interpreter: 0.017193 s» | ||
diakopter | vijs: say(3,4,5,6) | ||
p6eval | vijs 28262: OUTPUT«3456 time in interpreter: 0.020439 s» | 21:06 | |
moritz_ | vijs: say(3, say(5)) | 21:07 | |
p6eval | vijs 28262: OUTPUT«53 time in interpreter: 0.017085 s» | ||
21:07
sri_kraih left
21:08
jauaor joined
|
|||
moritz_ | vijs: say(5, say(3), say(4)) | 21:08 | |
p6eval | vijs 28262: OUTPUT«345 time in interpreter: 0.024220 s» | ||
diakopter | :) (I dunno) | 21:21 | |
moritz_ | so say() doesn't return 1 yet, it seems | 21:22 | |
21:23
M_o_C left
21:29
payload joined
21:44
japhb joined
21:53
mberends left
21:55
ruoso left
21:58
mikehh joined
|
|||
mikehh | rakudo (177a379) builds on parrot r41308 - make test PASS / make spectest (up to 28262) FAIL - Ubuntu 9.04 amd64 | 22:01 | |
rakudo - t/spec/S02-magicals/env.rakudo - Failed tests: 7, 10 | |||
rakudo - t/spec/S02-names_and_variables/perl.rakudo - Failed tests: 71, 73, 77, 81, 83 | |||
rakudo - t/spec/S06-signature/slurpy-and-interplation.t - Failed test: 6 | |||
rakudo - t/spec/S10-packages/basic.rakudo - TODO passed: 3 | |||
22:02
KyleHa left
22:06
sri_kraih joined
|
|||
pmichaud | yes, I'm seeing failures in Rakudo as well (against Parrot r41267 | 22:08 | |
running another set of tests... | 22:10 | ||
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 left,
pmurias joined
22:19
stephenlb left
22:22
stephenlb joined
|
|||
pmurias | perl6: say (say 3) | 22:27 | |
p6eval | elf 28263, pugs, rakudo 177a37: OUTPUT«31» | ||
22:27
pmurias left
|
|||
mikehh | pmichaud: everything passed for me on r41295 - rakudo (d1f2d4c) - make spectest (up to 28251) PASS | 22:27 | |
22:29
nihiliad left,
synth^2 joined
22:30
synth left,
cmv left
22:35
iblechbot left
|
|||
diakopter | TimToady: why is nibbler's SYM == "---\n- '\"'\n- '\"'\n" | 22:40 | |
22:46
jrtayloriv left,
jrtayloriv joined
|
|||
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:52 | |
22:54
hercynium joined
22:56
|Jedai| left
|
|||
TimToady | diakopter: hoistast does that if it sees something it doesn't grok | 22:56 | |
pmichaud | mikehh: I agree -- they weren't there as of midnight | 23:01 | |
diakopter | TimToady: what do you mean? it's a valid parse..? | 23:04 | |
TimToady | well, I assume you wouldn't have got a tree at all if it weren't valid | 23:06 | |
diakopter | oh | ||
TimToady | but I have no idea what you were trying to parse | ||
diakopter | say(" ") | ||
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:09
payload left
23:10
synth joined
|
|||
diakopter | TimToady: I don't know how to interpret quote__S_Double_Double | 23:11 | |
it has the .nibble member | |||
23:12
synth^2 left,
sevvie joined
|
|||
diakopter | so I guess my question is, how do I know when to descend into the .nibble member. | 23:12 | |
hrm. | |||
hercynium does the happy dance | 23:13 | ||
my second system shirt came in today | 23:14 | ||
pmichaud | does it look any good? | ||
hercynium | yeah | ||
the printing seems to be a dye instead of screened | |||
Even fine print like the "TM" mark is clear | 23:15 | ||
pmichaud | excellent! | ||
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? | ||
hercynium | uep | ||
pmichaud | okay, good to know. | ||
I'll see about ordering one for me :) | |||
hercynium | shipping was quick, shipped the next day from someplace in PA, delivery confirmation was included. | ||
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 | |
*losing | |||
pmichaud | a-ha.... the Mapping change forgot to add Mapping.pm to the setting | 23:22 | |
diakopter | oh... | ||
pmichaud fixes Makefile.in and re-spectests | 23:23 | ||
diakopter | TimToady: it's like SYM got yamlized | 23:26 | |
TimToady | diakopter: that's from the ::Dump in viv | ||
lisppaste3 | diakopter pasted "yamlized" at paste.lisp.org/display/87203 | ||
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:27 | |
pmichaud | diakopter++ # I'm really happy to see vijs | 23:28 | |
diakopter | pmichaud: thanks :) .oO( someone to pre-debug STD for you ) :P | 23:29 | |
23:29
__ash__ left
|
|||
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) | ||
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 | ||
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 | ||
or at least that it can be a good starting point for other platforms | |||
so more than simply debugging STD, you're also exploring the javascript vm a fair bit | |||
that might end up being a big Win | 23:32 | ||
diakopter | yeah; V8 works great on i386, amd64, and arm | 23:33 | |
vijs: say(say(3),say(4)) | 23:34 | ||
p6eval | vijs 28263: OUTPUT«3411 time in interpreter: 0.019825 s» | ||
TimToady | diakopter: reproduced the :3 loop here, though it's a large loop, alas, so something probably backtracking badly | ||
23:34
justatheory left
|
|||
diakopter | o | 23:37 | |
well, the yamlized thing I pasted got better when I replaced '::Dump($v)' with '$v' in hoistast | 23:43 | ||
now I can see it's an array of the quotation marks the nibbler nibbled | 23:44 | ||
23:45
payload joined
|
|||
diakopter | I mean, it doesn't need to be double-yamlized | 23:46 | |
or just plain double-serialized/marshalled/whatever | |||
TimToady | SYM is not supposed to be there at all | ||
I suspect | 23:47 | ||
pugs_svn | r28264 | lwall++ | [STD] trap malformed :3 radix | 23:49 | |
23:53
frew_ joined
|