Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2014-04-26

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:12 dalek modules.perl6.org: 5ddfccd | raydiak++ | web/lib/P6Project.pm:
00:12 dalek modules.perl6.org: Revert "Allow HTTP redirection" - causes other problems; discussion needed
00:12 dalek modules.perl6.org:
00:12 dalek modules.perl6.org: This reverts commit e5af4fc7246755cbb3c0e055778c84834002867a.
00:12 dalek modules.perl6.org: review: https://github.com/perl6/modul​es.perl6.org/commit/5ddfccdeb1
00:12 raydiak gotta run, back in a while
01:16 FROGGS_ joined #perl6
01:30 raiph joined #perl6
01:33 raiph .tell FROGGS Just want to let you know I am working on a CPAN MIRRORED_BY grammar. My start is at https://gist.github.com/raiph/63508a5f4ade000acc7f
01:33 yoleaux raiph: I'll pass your message to FROGGS.
01:48 ilbot3 joined #perl6
01:48 Topic for #perl6 is now »ö« Welcome to Perl 6! | http://perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:,  niecza:, std:, or /msg camelia perl6: ... | irclog: http://irc.perl6.org | UTF-8 is our friend!
01:49 adu joined #perl6
01:53 raydiak okay, so the problem with modules.perl6.org is that raw.github.com now redirects to raw.githubusercontent.com
01:54 raydiak there are 2 ways to fix it
01:54 raydiak either change the script that generates the module list for the website so it handles the redirects properly
01:55 raydiak or update all urls to point to the new domain
01:57 raydiak from a technical efficiency standpoint, it'd be better to use the new direct urls
01:57 klapperl_ joined #perl6
01:57 BenGoldberg There's also solution 1B, which is to cache the redirects ;)
01:58 raydiak but idk if there would be an ramifications (eg for tools like panda) would be if we changed *every* url in META.list all at once
01:58 raydiak hm
01:59 raydiak basically it's a question of whether we want to know when something has been redirected (by having it break), or just not have it break and have it work as long as possible, even when buried under umpteen layers of years-old redirects
02:00 raydiak if we cache then it eliminates the performance problem if we don't care about having updated urls
02:00 BenGoldberg Cache and give a warning ;)
02:01 BenGoldberg And, perhaps, deprecate the old urls, eventually.
02:01 raydiak why are the best compromises always the most complex to code? :)
02:01 plobsing joined #perl6
02:02 BenGoldberg The best compromises are the ones least uncomfortable for the largest number of humans.  Since humans are both complex and uncomfortable creatures, it's inevitable that the compromises will be too :)
02:03 raydiak hah...well put
02:10 lue raydiak: the clear solution is to abstract away the URLs :)
02:10 hoverboard joined #perl6
02:15 ivan`` joined #perl6
02:19 ivan`` joined #perl6
02:26 ivan`` joined #perl6
02:28 colomon tadzik: it appears my rakudobrew / panda problems came from having other installs of rakudo floating around.  everything seems to be working now.  (crosses fingers)
02:33 xragnar_ joined #perl6
02:36 colomon tadzik: though when I do rakudobrew build-panda on my Mac, for some reason it doesn't create a link to the panda script in the .rakudobrew/bin directory?
02:37 pecastro joined #perl6
02:37 colomon doing rakudobrew switch moar does install it there.
02:37 colomon (well, a link, I presume)
02:37 colomon panda install NativeCall
02:37 colomon resolve stage failed for NativeCall: Project NativeCall not found in the ecosystem
02:37 * colomon is having one of those days when every single step fails.  :\
02:39 colomon ecosystem is broken at the moment?
02:40 colomon on my Linux box, doing panda list produced the expected list of files.  Then I did panda update and panda list again, and this time it is only the installed modules plus HTTP::Headers, HTTP::Message, and HTTP::Request
02:42 raydiak colomon: those are the only 3 modules not pointed at raw.github.com, which as of today, is a redirect...so its breaking stuff
02:42 colomon raydiak: tell me more, please?
02:43 colomon I see they're pointed at raw2.github.com?
02:43 raydiak colomon: right, that one isn't a redirect yet
02:43 raydiak so those 3 still work
02:43 raydiak suppose we could just update all the urls in META.list
02:44 colomon to raw2 ?
02:44 raydiak no, to where they're redirecting to
02:44 raydiak raw.githubusercontent.com
02:47 raydiak I didn't know anything besides modules.perl6.org was broken
02:48 colomon are you sure that's the right URL?  my naive attempts to access it have all just failed.
02:48 raydiak go to any of the urls in META.list and look at where your browser takes you
02:48 colomon WTF
02:49 colomon I would swear that didn't work the first time I tried it.
02:49 colomon and did the second time.
02:49 colomon raw2.github.com seems to work as well
02:50 raydiak yeah but I'm assuming that will redirect eventually too
02:50 lue raydiak: I think the best solution might be to take away the https://place.github.com/ from the list, leaving things like moritz/json/master/META.info
02:50 lue (maybe make the first entry of the list the common part of the URL?)
02:51 raydiak but then we as module authors are inextricably tied to github with no choice to host elsewhere
02:51 raydiak iow it adds the artificial limitation that all modules must reside on the same domain
02:51 lue raydiak: maybe instead something like GITHUB_RAW:jrandom/... ?
02:52 dalek ecosystem: 48b2383 | (Solomon Foster)++ | META.list:
02:52 dalek ecosystem: Switch all raw.github.com to raw.githubusercontent.com.
02:52 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/48b2383392
02:52 raydiak that's not a bad idea
02:52 colomon wonder how long it will take it to get from there to feather?
02:52 lue I don't know how often modules.perl6.org is updated.
02:53 raydiak have to fix the META.list url in the script that does that too
02:53 raydiak I got it
02:54 dalek modules.perl6.org: 62151e8 | raydiak++ | web/build-project-list.pl:
02:54 dalek modules.perl6.org: Update META.list URL
02:54 dalek modules.perl6.org: review: https://github.com/perl6/modul​es.perl6.org/commit/62151e893a
02:55 btyler joined #perl6
03:04 dalek ecosystem: 4da5508 | raydiak++ | META.list:
03:04 dalek ecosystem: Update URLs for Acme::Addslashes and Text::Abbrev
03:04 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/4da5508f13
03:28 benabik joined #perl6
03:44 sivoais joined #perl6
03:54 sivoais_ joined #perl6
03:57 hoverboard joined #perl6
04:19 sivoais joined #perl6
04:26 SamuraiJack joined #perl6
04:30 Psyche^ joined #perl6
04:55 avuserow raydiak++, colomon++ # fixing the ecosystem
05:49 timotimo retupmoca: can you explain why you used read_int and read_varint instead of just read_int in the serialization and deserialization of CStruct?
05:58 vaskozl joined #perl6
06:10 jlaire joined #perl6
06:14 dalek modules.perl6.org: 051a448 | raydiak++ | web/lib/P6Project/Hosts/Github.pm:
06:14 dalek modules.perl6.org: Catch GitHub API errors
06:14 dalek modules.perl6.org: review: https://github.com/perl6/modul​es.perl6.org/commit/051a448948
06:14 dalek modules.perl6.org: 5569415 | raydiak++ | web/lib/P6Project/Hosts/Github.pm:
06:14 dalek modules.perl6.org: Fix github raw url in another place
06:14 dalek modules.perl6.org: review: https://github.com/perl6/modul​es.perl6.org/commit/556941575e
06:14 dalek modules.perl6.org: c3e1be6 | raydiak++ | web/build-project-list.pl:
06:14 dalek modules.perl6.org: Add missing line break after error list
06:14 dalek modules.perl6.org: review: https://github.com/perl6/modul​es.perl6.org/commit/c3e1be6d2e
06:17 raydiak modules.perl6.org should fix itself at the next cron run, now; temporary working mirror at http://cyberuniverses.com/perl6-modules/
06:29 raydiak note panda and modules.perl6.org will still break when redirects are introduced
06:29 raydiak will touch base tomorrow when more people are online.  good night, #perl6 \o
06:30 timotimo thank you!
06:30 timotimo gnite!
06:31 kaare_ joined #perl6
06:48 xinming_ joined #perl6
06:55 darutoko joined #perl6
06:59 ClarusCogitatio joined #perl6
07:03 vaskozl joined #perl6
07:04 Rotwang joined #perl6
07:05 darutoko joined #perl6
07:08 FROGGS raiph++
07:08 moritz \o
07:09 FROGGS morning moritz
07:11 darutoko joined #perl6
07:11 timotimo o/
07:11 moritz somehow I've managed to roally screw up my laptop
07:11 moritz after a few small updates, and booting to windows (and updating windows from 8.0 to 8.1), diretories under /var/lib were missing
07:12 moritz like, /var/lib/{dpkg,postgresql}
07:12 moritz it was bad enough that network wouldn't start anymore, and neither could I run apt/dpkg
07:12 moritz so I tried to reinstall
07:12 timotimo what o_O
07:12 moritz which needed several attepts
07:13 moritz and ended up killing both windows and linux
07:13 moritz and didn't finish, 'cause it claimed there was an IO error while reading from the CD/DVD (which really is a USB stick)
07:13 moritz so tried a different USB stick, same result
07:14 moritz summary: linux broken, windows broken, all fucked up
07:14 moritz (I did back up /etc/ and /home to an external drive before)
07:14 ponbiki_ joined #perl6
07:15 moritz I guess I should have checked sha1sums of the image before I started to download it
07:16 kaare_ joined #perl6
07:16 FROGGS ohh dear :/
07:19 moritz oh dear indeed :(
07:20 timotimo poor you ;(
07:28 moritz very strange; downloading that ubuntu image via firefox or wget consistently produces wrong sha1sums
07:28 moritz downloading it via wget on a totally different machine in a totally different network works, though
07:28 moritz now trying the wget -> scp cascade
07:29 * moritz suspicious
07:30 masak mornin', #perl6
07:34 moritz sha1sum broken even after scp transfer. WTF?
07:34 moritz \o masak
07:34 * moritz tries again, and feels very stupid
07:35 moritz "trying the same thing twice and expecting a different resut is a sign of stupidity" -- paraphrasing EY
07:36 timotimo this code is sooooo slooooow :|
07:38 moritz and it worked the second time. Now I fell *really* stupid
07:47 arturo_ joined #perl6
07:54 dmol joined #perl6
07:54 timotimo you can watch the screen build up >_<
07:56 FROGGS moritz: I'd suggest you do a memtest
07:59 timotimo is the hard drive failing?
08:05 pdcawley joined #perl6
08:06 fhelmberger joined #perl6
08:09 FROGGS it can also be the sata controller... there are many things that could cause this
08:10 vaskozl joined #perl6
08:10 masak moritz: apparently the "definition of insanity" quote comes from Narcotics Anonymous: https://en.wikiquote.org/wiki/Narcotics_Anonymous
08:10 masak (at least that's very likely the origin)
08:11 masak wikiquote++
08:22 darutoko joined #perl6
08:45 denis_boyun_ joined #perl6
08:57 tadzik colomon: I think I fixed it
08:57 sqirrel joined #perl6
09:02 denis_boyun__ joined #perl6
09:05 vendethiel is there a "rule vs token vs regex" in the FAQ or something ? I recall something similar, but nothing in S05
09:07 arnsholt It's in S05
09:09 arnsholt token is regex :ratchet, and rule is regex :ratchet :sigspace
09:09 vendethiel Ok, in "Regexes constitute a first-class language, rather than just being strings" found it
09:09 vendethiel I think that could be moved to a FAQ Q/A ?
09:10 arnsholt Could be, yeah
09:15 vaskozl joined #perl6
09:22 vendethiel m: my 'foo bar' ~~ my anon rule { 'foo' 'bar' }
09:22 camelia rakudo-moar 440739: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/M_7gE4LikTâ�¤Malformed myâ�¤at /tmp/M_7gE4LikT:1â�¤------> [32mmy [33mâ��[31m'foo bar' ~~ my anon rule { 'foo' 'bar' [0mâ�¤    expecting any of:â�¤        scoped declaratorâ�¤Â»
09:22 vendethiel m: my 'foo bar' ~~ (my anon rule { 'foo' 'bar' })
09:22 camelia rakudo-moar 440739: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/Zdi4yn4WJnâ�¤Malformed myâ�¤at /tmp/Zdi4yn4WJn:1â�¤------> [32mmy [33mâ��[31m'foo bar' ~~ (my anon rule { 'foo' 'bar'[0mâ�¤    expecting any of:â�¤        scoped declaratorâ�¤Â»
09:22 vendethiel m: say 'foo bar' ~~ (my rule foo { 'foo' 'bar' })
09:22 camelia rakudo-moar 440739: OUTPUT«「foo bar」␤␤»
09:22 vendethiel m: say 'foo bar' ~~ (my regex foo { 'foo' 'bar' })
09:22 camelia rakudo-moar 440739: OUTPUT«Nil␤»
09:26 vendethiel Like `regex : Backtracks, no significant space. token : Doesn't backtrack, doesn't have significant space. rule : Doesn't backtrack, has sigspace`
09:27 Rotwang joined #perl6
09:30 FROGGS is 'no significant space' clear enough for a beginner?
09:30 vaskozl FROGGS: what about him?
09:30 FROGGS maybe 'ignores whitespace' might be easier to understand
09:31 FROGGS or something like that
09:31 vaskozl perl6 introduces significantly more whitespace doesn't it?
09:33 FROGGS errrm, what?
09:34 vaskozl like loop ($j=0; $j < 4; $j++)
09:34 vaskozl compared to: for($j=0;$j<4;$j++)
09:34 FROGGS ahh
09:34 FROGGS well, yes
09:35 FROGGS it uses whitespace to distinguish between subcalls and things that are not
09:35 vaskozl FROGGS: yes I know now
09:36 vaskozl what about the $j<4  becomming $j < 4
09:36 vaskozl I've always liked perl because I don't have to remember how much whitespace there was where
09:37 FROGGS you don't have to put space around an infix if it is obvious and there is only one waay to parse it
09:37 FROGGS if you would introduce an < post- or prefix you would have to put space around the infix
09:37 vendethiel FROGGS: maybe that could point to a relevant place in the syn or something else ?
09:38 FROGGS vendethiel: perhaps, yes (not that I know the relevant places offhand :o)
09:38 FROGGS vaskozl: I find the rules in P6 about whitespace even easier to understand, and therefore the code is easier to understand for me
09:39 vendethiel m: sub postfix:<< < >>($n) { $n ** $n }; say 5<
09:39 camelia rakudo-moar 440739: OUTPUT«3125␤»
09:40 FROGGS m: say 1+2; sub postfix:<+>(|) { }; say 1+2 # vaskozl: see
09:40 camelia rakudo-moar 440739: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/SF5kDmizJJâ�¤Two terms in a rowâ�¤at /tmp/SF5kDmizJJ:1â�¤------> [32msay 1+2; sub postfix:<+>(|) { }; say 1+[33mâ��[31m2 # vaskozl: see[0mâ�¤    expecting any of:â�¤        postfixâ�¤        inf…»
09:40 vaskozl m: my $i;loop ($i;$i<10;$++){ say "The numbers is $i";}
09:40 camelia rakudo-moar 440739: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/eI4DcCr9PAâ�¤Whitespace required before < operatorâ�¤at /tmp/eI4DcCr9PA:1â�¤------> [32m$i;$i<10;$++){ say "The numbers is $i";}[33mâ��[31m<EOL>[0mâ�¤    expecting any of:â�¤        postfixâ�¤Â»
09:40 FROGGS vaskozl: I like that way, because you can always be sure to parse it right
09:41 vendethiel m: class A { has $.n; method postcircumfix:<( )>($n) is export { 'hey you !'; } }; sub postfix:<< < >>($n) { new A(:$n); }; say 5< 3;
09:41 camelia rakudo-moar 440739: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/83ZPvhYy8S�Unsupported use of C++ constructor syntax; in Perl 6 please use method call syntax�at /tmp/83ZPvhYy8S:1�------> [32m!'; } }; sub postfix:<< < >>($n) { new A[33m�[31m(:$n); }; s…»
09:41 vendethiel m: class A { has $.n; method postcircumfix:<( )>($n) is export { 'hey you !'; } }; sub postfix:<< < >>($n) { A.new(:$n); }; say 5< 3;
09:41 camelia rakudo-moar 440739: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/iw12IGSbfhâ�¤Two terms in a rowâ�¤at /tmp/iw12IGSbfh:1â�¤------> [32mfix:<< < >>($n) { A.new(:$n); }; say 5< [33mâ��[31m3;[0mâ�¤    expecting any of:â�¤        postfixâ�¤        infix stopperâ�¤â€¦Â»
09:42 vendethiel m: class A { has $.n; method postcircumfix:<( )>($n) is export { 'hey you !'; } }; sub postfix:<< < >>($n) { A.new(:$n); }; say 5<(3);
09:42 camelia rakudo-moar 440739: OUTPUT«hey you !␤»
09:42 vendethiel :D
09:42 vaskozl m: loop (my $i;$i <'10';$i++){ say "The numbers is $i";}
09:42 camelia rakudo-moar 440739: OUTPUT«use of uninitialized value of type Any in numeric context␤use of uninitialized value of type Any in string context␤The numbers is ␤The numbers is 1␤The numbers is 2␤The numbers is 3␤The numbers is 4␤The numbers is 5␤The numbers is 6␤The n…»
09:42 vendethiel $i = 0; $i < 10 ?
09:42 vaskozl what's the uninitailised value?
09:43 vaskozl vendethiel: oh thx
09:43 vendethiel m: loop (my Int $i;$i <10;$i++){ say "The numbers is $i";}
09:43 vaskozl m: loop (my $i=0;$i <'10';$i++){ say "The numbers is $i";}
09:43 camelia rakudo-moar 440739: OUTPUT«Invocant requires an instance, but a type object was passed␤  in method Bridge at src/gen/m-CORE.setting:4491␤  in sub infix:<<> at src/gen/m-CORE.setting:4404␤  in block  at /tmp/VRoB8Ssf2K:1␤␤»
09:43 camelia rakudo-moar 440739: OUTPUT«The numbers is 0␤The numbers is 1␤The numbers is 2␤The numbers is 3␤The numbers is 4␤The numbers is 5␤The numbers is 6␤The numbers is 7␤The numbers is 8␤The numbers is 9␤»
09:43 vendethiel m: loop (my int $i;$i <10;$i++){ say "The numbers is $i";}
09:43 camelia rakudo-moar 440739: OUTPUT«The numbers is 0␤No such method 'STORE' for invocant of type 'Int'␤  in sub postfix:<++> at src/gen/m-CORE.setting:4554␤  in block  at /tmp/ekw87rbgor:1␤␤»
09:44 vendethiel ah yeah, there's no postfix:<++>
09:44 vaskozl vendethiel: huh?
09:44 vendethiel "int" is a native type
09:51 FROGGS there is no such postfix for that type YET
09:51 FROGGS it should get one though :o)
09:51 FROGGS m: loop (my int $i;$i <10;$i=$i+1){ say "The numbers is $i";}
09:51 camelia rakudo-moar 440739: OUTPUT«The numbers is 0␤The numbers is 1␤The numbers is 2␤The numbers is 3␤The numbers is 4␤The numbers is 5␤The numbers is 6␤The numbers is 7␤The numbers is 8␤The numbers is 9␤»
09:51 FROGGS m: loop my int $i;$i <10;$i=$i+1 { say "The numbers is $i";}
09:51 camelia rakudo-moar 440739: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/hHN2_hDkvnâ�¤Missing blockâ�¤at /tmp/hHN2_hDkvn:1â�¤------> [32mloop [33mâ��[31mmy int $i;$i <10;$i=$i+1 { say "The numb[0mâ�¤    expecting any of:â�¤        statement listâ�¤        scoped bloc…»
09:51 FROGGS ohh, sad
09:52 FROGGS but yeah, makes sense
09:52 FROGGS (because of the semicolon)
10:16 rindolf joined #perl6
10:20 yoleaux joined #perl6
10:21 tadzik wow, new ubuntu actually ships with perl 5.18
10:22 vaskozl joined #perl6
10:22 nwc10 is it newer than the Rakudo they package? :-)
10:22 Ulti tadzik: also rakudo from December 2012
10:22 nwc10 so, yes! :-)
10:22 Ulti sorry 2013!
10:22 nwc10 oh. :-(
10:22 Ulti keep forgetting its 2014
10:22 Ulti because I'm olde
10:24 moritz http://faq.perl6.org/#token # already in the FAQ
10:24 moritz because it's, like, a frequently asked question :-)
10:26 moritz anybody wants to hack up perl6/doc htmlify.pl?
10:27 moritz the index page could list the title of the "Language Documentation" docs next to the link
10:35 vendethiel moritz: I double-checked ôO
10:36 vendethiel How in the name of camelia did I miss that
10:48 colomon tadzik: fixed what?
10:51 tadzik colomon: 'panda' not available after build-panda
10:51 colomon tadzik++
10:51 tadzik colomon++ # #1 bugfinder
10:53 colomon now if the ecosystem was just functional....
11:01 * colomon does not think the problem is tadzik++'s fault
11:03 tadzik that depends. What's dysfunctional? :)
11:03 colomon Pretty much everything.
11:03 colomon right now, from my systems the ecosystem only appears to have three modules in it.
11:03 colomon HTTP::Headers
11:03 colomon HTTP::Message
11:03 colomon HTTP::Request
11:04 colomon all the modules located at raw.github.com were not working.
11:04 colomon last night I changed ALL the raw.github.com modules to raw.githubusercontent.com
11:04 colomon which seems to work better if I call it up directly.
11:05 colomon but this has had no apparent effect on the ecosystem.
11:05 colomon might just be that feather hasn't updated the list?
11:06 tadzik let me see
11:06 tadzik :o
11:06 tadzik crazy
11:07 tadzik ah, the new ones are SSL'd
11:07 tadzik and lwp-request doesn't like that
11:07 colomon tadzik: http://irclog.perlgeek.de/perl6/2014-04-26 (discussion starts, pauses briefly, then continues)
11:08 tadzik colomon: the modules that work use raw2.github.com, maybe we should switch to that
11:08 colomon but you may have just figured out more than we did already
11:08 colomon can do for the ecosystem
11:09 tadzik yes, that fixes it
11:10 tadzik I'll do that in the ecosystem repo as well
11:11 dalek ecosystem: f4865e5 | (Solomon Foster)++ | META.list:
11:11 dalek ecosystem: Try raw2.github instead of raw.githubusercontent.
11:11 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/f4865e52fc
11:12 tadzik ah, you did that alreayd :)
11:12 colomon :)
11:12 tadzik but you did .github.com.com :P
11:12 spider-mario joined #perl6
11:13 tadzik I fixed the list on feather for the time being
11:13 dalek ecosystem: 3c61acf | (Solomon Foster)++ | META.list:
11:13 dalek ecosystem: .com, not .com.com.
11:13 dalek ecosystem:
11:13 dalek ecosystem: Sigh.
11:13 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/3c61acf796
11:13 tadzik looks good now :)
11:13 colomon raydiak found a spot in modules.perl6.org that needed to be fixed as well
11:14 colomon https://github.com/perl6/modul​es.perl6.org/commit/62151e893a
11:14 tadzik also, we may just switch that list to user/repo
11:14 tadzik instead of the full url
11:14 colomon tadzik++ # fixing feather, panda works again!
11:14 tadzik there are two places that'll need to be upated after that
11:14 tadzik but I think it's for the best
11:15 colomon how would we indicate to use something other than github?
11:16 tadzik ah :)
11:19 dalek modules.perl6.org: 5f7a6a1 | (Solomon Foster)++ | web/build-project-list.pl:
11:19 dalek modules.perl6.org: Switch $list_url to use raw2.github instead of raw.githubusercontent.
11:19 dalek modules.perl6.org: review: https://github.com/perl6/modul​es.perl6.org/commit/5f7a6a1fc4
11:27 darutoko joined #perl6
11:28 vaskozl joined #perl6
11:29 masak heh. is Burnside's lemma too advanced for an introductory Python course? :P
11:29 masak ooh, let's make that today's mini-challenge, actually.
11:29 masak a factory is making necklaces with 16 beads each; 13 black and 3 white. they become ridiculously popular, with people collecting unique ones.
11:30 masak how many unique necklaces are there?
11:31 masak the necklaces have reflection symmetries, and rotational symmetries. there's no buckle.
11:31 masak this problem is simple enough that you can solve it with a one-liner in Perl 6, but scripts are fine too.
11:39 colomon m: (2..*).map(*.is-prime).first-index(73).say
11:39 camelia rakudo-moar 440739: OUTPUT«(timeout)»
11:39 colomon m: (2...*).map(*.is-prime).first-index(73).say
11:39 moritz colomon: try .grep
11:39 camelia rakudo-moar 440739: OUTPUT«(timeout)»
11:39 colomon moritz++
11:39 colomon colomon--
11:39 colomon m: (2...*).grep(*.is-prime).first-index(73).say
11:39 camelia rakudo-moar 440739: OUTPUT«20␤»
11:41 colomon m: my @primes := (2...*).grep(*.is-prime); my @reversible := @primes.grep(*.flip.is-prime); say @reversible[^10]
11:41 camelia rakudo-moar 440739: OUTPUT«No such method 'is-prime' for invocant of type 'Str'␤  in block  at /tmp/w5fQ7g5pu6:1␤␤»
11:41 colomon m: my @primes := (2...*).grep(*.is-prime); my @reversible := @primes.grep(*.flip.Int.is-prime); say @reversible[^10]
11:41 camelia rakudo-moar 440739: OUTPUT«2 3 5 7 11 13 17 31 37 71␤»
11:44 colomon m: my @primes := (2...*).grep(*.is-prime); my @reversible := @primes.grep(*.flip.Int.is-prime); say @reversible[^20]
11:44 camelia rakudo-moar 440739: OUTPUT«2 3 5 7 11 13 17 31 37 71 73 79 97 101 107 113 131 149 151 157␤»
11:46 xfix joined #perl6
11:51 masak m: say "31".is-prime
11:51 camelia rakudo-moar 440739: OUTPUT«No such method 'is-prime' for invocant of type 'Str'␤  in block  at /tmp/pEqc9xCT4j:1␤␤»
11:51 masak fair enuff.
11:51 masak m: say 3.5.is-prime
11:51 camelia rakudo-moar 440739: OUTPUT«No such method 'is-prime' for invocant of type 'Rat'␤  in block  at /tmp/yggiVl0KUt:1␤␤»
11:51 masak why is .flip on Cool, but .is-prime on Int?
11:53 colomon I vaguely recall a discussion on why .is-prime should be on Int instead of Cool.
11:53 colomon it was a while ago.  :)
11:53 moritz because primality testing is very integer specific
11:53 zakharyas joined #perl6
11:53 moritz and not everything can be coerced sensibly to Int
11:54 moritz whereas everything Cool has a clear and well-defined coercion to Str
11:54 masak ok, makes sense.
11:55 colomon Are GTK+ and GTK the same thing?
11:57 moritz seems like they aren't
11:58 moritz The name GTK+ originates from GTK; the plus was added to distinguish an enhanced version # from http://en.wikipedia.org/wiki/GTK+
12:00 colomon but it also seems like GTK+ is what people mean when they say GTK?  Or is that wrong?
12:00 moritz it would seem to me, but I'm not really sure
12:01 SamuraiJack joined #perl6
12:02 * _sri wonders what a perl6-ish rewrite of Mojo::EventEmitter with supplies and promises would look like http://mojolicio.us/perldoc/Mojo/EventEmitter
12:08 _sri perhaps something like $foo.on('bar').tap({...})
12:10 * _sri also wonders if there's a way to get a promise only for the next value of a supply
12:11 _sri $foo.on('bar').next.then({...})
12:12 * colomon is scared by the OS X build instructions for GTK+
12:14 colomon "If you have MacPorts or Fink installed, you must remove all traces of them from your environment before you try to run jhbuild. "
12:15 moritz "excise all traces with fire, or preferably with nukes and lasers from outer space"
12:24 colomon seriously, these are some of the most ridiculous instructions i've ever seen for building software.
12:34 vaskozl joined #perl6
12:54 skids joined #perl6
12:56 xenoterracide_ joined #perl6
13:35 vaskozl joined #perl6
13:39 dmol joined #perl6
13:51 geekosaur os x is rather a challenge; if you start digging into *why* they say that, the road leads ultimately to decisions made by apple
13:52 geekosaur however, if you have macports/fink/homebrew installed, you can install gtk+ via that and ignore those build instructions
13:53 FROGGS "lovely"
13:53 yoleaux 01:32Z <raiph> FROGGS: Just want to let you know I am working on a CPAN MIRRORED_BY grammar. My start is at https://gist.github.com/raiph/63508a5f4ade000acc7f
13:53 FROGGS ohh, wb yoleaux
13:53 colomon geekosaur: alas, I just have broken, leftover bits of a macports install around
13:53 geekosaur those instructions are specifically for building against a pure-apple ecosystem, and that means living with out of date and sometimes incompatible versions of libraries shipped by apple and mixing in the modern stuff provided by third party package managers is a recipe for weird link errors or core dumps
13:54 colomon I suppose trying to fix my macports might be the most straightforward thing to do.
13:55 geekosaur iconv in particular is an infamous point of collision because apple ships an ancient one and if you get any parts of a newer one tangled up in it your programs WILL dump core on startup
14:00 pippo joined #perl6
14:00 pippo Hello #perl6!
14:01 FROGGS hi pippo
14:01 pippo I am trying to install DBIish with panda but if fails tests. Any ideas? https://gist.github.com/anonymous/11320743
14:04 * moritz tries it too
14:04 dalek ecosystem: 441275d | (Andrew Egeler)++ | META.list:
14:04 dalek ecosystem: Add Net::SOCKS
14:04 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/441275d32f
14:06 FROGGS pippo: what is your `perl6-m --version` ?
14:07 moritz oh, it's actually a NativeCall test failure
14:07 pippo FROGGS: This is perl6 version 2014.04-98-g440739c built on MoarVM version 2014.04-29-ga109e8d
14:07 pippo moritz: yes!
14:07 FROGGS pippo: that should work out...
14:08 FROGGS must be a regression, since it was working for 2014.04
14:08 moritz works on HEAD for me too
14:09 pippo FROGGS: unfortunately does not on my box. Anything relevant to 32/64 bits?
14:09 FROGGS pippo: most of us are on x86_64, so I can only tell about that
14:09 FROGGS that is, x64 should work
14:09 pippo I have a 32 bits box.
14:10 FROGGS :/
14:10 FROGGS pippo: can you make an RT ticket with some system information?
14:12 pippo I can put everything in a gist. RT I do not know how to do it. Sorry :-(
14:18 FROGGS pippo: you can email to rakudobug@perl.org
14:19 FROGGS but a gist is fine also, I'll create the ticket then
14:21 FROGGS pippo: would be enough if you pasted `perl -V` to the gist you posted already
14:21 pippo FROGGS: https://gist.github.com/anonymous/11321347
14:21 pippo FROGGS: let me know if I need to add some other infos.
14:22 FROGGS pippo: please add the out of `perl -V`
14:22 pippo FROGGS: sorry I did not see your request. I'll do...
14:23 FROGGS np :o)
14:25 pippo FROGGS: here it is: https://gist.github.com/anonymous/11321460
14:26 FROGGS pippo++ # thank you
14:26 Rotwang joined #perl6
14:27 pippo FROGGS: thanks to you. o/
14:27 pippo left #perl6
14:29 FROGGS I won't have time for it today but hopefully tomorrow
14:29 FROGGS but loop labels for nqp-j are kinda burning under my fingernails, though I tried that already and failed :(
14:32 masak FROGGS++ # courage
14:39 * grondilu mentioned failure to install NativeCall on 32bit yesterday.  Pippo's issues seem very much related.  I could install NativeCall locally by replacing 'int' with 'int32' in relevant places in the *.t files.
14:40 pippo joined #perl6
14:41 pippo grondilu: I'll try and let you know ...
14:47 vaskozl joined #perl6
14:55 pippo grondilu: I confirm I have same results here i.e. tests work if int32 iso int.
14:55 pippo o/
14:55 pippo left #perl6
15:00 xenoterracide joined #perl6
15:40 guru joined #perl6
15:42 darutoko- joined #perl6
15:46 logie joined #perl6
15:52 vaskozl joined #perl6
16:03 benabik joined #perl6
16:03 Maddingue joined #perl6
16:11 guest10 joined #perl6
16:11 guest10 left #perl6
16:15 hoverboard joined #perl6
16:16 lizmat joined #perl6
16:23 xenoterracide joined #perl6
16:26 ssutch joined #perl6
16:27 * masak misses sorear
16:27 FROGGS yeah
16:34 raydiak morning #perl6
16:35 moritz good UGT, raydiak
16:37 raydiak \o
16:39 raydiak I recommend installing ssl on feather and pointing the links to their new location.  wouldn't count on raw2 being not a redirect forever.
16:41 raydiak also, was wondering if we want redirection to work with the modules.perl6.org script, or if we want to know when they change (by them breaking)
16:43 timotimo perhaps we want reports from the cron job to be received by many members of the community
16:43 timotimo and output things like that at the top if possible
16:44 timotimo or at least easy to see at a glance
16:49 denis_boyun joined #perl6
16:50 raydiak apologies, apparently my morning has other plans for me. :P back in a while.
17:11 zakharyas joined #perl6
17:21 hoverboard joined #perl6
17:23 anaeem1 joined #perl6
17:24 timotimo :)
17:25 timotimo that's fair
17:49 xenoterracide joined #perl6
17:50 anaeem1_ joined #perl6
17:53 anaeem1_ joined #perl6
17:57 rurban joined #perl6
18:11 jtpalmer joined #perl6
18:12 telex joined #perl6
18:18 anaeem___ joined #perl6
18:28 woosley joined #perl6
18:31 dalek perl6-most-wanted: e1cc7bc | (Andrew Egeler)++ | most-wanted/modules.md:
18:31 dalek perl6-most-wanted: Mention Net::IMAP
18:31 dalek perl6-most-wanted: review: https://github.com/perl6/perl6​-most-wanted/commit/e1cc7bc94f
18:45 anaeem1_ joined #perl6
18:48 kurahaupo joined #perl6
18:49 raiph joined #perl6
18:59 xinming_ joined #perl6
19:09 raiph joined #perl6
19:35 anaeem1_ joined #perl6
19:35 vaskozl Hey I'm trying to learn perl6 and I'm confused as to why you have all these "methods" that you put after a scalar or so with a dot instead of just having functions
19:35 vaskozl I don't really like these methods for now :(
19:36 masak I'm willing to explain, but I need to understand your concern/confusion first.
19:36 vaskozl yah I've never really understood object orientation
19:36 Su-Shee joined #perl6
19:36 masak methods are like functions, but they are "tied" to a certain class, so that all objects of that class can be called with that method.
19:36 Su-Shee good evening.
19:36 masak Su-Shee! \o/
19:36 vaskozl hey
19:36 masak vaskozl: here, let me put together an example, so we can talk about it.
19:37 vaskozl masak: examples would probably help
19:37 raiph By default: when regex partially match, then fail, they backtrack to try another way; tokens don't backtrack; rules don't backtrack and add <ws>+ between elements. #6now #grammar #regex #rule #token #faq http://irclog.perlgeek.de/​perl6/2014-04-26#i_8640947
19:37 vaskozl I don't really understandthe part: that all objects of that class can be called with that method
19:38 vaskozl raiph: please take small steps..
19:38 masak m: class Computer { has $.name; method greet() { say "Bleep blorp, I am $.name" } }; my $c1 = Computer.new(:name<COMPUTRON>); my $c2 = Computer.new(:name<FORTRANATOR>); $c1.greet; $c2.greet
19:38 camelia rakudo-moar 440739: OUTPUT«Bleep blorp, I am COMPUTRON␤Bleep blorp, I am FORTRANATOR␤»
19:38 masak vaskozl: hoping that was a small enough step. please study the code above.
19:38 * vaskozl tries to proccess what he sees
19:38 masak there's a class declaration, telling you what a "Computer" is.
19:39 raiph vaskozl: what I wrote has nothing to do with your dialog with masak, please ignore it
19:39 masak it contains an attribute $.name, which all Computers have.
19:39 masak and a method, greet, which all Computers do.
19:39 masak next, we create ("instantiate") two new Computer objects, and put them in $c1 and $c2.
19:39 masak then we call their methods.
19:39 masak note *especially* that each Computer object knows what it's called. that's the crucial bit.
19:40 masak objects are bundles of data (like $.name) traveling along with shared methods (like greet).
19:40 masak hth
19:41 hoverboard joined #perl6
19:41 vaskozl masak: what do you call an object?
19:42 masak the things in $c1 and $c2.
19:42 vaskozl aren't those scalars?
19:42 masak the variables are scalars, yes.
19:42 masak the values inside of them are objects.
19:43 masak we can ask values to identify themselves. hold on.
19:43 masak m: say 42.WHAT
19:43 camelia rakudo-moar 440739: OUTPUT«(Int)␤»
19:43 masak m: class Computer { has $.name; method greet() { say "Bleep blorp, I am $.name" } }; my $c1 = Computer.new(:name<COMPUTRON>); say $c1.WHAT
19:43 camelia rakudo-moar 440739: OUTPUT«(Computer)␤»
19:43 masak see? one is a normal Int, the other is a Computer object.
19:44 masak (the cool thing being that "Computer" is a type that we just added to the programming language ourselves)
19:45 masak m: say [].WHAT; say {}.WHAT; say (2/3).WHAT
19:45 camelia rakudo-moar 440739: OUTPUT«(Array)␤(Hash)␤(Rat)␤»
19:45 vaskozl so why would we just do: sub computer { say "Bleep blorp, I am @_[0]"; }; computer('COMPUTRON'); computer('FORTRANTOR');
19:45 vaskozl *wouldn't
19:46 masak you can, in a lot of cases.
19:46 masak but objects *persist* after you've called them.
19:46 vaskozl persist?
19:46 masak you can see that from the order in which I did things: create $c1, create $c2, call $c1.greet, call $c2.greet
19:47 masak with your solution, you call them once, and then they're gone.
19:47 masak that's, like, the opposite of persisting :)
19:47 masak yes, "persist" as in "stay around for as long as you need them, holding the data you've put into them".
19:47 vaskozl masak: call $c1.greet, when did we do that?
19:48 vaskozl masak: OOH, it holds the original input!
19:48 masak yes!
19:48 masak *lightbulb on*!
19:48 masak :D
19:48 vaskozl but why don't we just have $inputcomputer1 and $outputcomputer1
19:48 masak not sure what you mean.
19:49 vaskozl $output1 = sub($input1);
19:49 masak the cool thing is that we can "put away" the names of the computers into those objects, and then they are not really our concern any more. they "belong" to the objects, and the objects manage that data.
19:49 masak ah, well what you're suggesting works in small cases, but it quickly gets messy for bigger things.
19:50 vaskozl what was the $c1.greet you mentioned?
19:50 masak the big win here is that objects "hide" their data and expose everything through the methods instead, so in some sense we don't have to care as much about how the objects do things.
19:50 masak $c1.greet is a method call I did above.
19:50 masak the crucial thing is that I defined greet as a method on the class ("Computer"), but then I called it on an object ($c1).
19:51 vaskozl did we have $c1.greet in our code?
19:51 vaskozl oh yah I see
19:52 masak yes, we did :)
19:52 vaskozl wow now I think I understand it
19:52 masak \o/
19:52 masak vaskozl: let's take a bigger example. say you have a window manager.
19:52 vaskozl so we can have a bunch of different methods
19:52 vaskozl and each method may use different attributes
19:52 masak vaskozl: each individual thing on the screen that you care about can be an object: windows, text boxes, buttons, labels, etc.
19:53 vaskozl I'm taking a leap of fait here
19:53 masak vaskozl: but they often have things in common, so their classes often share many attributes and methods between each other (through various mechanisms such as inheritance)
19:53 masak vaskozl: for example, you can ask almost any object for its width, or tell it to place itself somewhere on the screen.
19:54 masak or maybe there's a "click" method that gets called when the user clicks on one of the objects on the screen.
19:54 masak now, all this *could* be done with just subroutines as you propose, but it's usually nicer to separate things into their own classes and objects.
19:54 masak think of it as a way of organizing things.
19:54 vaskozl alright
19:55 masak object oriented programming is not a God-given. it's just one of many possible ways to manage complexity.
19:55 vaskozl it seems to me that's it makes managing a bunch of similar things more easily
19:56 vaskozl like a lot of buttons
19:56 masak right.
19:56 masak you can have hundreds of button objects on-screen, but they're all managed by the same Button class.
19:56 masak so each method in that class only needs to exist in one place in memory.
19:57 masak and each Button object holds its individual state, such as position, button text, and whether it's being pressed down or not.
19:57 vaskozl masak: I'm stunned by how quickly and efficiently you are explaing this to me
19:57 masak vaskozl: I'm glad.
19:57 masak vaskozl: at $dayjob, I teach.
19:58 vaskozl masak: and there are a bunch of default methods in perl6?
19:58 vaskozl like .get and .words
19:58 masak yeah, there are hundreds.
19:59 masak m: for "do you feel lucky punk".words -> $word { say "$word.uc()." }
19:59 camelia rakudo-moar 440739: OUTPUT«DO.␤YOU.␤FEEL.␤LUCKY.␤PUNK.␤»
19:59 masak .words takes a string and divides into chunks of non-whitespace.
19:59 vaskozl what's the .uc method do?
19:59 masak .uc takes a string and Upper-Cases it.
20:00 masak there's also .lc and .tc :)
20:00 masak feel free to try.
20:00 vaskozl oh..
20:00 vaskozl that's pretty cool
20:00 masak those particular methods are "string methods".
20:01 masak I don't know whether they're actually on the Str class in this case, but for simplicity, let's assume they are.
20:01 masak m: say ?Str.has("uc")
20:01 camelia rakudo-moar 440739: OUTPUT«No such method 'has' for invocant of type 'Str'␤  in block  at /tmp/5mOhsLa1jq:1␤␤»
20:01 masak m: say ?Str.^has("uc")
20:01 camelia rakudo-moar 440739: OUTPUT«No such method 'has' for invocant of type 'Perl6::Metamodel::ClassHOW'␤  in block  at /tmp/aeXUv_Tv9H:1␤␤»
20:01 masak hrm.
20:01 masak m: say ?Str.^does("uc")
20:01 camelia rakudo-moar 440739: OUTPUT«False␤»
20:01 masak there we go.
20:01 masak m: say ?Str.does("uc")
20:01 camelia rakudo-moar 440739: OUTPUT«True␤»
20:02 masak m: say ?Str.does("scary-freakin-dinosaurs")
20:02 camelia rakudo-moar 440739: OUTPUT«True␤»
20:02 masak o.O
20:02 masak m: say Str.does("scary-freakin-dinosaurs")
20:02 camelia rakudo-moar 440739: OUTPUT«True␤»
20:02 masak oh, I'm using the wrong method :P
20:02 retupmoca m: say ?Str.can("scary-freakin-dinosaurs")
20:02 camelia rakudo-moar 440739: OUTPUT«False␤»
20:02 masak m: say ?Str.can("uc")
20:02 camelia rakudo-moar 440739: OUTPUT«True␤»
20:03 masak m: say ?Str.can("scary-freakin-dinosaurs")
20:03 camelia rakudo-moar 440739: OUTPUT«False␤»
20:03 masak that's better.
20:03 masak ignore my fumbling with "has" and "does" -- apparently, I'm tired.
20:03 vaskozl I got kinda lost with all the ?Str.^ and what's true or false
20:03 masak yeah, just look at the last two evals.
20:03 masak objects "know" what you can call on them and what you can't.
20:04 Mouq joined #perl6
20:04 masak let's get back to basics.
20:04 vaskozl so are you checking if scary-freakin-dinosaurs is a method?
20:04 masak right.
20:04 masak (it isn't)
20:04 vaskozl surprise surprise!
20:04 masak Perl 6 can surprise you :)
20:04 masak for example, we have a Mu class.
20:05 masak someone also added this lately:
20:05 masak m: say 42.WHY
20:05 camelia rakudo-moar 440739: OUTPUT«Life, the Universe and Everything␤»
20:05 vaskozl m: say 42.why
20:05 camelia rakudo-moar 440739: OUTPUT«No such method 'why' for invocant of type 'Int'␤  in block  at /tmp/BDAywA9HeU:1␤␤»
20:05 masak case-sensitive.
20:05 masak needs to be .WHY
20:05 vaskozl why is it in all caps?
20:05 masak some methods are special.
20:05 masak .WHAT and .WHY are kind of "debugging methods".
20:05 masak not meant for a healthy program.
20:06 vaskozl masak: ok that makes sense
20:06 masak so they shout to mark that something is going on.
20:06 masak oh, speaking of all-caps things...
20:06 masak gonna show you something. :)
20:07 Mouq m: say "1+20*2+e**(2*pi*i).re".EVAL
20:07 camelia rakudo-moar 440739: OUTPUT«42␤»
20:07 Mouq m: say "1+20*2+e**(2*pi*i).re".EVAL.WHY
20:07 camelia rakudo-moar 440739: OUTPUT«(Any)␤»
20:07 masak m: for reverse 1 .. 10 -> $count { LAST { say "liftoff! lots of smoke and fire!" }; say "$count..." }
20:07 camelia rakudo-moar 440739: OUTPUT«10...␤9...␤8...␤7...␤6...␤​5...␤4...␤3...␤2...␤1...␤liftoff! lots of smoke and fire!␤»
20:07 Mouq m: say "1+20*2+e**(2*pi*i).re".EVAL.Int.WHY
20:07 camelia rakudo-moar 440739: OUTPUT«Life, the Universe and Everything␤»
20:07 masak vaskozl: see the countdown above :)
20:07 Mouq also o/
20:07 masak vaskozl: and the LAST block, which gets executed after the last iteration.
20:07 masak Mouq: \o
20:08 LLamaRider joined #perl6
20:08 masak vaskozl: in this case, the "LAST" is uppercase because the special thing going on is "out-of-the-flow" timing of things. the LAST doesn't get executed where it is, but afterwards.
20:09 masak in the same vein:
20:09 masak m: say "HAI"; BEGIN { say "OH" }
20:09 camelia rakudo-moar 440739: OUTPUT«OH␤HAI␤»
20:09 masak (BEGIN blocks run during compilation; the rest of the program runs during runtime.)
20:10 Mouq m: END {say now - BEGIN now}; my $expensive-computation = [+] 0..100000
20:10 camelia rakudo-moar 440739: OUTPUT«0.60834820␤»
20:10 Mouq m: END {say now - BEGIN now}; my $expensive-computation = [+] 0..100000; say $expensive-computation
20:11 camelia rakudo-moar 440739: OUTPUT«5000050000␤0.6682453␤»
20:11 vaskozl joined #perl6
20:11 vaskozl s/between to/between two/;s/keywoard/keyword/
20:11 vaskozl oh.. did I lose connection?
20:11 masak for a little while.
20:12 masak see /topic for a backlog :)
20:12 vaskozl masak: uhm what in the topic?
20:12 woolfy joined #perl6
20:12 vaskozl what was the last thing I said?
20:12 masak vaskozl: http://irclog.perlgeek.de/perl6/today
20:13 masak woolfy: \o
20:13 woolfy masak \o/
20:13 woolfy lizmat and jnthn are tired from NLPW and King's Day festivities and bicycle trip
20:13 masak I can imagine :)
20:15 vaskozl I don't really like too much all caps :/, which I think perl handles quite well
20:15 masak most of the keywords are lowercase :)
20:15 masak the all-caps things are reserved for special stuff.
20:16 * Mouq really likes that he can do $var-name rather than $var_name or $varName. so much nicer and easier to type
20:16 vaskozl I'm gonna paste my question I asked when I DC'd (sorry):
20:16 vaskozl is there an object that removes newlines from a string allowing us to regex the entire file instead of line by line?
20:16 vaskozl I often want to extract something between two <plaintext>extract me!</plaintext> tags in a file
20:16 vaskozl that I know to be after some keyword
20:17 vaskozl and I never know how to do it :/
20:17 vaskozl currently I'm stupidly running trough sed to remove newlines and passing the input as one line
20:17 vaskozl s/object/method/
20:18 masak vaskozl: I think what you want is the IO.slurp method.
20:18 masak vaskozl: it reads in a file as a single string, which you can then manipulate as you see fit.
20:18 FROGGS "myfile.txt".IO.slurp.subst(/.../, '', :g)
20:18 Mouq m: say "ab\ncd\n<plaintext>\nextract me!\n</plaintext>" ~~ ms/'<plaintext>' .*? '</plaintext>'/
20:18 camelia rakudo-moar 440739: OUTPUT«「<plaintext>␤extract me!␤</plaintext>」␤␤»
20:19 Mouq m: say "ab\ncd\n<plaintext>\nextract me!\n</plaintext>" ~~ ms/'<plaintext>' <( .*? )> '</plaintext>'/
20:19 camelia rakudo-moar 440739: OUTPUT«「extract me!␤」␤␤»
20:20 vaskozl alright that's cool!
20:21 vaskozl how'd we do it with STDIN?
20:21 masak m: say get
20:21 camelia rakudo-moar 440739: OUTPUT«There were three men came out of the West␤»
20:21 masak m: say get.subst(/men/, 'really cool dudes')
20:21 camelia rakudo-moar 440739: OUTPUT«There were three really cool dudes came out of the West␤»
20:22 vaskozl masak: what did you just do?
20:22 lue m: say $*IN.slurp.subst(/men/, 'really cool dudes', :g); # :P
20:22 camelia rakudo-moar 440739: OUTPUT«There were three really cool dudes came out of the West␤Their fortunes for to try␤And these three really cool dudes made a solemn vow␤John Barleycorn must die␤␤They've ploughed, they've sewn, they've harrowed him in␤Threw clouds upon his head…»
20:22 masak lue: :)
20:22 masak vaskozl: 'get' reads a line from STDIN.
20:22 masak vaskozl: .subst does the substitution.
20:23 FROGGS vaskozl: there is a textfile attached to camelia's stdin
20:23 vaskozl oh...
20:23 masak vaskozl: lue++ just showed how to do the substitution "globally" (:g), many times.
20:23 masak oh, yes. textfile. forgot to mention.
20:23 masak I have no idea what that poem is.
20:23 masak but I realize I haven't had enough irreverent fun with it since it changed from the Austrian national anthem. :)
20:24 Mouq vaskozl: $*IN.slurp or lines.join ($*IN is set to STDIN by default)
20:24 Mouq vaskozl: We have the evalbot's STDIN set to https://github.com/perl6/evalbot/blob/master/stdin
20:24 Timbus slurp works on $*IN on nits own doesnt it?
20:24 vaskozl now I know where to contribute...
20:24 Timbus just like lines and get
20:24 masak m: for lines() -> $line { say $line.subst(/\w+$/, -> $/ { $/.uc }) }
20:24 camelia rakudo-moar 440739: OUTPUT«There were three men came out of the WEST␤Their fortunes for to TRY␤And these three men made a solemn VOW␤John Barleycorn must DIE␤␤They've ploughed, they've sewn, they've harrowed him IN␤Threw clouds upon his HEAD␤And these three men made a …»
20:25 masak Timbus: aye.
20:25 Timbus cool
20:25 Mouq Timbus: lines() is just $*IN.lines AFAIK
20:25 masak vaskozl: what Timbus++ just said. some methods (like .slurp) have a subroutine form (like slurp) with some defaul behavior.
20:26 Mouq Oh
20:26 masak Mouq: more like $*ARGFILES.lines, but yes.
20:26 Mouq Oh
20:26 Rotwang joined #perl6
20:26 masak default*
20:27 * Mouq didn't realize there was a slurp sub
20:27 FROGGS most ppl expect that for basic file IO me thinks
20:28 masak it's a nice convenience.
20:28 masak it's like STDIN and STDOUT are "there", in a kind of ambient global presence in the program, even though they're really objects.
20:28 vaskozl get gives only the first line for me :/
20:29 Mouq Does anyone know it jnthn++'s golf-helper script works on OS X?
20:29 masak vaskozl: yes, get does one line at a time.
20:29 masak vaskozl: if you want the whole file, use slurp.
20:29 masak vaskozl: if you want a list of lines, use lines.
20:29 vaskozl masak: can we get the whole input at once?
20:30 vaskozl lets say we have a file with names on each line
20:30 vaskozl and we want to print all names between the two specific names John and Billy
20:33 Mouq vaskozl: "< masak> vaskozl: if you want the whole file, use slurp."
20:33 vaskozl oh right
20:33 vaskozl yah I just realised
20:33 Mouq :)
20:33 masak vaskozl: < masak> vaskozl: I think what you want is the IO.slurp method.
20:33 vaskozl yah, you might have to tell me 5 times before I get it O_O
20:34 * vaskozl goes on to fix all his stupidly done scripts up to now
20:34 Mouq m: for lines() { .say if m/^They/ ff m/^And/ }
20:34 camelia rakudo-moar 440739: OUTPUT«They've ploughed, they've sewn, they've harrowed him in␤Threw clouds upon his head␤And these three men made a solemn vow␤They've let him lie for a very long time␤Till the rains from heaven did fall␤And little Sir John sprung up his head␤They've…»
20:35 * lue forgot what ff is supposed to do
20:35 * vaskozl is wondering the same
20:35 Mouq "flipflop"
20:35 Mouq It's false until the first thing is true
20:35 vaskozl and why do we have a 'Threw'?
20:36 Mouq Then it's true until the second thing is true
20:36 masak because it picks all the lines in between.
20:36 Mouq And then it's false again
20:36 vaskozl ah..
20:36 masak *after* the line that matches.
20:36 Mouq (it's not the most commonly used operator)
20:36 masak m: for lines() { .say if m/^They/ ff^ m/^And/ }
20:36 camelia rakudo-moar 440739: OUTPUT«They've ploughed, they've sewn, they've harrowed him in␤Threw clouds upon his head␤They've let him lie for a very long time␤Till the rains from heaven did fall␤They've let him stand till midsummer's day␤Till he looked both pale and wan␤They've …»
20:36 vaskozl I thought it was some sort or "or" in the beggining
20:37 lue Mouq: seeing ff reminded me somebody needs to create a new table of operators by now :)
20:37 masak ff is not very commonly used.
20:38 vaskozl I saw http://youtu.be/x4Ep0VKa_ZI with Larry Wall the other day.
20:38 vaskozl was stunned by them vim skills
20:41 vaskozl You guys are awesome btw, thx for all the help!
20:41 masak vaskozl: we're happy you stopped by.
20:42 masak vaskozl: keep coming back :>
20:42 vaskozl in #perl I'd get !perlbot rtfm, tutorial, stupid
20:42 vaskozl masak: I never leave :D
20:42 lue no problem, we're glad you have a better understanding of object oriented programming now :)
20:42 masak hehe, #perl keeps being lovable as always... :)
20:42 masak vaskozl: I'm happy someone asked me to explain OO tonight. put me in a good mood ;)
20:42 vaskozl masak: yay!
20:43 * vaskozl is going to have some weird dreams tonight
20:43 pippo_ joined #perl6
20:43 lue masak: IIUC, the kindness here is all thanks to au++, no?
20:44 pippo joined #perl6
20:44 vaskozl I also love how quickly you solved the -p flag and added multiple flag support like -pe and -ne
20:44 masak lue: dunno about "all", but she gave it a really good start.
20:45 masak wow, -pe has been added now? great!
20:45 masak vaskozl++
20:45 masak shows how we need newcomers with the priorities in all the right places :P
20:46 vaskozl it was literally added 5 minutes after I asked about it
20:46 masak that's a nice amount of minutes.
20:47 vaskozl sometimes I think it'd be better if we were using base 12
20:48 vaskozl btw, does masak++ increase rating or something?
20:49 vaskozl or is it just a way of saying kudos?
20:49 lue .oO(great, another karma-check-fest incoming...)
20:49 lue karma lue
20:49 vaskozl T_T
20:49 lue .karma lue
20:49 masak not sure we have a karma bot at the mo.
20:50 lue vaskozl: don't worry about it, not a bad thing :)
20:51 Mouq m: rand(42) # https://www.youtube.com/watch?v=x4Ep0VKa_ZI
20:51 camelia rakudo-moar 440739: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/DUu5GJMo4b�Unsupported use of rand(N); in Perl 6 please use N.rand or (1..N).pick�at /tmp/DUu5GJMo4b:1�------> [32mrand[33m�[31m(42) # https://www.youtube.com/watch?v=x[0m�»
20:51 Mouq \o/
20:53 rurban joined #perl6
20:53 vendethiel <awesome people>++
21:00 vaskozl where can I read more about ms/'<plaintext>' <( .*? )> '</plaintext>'/ syntaxness?
21:00 vendethiel S05, probably :)
21:01 lue vaskozl: there's also http://doc.perl6.org/language/regexes, which might be easier to read than S05
21:01 avuserow colomon: I just updated Audio::Taglib::Simple to use proxies. I agree that it seems like a more appropriate way to handle editing in this case. Let me know if you have any other comments or feedback on it. I'd also love to hear about anything built with it
21:02 vaskozl S05 being?
21:02 vendethiel lue: definitely !
21:02 vendethiel vaskozl: the Synopse 05
21:03 Mouq vaskozl: http://perlcabal.org/syn/S05.html
21:03 vaskozl I'm trying something like ms/'keyword .*? <plaintext>' <( .*? )> '</plaintext>'/
21:03 vaskozl but I just get false
21:04 vaskozl Mouq: thx!
21:04 Mouq vaskozl: You have the .*? in the quotes
21:04 rurban joined #perl6
21:04 Mouq The quotes actually make the .*? a literal string that the regex matches againts
21:04 Mouq 8st
21:04 Mouq bluh
21:04 Mouq s/nts/nst/
21:04 vaskozl argh ok!
21:05 vaskozl so qutoes need to be escaped now!
21:05 Mouq vaskozl: Yup!
21:05 Mouq vaskozl: "Alphanumeric characters and the underscore _ are literal matches. All other characters must either be escaped with a backslash (for example \: to match a colon), or included in quotes"
21:06 Mouq vaskozl: http://doc.perl6.org/language/regexes#Literals
21:06 vaskozl Mouq: thx again!
21:06 vaskozl why am I getting weird squares before and after the output?
21:07 Mouq vaskozl: Perl 6 regexes take some adjusting from PCRE, but it's definitely worth it
21:07 lue m: say uniname($_) for <「 」>
21:07 camelia rakudo-moar 440739: OUTPUT«HALFWIDTH LEFT CORNER BRACKET␤HALFWIDTH RIGHT CORNER BRACKET␤»
21:08 vaskozl what are they caused by?
21:09 lue vaskozl: Rakudo uses those corner brackets to surround the output, because they're the shortcut for Q[...]
21:09 lue (like how '' is the shortcut for q[...], and "" the shortcut for qq[...])
21:11 lue Q is basically a raw string: no backlashes or other fancy tricks work.
21:11 * vaskozl won't even pretend he understand
21:11 bjz joined #perl6
21:11 vaskozl I don't get these with a simple perl -e 'say "hello"'
21:11 vaskozl why are these annoying things there now?
21:12 FROGGS vaskozl: say in P6 does an output for human eyes
21:12 lue r: my $foo; say "Double quotes: \\ $foo \""; say 'Single quotes: \\ $foo \''; say 「\\ $foo \」 # note I didn't bother with a second 」, to avoid a compiler error
21:12 camelia rakudo-{jvm,moar} 440739: OUTPUT«use of uninitialized value of type Any in string context␤Double quotes: \  "␤Single quotes: \ $foo '␤\\ $foo \␤»
21:12 camelia ..rakudo-parrot 440739: OUTPUT«use of uninitialized value of type Any in string context  in block  at /tmp/tmpfile:1␤␤Double quotes: \  "␤Single quotes: \ $foo '␤\\ $foo \␤»
21:12 lue r: my $foo = 42; say "Double quotes: \\ $foo \""; say 'Single quotes: \\ $foo \''; say 「\\ $foo \」 # note I didn't bother with a second 」, to avoid a compiler error
21:12 FROGGS if you what an output that machines understand user either print, or say ~$x
21:12 camelia rakudo-{parrot,jvm,moar} 440739: OUTPUT«Double quotes: \ 42 "␤Single quotes: \ $foo '␤\\ $foo \␤»
21:13 Mouq vaskozl: You don't get them with perl6 -e 'say "hello"' either
21:13 vaskozl I imagine the squares I'm seeing aren't supposed to be squares are they?
21:13 Mouq vaskozl: We output them so it's clear that it's a match
21:13 Mouq vaskozl: No, they're not :)
21:13 FROGGS true, corner brackets do only appear around match objets
21:13 FROGGS objects*
21:14 lue vaskozl: they should look like corners, top left and bottom right respectively.
21:14 Mouq vaskozl: http://www.fileformat.info/inf​o/unicode/char/ff62/index.htm
21:14 Mouq vaskozl: http://www.fileformat.info/inf​o/unicode/char/ff63/index.htm
21:14 * Mouq is very distractable today
21:14 * Mouq ran the steeple chase at a meet yesterday
21:15 Mouq it was a lot of fun and one the best physical challenges I've had in a while
21:17 lue Heh, I notice doc.perl6.org hasn't a page on quotes, perhaps I should write one in a bit :)
21:18 Mouq lue: http://doc.perl6.org/language/terms
21:18 Mouq Oh, I never gen'd a new doc.perl6.org
21:18 Mouq But please add to what we've started on it :)
21:19 Mouq There, I updated it somewhat…
21:20 lue I almost think quoting construct could/should be a separate page (we got a separate page (at least kinda) for that Regex section, and I should think a sublang like Q deserves its own page :P)
21:20 Mouq lue: Then do it :)
21:24 lue Perhaps later, I'm busy doing something else at the moment :)
21:24 Mouq lue: Ok :)
21:24 vaskozl joined #perl6
21:25 benabik joined #perl6
21:37 raiph joined #perl6
21:38 dalek doc: fe92708 | Mouq++ | / (2 files):
21:38 dalek doc: Use the TITLE for "Language Documentation", if possible
21:38 dalek doc:
21:38 dalek doc: moritz++ ( http://irclog.perlgeek.de/​perl6/2014-04-26#i_8641084 )
21:38 dalek doc: review: https://github.com/perl6/doc/commit/fe92708521
21:39 Mouq Oh crap
21:39 Mouq The links now point to the wrong place -_-
21:39 kl joined #perl6
21:43 raiph .ask jnthn why do you have P5 code in your "reactive programming in perl 6" presentation ("while (!eof($fh)) { my $line = <$fh>; next if $line =~ /^\#/; # … }")?
21:43 yoleaux raiph: I'll pass your message to jnthn.
21:57 FROGGS raiph: sometimes it is good to start with something what the audience knows, and then take them bit by bit to the thing you want to show
21:59 kl left #perl6
22:00 avuserow is DESTROY still a thing? I can only find two passing mentions of it in the specs, and one test that isn't in spectest.data
22:01 arnsholt Destructors are tricky
22:01 avuserow I don't need prompt destruction, just for it to happen eventually...
22:02 arnsholt With refcounting you get timely destruction and, more crucially, a known order of destruction
22:02 arnsholt With many (most?) other GC algorithms, you can't even make guarantees for the order in which objects are destructed
22:03 masak I don't see the enthusiasm around DESTROY that would ever make it a useful feature, even if it were implemented.
22:03 arnsholt Which makes DESTROY harder to implement (IIRC), and also a bit dangerous
22:03 arnsholt Cf. the thing in Java where a finalizer can revive objects if you screw up
22:04 FROGGS .tell daxim I have information about ß.uc... if you are interested please either read your privmsg or ping me
22:04 yoleaux FROGGS: I'll pass your message to daxim.
22:05 timotimo Mouq: what is a steeple chase?
22:05 avuserow yeah, I understand that destructors are difficult in this way. I guess I have to bubble up the free requirement from the native library to module users
22:06 avuserow I noticed that after reading ~1100 files, this library stops working if I don't free its pointers
22:07 FROGGS timotimo: hürdenlauf
22:07 timotimo ah
22:07 vendethiel :o)
22:08 FROGGS yay, $dayjob done, now I am tired :/
22:09 Mouq timotimo, FROGGS: not quite hürdenlauf, more like https://en.wikipedia.org/wi​ki/3000_metres_steeplechase (though this was only a 2000m steeplechase)
22:10 FROGGS Mouq: that is hürdenlaufig enough for me :o)
22:10 timotimo aye
22:11 FROGGS well, for somebody sitting on a couch anyway
22:11 timotimo :D
22:11 timotimo you do your steeple chase while you're sitting on a couch?
22:11 timotimo that's a pretty amazing feat
22:13 Mouq FROGGS: Haha. The difference (other than distance) is that the barriers are shaped so that they can be stepped on and can't be knocked over, and there's a big ol' pit of water to jump off a barrier into
22:14 Mouq (The pit is deeper further in, so you try to jump as far out as possible. Jumping over completely is possible, but not really advised)
22:14 molaf joined #perl6
22:14 zakharyas joined #perl6
22:15 timotimo so combined running and swimming? :)
22:17 Mouq timotimo: Thankfully not :) The pit is maybe 1.5+ m long
22:18 Mouq Oh
22:18 FROGGS 1.5m+ is enough for my wife to swim in there :o)
22:18 Mouq "The water jump consists of a barrier followed by a pit of water with a landing area 3.66 metres (12.0 ft) wide × 0.70 metres (2.3 ft). It then slopes upward from 700 millimetres (28 in) deep to level with the surface of the track."
22:18 * Mouq is only off by a factor of 2
22:20 Mouq http://grfx.cstv.com/schools/niu/gr​aphics/auto/denissesplash050909.jpg
22:22 FROGGS yeah, I don't even know how that is called here...
22:22 FROGGS gnight all
22:23 Mouq 'gnight FROGGS :) FROGGS++ for the loop labels stuff, btw, I was super excited to see work on that
22:23 timotimo aye!
22:26 raiph .tell jnthn I guess what I mean is that the PDF should at least mention that that first fragment is P5 code (though I'd prefer that the whole PDF was P6 code) so it works for folk who don't know or care about P5
22:26 yoleaux raiph: I'll pass your message to jnthn.
22:26 masak 'night, #perl6
22:26 raiph night
22:26 Mouq night masak!
22:26 dalek doc: ea7d720 | Mouq++ | / (2 files):
22:26 dalek doc: Fix url creation for language documentation
22:26 dalek doc: review: https://github.com/perl6/doc/commit/ea7d720aa0
22:29 vaskozl joined #perl6
22:39 dalek doc: 4cadbce | Mouq++ | htmlify.pl:
22:39 dalek doc: *Actually* fix url creation for language documentation
22:39 dalek doc: review: https://github.com/perl6/doc/commit/4cadbce7fe
22:40 * Mouq needs to make htmlify do caching so that it doesn't take 13 minutes to verify a simple commit
22:40 Mouq s/Mouq/Someone/
22:40 Mouq :P
22:58 colomon joined #perl6
23:02 dalek rakudo/nom: 46b38f7 | Mouq++ | src/core/Routine.pm:
23:02 dalek rakudo/nom: Make sure Routine.perl makes an EVALable string
23:02 dalek rakudo/nom:
23:02 dalek rakudo/nom: E.g. (sub {1+1}).perl would produce something like
23:02 dalek rakudo/nom: 'sub() { #`(Sub|4345502344) ... }', which will parse sub() as a
23:02 dalek rakudo/nom: function.  This fixes Routine.perl to be more like
23:02 dalek rakudo/nom: 'sub () { #`(Sub|4345502344) ... }'.
23:02 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/46b38f799b
23:03 avuserow I think I'm going to do a non-NativeCall module for my next project
23:03 timotimo have an idea yet? :)
23:03 * lue imagines an output for Routine.perl that reconstructs code from the AST, and unintentionally becomes a "this is how a REAL computer writes this sub"
23:04 lue * a "this is ..." method
23:04 avuserow I have several
23:04 avuserow many of them are from the most-wanted list
23:05 avuserow I also would find it useful to have some sort of simple single-file cache for stuff like cronjobs
23:06 avuserow in one of my P5 projects, I wanted to be able to keep track of state from the last 5 or so days
23:06 avuserow so something that makes that easy is high on my list
23:07 avuserow either that, or bindings to Last.FM's API :)
23:07 timotimo https://www.youtube.com/watch?v=HOfll06X16c - oh fun!
23:11 rom1504 joined #perl6
23:13 Mouq ++avuserow
23:13 timotimo that's how bugs get discovered :)
23:13 timotimo i'm fond
23:14 timotimo not necessarily fond of anything in particular. just fond.
23:14 avuserow oh or I could patch this:
23:14 avuserow m: say Buf.new eq ""
23:14 camelia rakudo-moar 440739: OUTPUT«(timeout)»
23:14 timotimo oh! i recall i wanted to have a discussion with people with more knowledge about this topic
23:15 avuserow well I guess the other impls have a "better" infinite recursion message
23:15 avuserow p: say Buf.new eq ""
23:15 timotimo whether to introduce a candidate for eq for the Buf types on the lhs or rhs or whether to drop the does Stringy from class Buf
23:15 camelia rakudo-parrot 440739: OUTPUT«maximum recursion depth exceeded␤current instr.: 'print_exception' pc 146395 (src/gen/p-CORE.setting.pir:61588) (gen/parrot/CORE.setting:11337)␤called from Sub 'Stringy' pc 224364 (src/gen/p-CORE.setting.pir:92270) (gen/parrot/CORE.setting:1044)␤ca…»
23:15 timotimo yeah, moar doesn't have a finite stack size ;)
23:15 timotimo er
23:15 timotimo it doesn't have a limit to the exact number of stack frames
23:15 avuserow whoa, infinite stack? that's impressive :D
23:15 avuserow :P
23:16 timotimo like a turing machine, but different
23:23 Mouq timotimo: That video is really cool
23:25 lue timotimo: if you ask me, Buf shouldn't do Stringy, but others may disagree :)
23:26 hoverboard joined #perl6
23:26 btyler joined #perl6
23:26 timotimo lue: you're definitely more "in the know" when it comes to all the kinds of stringy things
23:26 timotimo but i do recall there was quite an argument last time :)
23:28 lue Heh :) My opinion boils down to the fact that Buf can handle more than Stringy (namely, non-textual data), and Perl 6 doesn't tend to define subset relations of that nature
23:29 lue r: say Int ~~ Rat # math would say True
23:29 timotimo that seems like a good point of reference
23:29 camelia rakudo-{parrot,jvm,moar} 440739: OUTPUT«False␤»
23:29 BenGoldberg joined #perl6
23:30 timotimo avuserow: how about you prepare code and tests in a pull request (well, either a pull request to rakudo and a pull request to roast, or a pull request to rakudo and a gist that shows the problem/solution)
23:30 timotimo since pull requests are a good way to get a discussion going
23:30 avuserow sure
23:30 lue timotimo: What doesn't help the discussion is that, if you look at Rakudo, Stringy is literally nothing at the moment.
23:30 timotimo and the discussion is closer to the code (at least compared to irc)
23:31 lue So 'Buf does Stringy' serves only to cause things like that infinite recursion issue :)
23:33 lue (The biggest issue I see with detaching Buf and Stringy is that ~& etc. make sense for buffers, and not strings; yet the ~ impies stringiness, and I can't think of a good "this is a buffer" symbol in its place right now)
23:34 timotimo m: say "\c[SNOWMAN]"
23:34 camelia rakudo-moar 46b38f: OUTPUT«☃␤»
23:35 timotimo always the correct answer
23:35 BenGoldberg If you do $bufone ^ $buftwo ... what would be expected to happen?
23:35 lue BenGoldberg: a Junction appears :P
23:36 lue in seriousness, S03 talks about it.
23:36 BenGoldberg (or |, or &)
23:36 vaskozl joined #perl6
23:36 * BenGoldberg bonks self on the head
23:36 BenGoldberg Ok, how about +|, +&, +^, then?
23:36 lue (And always say that ~^ etc. on C<Str>s is a likely design error, one that wouldn't exist if Buf didn't do Stringy *wink*)
23:37 * BenGoldberg ponders %|, %&, %^
23:37 BenGoldberg Naah
23:38 timotimo that seems weird
23:38 * timotimo looks at his keyboard
23:38 lue BenGoldberg: for ~&, for example: " does numeric bitwise AND on corresponding integers of the two buffers, logically padding the shorter buffer with 0 values." ... "This operator is distinguished from numeric bitwise AND in order to provide bit vectors that extend on the right rather than the left (and always do unsigned extension)."
23:38 timotimo how about Γ?
23:38 BenGoldberg .u Γ
23:38 yoleaux U+0393 GREEK CAPITAL LETTER GAMMA [Lu] (Γ)
23:38 lue timotimo: the way I see it, the acceptable buffer symbol would either be ` or something outside the ASCII range, with some sort of Texas equivalent then needed.
23:39 timotimo oh, ` i don't like
23:39 lue (looking at my plain ol' US keyboard at least :P)
23:39 timotimo it tends to hide
23:39 timotimo Ξ is a pretty letter :P
23:39 lue timotimo: yeah, but AFAICT ` is the only thing Perl 6 doesn't do anything with. Never said it was a good pick :)
23:39 timotimo hehe.
23:40 BenGoldberg How about we allow the user to use some sort of compile-time pragma, which says that, until the end of the scope, ^|& are all Buf ops, math ops, or junction ops.
23:40 timotimo yikes
23:40 timotimo i'm going to bed for today
23:40 * lue should write a blog post on his opinions before too long, so the inefficiencies of IRC for long explanations don't cause problems again
23:40 avuserow m: say [1, 3, 5] +| [2, 4, 6]
23:40 camelia rakudo-moar 46b38f: OUTPUT«3␤»
23:40 timotimo gnite and good luck :)   o/
23:40 avuserow oh right
23:40 lue ♞ timotimo o/
23:41 avuserow o/ timotimo
23:41 BenGoldberg Good night :)
23:42 vendethiel m: sub prefix:<Γ>(Bool $n) { return !$n }; sub infix:<Ξ>($a, $b){ $a == $b }; say Γ5 Ξ False;
23:42 camelia rakudo-moar 46b38f: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/DZjK1OZU2Aâ�¤Undeclared routines:â�¤    Î“5 used at line 1â�¤    Îž used at line 1â�¤â�¤Â»
23:42 avuserow m: say [1, 3, 5] <<+|>> [2, 4, 6]
23:42 camelia rakudo-moar 46b38f: OUTPUT«3 7 7␤»
23:42 vendethiel m: sub prefix:<Γ>(Bool $n) { return !$n }; sub infix:<Ξ> is looser(&infix:<Γ>)($a, $b){ $a == $b }; say Γ5 Ξ False;
23:42 camelia rakudo-moar 46b38f: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/27JAzgYrXNâ�¤Missing blockâ�¤at /tmp/27JAzgYrXN:1â�¤------> [32mn }; sub infix:<Ξ> is looser(&infix:<Γ>)[33mâ��[31m($a, $b){ $a == $b }; say Γ5 Ξ False;[0mâ�¤    expecting any of:â�¤        â€¦Â»
23:42 vendethiel meh
23:43 lue I don't think Γ is a good choice, one might confuse it with the function so named (not likely, but still)
23:43 lue (besides, I'd prefer a symbol over a letter if at all possible)
23:43 vendethiel doesn't  Γ usually mean "not"?
23:43 vendethiel or is it the middle one ?
23:43 bcode that'd be ¬ :)
23:43 lue vendethiel: Γ is the greek capital letter Gamma, no relation to that negation operator :)
23:43 avuserow m: say Buf.new(1, 3, 5) <<+|>> Buf.new(2, 4, 6)
23:43 camelia rakudo-moar 46b38f: OUTPUT«3␤»
23:43 vendethiel bcode: thanks !
23:43 vendethiel .u ¬
23:44 yoleaux U+00AC NOT SIGN [Sm] (¬)
23:44 lue m: say $_ for Buf.new(1,3,5)
23:44 camelia rakudo-moar 46b38f: OUTPUT«Buf:0x<01 03 05>␤»
23:44 lue m: say $_ for Buf.new(1,3,5)[0..*]
23:44 camelia rakudo-moar 46b38f: OUTPUT«1␤3␤5␤»
23:44 avuserow I have a few wishlist items for bufs (but who doesn't have some area they'd like to change)
23:46 lue heh, typing "buffer" into codepoints.net gave me this: ⎌ :)
23:46 vendethiel .u ⎌
23:46 yoleaux U+238C UNDO SYMBOL [So] (⎌)
23:46 * vendethiel 's bad eyesight makes him a unable to see most of these unicode shinies
23:47 bcode for me it's the font size, in this case
23:47 lue same here, a lot of Unicode characters aren't always easily discernible at my usual font sizes.
23:48 btyler joined #perl6

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

Perl 6 | Reference Documentation | Rakudo