Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2011-02-17

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:01 donri Wait, isn't phenny Python? Such blasphemy!
00:01 masak flussence: module A; multi sub explode(Str $a) is export {};
00:01 masak flussence: this does not give an error locally for me.
00:02 jnthn masak: I think you need to import from A
00:02 masak jnthn: you mean beyond 'use A'?
00:03 flussence explode { 1 }; works for you?
00:03 masak donri: also, rakudo.org uses Drupal, a PHP framework.
00:03 masak flussence: trying.
00:03 donri Seen trac used too
00:03 aloha Sorry, I haven't seen trac used too.
00:03 donri lol
00:03 masak flussence: got it; thanks!
00:04 donri seen such wonders before
00:04 aloha Sorry, I haven't seen such wonders before.
00:04 jnthn seen you naked
00:04 aloha Sorry, I haven't seen you naked.
00:04 jnthn bots :D
00:04 masak seen such puerile behavior on this channel
00:04 aloha Sorry, I haven't seen such puerile behavior on this channel.
00:04 donri seen that because I'm seenile
00:04 aloha Sorry, I haven't seen that because I'm seenile.
00:04 jnthn masak: :P
00:05 masak seen sense
00:05 aloha Sorry, I haven't seen sense.
00:05 masak *lol*
00:05 donri seen you in a while, but maybe we could get together for a cup of coffee
00:05 aloha Sorry, I haven't seen you in a while, but maybe we could get together for a cup of coffee.
00:05 donri (Is it still funny?)
00:05 masak sorta :)
00:06 masak seen how the channel looks from the other side. Let me just go and check. Be right back.
00:06 aloha Sorry, I haven't seen how the channel looks from the other side. Let me just go and check. Be right back..
00:07 donri seen one that large before
00:07 aloha Sorry, I haven't seen one that large before.
00:07 masak seen it that way
00:07 aloha Sorry, I haven't seen it that way.
00:08 donri seen anything in my entire life because I lost my sight at birth when the doctor poked my eyes out
00:08 aloha Sorry, I haven't seen anything in my entire life because I lost my sight at birth when the doctor poked my eyes out.
00:08 masak awww :(
00:08 donri Poor aloha.
00:09 masak maybe not the best bot to keep track of people, then.
00:09 diakopter seen the light; I'm still only a bot
00:09 aloha Sorry, I haven't seen the light; I'm still only a bot.
00:09 donaldh left #perl6
00:10 masak seen you since last Christmas; been too busy licking envelopes and, you know, stuff
00:10 aloha Sorry, I haven't seen you since last Christmas; been too busy licking envelopes and, you know, stuff.
00:10 donri seen or will ever see Perl 6 completed
00:10 aloha Sorry, I haven't seen or will ever see Perl 6 completed.
00:10 donri :(
00:10 masak inventive.
00:11 flussence that just means we'll have to rewrite that bot before perl6.0 is announced :)
00:11 donri In Perl 6.
00:12 jnthn 6bot \o/
00:12 masak jnthn: your next blog? :P
00:12 jnthn Well, I may as well keep naming things with a 6 at the start... :P
00:12 masak seen the parental advisory on jnthn's next blog
00:12 aloha Sorry, I haven't seen the parental advisory on jnthn's next blog.
00:13 jnthn One day it'll be WAY cooler than "i" ;)
00:13 masak an "i" is just a "6" seen from the side :)
00:13 jnthn ...of the complex plane? :)
00:14 vmspb left #perl6
00:14 masak seen the complex plane, and I've heard large parts of it aren't real anyway
00:14 aloha Sorry, I haven't seen the complex plane, and I've heard large parts of it aren't real anyway.
00:14 donri Six and sex is the same word in Swedish.
00:14 masak seen a lot, really
00:14 aloha Sorry, I haven't seen a lot, really.
00:14 donri So where is this sex blog I hear about?
00:14 masak donri: you from .se?
00:14 donri Yep
00:15 masak whereabouts?
00:15 donri Norrköping
00:15 cotto joined #perl6
00:15 masak ooh
00:15 jnthn In Swedish terms, that's not *that* far from me. :)
00:15 * masak <-- Lund, now
00:15 donri Perspektivbredband? :D
00:15 donri Ah
00:15 masak used to be Uppsala.
00:15 slavik1 left #perl6
00:15 diakopter <-- SF peninsula
00:16 * jnthn e i Lund också :)
00:16 donri Pööööööörl
00:16 cosimo joined #perl6
00:16 jnthn öööööööl :)
00:16 donri *burp*
00:17 * jnthn passed through Norrköping on the train twice in the last few weeks. :)
00:17 donri STALKER
00:17 mfollett Anyone have an idea why IO::Socket::INET would be telling me, "Can't connect closed socket" when I'm trying to call open() on an IO::Socket::INET object?
00:17 donri Because it can't connect closed socket
00:18 donri Ignore my tired humour
00:18 mfollett hehehe
00:18 masak mfollett: sounds like a possible bug.
00:18 dukeleto mfollett: do you have example code?
00:18 dukeleto mfollett: which OS?
00:19 jnthn mfollett: It may be worth seeing if any of the modules that use sockets work for you at all.
00:19 mfollett OS X, and I just opened created a new object and try to open call open with server/ports I know are open.
00:19 mfollett perl6-lwp-simple seems to be having the same problem.
00:20 mj41_ joined #perl6
00:21 jnthn mfollett: OK, then it sounds like a bug. Either regression of platform-specific one.
00:22 dukeleto mfollett: do all the socket-related tests in the Parrot test suite pass for you?
00:22 dukeleto mfollett: t/pmc/socket*.t
00:22 masak 'night, #perl6
00:22 mj41 left #perl6
00:22 mj41_ is now known as mj41
00:23 masak left #perl6
00:23 mfollett I'll check
00:23 dukeleto mfollett: if you can give a short code sample of Rakudo, describe your bug, OS, etc and send it to parrot-dev, we will try to fix it
00:24 donri left #perl6
00:24 mfollett my $socket = IO::Socket::INET.new;$socket.open('localhost', 80 );
00:24 mfollett or google.com
00:24 donri joined #perl6
00:24 mfollett OS X 10.6 10J567 built from scratch just about an hour ago
00:29 mfollett not all the socket*.t tests pass, though it isn't obviously related.
00:29 mfollett where should I send them to?
00:33 cschimm1 left #perl6
00:33 starcoder2 left #perl6
00:34 starcoder2 joined #perl6
00:34 leprevost left #perl6
00:34 cschimm1 joined #perl6
00:40 envi joined #perl6
00:43 cdarroch left #perl6
00:44 jnthn mfollett: Maybe best is to open a ticket at trac.parrot.org
00:44 jnthn mfollett: Then it won't get lost
00:47 jnthn sleep &
00:49 cosimo left #perl6
00:50 mtk left #perl6
00:59 mtk joined #perl6
01:00 saaki left #perl6
01:01 jferrero left #perl6
01:02 flussence lives_ok returns a fail if the closure emits a warning, is that meant to happen?
01:06 Su-Shee left #perl6
01:14 perlpilot joined #perl6
01:17 perlpilot left #perl6
01:35 cotto_work left #perl6
01:41 cotto_work joined #perl6
01:43 mfollett left #perl6
01:47 donri left #perl6
01:48 mfollett joined #perl6
01:51 mkramer left #perl6
01:53 qiyong joined #perl6
01:53 qiyong what's the per6 dpkg name?
01:53 qiyong in debian or ubuntu
01:59 mfollett left #perl6
02:00 noganex_ joined #perl6
02:04 noganex left #perl6
02:06 sorear good * #perl6
02:08 sorear qiyong: my debian unstable has a package for Parrot but no package for any version of Perl 6
02:09 qiyong sorear, parrot is the vm?
02:09 sorear phenny: tell donri Sprixel is a parser generator.  "Is YACC supposed to be fully C99 or not?"
02:09 phenny sorear: I'll pass that on when donri is around.
02:10 sorear phenny: tell donri I think the question you meant to ask is "is perlesque supposed to be Perl 6 or not?".  And the answer is no; that's what -esque means.
02:10 phenny sorear: I'll pass that on when donri is around.
02:12 sorear Tene: does $obj.&local-method bother you that much?
02:14 sorear qiyong: for Rakudo.
02:29 Bzek joined #perl6
02:31 sorear wanted: a channel (in the general sense) for complaining about dubious spectests
02:32 sorear to get in touch with the people who wrote them and find out wth they were thinking
02:32 * sorear switches from fudge-spectests state to fix-bugs state
02:37 colomon sorear: some of those tests have been in there for ages and ages, I think.
02:38 colomon but please complain here.  (I probably contributed a few them myself, alas.)
02:39 Util sorear: `git blame` is your friend.
02:39 whiteknight left #perl6
02:45 Tene sorear: That option is fine for many uses.
02:46 Tene sorear: I'm not particularly a fan of the "monkey patch everything lol" style that's apparently popular in some circle, but I am interested in allowing that sort of development approach to be done better, without conflicting with other lexical scopes, etc.
02:47 Tene sorear: as well, that approach relies on knowing the specific type ahead of time.  Sometimes there's a type hierarchy involved, for example.
02:48 Tene sorear: if I want to lexically augment a specific class, then for that approach, I need to check to determine that the given object is of the augmented type, and then invoke the specific method that way.
02:49 Tene sorear: consider the case of: sub foo(BaseType $n) { $n.foo() };
02:50 Tene I guess I could have the method itself check if it's the type I care about and redispatch if it isn't...
02:51 Tene That's also a lot easier to get wrong, and I expect that those people who want to shove special methods in core types are less likely to do that than to use MONKEY_PATCHING; and just globally fuck it up.
02:52 Tene I agree that social methods are good to influence people away from that, but it's nice to be able to offer them a better solution.
02:52 Tene afk a bit
03:14 stifynsemons joined #perl6
03:17 kaare__ joined #perl6
03:17 kaare_ left #perl6
03:18 Tene sorear: and then you have to deal with issues of walking the class hierarchy, etc.  If you lexically augment a method in a class and then call that method on an instance of one of a set of derived classes, some of which override it, some of which augment or wrap it, and some of which inherit it, you need to have a deep understanding of that to implement with $foo.&local-method
03:21 Tene sorear: I don't feel that I really understand the motivations and use cases of this style of programming, but it's used quite a bit in the ruby world, for example.
03:22 Tene sorear: Given that, according to TimToady, we should have the capability to do this much better and give people tools to compose and deal with these augmentations to type hierarchies, I feel that it would be a shame to completely leave out.
03:22 sorear The tools TimToady proposes complicate other questions
03:23 sorear If method dispatch depends on site, what does it mean to delegate?
03:23 Tene I suppose that, realistically, if nobody else has felt like this so far, I should just write up a damn spec patch myself. :)
03:25 Tene I expect that the answer is some approximation of "If you ask for a method dispatcher that doesn't respect delegation information, then you'll get what you ask for".
03:44 patspam joined #perl6
03:47 stifynsemons left #perl6
03:56 Gothmog_ left #perl6
03:59 _twitch left #perl6
04:05 rdesfo_ left #perl6
04:17 stifynsemons joined #perl6
04:19 stifynsemons left #perl6
04:23 Su-Shee joined #perl6
04:23 sorear S12:1707: What if an enumeration starts with a caseless character, like 万 ?
04:25 stifynsemons joined #perl6
04:40 agentzh joined #perl6
04:53 _twitch joined #perl6
04:57 jevin left #perl6
05:04 patspam left #perl6
05:07 lateau joined #perl6
05:08 sorear Has anything been decided about the relationship between Bool($x) and $x.Bool ?
05:14 lue joined #perl6
05:26 sorear Does ++ mean .=succ in general?
05:26 sorear --, .=pred?
05:28 woosley joined #perl6
05:32 starcoder left #perl6
05:35 arnsholt left #perl6
05:35 starcoder joined #perl6
05:36 mfollett joined #perl6
05:38 sorear looks like 'yes'
05:38 sorear am I correct in thinking that my $x = my Any $x, and so my $x = Mu is meaningless?
05:39 arnsholt joined #perl6
05:39 sorear what about [Mu]?  I conjecture that [] returns an Array = Array[Any], so it can't contain Mu values
05:43 sorear actually I'm certain [Mu] is wrong
05:43 sorear or am I...
05:44 * sorear pokes TimToady
06:05 saaki joined #perl6
06:05 dalek niecza: ab075f1 | sorear++ | / (2 files):
06:05 dalek niecza: Add a few more Bool bits
06:05 dalek niecza: review: https://github.com/sorear/niecza/commit/ab075f12fe
06:05 dalek niecza: f44b825 | sorear++ | lib/SAFE.setting:
06:05 dalek niecza: 'join' defaults to ""
06:05 dalek niecza: review: https://github.com/sorear/niecza/commit/f44b82503e
06:05 dalek niecza: 5538226 | sorear++ | lib/SAFE.setting:
06:05 dalek niecza: Add ucfirst and lcfirst
06:05 dalek niecza: review: https://github.com/sorear/niecza/commit/5538226fb3
06:11 dalek roast: f07a935 | sorear++ | S02-builtin_data_types/bool.t:
06:11 dalek roast: Unfudge Bool.key for niecza
06:11 dalek roast: review: https://github.com/perl6/roast/commit/f07a935b51
06:11 dalek roast: f928638 | sorear++ | S03-operators/boolean-bitwise.t:
06:11 dalek roast: It does not make sense to use Mu here, since ?^ should autothread
06:11 dalek roast: review: https://github.com/perl6/roast/commit/f928638a5f
06:11 dalek roast: 0d01856 | sorear++ | S0 (2 files):
06:11 dalek roast: A couple more unfudges
06:11 dalek roast: review: https://github.com/perl6/roast/commit/0d01856c33
06:13 sorear Where can I get a complete list of named unary operators?
06:15 tadzik nqp: foo
06:15 p6eval nqp:  ( no output )
06:16 sorear nqp interprets foo as being a fetch from a package variable
06:17 sorear nqp;foo is not defined, so the fetch returns Undef
06:17 sorear nqp: (foo)()
06:17 p6eval nqp: OUTPUT«Null PMC access in invoke()␤current instr.: '_block11' pc 29 (EVAL_1:18051232)␤»
06:17 sorear I mean Null
06:17 tadzik I see
06:24 moritz_ good morning zebras
06:24 moritz_ sorear: if that list is not in STD, it doesn't exist
06:25 tadzik good morning
06:27 hugme joined #perl6
06:28 moritz_ hugme: add arnsholt to rakudo
06:28 sorear moritz_: STD's list is: temp, let, sleep, abs
06:28 * hugme hugs arnsholt. Welcome to rakudo!
06:28 sorear which seems a bit... short
06:28 moritz_ arnsholt: you now have temporary commit access for the release
06:28 sorear interestingly, Rakudo treats defined as a prefix op
06:28 moritz_ arnsholt: have the appropriate amount of fun
06:28 sorear rakudo: say defined 1 && 0
06:28 p6eval rakudo 6f9116: OUTPUT«0␤»
06:28 sorear niecza: say defined 1 && 0 # using STD
06:29 p6eval niecza v2-67-g5538226: OUTPUT«(timeout)»
06:29 sorear niecza: say defined 1 && 0 # using STD
06:29 p6eval niecza v2-67-g5538226: OUTPUT«Bool::True␤»
06:30 sorear moritz_: what does your IRC log offer offer that IRSeekBot, clog, lambdabot, etc don't?
06:30 moritz_ sorear: I didn't even know that lambdabot publishes logs :-)
06:31 moritz_ sorear: it has some p6 specific hacks, such as making S02:123 clickable links
06:31 sorear It did.  I don't know if they're still done since the exodus.
06:31 sorear er, the exodus from UNSW
06:32 moritz_ at the time I wrote the logging bot, we had no other working logging solution
06:33 sorear and whose fault was that? :p  (I'm just bitter 'cause I already had a few thousand karma with lambdabot during 2006-2007)
06:35 arlinius left #perl6
06:36 moritz_ previously there were logs on collabti.de or so, which went down for a few weeks or months
06:37 moritz_ and later repawned under a different domain name, "stealing" (with permission) part of the layout of our logs
06:38 moritz_ sorear: I can reconstruct karam from the IRC logs, but of course only for those channels that I've logged (and only for the time I've logged it)
06:39 Bzek_ joined #perl6
06:42 Bzek left #perl6
06:48 ponbiki left #perl6
06:50 ponbiki joined #perl6
06:52 wtw joined #perl6
06:56 justatheory left #perl6
06:57 justatheory joined #perl6
06:59 kaare__ is now known as kaare_
07:01 justatheory left #perl6
07:04 mfollett left #perl6
07:12 dalek niecza: a938d4c | sorear++ | / (4 files):
07:12 dalek niecza: Make ++ more polymorphic, use .succ, support Bool
07:12 dalek niecza: review: https://github.com/sorear/niecza/commit/a938d4ca23
07:12 sorear rakudo: say 5 % 1.5
07:12 p6eval rakudo 6f9116: OUTPUT«0.5␤»
07:12 sorear rakudo: say 5e0 % 1.5e0
07:12 p6eval rakudo 6f9116: OUTPUT«0.5␤»
07:12 sorear rakudo: say 5e0 % -1.5e0
07:13 p6eval rakudo 6f9116: OUTPUT«-1␤»
07:13 sorear rakudo: say -5e0 % 1.5e0
07:13 p6eval rakudo 6f9116: OUTPUT«1␤»
07:13 sorear rakudo: say -5 % 2
07:13 p6eval rakudo 6f9116: OUTPUT«1␤»
07:15 * sorear -> sleep
07:17 Mowah joined #perl6
07:25 noganex_ is now known as noganex
07:26 dual left #perl6
07:40 cjk101010 joined #perl6
07:42 arlinius joined #perl6
07:44 neroxx left #perl6
07:46 neroxx joined #perl6
07:47 jaldhar left #perl6
07:48 jaldhar joined #perl6
07:51 shi joined #perl6
08:03 Layla_91 joined #perl6
08:22 awoodland joined #perl6
08:27 qiyong left #perl6
08:30 am0c joined #perl6
08:37 betterworld left #perl6
08:38 neroxx left #perl6
08:38 mtk left #perl6
08:39 Trashlord left #perl6
08:41 Trashlord joined #perl6
08:47 mtk joined #perl6
08:52 betterworld joined #perl6
09:00 awoodland left #perl6
09:09 Su-Shee left #perl6
09:10 Su-Shee joined #perl6
09:21 qiyong joined #perl6
09:21 qiyong left #perl6
09:26 Bzek_ left #perl6
09:27 Bzek joined #perl6
09:28 neroxx joined #perl6
09:30 amkrankr1leuen left #perl6
09:32 amkrankruleuen joined #perl6
09:32 daxim joined #perl6
09:39 jnthn morning, #perl6
09:40 dakkar joined #perl6
09:40 Layla_91 jnthn: o/ =)
09:43 colomon \o
09:44 moritz_ o/
09:44 jnthn morning, laylka :)
09:44 jnthn amd colomon, moritz_
09:44 jnthn colomon: early? or late? :)
09:44 colomon middlish
09:44 jnthn :)
09:45 colomon something has my stomach very upset, alas.
09:45 jnthn Ugh :(
09:45 Layla_91 jnthn: actually it is 11:45am.. time for a snak! ^_^
09:46 daxim http://stackoverflow.com/questions/5026451/p​erl6-rakudo-unable-to-parse-postcircumfixsym
09:46 jnthn Layla_91: Ah, you're an hour from the future. :)
09:47 Layla_91 jnthn: yes... I can see your future an hour from now :)
09:47 jnthn Layla_91: Will my throat be less sore an hour in the future? :)
09:48 Layla_91 jnthn: ow.. :(
09:48 Layla_91 jnthn: more hot drinks :)
09:48 colomon (answering on stackoverflow... what's the technical term for the @a; @b; @c construction?)
09:48 jnthn Layla_91: Good idea :)
09:48 jnthn colomon: lol
09:48 Layla_91 jnthn: Hot choclate ^_^
09:49 jnthn colomon: as in, list of list... :)
09:49 jnthn Layla_91: Aww, I have none of that. Just coffee and various types of tea.
09:49 jnthn daxim: Basically, Rakudo just doesn't implement that yet. I think it's valid Perl 6.
09:50 jnthn std: my (@a, @b, @c); for zip(@a;@b;@c) -> $nth_a, $nth_b, $nth_c { ... };
09:50 p6eval std 625303c: OUTPUT«Potential difficulties:␤  $nth_c is declared but not used at /tmp/w1JZSDXoKT line 1:␤------> [32m); for zip(@a;@b;@c) -> $nth_a, $nth_b, [33m⏏[31m$nth_c { ... };[0m␤  $nth_a is declared but not used at /tmp/w1JZSDXoKT line 1:␤------> [32mmy (@a, @b, @c); for zip(@a;@b;@c)
09:50 p6eval ..-> …
09:50 jnthn std: my (@a, @b, @c); for zip(@a;@b;@c) -> $, $, $ { ... };
09:50 p6eval std 625303c: OUTPUT«ok 00:01 123m␤»
09:50 Layla_91 jnthn: tea then.. with some lemon
09:51 colomon hey, today is release!
09:52 * jnthn does what Layla_91 says :)
09:54 jnthn moritz_: how's the match-nom branch?
09:54 * jnthn tries to build it to see what happens :)
09:54 colomon rakudo: my @a = 1..3; my @b = 7..10; my @c = 'a'..'d'; for (@a Z @b) Z @c -> $a, $b, $c { say $a ~ $b ~ $c }
09:54 p6eval rakudo 6f9116: OUTPUT«1a7␤b2c␤Not enough positional parameters passed; got 2 but expected 3␤  in <anon> at line 2:/tmp/XmuOJF0nvm␤  in main program body at line 1␤»
09:54 arnsholt colomon: Indeed. I should start figuring out how to do that =)
09:54 moritz_ jnthn: haven't done anything new; I'm kinda stuck right now
09:54 colomon arnsholt++
09:54 jnthn moritz_: OK, thanks. I'll see if I can unstick it. :)
09:56 colomon Is there an workaround for zip(@a;@b;@c)?
09:56 qiyong joined #perl6
09:56 qiyong does perl6 still use  tie() mechanism?
09:56 moritz_ @a Z @b Z @c   :/
09:56 moritz_ qiyong: no
09:56 colomon moritz_: nope
09:56 colomon moritz_: or at least, it doesn't work (see above)
09:57 jnthn colomon: That was because your lists were of uneven length.
09:57 colomon jnthn: no it wasn't.  look at the two outputs that came first.
09:57 colomon they should be 17a, 28b
09:57 qiyong perl6 and perl5, which is faster generally?
09:57 moritz_ problem is that infix Z is not associative in the mathematical sense
09:57 jnthn colomon: Oh
09:58 jnthn colomon: Yeah, I mis-read.
09:58 moritz_ qiyong: English or French, which is faster generally?
09:58 colomon I believe the problem is that @a Z @b is coming out flat.
09:58 qiyong moritz_, latin
09:58 moritz_ qiyong: so far Perl 6 compilers are slower than the one Perl 5 compiler we have. But it's a feature of the compilers, not of the language
09:58 qiyong so french a little bit faster sometime
09:59 moritz_ jnthn: in the branch, ./parrot_install/bin/parrot src/stage0/nqp.pbc -e ''   results in "Can only use get_how on a RakudoObject
09:59 moritz_ current instr.: 'parrot;NQPClassHOW;compute_c3_mro' pc 1488 (src/stage0/NQP-s0.pir:430)
09:59 varna left #perl6
09:59 moritz_ "
10:00 moritz_ from Regex::Match's compose()
10:00 jnthn moritz_: That's true in master too, though...
10:00 jnthn moritz_: Need --library=src/stage0 or some such
10:00 TimToady good morning everyone
10:00 phenny TimToady: 16 Feb 08:21Z <diakopter> tell TimToady maybe Perl 6 can make it into Vol5 of TAoCP (Scanning/Parsing) ;) he says done by 2020
10:00 moritz_ oh
10:00 TimToady you're on screen at COSBI
10:00 jnthn moritz_: The Makefile adds it.
10:00 jnthn TimToady: Morning!
10:00 qiyong moritz_, does larry involved in perl6?
10:01 qiyong s/moritz//
10:01 qiyong s/moritz_//
10:01 flussence _, ?
10:01 colomon qiyong: larry wall?
10:01 moritz_ qiyong: yes
10:01 jnthn qiyong: Yes, he does stuff now and then. ;)
10:01 colomon )
10:01 varna joined #perl6
10:01 moritz_ TimToady: good morning, have a nice presentation :-)
10:01 qiyong he approved perl6? or he designed it?
10:01 TimToady this is in Italy, so it won't start on time
10:01 colomon qiyong: designed much of it.
10:02 qiyong i doubt it'll replace perl5, as plan9 doesn't replace unix
10:02 huf qiyong: he comes to this channel every now and then too
10:02 bacek ~~
10:02 moritz_ qiyong: that's not our goal. We want to build a cool, useful and fun-to-use language
10:02 TimToady qiyong: you shouldn't believe anything that Larry Wall says
10:02 colomon jnthn: do you know if there's a real reason we don't support lol yet?
10:03 * bacek pull pop-corn to watch it
10:03 TimToady he's a pathological liar
10:03 qiyong TimToady, what did he say?
10:03 bacek TimToady, you can't prove it!
10:03 moritz_ colomon: I think it was both parsing and the not-yet-fleshed-out iterator model
10:03 bacek qiyong, "he is pathological liar" :)
10:03 colomon moritz_: hmmm.
10:04 TimToady the room is getting pretty full
10:04 phauly joined #perl6
10:04 Layla_91 I wish someone worked on something nice like "why's (poignant) guide to ruby" for perl6..
10:04 phauly So let's start! ;)
10:05 moritz_ TimToady: then you should behave :-)
10:05 TimToady but do I have to behave well?
10:05 moritz_ TimToady: just optimize for fun :-)
10:07 TimToady okay, say goodbye now
10:07 * moritz_ waves
10:07 phauly goodbye
10:07 colomon \o
10:07 bacek o/
10:07 jnthn o/
10:07 Layla_91 TimToady: come back soon! :)
10:07 moritz_ at least phauly behaves well :-)
10:07 * flussence particles
10:07 moritz_ hilarious
10:08 flussence hey it's not 2pm yet, I shouldn't even be awake :(
10:08 colomon rakudo: my @a = 1..3; my @b = 7..10; my @c = 'a'..'d'; for zip(@a, @b) -> $a, $b { say $a ~ $b }
10:08 p6eval rakudo 6f9116: OUTPUT«Could not find sub &zip␤  in main program body at line 22:/tmp/kiuXI3KZzb␤»
10:09 jnthn moritz_: Oh hmm..."interesting" fail. It's trying to exists in an Undef now.
10:09 moritz_ jnthn: maybe I messed up the vtable override implementation
10:10 moritz_ jnthn: I didn't quite understand the code, just copied and pasted and adapted
10:10 volpe joined #perl6
10:10 jnthn moritz_: It looks right
10:11 moritz_ i tried to test it, but since it didn't build...
10:11 moritz_ hm, I could have cherry-picked that commit to master
10:11 jnthn oh, wait a minute...
10:11 volpe Hi phauly
10:12 jnthn moritz_: Yeah, there is one issue...fixing.
10:13 Layla_91 left #perl6
10:13 moritz_ jnthn: I'm curious, how did you get your diagnose? (exists on Undef)
10:14 jnthn moritz_: That's what the error message said
10:14 jnthn (top line of the backtrace)
10:14 moritz_ huh
10:14 awoodland joined #perl6
10:14 moritz_ I got
10:14 jnthn moritz_: I think that it happened because it was lying about something else though.
10:14 moritz_ Malformed package declaration at line 1, near ";\n\n    tok"
10:14 jnthn Oh...
10:14 jnthn :/
10:14 jnthn moritz_: The issue - or at least part of it - is that the exists vtables return an int, not a pmc
10:15 moritz_ ah
10:15 phauly Larry is now laying about RMS in OZ ;)
10:15 moritz_ so it needs to box
10:15 jnthn moritz_: So returning a PMC instead => pointer gets considered an int => always exists :)
10:15 moritz_ wow.
10:15 moritz_ type unsafe programming etc.
10:15 jnthn That's why it's bad, you C.
10:15 jnthn :)
10:15 phauly and explained the "optimize for fun" thing ;)
10:16 moritz_ that one is pretty important for us :-)
10:17 jnthn moritz_: Yes, that helped
10:17 jnthn moritz_: Next up: delete_keyed() not implemented in class 'RakudoObject'
10:17 jnthn :)
10:17 * moritz_ sighs
10:17 moritz_ well, in the long run we need all of those anyway, I guess
10:17 dalek nqp/match-nom: 44a0d5f | jonathan++ | src/ (2 files):
10:17 dalek nqp/match-nom: Some fixes to the exists v-table overrides. Gets us a bit further along the compile.
10:17 dalek nqp/match-nom: review: https://github.com/perl6/nqp/commit/44a0d5f8ad
10:17 jnthn moritz_: Yes
10:22 moritz_ hm, I have another parrot + nqp in $PATH
10:23 moritz_ maybe that's a less-than-awesome idea
10:23 jnthn ah
10:24 moritz_ ... and I still get the same, non-informative error message :(
10:24 jnthn moritz_: That's...really odd.
10:24 woosley left #perl6
10:25 jnthn moritz_: I'm not sure why we'd see different errors.
10:27 tadzik 1104         Layla_91 | I wish someone worked on something nice like "why's
10:27 tadzik | (poignant) guide to ruby" for perl6..
10:27 tadzik hmm
10:28 tadzik I believe masak is the one. And it should probably be Zebras' guide to Perl 6
10:28 tadzik oh, Layla's gone
10:28 woosley1 joined #perl6
10:28 y3llow left #perl6
10:28 dalek nqp: 8d32128 | jonathan++ | src/cheats/hll-grammar.pir:
10:28 dalek nqp: Gut the hll-grammar cheats, since they got incorporated into HLL::Grammar as part of the 6model changes. Just left behind one little bit which needs migrating.
10:28 dalek nqp: review: https://github.com/perl6/nqp/commit/8d32128ef4
10:29 y3llow joined #perl6
10:30 bbkr what is the syntax for class static attribute in P6?
10:30 moritz_ class A { our $x }  I think
10:30 moritz_ S12 knows more
10:32 orafu joined #perl6
10:32 bbkr moritz++ works :)
10:34 bbkr rakudo: class Foo {our $.x is rw}; $Foo::x =1 #bug, something is wrong when static atribute is told to have class accessor
10:34 p6eval rakudo 6f9116: OUTPUT«Null PMC access in getprop()␤  in '&infix:<=>' at line 1␤  in main program body at line 22:/tmp/DmeWbOM_uC␤»
10:35 bbkr std: class Foo {our $.x is rw}; $Foo::x =1 #bug, something is wrong when static atribute is told to have class accessor
10:35 p6eval std 625303c: OUTPUT«ok 00:01 121m␤»
10:35 * bbkr reports
10:35 moritz_ rakudo: class Foo {our $x is rw}; $Foo::x = 1; say $Foo::x
10:35 p6eval rakudo 6f9116: OUTPUT«1␤»
10:36 bbkr without accessor works fine
10:36 moritz_ rakudo: class Foo { our $.x is rw }; Foo.x = 3; say Foo.x
10:36 p6eval rakudo 6f9116: OUTPUT«Method 'x' not found for invocant of class ''␤  in main program body at line 22:/tmp/YmVHK0aeiW␤»
10:38 coldhead left #perl6
10:44 bbkr "early bird gets the bug" - my modified saying :)
10:44 tadzik gets a cold :)
10:45 dalek nqp: 6f1b093 | moritz++ | src/cheats/hll-grammar.pir:
10:45 dalek nqp: can rip out even more of cheats/hll-grammar.pir
10:45 dalek nqp: review: https://github.com/perl6/nqp/commit/6f1b093a5d
10:51 agentzh left #perl6
10:54 timbunce joined #perl6
10:54 timbunce left #perl6
10:57 moritz_ sorear: (reading backlog) 'my $x' is the same as 'my Mu $x = Any'
10:57 moritz_ so it can store junctions, but defaults to Any
11:19 masak joined #perl6
11:19 masak good noon, zebras.
11:19 jnthn o/ masak
11:19 tadzik o/
11:21 jedai_ joined #perl6
11:23 jedai left #perl6
11:23 dakkar left #perl6
11:23 dakkar joined #perl6
11:24 phauly left #perl6
11:27 dalek nqp/match-nom: f10b936 | moritz++ | src/ (2 files):
11:27 dalek nqp/match-nom: vtable delete overrides
11:27 dalek nqp/match-nom: review: https://github.com/perl6/nqp/commit/f10b936eb6
11:27 dalek nqp/match-nom: a22edc2 | moritz++ | t/nqp/52-vtable.t:
11:27 dalek nqp/match-nom: more vtable tests
11:27 dalek nqp/match-nom: review: https://github.com/perl6/nqp/commit/a22edc2b68
11:28 moritz_ jnthn: the delete vtables are even tested (by cherry-picking to master), but my error remains unchanged :/
11:29 moritz_ lunch &
11:30 volpe left #perl6
11:35 benabik left #perl6
11:38 shi left #perl6
11:43 io joined #perl6
11:43 shi joined #perl6
11:43 io left #perl6
11:45 bluescreen joined #perl6
11:46 qiyong left #perl6
11:49 masak bbkr: merged your ticket from this morning into a very similar one by quietfanatic.
11:50 lateau left #perl6
11:50 bbkr masak: thanks
12:03 bacek ~~
12:03 bacek masak, how is spectest on gen_gc2?
12:05 masak bacek: it was fine. nothing stood out as collateral from the GC switch.
12:05 bacek masak, excellent. I'm going to merge it back to master on Sunday.
12:06 bacek masak, any additional testing is welcome :)
12:06 masak nod.
12:06 masak I'll do the --optimize thing later today.
12:07 bacek masak, ok, thanks.
12:09 leprevost joined #perl6
12:12 cjk101011 joined #perl6
12:14 Gothmog_ joined #perl6
12:15 cjk101013 joined #perl6
12:17 bluescreen left #perl6
12:17 cjk101010 left #perl6
12:17 cjk101012 left #perl6
12:26 bluescreen joined #perl6
12:38 masak left #perl6
12:40 dalek nqp/ctmo: b40895c | jonathan++ | src/metamodel/reprs/P6opaque.c:
12:40 dalek nqp/ctmo: Fix freeing of memory associated with type objects that happen to get GC'd.
12:40 dalek nqp/ctmo: review: https://github.com/perl6/nqp/commit/b40895c3a0
12:40 dalek nqp/ctmo: e6663bb | jonathan++ | src/NQP/Grammar.pm:
12:40 dalek nqp/ctmo: Construct meta-object at compile time.
12:40 dalek nqp/ctmo: review: https://github.com/perl6/nqp/commit/e6663bb57b
12:40 dalek nqp/ctmo: 2da9123 | jonathan++ | / (3 files):
12:40 dalek nqp/ctmo: Stub in serialization context builder, with some explanation of what it's aimed at doing.
12:40 dalek nqp/ctmo: review: https://github.com/perl6/nqp/commit/2da9123d3d
12:40 dalek nqp/ctmo: 0a16798 | jonathan++ | src/HLL/SerializationContextBuilder.pm:
12:40 dalek nqp/ctmo: Stub in various initial methods that I expect to have in the serialization context builder.
12:40 dalek nqp/ctmo: review: https://github.com/perl6/nqp/commit/0a167985e1
12:52 molaf joined #perl6
12:53 donri joined #perl6
12:56 takadonet morning all
12:56 tadzik morning
13:04 leprevost left #perl6
13:04 leprevost joined #perl6
13:05 molaf left #perl6
13:05 ab5tract joined #perl6
13:13 dalek rakudo: 5f03ce1 | moritz++ | t/spectest.data:
13:13 dalek rakudo: regress on protoregex.t
13:13 dalek rakudo: review: https://github.com/rakudo/rakudo/commit/5f03ce1a12
13:16 shi left #perl6
13:19 benabik joined #perl6
13:19 thepler left #perl6
13:20 MayDaniel joined #perl6
13:20 donri @users».greet
13:20 phenny donri: 02:09Z <sorear> tell donri Sprixel is a parser generator.  "Is YACC supposed to be fully C99 or not?"
13:20 phenny donri: 02:10Z <sorear> tell donri I think the question you meant to ask is "is perlesque supposed to be Perl 6 or not?".  And the answer is no; that's what -esque means.
13:26 thepler joined #perl6
13:29 MayDaniel left #perl6
13:29 masak joined #perl6
13:33 mtk left #perl6
13:34 am0c left #perl6
13:36 donri Is there anything like coroutines in Perl 6, or can gather/take be used for that?
13:36 moritz_ gather/take
13:37 moritz_ take is a bit like yield, except that it's dynamically scoped
13:37 donri yield, does perl have that or are you comparing to Python?
13:37 moritz_ the latter
13:38 moritz_ sorry for being not so clear
13:38 donri You can send values to a generator in Python, does gather/take allow that?
13:38 moritz_ sorry, my python fu isn't that good, I don't know what that means
13:39 donri Given generator G, G.next() gets the next yielded value. G.send(V) is the same but makes the next yield return V
13:40 moritz_ gather/take just returns a lazy list
13:40 moritz_ which you can index or iterate just like an array
13:41 tadzik is there 'self' in nqp?
13:41 moritz_ yes
13:41 donri http://www.python.org/dev/peps/pep-0342/
13:41 tadzik but in class, not in a module?
13:42 moritz_ nqp: class A { method Str() :parrot_vtable('get_string') { 'foo' }; method f() { say(self) } }; A.new.f
13:42 jadar6 joined #perl6
13:42 p6eval nqp: OUTPUT«Routine declaration requires a signature at line 1, near "() :parrot"␤current instr.: 'parrot;HLL;Grammar;panic' pc 17541 (gen/hllgrammar-grammar.pir:4828)␤»
13:42 tadzik oh, nvm, I think I got it. I'm trying to bring Close back to life, and it has some strange practices here and there
13:42 jadar6 left #perl6
13:43 moritz_ donri: ah, now I understand. Nope, Perl 6 doesn't have that.
13:44 tadzik http://nopaste.snit.ch/32960 -- do you mind taking a look moritz_?
13:44 tadzik looks like _ONLOAD tries to make this module a Class, and then it uses self, but the compiler says self is not predeclared
13:45 * moritz_ compiles nqp
13:46 moritz_ tadzik: uhm, nqp or nqp-rx?
13:46 tadzik moritz_: nqp-rx I think. It's compiled with parrot-nqp
13:47 donri moritz_: because it doesn't make sense in perl6 or because no one thought of it? :)
13:48 donri coroutines are a nice way to do async I/O anyway, however it's done
13:49 moritz_ tadzik: I get an Null PMC Access in invok() - which probably means that some thing you try to call doesn't exist
13:49 masak tadzik++ # bringing Close back to life!
13:49 tadzik moritz_: oh well, I'm compiling this whole source, not just this one file. It's like 12k lines of nqp code
13:50 tadzik moritz_: I can push it somewhere if you want to try it
13:50 moritz_ tadzik: currently I'm busy with other stuff (soon handing out self-made cake :-)
13:50 tadzik though I should probably rape it with git-svn before
13:50 tadzik oh, carry on then, never mind :)
13:51 moritz_ :-)
13:51 moritz_ donri: the .send doesn't fit well into our coroutine/lazy list model. Not sure if we could make it work in some other way though
13:53 donri moritz_: I'd just like to see proper coroutines *or* some valid alternative, don't care *how* really
13:54 moritz_ donri: well, gather/take are just like coroutines, really
13:54 donri (Whatever makes sense in Perl 6 for the problem domain.)
13:54 donri moritz_: yea but they're not duplex
13:54 moritz_ a lazy .map is "duplex"
13:54 tadzik masak: well, I'd love to :) Writing my arkanoid I was always missing some "C with classes", I thought "is there even anything like this? Oh wait, where have I seen this..."
13:55 * masak builds gen_gc2 optimized for bacek
13:55 tadzik My mind eventually found Vala, but it made me think about resurrecting Close
13:55 donri moritz_: no, can't affect how the list acts
13:56 masak tadzik: I share whiteknight's vision about Close being an appropriate part of Parrot's tooling, a sort of supplement for PIR.
13:57 tadzik masak: the vision makes me happy, shame there's no one working on it :/
13:58 masak tadzik: there's a personel deficiency everywhere, and we're the personel.
13:58 tadzik yeah
13:59 thepler left #perl6
14:01 thepler joined #perl6
14:03 jnthn moritz_: is parrot_vtable, not :parrot_vtable
14:05 plainhao joined #perl6
14:08 fhelmberger joined #perl6
14:11 molaf joined #perl6
14:11 masak nqp: class A { method Str() is parrot_vtable('get_string') { 'foo' }; method f() { say(self) } }; A.new.f
14:11 p6eval nqp: OUTPUT«foo␤»
14:11 masak \o/
14:16 donri moritz_: async example https://github.com/saucelabs/monocle​/blob/master/examples/echo_server.py
14:17 donri moritz_: don't see how you could do the "their_message" with gather/take
14:20 donri Maybe there's another way to do blocking-like async in Perl 6
14:20 masak donri: there's been talk of an 'event handler' in Perl 6.
14:20 donri How'd that work?
14:20 masak it's still very sludgy/unspec'd, but it's in the works.
14:21 donri I mean what's the basic idea
14:21 masak donri: by my understanding, it'd be a default implementation of one of the event frameworks on CPAN.
14:21 masak it might tie into the async thing as well. that's why I mention it.
14:21 donri A lib or a syntax, I wonder?
14:22 masak a core-ish lib.
14:22 masak I doubt syntax will be needed.
14:22 donri Or well, not syntax necessarily, but some kind of built in support like Python's .send() for generators
14:22 donri Which without it couldn't be done as nicely
14:23 masak basically, what we need at this point are people who care enough to pen a proposal for how it could work.
14:23 donri But Perl 6 is much more expressive so I wouldn't be surprised if it could do it nicely anyway, somehow
14:24 stifynsemons left #perl6
14:25 donri The point sorta is to not need to pass around callbacks and you stay in scope
14:25 donri but without blocking
14:26 masak sounds like coroutines to me.
14:27 masak any Perl 6 implementation that does gather/take fully will have to have support in some way for a thing I've named a 'co'.
14:27 masak a 'co' is something like a greenthread.
14:27 PerlJam good * #perl6!
14:27 masak PerlJam: \o
14:28 donri masak: but gather/take don't seem to allow you to pass back values to the 'coroutine'
14:28 PerlJam donri: think of take like yield and it does :)
14:28 masak when you use a gather/take, you get another co inside the gather/take. control flow alternates between the co outside the gather/take and the one inside.
14:28 masak donri: in the very worst case, you can "pass values" through lexical variables.
14:29 donri PerlJam: how?
14:29 PerlJam donri: don't mind me just now I'm insufficiently caffienated.
14:29 donri PerlJam: I do see take as similar to yield but to my knowledge you can't have a take return something
14:29 masak eh?
14:29 masak that's what 'take' does!
14:30 donri masak: to the outside yes
14:30 masak getting things *out* of the gather is no problem!
14:30 masak that's what it's designed for :)
14:30 donri exactly
14:30 masak for the other direction, what I said about lexicals.
14:30 donri hows that work?
14:30 * masak whips up an example
14:30 donri sounds like frame hacking in python
14:31 PerlJam masak: What's needed is someone with sufficient experience *and* interest to pen a proposal that has a chance in hell of working rather than something that kinda-sorta works.  We've got tons of kinda-sorta solutions and that's part of the problem.
14:31 PerlJam IMHO of course
14:32 masak rakudo: my $g = "OH"; sub foo { gather { my $i = 0; loop { say $g; take $i++ } } }; my @f := foo; say @f[0]; $g = "HAI"; say @f[1]
14:32 p6eval rakudo 6f9116: OUTPUT«OH␤0␤HAI␤1␤»
14:32 masak donri: there you go. value passed into the gather.
14:33 masak PerlJam: I agree.
14:33 masak PerlJam: but experience isn't everything. I'm not an expert at DateTime, but I got things moving in the right direction a year or so ago. other people chipped in and did large parts of the work.
14:34 masak starting with something sane and simple is the important part if you ask me.
14:34 donri masak: looks like rw arguments, we have returns for a reason ;)
14:34 PerlJam masak: perhaps I'm letting history bias me too much, but that's never worked with the threads/async IO/coroutines/etc. problem space
14:34 woosley1 left #perl6
14:34 masak donri: it's not an argument, it's just an outer lexical.
14:34 donri yes, but it's similar in effect
14:35 [Coke] masak: I came here for an argument.
14:35 masak donri: well, you asked for a way to do that.
14:35 PerlJam [Coke]: woot!
14:35 masak [Coke]: no, you didn't. :)
14:35 donri it's often cleaner to return values than mutate outer variables (passed or not)
14:35 donri masak: sure
14:35 donri thanks for that
14:35 masak donri: I agree that it's not a "nice" solution.
14:37 neroxx left #perl6
14:38 donri does 'gather' do anything or is it just there for clarity?
14:38 donri and does 'take' without gather do anything?
14:38 masak 'take' without 'gather' is disallowed.
14:38 masak rakudo: say "before"; gather { say "LOL I'M NOT RUN" }; say "after"
14:39 p6eval rakudo 6f9116: OUTPUT«before␤after␤»
14:39 donri rakudo: say "before"; { say "LOL I'M NOT RUN" }; say "after"
14:39 p6eval rakudo 6f9116: OUTPUT«before␤LOL I'M NOT RUN␤after␤»
14:39 masak a 'gather' without anything to pull values out from it doesn't run at all.
14:39 donri rakudo: say "before"; &{ say "LOL I'M NOT RUN" }; say "after"
14:39 p6eval rakudo 6f9116: OUTPUT«===SORRY!===␤Non-declarative sigil is missing its name at line 22, near "&{ say \"LO"␤»
14:39 masak thus, 'gather' is basically our laziness construct. :)
14:39 arnsholt But remember that the take has to be in the -dynamic- scope of a gather, not the lexical scope =)
14:40 donri masak: but is it needed for technical reasons or for humans?
14:40 arnsholt (So you can have what is a take without gather textually, but gets a gather when it's called
14:40 arnsholt )
14:40 masak donri: I thought the above example answered that.
14:40 donri Python treats any function that uses 'yield' as a generator
14:40 donri which never seemed very "Pythonic" to me, it's "implicit"
14:41 masak donri: what arnsholt said.
14:41 masak donri: in a sense, gather and take are possible to unplug from each other.
14:41 masak that's useful in tree traversals, for example.
14:41 donri so it's sorta like iter() in python
14:42 arnsholt I think the closest relative of gather/take in Python is yield
14:42 donri 'take' is like 'yield', 'gather' seems to be like iter() or the calling of a generator function
14:44 arnsholt I suppose. But you can't really talk about the two entirely in isolation
14:45 arnsholt I think one important think to note is that take is not like yield in that it can be deeper in the call stack than as an immediate callee of the gather block
14:46 donri rakudo: my $list = { take 2 }; say gather $list
14:46 p6eval rakudo 6f9116: OUTPUT«␤»
14:46 donri how to do that rightly
14:46 masak bacek, bacek_at_work: --optimize works fine, surprisingly enough.
14:47 arnsholt rakudo: sub doit($x) { take $x if rand > 0.5 }; my @x := gather { doit($_) for ^10 }; @x.map: { .say } # *crosses fingers*
14:47 p6eval rakudo 6f9116:  ( no output )
14:48 arnsholt rakudo: sub doit($x) { take $x if rand > 0.5 }; my @x = gather { doit($_) for ^10 }; @x.perl.say;
14:48 p6eval rakudo 6f9116: OUTPUT«[1, 2, 4, 6, 8, 9]␤»
14:48 arnsholt There
14:48 arnsholt rakudo: sub doit($x) { take $x if rand > 0.5 }; my @x = gather { doit($_) for ^10 }; @x.perl.say;
14:48 p6eval rakudo 6f9116: OUTPUT«[1, 2, 3, 9]␤»
14:48 arnsholt The take is in the dynamic (call-stack), not lexical, scope of the gather
14:49 arnsholt donri: Not entirely sure what your snippet is supposed to do
14:49 PerlJam python's yield is just like a return isn't it?  And it's tied to the sub in which is lexically appears, right?
14:49 masak right.
14:50 donri It's not much like return at all because it can be sent values
14:50 PerlJam with gather/take you set the "return context" with gather and can take from anywhere in  the dynamic scope below that.
14:50 PerlJam gather is what decouples "yield" from subroutines
14:50 PerlJam if you get my meaning
14:51 masak in terms of exceptions, the gather block is an exception filter that catches 'take' exceptions.
14:51 arnsholt donri: Is the distinction between dynamic and lexical scope clear to you? If it isn't I imagine this can be a bit abstract =)
14:52 * masak will write a series of blog posts at some point, just about different scopes :)
14:53 donri rakudo: my &list = { take 1; take 2 }; say (gather list) Z (gather list)
14:53 p6eval rakudo 6f9116: OUTPUT«1122␤»
14:53 donri There we go.
14:53 * PerlJam looks at python.org for the first time in ages
14:53 donri arnsholt: I think it is yes, but that wasn't what I was wondering about most recently
14:54 masak rakudo: sub l { take 1, 2 }; say (gather l) Z (gather l)
14:54 p6eval rakudo 6f9116: OUTPUT«1122␤»
14:54 donri 'gather' turns a block into a lazy list?
14:55 masak donri: no, 'gather' collects values from 'take' and returns them lazily.
14:55 masak slight difference.
14:55 donri but kinda what i meant ;)
14:55 masak ok :)
14:55 donri my confusion is why gather is needed (not that i mind it, clearer intent in code)
14:56 PerlJam donri: if we didn't have gather, where would the takes send their data?
14:56 arnsholt The gather is needed because the take doesn't have to be in the immediate textual vicinity of the gather
14:56 donri PerlJam: seems that a block that has takes is pointless without gather, so it could simply imply a gather
14:56 arnsholt Heck, it can be in a different module that I downloaded from CPAN
14:57 PerlJam donri: the question becomes then "which block?"
14:57 donri but how is that different from calling the block?
14:57 arnsholt This is exactly where take is different from yield
14:57 wolverian huh, take is dynamically scoped to gather?
14:57 arnsholt yield in Python returns the value from the function the yield is in
14:57 jnthn gather indicates a "data collection point". The think that gather returns is a lazy list. Each take finds its nearest dynamic gather and associates the data with it, adding an item to that lazy list.
14:57 arnsholt Take returns from the first gather block up the call chain
14:57 jnthn s/think/thing
14:58 wolverian ah, thanks, it is dynamic then. interesting.
14:58 arnsholt Think of it as try { /* gather block */ } catch(TakeException e) { return e.value(); }
14:58 arnsholt And take as throw GatherException(value)
14:58 arnsholt (modulo fudge factor and resuming the gather block and such)
14:58 jnthn rakudo: sub foo() { 1 }; sub bar() { 2 }; my @a = gather { for 1..5 { take foo; take bar; } }; say @a[2..5]
14:59 p6eval rakudo 6f9116: OUTPUT«1212␤»
14:59 jnthn rakudo: sub foo() { 1 }; sub bar() { 2 }; my @a = gather { for 1..5 { say "taking"; take foo; take bar; } }; say @a[2..5]
14:59 p6eval rakudo 6f9116: OUTPUT«taking␤taking␤taking␤taking␤taking␤1212␤»
14:59 arnsholt wolverian: Yeah. It's part of what makes gather/take awesome
14:59 wolverian indeed.
15:00 masak I was on the channel when the decision was made :)
15:00 donri arnsholt: but why not imply gather where a taking-block is called? (not saying it's a good idea but trying to understand if gather is there for technical reasons or not)
15:00 masak au was asking TimToady whether gather was dynamic. TimToady said he thought it might well be.
15:00 moritz_ http://strangelyconsistent.org/p6cc2010/p1-moritz/ has a real-world usage of dynamic gather
15:00 moritz_ search for  sub find-path
15:01 PerlJam donri: because the take might not be for its immediately enclosing block
15:01 PerlJam rakudo: sub foo { take 5 };  say gather { foo; }
15:01 p6eval rakudo 6f9116: OUTPUT«5␤»
15:01 donri I think I maybe get it
15:02 PerlJam rakudo: sub foo { take 5 };  say gather { foo; take 7; foo }  # maybe a little more illustrative
15:02 masak rakudo: sub foo { take 5 };  say gather foo
15:02 p6eval rakudo 6f9116: OUTPUT«575␤»
15:02 p6eval rakudo 6f9116: OUTPUT«5␤»
15:03 jnthn Aye. Notice here that foo is outside the static scope of the gather, but inside the dynamic scope.
15:03 donri Because takes propagate to the nearest gather, and you want that to work lazily and with nested takes
15:03 alester joined #perl6
15:03 arnsholt donri: You can't infer where the gather should be placed, because it could be anywhere upstream in the call-stack from the take
15:03 donri Yea, PerlJam's example
15:04 donri rakudo: sub foo { take 5 };  say gather { take gather foo; take 7; take gather foo }
15:04 p6eval rakudo 6f9116: OUTPUT«575␤»
15:05 donri would be like that without gather, and that's not completely lazy I imagine?
15:06 masak I think it's still as lazy.
15:06 daxim left #perl6
15:06 donri Python has that problem and that might be what they're trying to solve with 'yield from', not sure
15:06 PerlJam donri: if you didn't have gather, you'd need takes all the way up the dynamic call chain to the block where you actually wanted the data.
15:07 PerlJam donri: this would suck.  :)
15:07 donri so it's not required to "make it work" but, while adding an extra needed keyword, is actually less boiler in certain situations
15:09 PerlJam required to "make it work well"  ;)
15:09 PerlJam otherwise, you'd have to manually diddle around  the dynamic scopes  yourself.  That's a recipe for disaster if ever I heard one.
15:09 arnsholt Required to make it more than yield in Python
15:09 donri 'well' technically or 'well' as in sanely for programmers?
15:10 masak both :)
15:11 * PerlJam reads PEP 380
15:12 PerlJam donri: aye, it does look like "yield from" is their answer to gather/take
15:13 PerlJam although it looks broken
15:13 PerlJam As I read it, they're going with "takes all the way up the call chain" approach
15:14 PerlJam only it's called "yield" at the bottom and "yield from" along the path
15:14 masak :(
15:15 wolverian that makes no sense
15:16 wtw left #perl6
15:17 PerlJam Well, that's only for laziness.  If you didn't need it to be completely lazy, then I guess you wouldn't need to do that.
15:17 arnsholt Also, yield from makes you specify the container of the coro in the wrong place IMO
15:17 molaf left #perl6
15:17 arnsholt Marking which is the coro on the inside is kinda strange (and a bit action at a distance-y)
15:18 qiyong joined #perl6
15:19 am0c joined #perl6
15:19 stifynsemons joined #perl6
15:19 * arnsholt remembers that he agreed to make the Rakudo release thingy
15:20 arnsholt The release guide has no suggested PM groups. Any suggestions from the audience?
15:21 PerlJam arnsholt: no, but someone should start an auction at YAPC for naming the next Rakudo release, just so we can get a pool of names :)
15:22 arnsholt I believe the reply is well-volunteered? ;)
15:22 PerlJam I won't be at YAPC this year :(
15:23 PerlJam I think we've come close to exhausting all of the PM groups that have done something relating to Perl 6.
15:24 sorear good * #perl6
15:24 arnsholt 'lo
15:24 moritz_ arnsholt: just take the name of any .pm group that you like (or where you like the name :-)
15:24 mtk joined #perl6
15:25 moritz_ it's actually the hardest part of the release process, if you ask me
15:25 PerlJam indeed
15:25 arnsholt So I've heard
15:26 moritz_ arnsholt: I've just pushed a release announcement... it just needs reviewing and a release name :-)
15:26 moritz_ feel free to add more stuff
15:26 masak arnsholt: so... how's the release name coming along? any ideas? :P
15:26 plobsing left #perl6
15:26 PerlJam arnsholt: go with ZA.pm or Kampala.pm  They've got to be lonely being the only 2 PM groups in such a huge continent.
15:26 dalek rakudo: 71a3b30 | moritz++ | docs/announce/2011.02:
15:26 dalek rakudo: draft for 2011.02 release announcement
15:26 dalek rakudo: review: https://github.com/rakudo/rakudo/commit/71a3b300a8
15:27 arnsholt PerlJam: I'll let you keep those for your next releases =)
15:27 bluescreen left #perl6
15:27 PerlJam I'm seriously considering checking in a program that randomly chooses the name
15:28 moritz_ we haven't had London.pm yet, and they are supposedly  the biggest PM groups in Europe, maybe even world wide
15:28 masak maybe some of out Japanese friends, the ones that hang out mostly on Twitter, belong to a PM group.
15:29 jnthn moritz: I think there's a bigger one in Japan.
15:29 * PerlJam wonders if there are any fanatic-for-perl-5 Perl Mongers that would take offense to us using their name.
15:29 stifyn joined #perl6
15:29 moritz_ maybe later this year after the QA hackathon :-)
15:29 masak PerlJam: we should pick a PM group that hates Perl 6, and write something really nice about them ;)
15:29 jnthn lol
15:29 PerlJam masak: hugs all around!
15:30 masak PerlJam: "you guys are great! stop by for a beer anytime!"
15:30 stifynsemons left #perl6
15:31 donri 'for' is syntax and not a sub right
15:31 donri pondering why no comma is needed before the closure
15:31 * PerlJam suddenly realizes that no Texas PM groups have yet been chosen
15:31 moritz_ right
15:31 masak donri: correct. and that's why.
15:31 moritz_ donri: map() is the equivalent sub
15:32 masak donri: 'for' could be implemented as a macro wrapping around 'map'.
15:32 ab5tract left #perl6
15:32 moritz_ in fact, it is implemented that way
15:32 arnsholt Oh, great. Time::y2038 won't build
15:32 donri how does that work with 'return'
15:32 ab5tract joined #perl6
15:32 moritz_ just as a hard-coded macro
15:32 moritz_ donri: return is always bound to routines
15:32 donri closures can't return?
15:33 masak correct.
15:33 donri what's the meaning of map then
15:33 moritz_ closures can leave()
15:33 masak closures don't have thick enough cell walls :)
15:33 mfollett joined #perl6
15:33 moritz_ donri: I don't see how the meaning of map is tied to return in any way
15:33 masak rakudo: sub foo { say "1"; { say "I'm a closure"; return }; say "2" }; foo
15:33 p6eval rakudo 6f9116: OUTPUT«1␤I'm a closure␤»
15:33 flussence .oO( oh, so that's where break; comes from... )
15:34 moritz_ in fact subs can be closures too
15:34 masak right.
15:34 PerlJam I'd says "subs are closures"
15:34 tadzik arnsholt: I had problems with that too
15:34 PerlJam s/says/say/
15:35 tadzik I asked the author, who said “oh well, there are no missing seconds, go aheah” or something like that
15:35 donri rakudo: (1,2,3).map: { $^a + 2; return 3; }
15:35 p6eval rakudo 6f9116:  ( no output )
15:35 tadzik oh, I haven't contributed this month :(
15:35 donri rakudo: say (1,2,3).map: { $^a + 2; return 3; }
15:35 donri argh
15:35 p6eval rakudo 6f9116:  ( no output )
15:36 moritz_ rakudo: say (1,2,3).map: { $^a + 2 }
15:36 p6eval rakudo 6f9116: OUTPUT«345␤»
15:36 moritz_ the last statement in a block is automatically returned
15:36 masak donri: 'return' doesn't act on &map
15:36 moritz_ right, on on routines.
15:36 masak moritz_: automatically .leave'd
15:37 donri moritz_: but what if you need it to not be last? break/succeed, or this leave() thing?
15:37 moritz_ donri: leave, yes. Or you can also pass a sub to map
15:38 moritz_ rakudo: <a b c>.map: sub ($x) { return $x.uc }
15:38 p6eval rakudo 6f9116:  ( no output )
15:38 moritz_ rakudo: say <a b c>.map: sub ($x) { return $x.uc }
15:38 p6eval rakudo 6f9116: OUTPUT«ABC␤»
15:38 PerlJam donri: were you the one who had no interest in Perl 5?  Maybe if you'd done more perl 5, your mind would be ready for the warping that Perl 6 does  :)
15:38 donri if you need to know perl 5 to get perl 6 that's a failure ;)
15:38 arnsholt tadzik: I did it manually instead
15:39 PerlJam donri: you don't *need* it, but it sure helps when Perl 5 is the only other language with all of these concepts in one place.
15:39 bluescreen joined #perl6
15:39 cognominal left #perl6
15:39 donri i don't have any problems understanding though
15:39 arnsholt ftp://hpiers.obspm.fr/iers/bul/bulc/bulletinc.dat says that there will be no leap second at the end of juny -11, and it was released on the second, so it's safe to proceed without running the update script =)
15:39 moritz_ PerlJam: perl 5 misses a lot of concepts that Perl 6 has
15:40 donri rakudo: say <a b c>.map: { $^a.uc.leave; 5 }
15:40 p6eval rakudo 6f9116:  ( no output )
15:40 donri rakudo: say <a b c>.map: { leave $^a.uc; 5 }
15:40 masak donri: keep investigating. the discussions so far today have been enjoyable.
15:40 p6eval rakudo 6f9116:  ( no output )
15:40 donri hows leave work
15:40 PerlJam moritz_: it does.  But familiarity with Perl 5 prepares your brain for Perl 6 I think  (especially given that we don't have enough clear explanations of everything)
15:41 masak donri: I think it should work like that.
15:41 moritz_ donri: like your second example
15:41 masak donri: not sure it's implemented yet.
15:41 donri aha
15:41 moritz_ arnsholt: I just ran the update script here, it didn't change anything
15:42 PerlJam anyhow, I guess someone should tell me "well volunteered!" again on making more clear explanations for Perl 6.   :)
15:42 arnsholt Excellent. Cheers!
15:42 donri I did perl 5 years ago when I sucked relatively at programming anyway
15:42 donri I gain more from my current Python knowledge than my earlier Perl 5 experience
15:42 MayDaniel joined #perl6
15:43 tadzik oh, HPatMoR
15:43 moritz_ tadzik: are you reading it?
15:44 tadzik moritz_: not yet, but the word 'relativity' somehow reminded me of what I planned to do during winter holidays :)
15:44 tadzik but I think I'll go for a dogwalk first
15:45 donri ...perl 5, years ago...
15:45 PerlJam donri: except that, IMHO, python tries to put everything into nice neat little boxes even when the universe isn't nice or neat.  Perl recognizes the universe is messy and lets it be that way while also allowing you to impose some order where you can.   I think this is the main philosophical difference between perl and python.
15:45 plobsing joined #perl6
15:45 donri PerlJam: that is not really relevant though
15:45 donri Programming is programming
15:46 slavik1 joined #perl6
15:46 sorear the most relevant difference between Python and Perl is probably the age gap
15:46 PerlJam sorear: age gap?
15:46 PerlJam python is only like 5 years younger than perl.
15:47 sorear 5 years is long enough to consitute a generation with software
15:47 moritz_ there's not only the language, but also the programmers
15:47 arnsholt donri: Except the underlying design philosophy of the language dictates in part what kind of solutions are available to you as a programmer
15:48 masak donri: in a very vague sense it's "not relevant", because you can always work around things. but I'm not programming in a vague sense, I'm programming with the tools my language provides me with. :)
15:48 sorear some features are more relevant than others
15:48 donri Python and Perl are sufficiently similar that the differences are not that difficult to grasp for an experienced programmer
15:49 sorear I think built-in GC has a bigger effect on my programming style than ... pretty much every other difference between Perl and x86 asm put together
15:49 PerlJam donri: for 95% of the language, sure.  It's that other 5% that's interesting though  :)
15:49 moritz_ donri: the same could be said for most scripting languages
15:49 donri moritz_: Yes, which is my point
15:50 PerlJam donri: though, in the past I've said that Python, Perl, PHP, and Ruby all occupy the same "idea space" for the most part.
15:50 donri Niche, yea
15:50 arnsholt But it's those last 5% that make the difference between "PHP? I don't wannaaaaaa!" and "Yay, Perl!" =)
15:51 donri :D
15:51 PerlJam Yet it's been slow going getting closures in 3 of  those 4 languages.
15:51 risou joined #perl6
15:51 donri Python has closures, aren't Ruby blocks closures?
15:52 PerlJam donri: I didn't say they don't have them *now* ... just that it's taken a while.
15:52 donri Really?
15:53 sorear bye.
15:53 takadonet sorear: cya
15:53 mfollett left #perl6
15:53 mfollett joined #perl6
15:56 PerlJam actually ... if you count the how old the language was when it got closures, I think ruby wins
15:56 pmichaud_ good morning, #perl6
15:56 colomon \o
15:56 masak morning, pm.
15:56 moritz_ good morning pmichaud_
15:56 pmichaud_ is now known as pmichaud
15:56 PerlJam pm: greetings
15:56 arnsholt I wonder it make -j 8 spectest will work as I want it to ^^
15:56 moritz_ arnsholt: TEST_JOBS=8
15:56 pmichaud if you want it to make your spectests run eight times sloewr, then yes.  :-)
15:56 phenny pmichaud: 12 Feb 15:29Z <jnthn> tell pmichaud when you get chance, please take a look over https://github.com/rakudo/rak​udo/blob/nom/NOMMAP.markdown - it's my work plan for the nom branch. kplzthx
15:56 phenny pmichaud: 13 Feb 00:57Z <jnthn> tell pmichaud in theory nom has just one test file regression over nqp-rx now. Need to discuss packages a bit with you before I know that one will be fixed. :)
15:56 phenny pmichaud: 13 Feb 00:57Z <jnthn> tell pmichaud oops, s/nom/nqp/ :)
15:56 flussence PHP's closures are pretty awful too. There's no lexical scope, so you have to declare in the signature which variables from outside they pull in
15:57 arnsholt moritz_: Durr. Of course
15:57 dual joined #perl6
15:57 moritz_ git rm README; git commit -a 'nobody read it anyway :-)'
15:58 arnsholt =D
15:58 jnthn pmichaud: hi! :)
15:58 flussence (wow, all this time I could've made make test 3-4x faster by not doing it wrong? ouch)
15:58 jnthn pmichaud: Hope you had a nice break :)
15:59 pmichaud it was an excellent break, yes.
15:59 pmichaud parks were quite empty
15:59 jnthn nice :)
16:00 colomon It's much nicer when you don't have to stand in line.  :)\
16:01 mux just like sex
16:01 masak er.
16:02 jnthn I...don't stand in line for that...
16:02 PerlJam sit?
16:02 mux it was a joke, get over it :-)
16:02 masak mux: did you just walk in here from #perl or something? :P
16:02 PerlJam or perhaps lay?  ;)
16:02 mux masak: nah, just couldn't resist when I saw those words
16:02 mux it reminded me of the old quote from linus "software is like sex, ..."
16:03 masak "...it's great when you don't have to stand in line for it" ? :P
16:03 PerlJam mux: sure sure ... you weren't speaking from experience or anything ... we believe you
16:03 pmichaud well, the downside is that tuesday morning we arrived at the park nice and early, but all of the major rides were down for 3+ hours due to a park compressor failure :-|
16:03 jnthn Aww. :/
16:03 mux PerlJam: I, er, I...
16:03 pmichaud so we hit lots of minor ones intead
16:03 pmichaud *instead
16:03 mux masak: what can I say? I have a dirty mind.
16:03 zostay joined #perl6
16:04 masak mux: well, I can relate to that... :)
16:04 colomon park compressor failure?  there's just one for all the major rides?  ....
16:04 pmichaud colomon: apparently
16:04 flussence I was thinking the same. Who designs these things?
16:05 pmichaud colomon: that wouldn't surprise me, at any rate.  Probably far more economical that way.
16:06 pmichaud I guess it surprised me a little at the time, but after thinking about it I could see why WDW would have just one
16:06 flussence reminds me of the buses here... they tried to make more money by packing more into the timetable, the result was that most of the buses broke down on any given day and they had to buy several new ones
16:06 pigdude joined #perl6
16:06 PerlJam one compressor with 100% duty cycle and lots of tubes from the compressor to the rides.   Sounds reasonable
16:07 pmichaud oh, I'm sure that any amount that WDW "lost" that day is more than made up by the equipment+maintenance savings
16:07 gfldex compressors are fairly noisy
16:07 pmichaud if the rides had been down all day, that would've been really bad.  As it was, they simply kept the park open an hour later
16:08 colomon left #perl6
16:08 pmichaud and since it was a fairly slow day crowd-wise, not that many people affected.  (Crowd level estimates were 1.7 out of 10, where 10 is OMGTHERESTOOMANYPEOPLEHERE)
16:15 cjk101011 left #perl6
16:18 justatheory joined #perl6
16:21 jnthn pmichaud: Need to talk to you about package stuff, install stuff and setting stuff when you have time. :)
16:22 jnthn Doesn't have to be now, or even today.
16:23 pmichaud needs to be after tomorrow
16:23 jnthn OK
16:23 pmichaud weekend looks good, as does early next week
16:24 jnthn OK. Saturday - or at least, the bit of it by when you're awake - is not so good for me, other than that sounds like we can find a time.
16:24 pmichaud it will give me a couple of days to catch up with latest events, too
16:24 pmichaud and review some code :)
16:27 jnthn oh noes ;)
16:27 jnthn pmichaud: I didn't get a huge amount done while you were away anyway.
16:28 pmichaud np
16:29 jnthn Well, did quite a bit of thinking. :)
16:32 tadzik mux: thanks for taking the "inappropriate joke" bagde from me :)
16:33 mux tadzik: at your service! :)
16:33 masak just like sex.
16:33 masak :P
16:34 * mux passes the badge on to masak
16:34 masak dang. :P
16:34 tadzik (:
16:36 stifyn left #perl6
16:37 PerlJam you guys are trying to give new meaning to "hot potato" it seems  ;)
16:38 mux alright guys, it's time for me to escape from work and stop bothering you with my dirty jokes >:) have fun
16:38 masak mux: \o
16:38 tadzik good job :)
16:38 jnthn have a wonderful evening o/
16:39 stifynsemons joined #perl6
16:39 masak an evening entirely without standing in line...
16:39 TiMBuS left #perl6
16:40 TiMBuS joined #perl6
16:41 qiyong left #perl6
16:41 donri Programming jobs are much like prostitution. The client has only perverted desires and you have nothing to say about it.
16:43 getgrnam joined #perl6
16:43 masak I'm sure there's one or two differences, though.
16:44 tadzik is the whole .pir in Rakudo going to be eventually replaced by .nqp?
16:44 jnthn tadzik: Or Perl 6.
16:44 jnthn Most of what's in builtins now will be in core
16:44 masak tadzik: the .pir parts would at least have to be contained in the Parrot-specific section.
16:45 jnthn The meta-model bits will all be in NQP.
16:45 tadzik mhm.
16:46 envi left #perl6
16:46 envi joined #perl6
16:47 perimosocordiae joined #perl6
16:48 arnsholt Would anyone mind terribly if I made tools/contributors.pl run 5.8 compatible?
16:49 jasonmay left #perl6
16:49 Trashlord left #perl6
16:51 masak arnsholt: as opposed to...?
16:51 Trashlord joined #perl6
16:51 masak ...requiring a version higher than 5.8?
16:53 masak I'm sure nobody would mind that, at least if the change involved isn't major, which I doubt it would be.
16:53 arnsholt It currently requires perl 5.10, but the computer I'm on only has Perl 5.8
16:53 arnsholt This is inconvenient =)#
16:54 arnsholt Mostly a few added lines because 5.8 doesn't have //
16:54 PerlJam arnsholt: clearly you should upgrade the computer to have something better than 5.8
16:54 PerlJam isn't 5.8 about to drop off the radar of supported releases soon anyway?
16:54 arnsholt PerlJam: Tell that to the university of Oslo IT department, who run the computer I'm on =)
16:55 masak send the IT department a list of added features and bug fixes since 5.8 :P
16:55 PerlJam arnsholt: CentOS?
16:56 arnsholt RHEL. 5 IIRC
16:56 ab5tract left #perl6
16:57 arnsholt Anyways, the question is mostly if I should commit the changes I've made, or not =
16:57 arnsholt =)
16:57 donri You perlians have this issue too eh
16:57 PerlJam arnsholt: go for it.
16:57 donri I hate it when a system only has Python 2.5
16:58 PerlJam donri: it's mostly only with distributions that have a glacial release cycle  :)
16:58 arnsholt Yeah. The problem is also a lot smaller than with Python, from what I gather
16:58 colomon joined #perl6
16:59 PerlJam donri: so ... do you use python 2.7 or 3 ?
16:59 donri 2.6 but usually test on 2.5-3.1
17:00 PerlJam how many release candidates do the python people go through before they cut a release?
17:01 PerlJam never mind, I found it
17:01 PerlJam looks like 3.2 will be here in a couple of days
17:01 fith left #perl6
17:02 donri http://python.org/dev/peps/pep-0392/
17:02 colomon ... or with people whose machines are well behind the time.  I've been waiting for the right time to install 10.6 on my MacBook Pro for over a year now.
17:03 MayDaniel left #perl6
17:03 Psyche^ joined #perl6
17:03 Psyche^ is now known as Patterner
17:07 [Coke] yes, feel free to update internal tools to be 5.8 compatible.
17:08 Rotwang joined #perl6
17:10 kaydsoft left #perl6
17:10 Vlavv left #perl6
17:12 awoodland left #perl6
17:12 mtk left #perl6
17:16 Lorn joined #perl6
17:17 mtk joined #perl6
17:18 arnsholt I think there's an intermittent failure in t/spec/S02-builtin_data_types/instants-and-durations.t
17:18 donri What does .so stand for
17:18 colomon arnsholt: I believe someone else concluded that a few days ago, yes.
17:19 arnsholt donri: Cast to Bool
17:19 donri I know what it does but what does it mean
17:19 arnsholt Or, if you prefer, it's the opposite of not =)
17:19 PerlJam donri: "you are *so* busted"
17:19 donri Yea, noticed
17:19 PerlJam donri: for example
17:19 donri so it's just the word 'so'?
17:20 arnsholt Noone's really happy with the name, but noone managed to find a better one either
17:20 donri as in 'as such'
17:20 PerlJam yea, verily
17:20 moritz_ colomon, arnsholt yes, intermittent failure in the last test confirmed
17:20 donri Well, .Bool does the same no?
17:20 masak donri: .so is the opposite of .not
17:21 masak donri: it used to be called .true, which is a crappy name.
17:21 donri .affirmative ;)
17:21 arnsholt moritz_: Excellent. Then the stresstest is going fine so far
17:22 donri .positive and .negative could work
17:22 Vlavv joined #perl6
17:23 donri but i'm fine with .so and .not
17:23 donri "Is it so? No it's not!"
17:23 colomon You can also use prefix:<?>
17:23 donri cool
17:23 donri why not postfix
17:23 colomon (for .so, prefix:<!> for .not)
17:24 donri and prefix:<!!> for .so ;)
17:24 * donri cheating
17:24 colomon Good question.  If I had to guess, ? is prefix by analogy with !
17:24 colomon where prefix:<!> is a long-standing tradition
17:25 donri One that makes little sense, a result of representing ≠ in ASCII as !=
17:25 donri Haskell's /= is better, even
17:25 masak note also the nice "strange consistency" with ?? !!
17:26 donri hehe
17:26 masak and it rhymes well with prefix:<+> and prefix:<->
17:26 masak prefix:<?> is just a way to boolify things, just as prefix:<+> is a way to numify and prefix:<~> stringifies.
17:26 TimToady_it joined #perl6
17:26 masak that said, I think that people over-use it a bit.
17:27 donri "!" feels OK though because it looks scary and important and negation flips logic upside down
17:27 masak there are a number of examples in the p6cc solutions.
17:27 masak I don't think prefix:<?> should be used in contexts that are well-known to be boolean already, such as 'if' or '?? !!'
17:28 donri only anywhere you'd otherwise use "!!"
17:28 TimToady_it hi, I'm stuck behind a proxy again; can diakopter or sorear tell me the domain name of appflux so I can tell the SA here to allow ssh?
17:28 masak that is, I tend to write 'if @array' rather than 'if ?@array'
17:28 masak TimToady it! is "TimToady" a verb too now? :P
17:29 moritz_ TimToady_it: IP is 67.217.170.47
17:29 colomon masak: you keep saying that, but I'm just not feeling it yet.
17:29 colomon masak: IMO a single extra character to clearly specify what you are trying to do is a win.
17:29 * jnthn figured writing "if" was a good clue :)
17:29 TimToady_it I need the reverse lookup of 209.9.237.164
17:29 donri don't they always do the same in that context?
17:29 masak colomon: to me it's a case of "Perl has implicit casting -- use it to your advantage"
17:29 moritz_ I think it was host03.appflux.net
17:30 perimosocordiae left #perl6
17:30 jnthn In cases where the boolean context is less obvious, I can kinda see why one would do it though.
17:30 masak colomon: but I can see how different people take different views on it.
17:30 masak jnthn: yes, sure.
17:30 moritz_ TimToady_it: yes, host03.appflux.net is it
17:30 TimToady_it grazi!
17:31 * TimToady_it is still madly backlogging...
17:31 masak TimToady_it: you can skip past the part yesterday where we did 'seen' with aloha... :P
17:31 donri I bet "if @array" can more easily be optimized than ?@array
17:32 jasonmay joined #perl6
17:32 fith joined #perl6
17:32 colomon I suppose part of it might be lingering notions from C++, where an empty array object is still probably true.
17:32 PerlJam donri: er, what?
17:33 Rotwang hi pplz
17:33 jnthn Well, the ? could be optimized away maybe :)
17:33 masak Rotwang: hi there!
17:33 donri PerlJam: well unless an optimizer specifically looks for the .so cases
17:33 donri I mean that it's an extra trip to the boolean value
17:34 arnsholt Y'know, pushing to the Rakudo repo is kinda scary =)
17:34 colomon if has to be implicitly calling .Bool / .so / prefix:<?> anyway...
17:34 PerlJam donri: it's in boolean context either way
17:34 jnthn arnsholt: I did it hundreds of times and I'm still alive! \o/
17:34 colomon arnsholt++
17:34 masak "I'm doing git and I'm still alive"
17:34 colomon I did it hundreds of times, and now I'm a wreck of a man!  \o/
17:34 tadzik Rotwang: ahoy
17:34 moritz_ colomon: :-)
17:35 masak next lession: correlation/causation.
17:35 masak s/ion/on/
17:35 bluescreen left #perl6
17:35 colomon I don't need another lesion, thank you.
17:35 PerlJam heh
17:35 donri PerlJam: Casting to boolean can be done at a lower level, "?" and .so would probably need to run at a higher level?
17:35 jasonmay left #perl6
17:35 fith left #perl6
17:35 Rotwang no more segfaults after updating parrot to 3.1.0 \:D/
17:35 dalek rakudo: 18af942 | arnsholt++ | tools/contributors.pl:
17:35 dalek rakudo: [tools] Make contributors.pl compatible with Perl 5.8.
17:35 dalek rakudo: review: https://github.com/rakudo/rakudo/commit/18af942e61
17:35 dalek rakudo: c25afe6 | arnsholt++ | / (3 files):
17:35 dalek rakudo: [release] Add announcement, updated release guide. Added own name and
17:35 dalek rakudo: email to CREDITS.
17:35 dalek rakudo: review: https://github.com/rakudo/rakudo/commit/c25afe6a6e
17:36 dalek rakudo: f7015bd | arnsholt++ | VERSION:
17:36 dalek rakudo: [release] bump VERSION
17:36 dalek rakudo: review: https://github.com/rakudo/rakudo/commit/f7015bd8eb
17:36 * TimToady_it goes to dinner and will finish reading (downloaded) backlog tonight offline; should have better connectivity tomorrow; next week will be dicey from Kenya though...
17:36 colomon TimToady_it: safe travels!
17:36 masak TimToady_it: we'll try to keep the backlog to a bare minimum... :P
17:36 jnthn TimToady_it: Bad connectivity? Ken ya believe it!
17:36 TimToady_it don't say anything interesting :P
17:37 jnthn ...I think I just pased that test. ;)
17:37 colomon TimToady_it: we'll do our best!
17:37 tadzik absolutely!
17:37 masak TimToady_it: when you get back, I'd like to have a long talk about PRE/POST :)
17:37 TimToady_it noms &
17:37 Axius joined #perl6
17:37 TimToady_it left #perl6
17:46 Axius left #perl6
17:46 donri left #perl6
17:47 Axius joined #perl6
17:48 moritz_ fwiw I have now built a script that imports the IRC logs into a KinoSearch full text index
17:50 Axius hello
17:50 moritz_ good localtime Axius
17:50 Axius How do I install a module from cpan?
17:50 moritz_ Axius: do you want to install a Perl 5 module?
17:50 cdarroch joined #perl6
17:50 cdarroch left #perl6
17:50 cdarroch joined #perl6
17:50 tadzik . o O ( there's a module for that! )
17:51 moritz_ for perl 6, see modules.perl6.org
17:51 moritz_ for perl 5, you're in the wrong channel
17:51 Axius moritz_: yes, for perl 5.
17:51 moritz_ Axius: try #perl or #perl-help or so (but hint: cpan ModuleName should work)
17:54 Axius moritz_: thanks for you hint.
17:54 PerlJam Axius: I'm curious ... did you join every channel with "perl" in its name ?
17:55 stifynsemons left #perl6
17:57 stifynsemons joined #perl6
18:02 noganex_ joined #perl6
18:05 noganex left #perl6
18:06 dakkar left #perl6
18:06 rhizo joined #perl6
18:12 ab5tract joined #perl6
18:22 MayDaniel joined #perl6
18:24 arnsholt There. I maded u a release
18:26 benabik but I eated it.
18:27 risou left #perl6
18:29 arnsholt When updating the Wikipedia entry, what should I do with the references to R* announcements?
18:29 benabik Eat them?
18:29 * benabik needs lunch, will be quiet now.
18:34 MayDaniel left #perl6
18:36 perigrin joined #perl6
18:42 nymacro joined #perl6
18:46 Sargun left #perl6
18:47 Axius left #perl6
19:04 stifynsemons left #perl6
19:05 MayDaniel joined #perl6
19:12 Trashlord left #perl6
19:25 stifynsemons joined #perl6
19:30 kaydsoft joined #perl6
19:31 cognominal joined #perl6
19:39 estrabd is now known as estrabd_omnom
19:40 rhizo left #perl6
19:43 tadzik is there more chapters of HPatMoR? I see only one
19:45 tadzik oh, I got it
19:47 envi left #perl6
19:48 mberends joined #perl6
19:50 jnthn o/ mberends
19:51 Layla_91 joined #perl6
19:52 jnthn o/ Layla_91 :)
19:52 masak \o mberends
19:53 tadzik oh, hi Layla_91
19:53 Layla_91 jnthn, tadzik: hi :) today is my birthday B-) Where are my gifts? :P
19:53 tadzik oh, mberends: what talk did you submit to NLPW?
19:53 tadzik hugme: hug Layla_91
19:53 * hugme hugs Layla_91 and blushes
19:53 jnthn Layla_91: Happy Birthday!
19:53 masak Layla_91: happy birthday!
19:53 * jnthn hugs Layla_91
19:53 * tadzik hugs Layla_91 too
19:53 masak oh well.
19:53 * masak hugs Layla_91 too
19:54 Layla_91 yay! :D
19:54 tadzik back in my days, we called this "a sandwich!" and the hugged person cried for help :)
19:54 masak Layla_91: I bring you the Gift of Community. look, hundreds of people in the channel, all of them nice and friendly :)
19:55 masak tadzik: a couple of months back, a few friends of mine named it "hugging according to Dr Volkov" :P
19:55 tadzik Layla_91: Just after you left today, I thought about Zebras' guide to Perl 6, under masak's command :)
19:55 tadzik masak: who's Dr Volkow?
19:55 Layla_91 tadzik: nice idea :D the problem is that it is raining all day... can't go out.. and my car is broken and I do not know how to fix these things :S
19:55 masak tadzik: apparently the guy who invented the hugpile :P
19:56 jnthn Layla_91: Awww...that's cruel.
19:56 tadzik masak: oh, nice :)
19:56 * jnthn gives Layla_91 an extra hug...she clearly needs it
19:57 Layla_91 tadzik, masak.. Zebras guide? gimme links =) I can read it tonight :D
19:57 tadzik Layla_91: we would have to write it tonight :)
19:57 masak Layla_91: I don't know exactly what tadzik is talking about, but it sounds kinda cool :P
19:57 tadzik masak: what do you think, a not-quite-sane Perl 6 book?
19:57 tadzik like Why's Guide to Ruby
19:57 fhelmberger left #perl6
19:57 tadzik (brb, I hope my KDE's alright
19:57 masak tadzik: I'm all for pushing the already wxisting book in that direction :P
19:57 Layla_91 masak, tadzik: put me in credits it is my idea :P
19:58 masak Layla_91: you drive a hard bargain, but ok :P
19:58 Layla_91 masak: it is my birthday you know :P
19:59 Layla_91 masak: getting older B-)
19:59 masak Layla_91: so, you're... 20 now?
19:59 Layla_91 jnthn: my car should be one of least cars to have problems (honda civic 2010) but it keeps having problems :(
19:59 tadzik (bah, it's not)
20:00 jnthn Layla_91: The only Honda thing my family ever owned was a lawnmower...I seem to remember it blew up. :/
20:00 Layla_91 masak: my mom told me girls are never more than 25 so once I become 25 I will be 25 forever! :-|
20:01 moritz_ after 25 comes 25+
20:01 tadzik or 25++?
20:01 jnthn rakudo: 25++
20:01 p6eval rakudo 6f9116: OUTPUT«Cannot modify readonly value␤  in '&infix:<=>' at line 1␤  in main program body at line 7461:CORE.setting␤»
20:01 jnthn \o/
20:01 Rotwang Layla_91: after 25 they turn into witches
20:01 Layla_91 tadzik: 25 is read only! you see! she was right! :P
20:01 jnthn :D
20:01 masak Rotwang: misogyny: not eradicated yet... :P
20:02 tadzik :P
20:02 colomon my dad has been having anniversaries for his 39th birthday for quite a few years now.  last year he hit the 39th anniversary of it...
20:02 Layla_91 colomon: that can happen.. :P
20:02 Tene hahaha :)
20:02 colomon Layla_91: also, make sure you don't say 25 is the last birthday you'll ever have.  that sounds bad.  ;)
20:04 jnthn Yes, please have a 25++th one. :)
20:04 Layla_91 colomon: mmm.. my mom decided she is 35 last year.. so maybe at someday I will move from 25 to 35.. 35 year seems a lot of time.. maybe perl6 will be in every server by that day..
20:04 tadzik (:
20:04 * jnthn used to think that might happen by the time *he* was 25... :)
20:04 masak rakudo: sub cadeau { "[a present for $^person]" }; &cadeau.wrap: { "{callsame} <-- it is wrapped and everything!" }; say cadeau "Layla_91"
20:04 p6eval rakudo 6f9116: OUTPUT«[a present for Layla_91] <-- it is wrapped and everything!␤»
20:05 Layla_91 masak: hihihi tnx =)
20:06 tadzik jnthn: aren't you?
20:06 PerlJam Layla_91: through judicious choosing of which base you use to represent your numbers, you can have whatever birthday number you want.  :)
20:06 jnthn Layla_91: You could always find some chocolate. :)
20:06 jnthn tadzik: No, I ceased being 25 approximately 25 days ago. I'm now 25++. :)
20:07 masak rakudo: my $twenty-five = 25; $twenty-five++; say $twenty-five
20:07 p6eval rakudo 6f9116: OUTPUT«26␤»
20:07 ggoebel left #perl6
20:07 jnthn Cheat, you used variables. :P
20:08 masak age *is* variable... :P
20:09 sbp rakudo: my $twenty-five = 25; say $twenty-five++
20:09 p6eval rakudo 6f9116: OUTPUT«25␤»
20:09 sbp rakudo: my $twenty-five = 25; say ++$twenty-five
20:09 p6eval rakudo 6f9116: OUTPUT«26␤»
20:10 sbp rakudo: my $twenty-five = 25; say ++$twenty-five++; say $twenty-five
20:10 p6eval rakudo 6f9116: OUTPUT«26␤27␤»
20:10 sbp rakudo: my $twenty-five = 25; say ++(++$twenty-five++)++; say $twenty-five
20:10 p6eval rakudo 6f9116: OUTPUT«Cannot modify readonly value␤  in '&infix:<=>' at line 1␤  in main program body at line 22:/tmp/ZlmO2w_hBp␤»
20:10 sbp NO YUO
20:10 Layla_91 we need a choclate variable.. with some cream++
20:10 sbp clotted cream
20:11 sbp rakudo: my $twenty-five = 25++; say $twenty-five
20:11 p6eval rakudo 6f9116: OUTPUT«Cannot modify readonly value␤  in '&infix:<=>' at line 1␤  in main program body at line 7461:CORE.setting␤»
20:11 tadzik jnthn: ah, I remember now :)
20:11 bacek masak, thanks for testing
20:11 tadzik maybe age should be an iterator
20:11 Layla_91 by the way.. I am not 25 yet so you can use my real age :P
20:12 tadzik rakudo: my $nineteen = 19; say ++$nineteen
20:12 p6eval rakudo 6f9116: OUTPUT«20␤»
20:12 ggoebel joined #perl6
20:12 tadzik heh, WFM :)
20:13 Layla_91 A little off topic question.. why did Randal L. Schwartz say PHP is "training wheels without the bike" Is it really that bad?
20:14 tadzik Juerd has a nice article about what's bad about PHP
20:14 Layla_91 I do not have a lot of experience of it but it has a lot like perl syntax..
20:14 sbp .g Juerd, PHP Sucks
20:14 phenny sbp: http://www.tnx.nl/php
20:14 tadzik yeah, looks like this
20:14 Tene Layla_91: Yes, it's really that bad.
20:15 Rotwang Layla_91: php was at first set of perl scripts
20:15 sbp this one actually made me laugh: Sure, PHP 6 may have a shorter release cycle than Perl 6 has, but at the end of it all, we'll have Perl 6, and you'll still have PHP. Just sayin'. -- Andy Lester
20:15 tadzik :D
20:15 flussence PHP is half Perl 5(.0), half COBOL.
20:15 Layla_91 hihi.. they made a photo of his saying too.. cute ^_^ .. training wheels without the bike =D
20:15 alester Where's that from, sbp?
20:15 alester Perlbuzz?
20:16 tadzik I'd say it's four times Perl 5.0. How many array sorting functions does it have again? 5?
20:16 masak alester++ # quote :)
20:16 flussence about a dozen IIRC
20:16 Tene Layla_91: see also http://www.tnx.nl/php5.html
20:16 Layla_91 so again, why is it so popular? :S
20:16 alester I should mention that I'm currently writing some PHP code. :-(
20:16 masak Layla_91: PHP is very easy to deploy and get running.
20:16 jnthn Layla_91: Because it's easy to learn, I suspect.
20:16 Tene Layla_91: "Worse is Better" is the relevant phrase for discussions on that topic.
20:16 flussence because it outputs straight to stdout by default until you tell it there's code
20:17 tadzik few camelCased, few_underscored, fewcstyled...
20:17 PerlJam Layla_91: php also rode the wave of apache deployments.
20:17 flussence makes it easy to just rename .html -> .php and dump stuff in it
20:17 Layla_91 alester: is it true that they included namespaces in recent versions only?
20:17 flussence yes
20:17 flussence recent *version*
20:17 alester Yes, it's a recent thing.
20:17 Layla_91 flussence: wow..
20:17 flussence also the namespace delimiter is "\"
20:17 jnthn Unicode next version, iirc?
20:17 alester And the namespace separator is '\'
20:17 Tene Layla_91: My suspicion is that when people are sufficiently opinionated to not want to use PHP, they're also sufficiently opinionated and have sufficiently different needs that they end up in all sorts of different languages.
20:17 flussence because everything else was taken supposedly
20:18 jnthn OH I just LOVE the MS DOS chic!
20:18 masak namespace delimiter is... backslash. undecided whether to laugh or cry.
20:18 alester So you can have $foo\next\trip\really
20:18 * masak cries
20:18 Layla_91 masak: perl is easy to deploy too.. I think..
20:18 flussence PHP is a great example of why a language shouldn't be optimised for minimum indentation in the parser code.
20:18 alester which I read as $foo line-feed ext tab rip return eally
20:18 tadzik I decided to roll in my bed making this Obelix laugh sound
20:19 sbp alester: from the bottom of the tnx.nl/php result, via searching for Juerd's PHP-Sucks article
20:19 Tene Layla_91: There are a lot of other factors though... it's trivial to get *something* small workign quickly, so it makes you feel good early on.  It very much encourages steady organic growth of trivial projects into large projects, and there's no clear point where it's easier to rewrite in something more-suitable for a large project...
20:19 alester sbp: The original context is here: http://perlbuzz.com/2008/02/t​ell-us-how-to-do-it-andi.html
20:20 plobsing left #perl6
20:20 PerlJam Tene: PHP is perfectly fine for a large project.  It's just the discipline level required increases exponentially.
20:20 sbp alester: ooh, thanks
20:20 Layla_91 Tene: I agree.. I also read that there are too many php programmers.. but also very few people can write proper secure code with it..
20:20 Tene PerlJam: "Requires exponentially-increasing discipline" isn't "perfectly fine" to me, personally.  I prefer that my language offer good tools to manage complexity.
20:21 PerlJam Maybe I should have put a :-) on my text
20:21 PerlJam :-)
20:21 PerlJam have another
20:21 Layla_91 Tene: I liked the way they borrowed split and join from perl.. new names.. explode! :D
20:22 tadzik explode(), die() wasn't enough? :P
20:22 Tene PerlJam: Ah, sorry... 1) I've been having a lot of trouble noticing sarcasm both in text and in speech lately, and 2) I've seen that position legitimately claimed before.
20:22 Layla_91 tadzik: Loool :D
20:22 tadzik or it blows the whole server? :)
20:23 PerlJam Tene: yes, deadpan humor often misses on IRC because it's hard to tell that's what it is sometimes
20:23 Layla_91 :D
20:23 PerlJam Tene: rest assured that I am not a fan of PHP  :)
20:23 Tene PerlJam: fwiw, my company's website is all written in PHP... a MASSIVE PHP codebase.  The engineers seem to be able to handle it pretty well.
20:24 Tene All of the operations code is in Perl, though, so it works well for me.
20:24 flussence it's fine when it's written by someone with a clue and the patience to do it right
20:24 flussence those are few and far between though
20:24 PerlJam flussence: except for all that stuff that Juerd mentions.
20:24 masak the extra ironic thing is that PHP 6 still isn't out...
20:24 Layla_91 a boy I knew in school used to bring the school website down every week.. while the school IT team kept improving the secuirity.. after all they handed the website to him :)
20:24 PerlJam flussence: inconsistent naming conventions and argument order bother me quite a bit
20:25 flussence that's why you write 15000 lines of wrapper code :D
20:25 [Coke] (concerns about php in a large project) sounds like cold fusion. ;)
20:25 flussence and you *have* to write it, because there's no central repository for it
20:25 flussence (PEAR is anemic)
20:26 sbp and Wikipedia just opines "No date set"
20:26 jnthn Develop anything in any langauge without anyone bothering to architect it beyond the next ten minutes and ten years later it'll be a mess.
20:26 Layla_91 tadzik, masak, jnthn, masak: ATTENTION: I am eating cake :P
20:26 jnthn Layla_91: Yaay! :D
20:27 PerlJam jnthn: I don't think it needs architecting so much as consistent vision or philosophy.  Some sort of general guiding principles.
20:27 * jnthn would be envious apart from he's still way too full of curry
20:27 coldhead joined #perl6
20:27 PerlJam jnthn: if PHP had had an inkling of that, it could have been a much better language.
20:27 sbp Perl 6 will be done when Rakudo Star implements a X b X c. — sbp's readiness condition
20:27 sbp unfortunately this condition entails the idea that I ought to implement this myself
20:27 sbp so I won't stress it too hard
20:28 masak sbp: I think that even used to work in Rakudo...
20:28 sbp oh, it broke? hmm
20:28 Layla_91 I heard of php6 by the way.. is it something like perl6?
20:28 PerlJam Layla_91: no.
20:28 tadzik nooooooooooooooo
20:28 tadzik unless you mean "it's not there yet"
20:28 flussence rakudo: sub brain-damage-o-meter(Str $i) { $i.chars / 'criminally-braindead'.chars }; say brain-damage-o-meter('htmlspecialchars');
20:28 p6eval rakudo 6f9116: OUTPUT«0.8␤»
20:28 estrabd_omnom is now known as estrabd
20:29 Layla_91 I meant a project in progress :P
20:29 sbp rakudo: my $LaylaAge = 19; say 'n' ~ 'o' x ++LaylaAge
20:29 p6eval rakudo 6f9116: OUTPUT«Could not find sub &LaylaAge␤  in main program body at line 22:/tmp/CgHDJFY5Af␤»
20:29 sbp rakudo: my $LaylaAge = 19; say 'n' ~ 'o' x ++$LaylaAge
20:29 p6eval rakudo 6f9116: OUTPUT«noooooooooooooooooooo␤»
20:30 masak rakudo: sub brain-damage-o-meter(Str $i) { [/] ($i, 'criminally-braindead')».chars }; say brain-damage-o-meter 'htmlspecialchars'
20:30 p6eval rakudo 6f9116: OUTPUT«0.8␤»
20:30 masak \o/
20:30 flussence Mojolicious got that one right - if you're writing a webpage language, it should be one keypress to output escaped cdata, not 21.
20:30 Layla_91 everybody geting brain damage :P
20:30 flussence oh
20:30 flussence s/21/23/ # mandatory brackets
20:31 masak rakudo: sub brain-damage-o-meter(Str $i) { [/] ($i, 'criminally-braindead')».chars }; say brain-damage-o-meter 'htmlspecialchars()'
20:31 tadzik just like Gtk
20:31 p6eval rakudo 6f9116: OUTPUT«0.9␤»
20:31 tadzik gtk_tree_model_filter_convert_iter_to_child_iter() <3
20:31 flussence ARGH.
20:31 jnthn rakudo: sub brain-damage-o-meter(Str $i) { [/] ($i, 'criminally-braindead')».chars }; say brain-damage-o-meter 'masak'
20:32 p6eval rakudo 6f9116: OUTPUT«0.25␤»
20:32 masak sounds about right.
20:32 jnthn Oh, pretty good. ;)
20:32 masak rakudo: sub brain-damage-o-meter(Str $i) { [/] ($i, 'criminally-braindead')».chars }; say brain-damage-o-meter 'jnthn'
20:32 p6eval rakudo 6f9116: OUTPUT«0.25␤»
20:32 masak just checking :P
20:32 tadzik try Jonathan :P
20:32 flussence .oO( my name's misleadingly short... )
20:32 jnthn try mäsak :P
20:33 masak jnthn: it's *chars* :P
20:33 jnthn Darn!
20:33 jnthn Was going for high codepoints :P
20:33 Trashlord joined #perl6
20:33 jnthn masak is sat next to me laughing at me now :P
20:33 masak yep :)
20:33 tadzik rakudo: sub brain-damage-o-meter(Str $i) { [/] ($i, 'criminally-braindead')».chars }; say brain-damage-o-meter 'Tadeusz'
20:33 p6eval rakudo 6f9116: OUTPUT«0.35␤»
20:33 tadzik not bad
20:34 Layla_91 programming is fun.. here we see a group of geeks fighting using perl6 :P
20:34 tadzik that's what this mmorp is about :)
20:35 plobsing joined #perl6
20:35 plainhao left #perl6
20:35 masak occasionally, we write real code as well.
20:35 Su-Shee_ joined #perl6
20:35 ab5tract left #perl6
20:35 Layla_91 Su-Shee: heloooo!
20:36 Layla_91 tadzik, masak: i should go in moments.. erm.. I wish that thing about zebras guide becomes reality.. sound so fun =)
20:37 masak Layla_91: the book is the first priority, but still it good to know that zebras are in high demand :)
20:38 Su-Shee left #perl6
20:39 Layla_91 masak: Also I want all the drawings to be by you and tadzik :P but much cooler than rubys guide :-|!!!
20:39 Layla_91 chunky bacon! :D
20:40 masak why_ is hard to match in terms of drawings... :)
20:40 flussence (wow, I'm not sure anyone can top that thing)
20:40 tadzik there was only one successful drawing of mine I remember, that was whn I drew Usagi Yojimbo on my English Classes essay
20:40 Layla_91 have to go thank you all you are the best community on earth! :******
20:40 jnthn Layla_91: enjoy the rest of your birthday :)
20:41 sbp .wik Usagi Yojimbo
20:41 phenny "Usagi Yojimbo (兎用心棒, Usagi Yōjinbō|?|, lit. 'rabbit bodyguard') is a comic book series created by Stan Sakai in 1987." - http://en.wikipedia.org/wiki/Usagi_Yojimbo
20:42 sbp rakudo: sub brain-damage-o-meter(Str $i) { [/] ($i, 'criminally-braindead')».chars }; say brain-damage-o-meter '兎用心棒'
20:42 p6eval rakudo 6f9116: OUTPUT«0.2␤»
20:42 tadzik see? Perfectly sane
20:42 Layla_91 left #perl6
20:43 masak tadzik: somehow that seems an unfair comparison... :P
20:43 flussence English only looks sane in an ASCII-derived world
20:45 sbp rakudo: say a / b
20:45 p6eval rakudo 6f9116: OUTPUT«Could not find sub &a␤  in main program body at line 22:/tmp/QnJZYVpLGx␤»
20:45 sbp rakudo: say 'a' / 'b'
20:45 p6eval rakudo 6f9116: OUTPUT«Divide by zero␤  in 'infix:</>' at line 3734:CORE.setting␤  in 'infix:</>' at line 515:CORE.setting␤  in main program body at line 22:/tmp/skzcvQCUcz␤»
20:45 masak rakudo: say [/] <a b>».ord
20:45 p6eval rakudo 6f9116: OUTPUT«0.989795918367347␤»
20:46 masak 'a' is 98.98% 'b'.
20:46 sbp give or take a cosmic ray
20:47 icwiener joined #perl6
20:47 masak rakudo: say 'a' +& 'b'
20:47 p6eval rakudo 6f9116: OUTPUT«0␤»
20:47 masak rakudo: say 'a' +| 'b'
20:47 p6eval rakudo 6f9116: OUTPUT«0␤»
20:47 masak rakudo: say 'a' ~| 'b'
20:47 p6eval rakudo 6f9116: OUTPUT«c␤»
20:47 masak \o/
20:50 masak rakudo: say 'foo' ~^ 'bar' ~^ 'baz'
20:50 p6eval rakudo 6f9116: OUTPUT«fog␤»
20:50 shi joined #perl6
20:51 masak *lol*
20:51 sbp ahahaha
20:51 jnthn I didn't see that coming...
20:51 * moritz_ is highly amused
20:51 masak No-one sees the fog coming!
20:51 jaldhar left #perl6
20:51 tadzik :D
20:52 masak you have to ~^ an odd number of words, otherwise it loses its alphabetness.
20:52 masak rakudo: say [~^] <foo bar baz>
20:52 p6eval rakudo 6f9116: OUTPUT«fog␤»
20:53 masak rakudo: say [~^] <sight smell touch>
20:53 sbp what happens when you mess the lengths up?
20:53 p6eval rakudo 6f9116: OUTPUT«tkwgp␤»
20:53 sbp rakudo: say [~^] <foo bar baza>
20:53 jnthn rakudo: say [~^] <beer noms perl>
20:53 masak aw :)
20:53 p6eval rakudo 6f9116: OUTPUT«foga␤»
20:53 p6eval rakudo 6f9116: OUTPUT«|ozm␤»
20:54 masak rakudo: say ord '|'
20:54 p6eval rakudo 6f9116: OUTPUT«124␤»
20:54 Su-Shee_ is now known as Su-Shee
20:55 masak rakudo: [~^] <foo fog baz>
20:55 p6eval rakudo 6f9116:  ( no output )
20:55 masak rakudo: say [~^] <foo fog baz>
20:55 p6eval rakudo 6f9116: OUTPUT«bar␤»
20:55 jnthn \o/ \o/
20:55 masak drunken gymnast! :)
20:55 jnthn "I man walks into a bar." "Ouch."
20:55 masak guess there was too much fog in the bar.
20:56 masak look, people. we promised TimToady not to leave too much senseless backlog... :P
20:56 masak guess we blew it, huh?
20:56 tadzik ouch
20:56 jnthn I thought he told us not to say anything interesting? :P
20:56 masak oh!
20:56 masak carry on, then.
20:56 sbp blame me, and I promised no such thing
20:56 tadzik sounds like a day
20:58 pigdude left #perl6
21:14 spq left #perl6
21:16 gdey joined #perl6
21:16 Bzek left #perl6
21:17 Bzek joined #perl6
21:17 mtk left #perl6
21:20 spq joined #perl6
21:23 gdey left #perl6
21:23 spq left #perl6
21:24 gdey joined #perl6
21:25 masak left #perl6
21:26 mtk joined #perl6
21:30 mberends left #perl6
21:31 mberends joined #perl6
21:38 kjeldahl joined #perl6
21:39 Trashlord left #perl6
21:43 donri joined #perl6
21:44 Trashlord joined #perl6
21:47 shi left #perl6
21:47 sunnavy left #perl6
21:47 sunnavy joined #perl6
21:47 Raynes left #perl6
21:48 shi joined #perl6
21:49 Raynes joined #perl6
21:49 AzaToth joined #perl6
21:51 sji joined #perl6
21:52 mberends left #perl6
21:52 AzaToth What I feel is the major problem with perl6 is the general bluriness what it is, and the relation between perl6, parrot, rakudo, pugs etc..
21:52 shi left #perl6
21:53 pmurias joined #perl6
21:53 pmurias hi
21:53 tadzik hi
21:53 tadzik AzaToth: are you confused?
21:53 AzaToth tadzik: I have been
21:53 jdhore AzaToth, I'm somewhat new to this, but it's quite simple. Perl 6 is a language spec. Like C.
21:54 jdhore AzaToth, Rakudo is a Perl 6 implementation (on top of Parrot) and PUGS is a Perl 6 implementation (on top of Haskell)
21:54 AzaToth tadzik: one think I felt  was really difficult, was installing rakudo
21:54 mberends joined #perl6
21:55 mberends left #perl6
21:55 jdhore Oh, and Rakudo Star is Rakudo plus some "expected" Perl modules.
21:55 jdhore AzaToth, Does that help?
21:55 AzaToth jdhore: hehe ツ
21:55 tadzik AzaToth: what's difficult about that?
21:55 AzaToth I meant in a general way
21:55 tadzik AzaToth: how do you feel it can be improved?
21:56 donri `"foo".isa: Str` now I get that : is completely unrelated to blocks
21:56 donri All uses of : i've seen was with blocks
21:56 AzaToth tadzik: first I think there should be an (semi)-official recommended "compiler"
21:56 jdhore AzaToth, There is, Rakudo.
21:56 Mowah left #perl6
21:57 jdhore Rakduo is the closest thing you'll find to a "blessed" "compiler".
21:57 jdhore But there really isn't a blessed one in the same way there is no reference/blessed C compiler.
21:57 AzaToth jdhore: it's difficult for someone new to really get that rakudo is the recommmended
21:58 jdhore Well that's because it isn't really.
21:58 AzaToth jdhore: reading http://www.perl6.org/compilers/ it seems more that STD would be the "blessed" one
21:58 pmurias AzaToth: there shouldn't be a "blessed" one
21:58 pmurias there could be a recommended one
21:59 AzaToth pmurias: meant recommended :-P
21:59 tadzik AzaToth: pathes welcome :
21:59 pmurias STD is just a grammar
21:59 tadzik :)
21:59 AzaToth "#
21:59 AzaToth # STD is Larry Wall's reference implementation of the Perl 6 grammar,"
21:59 BinGOs 'viable' is a better word, no.
21:59 AzaToth oops
21:59 tadzik yeah, that's a bit misleading
22:00 arnsholt Well, TimToady is the main developer on STD
22:01 pmurias STD is the recommended thing for checking if something parses as Perl 6
22:01 tadzik AzaToth: http://www.perlfoundation.org/p​erl6/index.cgi?implementations -- just stubled upon this, looks nice to me
22:02 Mowah joined #perl6
22:02 tadzik (where is niecza on that list)
22:03 AzaToth regading rakudo, am I right that "rakudo" is only the compiler? i.e. no modules at all?
22:03 tadzik yeah
22:03 tadzik Rakudo Star is the Compiler, Modules, Book, Zebras, etc
22:03 AzaToth zebras?
22:03 tadzik Zebras? What zebras?
22:03 MayDaniel left #perl6
22:03 AzaToth <tadzik> Rakudo Star is the Compiler, Modules, Book, Zebras, etc
22:04 tadzik I said zebras? No way I did. I didn't :)
22:04 Mowah left #perl6
22:04 AzaToth tadzik: you DID
22:04 tadzik oh noes!
22:04 AzaToth well
22:05 tadzik (:
22:05 tadzik don't mind me and my silly humour
22:06 AzaToth https://github.com/rakudo/star - See <http://wiki.github.com/rakudo/​rakudo/whats-going-into-rakudo> for a list
22:06 AzaToth of modules we want included in the distribution.
22:06 AzaToth no modules then :-P
22:06 sji left #perl6
22:06 tadzik :)
22:06 tadzik let me find this
22:07 shi joined #perl6
22:07 AzaToth I hope raduko* aint yet another application level package managing system
22:07 tadzik https://github.com/rakudo/star/blob​/master/skel/build/Makefile.in#L55
22:07 AzaToth svg?
22:08 AzaToth that module seems a bit way high level
22:08 AzaToth svn and svg-plot
22:08 AzaToth svg*
22:09 tadzik what do you mean?
22:09 AzaToth svg doesn't seems for me to be an "core" module
22:09 tadzik it's note Core Modules of any sort
22:10 AzaToth ok
22:10 AzaToth I tohugh raduko* was compiler + core modules
22:10 tadzik they are just a bunch of modules alredy available which we thought will be useful
22:10 AzaToth ok
22:10 tadzik let me find something
22:10 tadzik .g moritz how core is core
22:10 phenny tadzik: https://tools.ietf.org/html/draf​t-moritz-core-soap-over-coap-00
22:10 jnthn AzaToth: There's no "core" modules. We expect people to make distributions tailored to certain situations. At the moment the ecosystem of modules is pretty small so Rakudo * is currently the compiler + a bunch of the interesting stuff that exists.
22:11 jnthn AzaToth: A module being with Rakudo * doesn't indicate any judgement on its "coreness" though.
22:11 AzaToth jnthn: in the future, I would expect be able to do "apt-get install perl6 perl6-modules" sort of
22:11 tadzik AzaToth: http://perlgeek.de/blog-en/p​erl-6/how-core-is-core.html
22:11 AzaToth reading...
22:13 kaare_ left #perl6
22:13 AzaToth tadzik: so, is raduko* cat B or C? ツ
22:14 tadzik Rakudo* is not a module :)
22:14 AzaToth tadzik: collection of modules*
22:14 tadzik AzaToth: C
22:14 AzaToth ok
22:15 tadzik Rakudo * is a distibution, of Rakudo, Modules and Zebra... documentation
22:15 AzaToth please explain for me what Zebras is
22:15 tadzik it's a local meme
22:16 tadzik if you grep the logs for "hello zebras", the results may look funny to a foreigner :)
22:16 AzaToth aha
22:17 AzaToth I assume there are no gpc yet
22:19 masak joined #perl6
22:19 masak \o/
22:19 AzaToth other thing I think is a problem for introduction to outsiders, is the lack of timeline
22:19 jdhore ...
22:20 AzaToth i.e. should I start now to learn perl6, or should I way 10 years?
22:20 AzaToth wait*
22:20 tadzik masak: hello zebra :)
22:20 masak tadzik: I really like how the Zebras seem to be spreading... :)
22:20 tadzik :D
22:20 tadzik AzaToth: see? :)
22:21 AzaToth tadzik: hehe
22:21 masak AzaToth: there's a very good reason for the lack of timeline.
22:21 masak a really, *really* good reason.
22:21 AzaToth masak: it will never be ready?
22:21 masak I'm not sure I'm getting through to you :P
22:21 AzaToth hehe
22:21 takadonet left #perl6
22:22 masak in some sense, Perl 6 is ready.
22:22 masak AzaToth: did you know my blog is fuelled by Perl 6?
22:22 masak has been since September last year.
22:22 masak there are areas that Rakudo doesn't cover well yet, but work is being done as we speak to make it go broader and better.
22:23 AzaToth masak: I can understand that modules and such are not finish/made, but I would assume the core design and specification is rather complete now
22:23 masak AzaToth: no, the really good reason for the lack of timeline is that no-one's ever implemented Perl 6 before.
22:23 masak AzaToth: and the first time is the hardest :)
22:23 AzaToth masak: true
22:23 masak AzaToth: as for Rakudo, there is a roadmap if you're interested.
22:24 Tene AzaToth: The language has been pretty stable.  There have been very few changes to anything already-implemented.
22:24 pmurias left #perl6
22:24 masak the Perl 6 specification sees more changes than anything of the corresponding size and stability that I know of. but I think it's a good thing, because the changes are steady improvements as we learn stuff.
22:25 AzaToth uh?
22:25 tadzik masak: I think at YAPC::EU we should have a big label with a Camelia and "Zebras' place" written on it
22:25 AzaToth so the spec isn't stable?
22:25 masak tadzik: :D
22:25 Tene AzaToth: While the spec is being implemented, the implementors sometimes run into issues with the parts that they're working on.
22:25 masak AzaToth: have you heard about whirlpool development?
22:25 Tene So the process of implementing feeds back into the design.
22:26 AzaToth masak: heard of it, never encountered it
22:26 masak AzaToth: now you have.
22:26 masak and as far as I can see, it is a good thing for what we want to do with Perl 6.
22:27 masak we know in very general terms what we want, but we're still evolving the specifics by building them and finding weak points.
22:27 masak we'd be finished earlier if we chose a spec and stuck to it. but then the product would be crap.
22:27 AzaToth masak: true, but will it ever be done?
22:28 jdhore Yes.
22:28 Tene AzaToth: The spec has been *sufficiently* stable for most purposes at this point in Perl 6's development.  It hasn't been frozen, because so far, it's been a very good thing that we haven't frozen it.  We've encountered issues and concerns with the design as we've been implementing it, and that's really the best time to make those changes.
22:28 masak AzaToth: there will come a last commit to the spec, if that's what you're asking.
22:28 AzaToth in an whirlpool you neve r get to the center, if you get too close, you'll been thrown out to the edge again
22:29 masak :)
22:29 Tene AzaToth: Once there is an implementation that implements the majority of the spec, and feedback to the spec has largely quieted down, we're going to declare that the spec has solidified, and stamp a "1.0" number on it.
22:29 masak AzaToth: I've been here since 2005. every year, we're converging.
22:29 AzaToth masak: at least I would hope there was a plan like "lets froze it in under x years"
22:29 masak AzaToth: why?
22:30 masak AzaToth: if this were a company, I'd understand that.
22:30 Tene AzaToth: That would be feasible if we had committed resources.  This is a volunteer effort, so we can only make estimates about how much work is left, not the rate that it'll be accomplished at.
22:30 mfollett_ joined #perl6
22:30 masak AzaToth: but we're a bunch of interested volunteers, most doing Perl 6 for fun without expecting anything except to make a great language.
22:30 AzaToth masak: you don't want it to go the HURD way :-P
22:31 masak AzaToth: I see what you mean, but I think such fears are unfounded.
22:31 Tene AzaToth: The other metaphor that comes up is that the spec is in a "slush" state; large parts of it are effectively frozen already.
22:31 masak AzaToth: I'm using Perl 6 already, more and more each day.
22:31 Tene AzaToth: If you're concerned about the changes, I recommend that you look at the commit log to the specs.
22:31 AzaToth Tene: I understand it's an volunteer effort, but what I'm trying to imply, that perhaps some more non-volunteer helpers an be acquired as soon a stable specification is in sight
22:32 masak https://github.com/perl6/specs/commits/master
22:32 Tene AzaToth: That's fair enough.  Our process so far has been to treat most of the unimplemented parts of the spec as experimental/hypothetical, until someone has attempted an implementation.
22:33 Tene The *process* of freezing it is to implement it, write tests for it, etc.
22:33 AzaToth I see
22:33 masak AzaToth: at this point, I don't know how many volunteers are connected with Hurd at this point, but I wouldn't be surprised at all if the Perl 6 community turned out to be bigger and faster-moving in terms of commits.
22:33 masak s:2nd/ at this point//
22:34 Tene Until we've actually tried it, we don't find value in precommitting to a design that we haven't actually tried.
22:34 AzaToth masak: If I want to see if I can theoretically help, where should I start? is it much to learn?
22:34 mfollett left #perl6
22:34 mfollett_ is now known as mfollett
22:34 masak AzaToth: Perl 6 is a big language, but fortunately one can learn it step by step. :)
22:34 AzaToth Tene: couldn't those parts be part of spec 1.x?
22:35 Tene AzaToth: If you're particularly concerned about the development of the spec, you could certainly explore ways of annotating the spec, reporting on pieces of the implementation, etc.
22:35 masak AzaToth: I'd suggest setting a goal in terms of a small script to write, and then learn the things you need to write that script. then, once you're done, set a slightly more ambitious goal, etc.
22:35 Tene AzaToth: What use is spec that hasn't been implemented yet?
22:36 Tene AzaToth: If you look at the published specs, we have annotation in the test suite for which parts of the spec the given test covers: http://perlcabal.org/syn/S02.html
22:36 AzaToth Tene: if it's not implemented yet, then perhaps it doesn't need to be part of the 1.0 spec
22:36 Tene Look at the S*/*.t links
22:37 masak AzaToth: people usually find a "favorite corner", such as RT, the spectests, the parser, the ecosystem, etc. it's perfectly ok to spend the first few months talking to people and trying various things.
22:37 Tene I can certainly imagine value in further reports on what parts of the spec have passing tests on an implementation, on the change rate of different parts of the spec, etc.
22:37 AzaToth ok
22:38 masak rakudo: say "Rakudo says hello, AzaToth! :)"
22:38 p6eval rakudo 6f9116: OUTPUT«Rakudo says hello, AzaToth! :)␤»
22:38 Tene AzaToth: I certainly think that now might be a good time to start having this covnersation, about spec solidification, etc.  We'll need to do it someday.
22:38 sbp <masak> has been since September last year.
22:39 sbp you should call the code September!
22:39 AzaToth Tene: I remember back in 2004 around hpoing that perl6 would materialize ツ
22:39 masak sbp: :D
22:39 masak sbp: right now it's called psyde, but I might consider a name change.
22:39 Tene AzaToth: I can install perl 6 on my linux distro from the package manager; it's certainly "materialized" for many purpsoes for me. :)
22:39 masak Perl 6 will need a Perl 6.0.0 specification when it has a big enough downstream customer clamoring for such a freeze.
22:40 Tene AzaToth: Large parts of the specs are interrelated; it's not always obvious what things are related to each other.  We had some fairly minor changes back when we were implementing lazy lists and iterators that touched some large parts of the spec in small ways.
22:40 sbp .g Mäsak's psyde
22:40 phenny sbp: https://github.com/masak
22:40 masak sbp: hold on, I'll get you the link.
22:41 masak http://github.com/masak/psyde
22:41 Tene So, there's nobody currently involved with and communicating with the perl 6 community that has expressed significant value in "this part of the spec will be eternal and unchanging".  It's entirely possible that there are people who would have value in spec guarantees, but just don't talk to us at all right now.
22:41 sbp enthankulations
22:42 masak dontmentionitifics
22:42 Tene AzaToth: If you understand what those concerns might be, it would certainly help to find ways to communicate the current state of things better than they currently are.  I'd love to see what a markup of the spec looks like with indications of test coverage, test passes, commit rate, etc.
22:43 Tene AzaToth: Once we have a good udnerstanding of how stable which parts of the spec are, that might help us make decisions about it.
22:43 masak the only people who I hear arguing for a spec freeze right now are people who are not using Perl 6 on a daily basis. :)
22:43 AzaToth Tene: hehe
22:43 slavik1 masak: like me :P
22:43 Tene masak: That's very true; but I don't feel like I have a good udnerstanding of the selection effects in play there.
22:43 slavik1 actually, no, I don't care for a freeze, I care for a .deb package :D
22:43 slavik1 and a book of sorts ^^
22:43 Tene masak: if an eternal, unchanging spec was valueable to me, I'd certainly stay away from Perl 6.
22:43 masak Tene: oh, same here.
22:43 sbp is there a small test file that p6eval has available to it? so that, say, I could do rakudo: given open "example.txt" -> $f { say $f.get }?
22:44 arnsholt sbp: There's a file attached to STDIN
22:44 Tene rakudo: say lines()[0]
22:44 p6eval rakudo 6f9116: OUTPUT«Land der Berge, Land am Strome,␤»
22:44 masak \o/
22:44 Tene rakudo: say lines().elems
22:44 p6eval rakudo 6f9116: OUTPUT«23␤»
22:44 masak sbp: it has the Austrian national anthem in STDIN :)
22:44 sbp like all good IRC bots
22:45 Rotwang left #perl6
22:45 sbp rakudo: given open "/dev/stdin" -> $f { say $f.get }
22:45 Tene masak: I also think that people who are very close to the project are going to have a different view of the spec changes, as we've seen them gradually.  I'd love to have a visualization of how much of the spec has been changed in the past month, six months, year, etc.
22:45 p6eval rakudo 6f9116: OUTPUT«Operation not permitted in safe mode␤  in 'Safe::forbidden' at line 2:/tmp/jG11LXAEF1␤  in main program body at line 22:/tmp/jG11LXAEF1␤»
22:45 Rotwang joined #perl6
22:45 masak Tene: clearly Perl 6 as of 2011 isn't very much like Perl 6 as of 2003.
22:45 Tene sbp: stdin is already open :)
22:46 sbp ôrite
22:46 masak rakudo: say get() for ^3
22:46 Tene sbp: also, I don't think you want 'given' there
22:46 p6eval rakudo 6f9116: OUTPUT«Land der Berge, Land am Strome,␤Land der Äcker, Land der Dome,␤Land der Hämmer, zukunftsreich!␤»
22:46 masak zukunftsreich!
22:46 * masak salutes
22:46 Tene Or maybe you do...
22:46 arnsholt Gesundheit
22:46 sbp hey, I'm just calquing out of Septemberpsyde
22:46 Tene rakudo: say $*IN.get
22:46 p6eval rakudo 6f9116: OUTPUT«Land der Berge, Land am Strome,␤»
22:47 masak yeah, I kinda fell in love with the 'given' pattern for opening files...
22:47 masak especially since you need to remember to close them, too.
22:48 masak a lexical block makes a lot of sense, then.
22:48 sbp it's like the with open('example.txt') as f: etc. context in python
22:48 Tene Does that handle error conditions?
22:48 masak Ruby has something similar as well.
22:49 masak Tene: right now in Rakudo, &open dies if it fails.
22:49 Tene masak: I was asking about the python
22:50 sbp this is kind of beautiful:
22:50 sbp sub nonexistent-or-older($target, :than(@sources)!) {
22:50 sbp return $target.IO !~~ :e
22:50 sbp || $target.IO.changed before any(@sources).IO.changed;
22:50 sbp }
22:50 sbp how does the "before" work, there?
22:51 masak sbp: I've blogged about that function.
22:51 Tene sbp: it's a type-agnostic ordering comparison
22:51 masak sbp: before is just a generalized '<'
22:51 sbp why would < not work there? < takes only certain argument types I suppose?
22:51 masak sbp: http://strangelyconsistent.org/blo​g/november-5-2010-aim-for-the-eye
22:51 masak sbp: '<' would work. read the post :P
22:52 vmspb joined #perl6
22:52 Tene masak: would 'or' have even worked there?  Wouldn't that have parsed as (return ...) or ( ... before ... ); ?
22:52 sbp ah, yes
22:53 masak Tene: probably, yes.
22:53 masak Tene: my impulse is not to use 'or' for such things.
22:53 sbp it's not entirely clear to me why you used before and ||
22:53 masak Tene: partly for that reason.
22:53 sbp but it's still beautiful
22:53 Tene masak: Yeah, it would have.  I'm confused by the meaning of your post, then...
22:53 plobsing left #perl6
22:53 Tene that part, at least
22:53 sbp I suppose, actually, it does provide some implicit grouping
22:53 sbp you kind of read the || operator first
22:53 sbp and divide into the two groups
22:54 masak Tene: maybe 'or' would have required parens.
22:54 snearch joined #perl6
22:54 donaldh joined #perl6
22:54 Tene sbp: 'or' is very loosely binding, || is tighter binding
22:54 sbp aha
22:54 Tene sbp: so with 'or', it would (return ...) or (... before ...)
22:54 Tene sbp: so, it would have worked fine with an implicit return
22:55 Tene drop the 'return', and s/||/or/
22:55 sbp somebody needs to add a mode to STD that makes it add parens around operator arguments to show precedences
22:55 masak generally, I only use 'or' for error handling.
22:55 Tene sbp: like -MO=Deparse,-p in Perl 5.
22:56 Tene sbp: I always use rakudo's --target=parse for those questions, but that output might be a bti intimidating.
22:56 Tene I bet I could write something in Rakudo to do it pretty quick, though.
22:56 sbp do you use that for other questions which aren't, however, to do with precedence?
22:56 Tene or do fancy html colorization, etc.
22:56 Tene sbp: I use it whenever I have any question about parsing
22:58 ab5tract joined #perl6
22:58 * sbp subscribes to Strangely Consistent
22:59 shi left #perl6
22:59 Tene masak: also might be nice as ~~ :!e in place of !~~
23:01 AzaToth moritz_: any updates to http://www.perlmonks.org/?node_id=690945 ? ツ
23:04 Tene sub nonexistent-or-older($target as IO, :than(@sources)!) { return $target ~~ any (:!e), *.changed before any(@sources).IO.changed; }
23:05 Tene the parens around :!e are unfortunate
23:05 Tene I'm a little bit unhappy about the overloading of prefix:<:>
23:06 Tene I didn't want to look up the syntax for coercing to an array of IO for @sources
23:06 AzaToth rakudo: q{..}.chars
23:06 p6eval rakudo 6f9116:  ( no output )
23:06 Tene rakudo: say q{..}.chars
23:06 jnthn @sources>>.IO
23:06 AzaToth rakudo: say q{..}.chars
23:06 p6eval rakudo 6f9116: OUTPUT«2␤»
23:06 p6eval rakudo 6f9116: OUTPUT«2␤»
23:07 Tene jnthn: in a signature?
23:08 jnthn Tene: Oh, sorry, missed that bit of contest.
23:08 jnthn *toc
23:08 MayDaniel joined #perl6
23:08 jnthn gaaaah!
23:08 AzaToth rakudo: say q{ä}.chars
23:08 jnthn *context
23:08 p6eval rakudo 6f9116: OUTPUT«1␤»
23:08 AzaToth rakudo: say Q{ä}.chars
23:08 p6eval rakudo 6f9116: OUTPUT«1␤»
23:08 shi joined #perl6
23:09 Tene masak: I expect you'll like using 'as IO' in signatures; it'll handle a Str or an IO just fine.
23:09 AzaToth I asusme strings in perl6 doesn't inlcude \0
23:09 Tene and then you don't have to scatter .IO throughout the function
23:14 masak Tene: I don't think there's a syntax for converting to an Array of IO.
23:14 masak Tene: yes, 'as IO' sounds like a very fine techinque. haven't thought of that so far. Tene++
23:15 masak AzaToth: you assume correctly. :)
23:15 masak AzaToth: unless, of course, you put a \0 there.
23:15 masak rakudo: say "OH\0 HAI"
23:15 p6eval rakudo 6f9116: OUTPUT«OH␀ HAI␤»
23:15 masak ␀!
23:16 Tene masak: well, in a declaration, you use: my IO @files;
23:16 jnthn masak: Is it more intresting than a little square bos for you? :)
23:16 jnthn *box
23:16 masak jnthn: yes, it says "NUL" diagonally here.
23:16 huf it says "nul" here
23:16 huf yeah
23:17 masak jnthn: a bit like the "NL" character.
23:17 jnthn My font is too boring. :P
23:17 huf btw, will perl6's open pass \0 along silently and then let the underlying OS do the wrong thing like perl5 does?
23:17 huf at least, istr perl5 does that
23:17 masak Tene: yes, I know. but I find converting already existing arrays cumbersome in Rakudo today.
23:18 masak huf: haven't seen anything on that topic; not sure what you mean.
23:18 Tene rakudo: my IO @a = ('/etc/passwd'.IO); # yay crash
23:18 p6eval rakudo 6f9116:  ( no output )
23:19 Tene Huh.  Crashes locally with max recursion depth exceeded.
23:19 huf masak: if ($untrusted_filename =~ /... good extensions.../) { open my $fh, '>', $untrusted_filename }
23:19 AzaToth rakudo: say     <a b> X~ 1,2 X+ 3,4
23:19 plobsing joined #perl6
23:19 p6eval rakudo 6f9116: OUTPUT«No applicable candidates found to dispatch to for 'crosswith'. Available candidates are:␤:(&op, Any $lhs, Any $rhs)␤␤  in main program body at line 1␤»
23:19 huf something like that behaves rather unexpectedly
23:19 snearch left #perl6
23:20 Tene can anyone else verify pls?
23:20 huf since regex knows where the string really ends, but the open() syscall doesnt
23:20 AzaToth rakudo: say     <a b> X~ (1,2 X+ 3,4)
23:20 p6eval rakudo 6f9116: OUTPUT«a4a5a5a6b4b5b5b6␤»
23:20 masak rakudo: say  (<a b> X~ 1,2) X+ 3,4
23:20 p6eval rakudo 6f9116: OUTPUT«34343434␤»
23:20 Tene rakudo: my @a as IO;
23:20 AzaToth masak: the spec said the former was _currently_ illegal :-P
23:20 p6eval rakudo 6f9116: OUTPUT«Could not find sub &trait_mod:<as>␤  in main program body at line 22:/tmp/sCST41xCwc␤»
23:21 AzaToth rakudo: say  <a b> X, 1,2 X, <x y>
23:21 p6eval rakudo 6f9116: OUTPUT«No applicable candidates found to dispatch to for 'crosswith'. Available candidates are:␤:(&op, Any $lhs, Any $rhs)␤␤  in main program body at line 1␤»
23:21 AzaToth hmm
23:21 woosley joined #perl6
23:21 masak Tene: no crash here.
23:21 masak AzaToth: Rakudo doesn't handle chained X and Z just yet.
23:21 AzaToth masak: I see
23:22 Tene masak: sub foo(@a as IO) works fine
23:22 masak Tene: ooh? :)
23:22 Tene pass in an array of strings, IOs, or whatever
23:22 masak completely missed that one.
23:22 masak Tene: and it doesn't convert the @a to an IO? :P
23:22 AzaToth rakudo: say so flat X
23:22 p6eval rakudo 6f9116: OUTPUT«Could not find sub &X␤  in main program body at line 22:/tmp/FPykHpdH6C␤»
23:22 sbp "In Configuration Space, the configurations that we appreciate run like a thread through a sea of chaos, error conditions, and wrongness."
23:22 Tene masak: no, it doesn't.
23:23 masak rakudo: sub foo(@a as Int) { say .WHAT for @a }; foo [<1 2 3>]
23:23 p6eval rakudo 6f9116: OUTPUT«Int()␤»
23:23 Tene oh, um, yes it does
23:23 Tene I lied :P
23:23 masak yes, you did :P
23:23 AzaToth rakudo: so say
23:23 p6eval rakudo 6f9116: OUTPUT«␤»
23:23 AzaToth rakudo: so say .WHAT
23:23 p6eval rakudo 6f9116: OUTPUT«Any()␤»
23:23 masak good night, #perl6.
23:23 AzaToth
23:23 AzaToth nite
23:23 masak you are the best community on the planet. :)
23:24 masak left #perl6
23:24 dolmen joined #perl6
23:24 Tene rakudo: sub foo(@a as Int) { say @a.WHAT }; foo [<1 2 3 4 5>];
23:24 p6eval rakudo 6f9116: OUTPUT«Int()␤»
23:24 Tene Int isn't positional, but it's bound to @a
23:24 Tene rakudobug?
23:25 jnthn Tene: er. :/
23:25 jnthn Tene: I think coercions are spec'd to happen after the type check.
23:25 jnthn Tene: Otherwise you can't dispatch based on one type and then coerce to another
23:25 jnthn Maybe it should re-check.
23:26 jnthn Though...hm
23:26 * colomon wasn't aware coercions were in there yet...
23:26 Tene jnthn: seems like there should still be a check for the sigil, or check that the type coerced to can be bound to that sigil, or something?
23:27 Tene @a as Array of IO crashes
23:29 stkowski joined #perl6
23:30 Tene rakudo: sub foo(@a as Array of IO) { ... }; foo [<1 2 3>];
23:30 p6eval rakudo 6f9116: OUTPUT«Method '!select' not found for invocant of class ''␤  in 'foo' at line 22:/tmp/kAe6b61k_I␤  in 'foo' at line 1:/tmp/kAe6b61k_I␤  in main program body at line 22:/tmp/kAe6b61k_I␤»
23:31 jnthn Tene: Doesn't surprise me.
23:31 Tene rakudo: sub foo(@a of IO) { say @a.perl }; foo [<1 2 3>];
23:31 p6eval rakudo 6f9116: OUTPUT«["1", "2", "3"]␤»
23:31 Tene that one doesn't do any coercion at all.
23:31 jnthn Well, that should type check, not coerce
23:31 Tene rakudo: my $a as IO = '/etc/passwd'.IO;
23:31 p6eval rakudo 6f9116: OUTPUT«Could not find sub &trait_mod:<as>␤  in main program body at line 22:/tmp/sywuR9YT2j␤»
23:32 Tene I'm done. :)
23:34 estrabd is now known as estrabd_afk
23:34 donaldh left #perl6
23:35 colomon rakudo: sub foo(@a as Int) { say @a.perl }; foo([3, Bool::True, "43", 34/3]);
23:35 p6eval rakudo 6f9116: OUTPUT«4␤»
23:35 colomon rakudo: sub foo(@a as Int) { say @a.perl }; foo(3, Bool::True, "43", 34/3);
23:35 p6eval rakudo 6f9116: OUTPUT«Nominal type check failed for parameter '@a'; expected Positional but got Int instead␤  in 'foo' at line 1:/tmp/GPuF5xNhSe␤  in main program body at line 22:/tmp/GPuF5xNhSe␤»
23:35 colomon rakudo: sub foo(@a as Int) { say @a.perl }; foo (3, Bool::True, "43", 34/3);
23:35 p6eval rakudo 6f9116: OUTPUT«4␤»
23:35 colomon :\
23:36 jnthn colomon: I guess we maybe *could* decide to spec that as coercing each thing in the list. Would need some care with laziness.
23:36 Tene jnthn: that was my intuition, as an analogue to my IO @a;
23:37 colomon eh, probably not worth it.
23:37 colomon though it wouldn't need much care with laziness....
23:38 jnthn Tene: It feels intuitive, given how types otherwise work with @foo thingies.
23:42 whiteknight joined #perl6
23:43 woosley left #perl6
23:44 colomon @a := @source.map(*.Int)
23:45 jnthn colomon: Yeah, that'd work I guess :)
23:45 Tene colomon: or just ».Int
23:45 jnthn >>. isn't lazy
23:47 colomon You know, it's funny.  I was all about hyper when I started working with Rakudo.  But now I'm just lazy...  ;)
23:48 leprevost left #perl6
23:49 envi joined #perl6
23:49 donri rakudo: say 5 × 2
23:49 p6eval rakudo 6f9116: OUTPUT«===SORRY!===␤Confused at line 22, near "say 5 \x{d7} 2"␤»
23:49 donri Lets use more unicode, "* * *" can be rather confusing/ugly
23:50 donri And *** doesn't even DWIM while *+* etc do
23:50 vmspb left #perl6
23:50 donri I suppose × is easily mistaken for x, though
23:53 jnthn rakudo: my $x = * * *; say $x(2,3)
23:53 pjcj left #perl6
23:53 p6eval rakudo 6f9116: OUTPUT«6␤»
23:54 jnthn rakudo: my $x = ***; say $x(2,3)
23:54 p6eval rakudo 6f9116: OUTPUT«===SORRY!===␤HyperWhatever (**) not yet implemented at line 22, near "*; say $x("␤»
23:54 jnthn Ouch.
23:54 jnthn std:  my $x = ***; say $x(2,3)
23:54 p6eval std 625303c: OUTPUT«[31m===[0mSORRY![31m===[0m␤Bogus term at /tmp/qLLvsHIgUb line 1:␤------> [32mmy $x = ***[33m⏏[31m; say $x(2,3)[0m␤Parse failed␤FAILED 00:01 121m␤»
23:54 jnthn std:  my $x = *+*; say $x(2,3)
23:54 p6eval std 625303c: OUTPUT«ok 00:01 122m␤»
23:54 jnthn Hmm. :)
23:55 donri rakudo: say (* **)(2,3)
23:55 p6eval rakudo 6f9116: OUTPUT«===SORRY!===␤Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 22␤»
23:55 plobsing rakudo: my &*** = * * *; ***(2, 3)
23:55 p6eval rakudo 6f9116: OUTPUT«===SORRY!===␤HyperWhatever (**) not yet implemented at line 22, near "*(2, 3)"␤»
23:56 donri rakudo: say (1,2).map: * **
23:56 p6eval rakudo 6f9116: OUTPUT«===SORRY!===␤HyperWhatever (**) not yet implemented at line 22, near ""␤»
23:56 donri rakudo: say (1,2).map: ** *
23:56 p6eval rakudo 6f9116: OUTPUT«===SORRY!===␤HyperWhatever (**) not yet implemented at line 22, near " *"␤»
23:57 donri rakudo: say (* *2)(3)
23:57 p6eval rakudo 6f9116: OUTPUT«6␤»

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

Perl 6 | Reference Documentation | Rakudo