Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2012-06-13

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:04 skids joined #perl6
00:08 adu joined #perl6
00:11 adu .u 1
00:11 phenny U+0031 DIGIT ONE (1)
00:17 adu what does // mean?
00:20 diakopter defined-or
00:20 diakopter use the first if it's defined
00:28 replore joined #perl6
00:55 fgomez joined #perl6
00:59 wolfman2000 joined #perl6
01:00 telex joined #perl6
01:09 scott_ joined #perl6
01:10 tyatpi joined #perl6
01:24 Khisanth joined #perl6
01:48 [Coke] .u fdd0
01:48 phenny U+FDD0 (No name found)
02:11 tokuhiro_ joined #perl6
02:12 spaceships joined #perl6
02:30 adu how do you convert a string into a 'List' of characters?
02:30 sorear .comb
02:30 sorear with no arguments
02:31 adu nr: say "dlrow olleh".comb.reverse.join
02:31 p6eval rakudo 684fd2, niecza v18-7-ga660099: OUTPUT«hello world␤»
02:31 fgomez joined #perl6
02:31 adu that's good
02:31 sorear nr: say "dlrow olleh".flip # fwiwi
02:31 adu that's fun :)
02:31 p6eval rakudo 684fd2, niecza v18-7-ga660099: OUTPUT«hello world␤»
02:31 sorear fwiw
02:32 adu oh I missed that
02:33 adu I've been neglecting learning the rest of this lang
02:33 adu focusing too much of regexes
02:33 sorear this lang is huge.
02:34 adu but smaller than C++
02:34 adu I like that
02:34 sorear there's a great deal that's left unsaid in the specs; I speculated once that after it was rewritten in language laywerese it would come out bigger than C++
02:35 adu hmm, are you saying perl6 is ambiguous?
02:36 [Coke] anything not specified is like perl5
02:37 adu I was thinking of parsing $/.prematch.flip forwards rather than parsing $/.prematch backwards, is that possible?
02:38 sorear possible, sure
02:54 colomon sorear: I'm really regretting upgrading mono on my Mac, it seems to have forgotten everything it knows.
02:55 colomon sorear: the good news is, my TuneReminder GTK script is running fine for me on Windows.
02:56 colomon afk # bedtime
03:05 vlixes left #perl6
03:28 pochi joined #perl6
03:28 Exodist joined #perl6
03:29 infosophy joined #perl6
03:29 mattp_ joined #perl6
03:29 sorear joined #perl6
03:29 pyrimidine joined #perl6
03:31 xinming joined #perl6
03:34 dalek niecza/non-bootstrap: 4166e85 | sorear++ | lib/ (7 files):
03:34 dalek niecza/non-bootstrap: Actions pt 3
03:34 dalek niecza/non-bootstrap: review: https://github.com/sorear/niecza/commit/4166e851b5
03:34 mattp_ joined #perl6
03:36 diakopter sorear: that's a big diff :)
03:38 sorear Ugly, too.
03:45 quietfanatic joined #perl6
03:45 adu joined #perl6
03:47 aloha joined #perl6
03:48 xinming joined #perl6
03:50 mattp_ joined #perl6
04:00 quietfanatic I can never remember what flattens by default and what doesn't.  Does (<a b>, <c d>) flatten?
04:01 quietfanatic okay looks like it dies
04:01 quietfanatic *does
04:01 quietfanatic haha
04:02 Telgalizer joined #perl6
04:03 sorear generally speaking, while list producers can set a 'flatten' hint on substructures, all actual flattening is deferred to the list consumer
04:03 sorear r: say (<a b>, <c d>).perl
04:03 p6eval rakudo 684fd2: OUTPUT«(("a", "b"), ("c", "d"))␤»
04:03 sorear r: .perl.say for (<a b>, <c d>) # add a list consumer
04:03 p6eval rakudo 684fd2: OUTPUT«"a"␤"b"␤"c"␤"d"␤»
04:04 sorear r: .perl.say for (<a b>, <c d>).lol # add a special consumer that ignores the hints and never flattens
04:04 p6eval rakudo 684fd2: OUTPUT«$("a", "b")␤$("c", "d")␤»
04:08 quietfanatic huh
04:08 quietfanatic quite contextual.
04:15 Caldrin joined #perl6
04:37 kaleem joined #perl6
04:43 crab2313 joined #perl6
04:44 fgomez joined #perl6
04:45 fgomez joined #perl6
04:52 fgomez joined #perl6
04:55 geekosaur joined #perl6
05:01 fgomez joined #perl6
05:07 birdwindupbird joined #perl6
05:13 fgomez joined #perl6
05:14 fgomez joined #perl6
05:19 kurahaupo left #perl6
05:30 masak morning, meatbrains.
05:30 masak quietfanatic! \o/
05:30 sorear o/ masak
05:31 moritz \o
05:31 * masak breaks the night's fast
05:48 kaleem joined #perl6
05:52 araujo joined #perl6
06:04 Khisanth joined #perl6
06:16 * moritz fastens the breaks
06:18 masak ...sounds like a mixed metaphor.
06:18 masak before you know it, you'll be hitting the seatbelts, too. :P
06:20 moritz I need some outlet for my agressions after all. Why not seatbelts? :-)
06:21 masak heh :)
06:26 xinming joined #perl6
06:27 diakopter 'night #
06:27 wtw joined #perl6
06:28 moritz good night diakopter
06:28 masak bom dia, kopter.
06:39 fhelmberger joined #perl6
06:46 dalek niecza/non-bootstrap: 2fbcce5 | sorear++ | lib/ (7 files):
06:46 dalek niecza/non-bootstrap: Actions pt 4
06:46 dalek niecza/non-bootstrap: review: https://github.com/sorear/niecza/commit/2fbcce574b
06:55 masak TimToady: every time you leak details about your radical lookup program, I get an irresistible urge to get my hands on it. have you considered making it public someday?
06:55 ynot perl6: my $foo = 2.718281828459045235360287471352662​497757247093699959574966967627724; say $foo
06:55 p6eval niecza v18-7-ga660099: OUTPUT«2.7182818284590455␤»
06:55 p6eval ..pugs: OUTPUT«2.71828182845904523​53602874713526624977572␤»
06:55 p6eval ..rakudo 684fd2: OUTPUT«2.718281828459046067791​859968565404415130615234375␤»
06:56 kresike joined #perl6
06:56 kresike hello all you happy perl6 people
06:56 masak kresike! \o/
06:56 kresike masak, o/
06:57 masak TimToady: if you aren't considering that, I will likely end up building something like that myself.
06:57 masak TimToady: oh, how kanji-as-opposed-to-hanzi is your db?
06:57 masak TimToady: also, have you classified http://en.wikipedia.org/wiki/Biang ? :P
06:59 ynot Hm. rakudo prints this Rat with 50 places, 34 of which are crap.
06:59 sorear I see only radicals I know there, and that's saying something. :)
07:00 sorear ynot: that's not a Rat
07:00 sorear if the denominator would be more than 2**63, it becomes a Num instead
07:00 masak ynot: new here? if so, welcome.
07:00 ynot perl6: my $foo = 2.718281828459045235360287471352662​497757247093699959574966967627724; say $foo.WHAT
07:00 p6eval niecza v18-7-ga660099: OUTPUT«Num()␤»
07:00 p6eval ..pugs: OUTPUT«Rat␤»
07:00 p6eval ..rakudo 684fd2: OUTPUT«Rat()␤»
07:00 sorear hurh
07:01 masak perl6: $_ = "XXXX"; if s/YYY/ZZZ/ { say "Naughty" } else { say "Nice" }
07:01 p6eval rakudo 684fd2, pugs: OUTPUT«Naughty␤»
07:01 p6eval ..niecza v18-7-ga660099: OUTPUT«Nice␤»
07:01 * masak is with Niecza here
07:01 sorear did someone change the spec out from under me?
07:01 masak sorear: could you be more specific?
07:01 masak :P
07:01 sorear masak: 1.long......WHAT
07:01 masak Rat()
07:02 masak or a subclass of it, I guess.
07:02 masak like FatRat()
07:03 ynot Hello everybody. I am Martin from ulm.pm :-)
07:03 sorear Welcome to Martin from ulm.pm
07:03 sorear I have not been to Ulm
07:04 masak ynot++ # welcome!
07:04 sorear moritz might have
07:04 masak ah, .de
07:04 sorear are you at yapc?
07:04 brrt joined #perl6
07:05 ynot Yes, though my talk has not been confirmed yet.
07:05 sorear Doesn't it start, like, tomorrow?
07:05 masak "Ulm" sounds like the name a city would get if someone was asked to name it, made a hesitating sound, and the hesitation was interpreted as an answer.
07:06 ynot Ah , misunderstanding; I mean yapc::eu.
07:06 * masak is not sure he has submitted talks to YAPC::EU o.O
07:06 masak looking into that now.
07:06 masak ynot++ # indirectly reminding me
07:06 sorear ynot: ...
07:07 sorear ynot: I MEANT yapc::eu, but mentally confused which one was going on currently
07:08 masak that's why we shouldn't refer to individual YAPCs as "YAPC". duh! :)
07:08 ynot yapce::eu starts Aug 20
07:09 * sorear totally intends to visit at least one yapc in the next 12 mos
07:09 masak YAPC::EU 2012 will be teh awesome.
07:09 sorear I will not be there
07:11 masak :/
07:11 masak sorear: I have a feeling someday we'll meet in Cartesian space.
07:12 masak sorear: when do you finish your studies? I'll set an alarm and recruit you. if $company (against all odds) doesn't want to hire you, I'll just form a startup and hire you myself.
07:14 sorear masak: after way too much waffling and making of pro/con lists, I've semi-decided to drop out; I've already secured a gig with someone from sandiego.pm
07:15 sorear a lot of what's on my mind now is taking control of as much of my life as I can
07:15 sorear this includes applying for a passport
07:15 sorear it'll be a miracle if that clears in two months
07:17 brrt you don't have a passport? :-o
07:17 ynot perl6: my $foo = 2.718281828459045235360287471352662​497757247093699959574966967627724; say $foo.perl
07:17 p6eval rakudo 684fd2: OUTPUT«67957045711476130884007186783816562443931​1773424989893741741906931/2500000000000000000000​00000000000000000000000000000000000000000000␤»
07:17 p6eval ..pugs: OUTPUT«\6795704571147613088400718678381656244393​11773424989893741741906931/250000000000000000000​000000000000000000000000000000000000000000000␤»
07:17 p6eval ..niecza v18-7-ga660099: OUTPUT«2.7182818284590455e0␤»
07:18 masak sorear: oh! dropping out. I don't imagine you'll be making such a decision lightly, no.
07:18 masak sorear: congrats on the gig. hope it's a good one :)
07:18 sorear brrt: I've been asking for one for years.  I'm tired of doing things on other people's schedules.
07:19 ynot amazing.  rakudo stores all those digits.  It must be stringification that inserts the crap digits.
07:19 brrt .....
07:19 bonsaikitten sorear: I find that concept quite amazing. I can't remember not having a passport ... although I've had some fun with bureaucrats :)
07:19 masak sorear: why would it take two months to get a passport?
07:19 brrt i'm legally obliged to have a passport :-o
07:20 brrt i find it hard to imagine you couldn't get one
07:20 sorear bonsaikitten: are you 21?
07:20 * shachaf has three passports!
07:20 bonsaikitten sorear: a tiny bit older, but as I've never lived in the country that prints my passport my perspective is skewed
07:20 shachaf sorear: (Hi!)
07:20 masak my passport will expire next year. I imagine I will get a new one quickly. living without one would be worse than postponing getting a fresh one.
07:21 masak there's a nice mood here this morning. good going.
07:21 sorear masak: I've heard that it usually takes quite a few weeks.  US border enforcement is made of ridiculous.
07:22 sorear shachaf: Hi!
07:22 shachaf I know someone who got a US passport within a week, though he had to work at it.
07:23 masak sorear: I've heard the "made of ridiculous" part. but a few weeks sounds more reasonable than months.
07:24 masak I once got a Russian visa in record time. I had to work at it too.
07:25 masak it involved using a courier service to ship my passport between cities the afternoon before the flight.
07:25 masak (and that was the easy part)
07:26 shachaf sorear: Where are you passporting to once you get a passport?
07:26 ynot masak: and you made it to the flight? whow
07:27 sorear shachaf: seems to be Frankfurt this year.
07:28 shachaf YAPC?
07:28 sorear yes.
07:28 * sorear wonders how much German ey can learn in 9 weeks
07:29 bonsaikitten sorear: if you stay in the tourist zones you can get along with english
07:29 masak ynot: yes. it was a nice trip, too. well worth it.
07:29 brrt germans speak english well enough in general
07:30 shachaf brrt: Going to a country where the main language is non-English would seem like an *opportunity* to learn another language.
07:30 masak indeed.
07:30 masak unless that country is Sweden.
07:30 brrt why is sweden exempt?
07:30 masak because if people notice you're a foreigner here, they'll switch to English out of respect.
07:31 masak and people's spoken English is generally good enough that it's energetically unfavorable to keep speaking Swedish.
07:31 shachaf That's why you should go to Finland instead. :-)
07:31 brrt oh, but they'll do that in the netherlands as well, except if you look either polish or like a muslim
07:31 brrt in which case unfortunately the respect has left my country :-(
07:31 masak I wonder if Swedish will darwiniate itself away in the long run.
07:32 brrt what is the long run?
07:32 brrt how long is that, i mean? :-)
07:32 masak I don't know. a century?
07:32 masak three?
07:33 brrt hmm, thats fair
07:33 sorear masak: I cracked a joke once that in 150 more years, Japanese will be SOV English with a syllabary instead of an alphabet
07:33 masak there's an association here called "The Swedish Language Defense", most of whose opinions I don't share. but it's interesting to see them work.
07:33 brrt i suspect a lot of smaller languages have all but disapeared in 300 years
07:33 masak sorear: sounds much like how I percieve Yiddish.
07:34 masak perceive*
07:34 bonsaikitten all just german dialects
07:34 shachaf Yiddish is hilarious.
07:34 shachaf (So is Dutch.)
07:34 bonsaikitten so they'll end up as part of New German ;)
07:34 brrt whats so hilarious about dutch, i'm curious
07:34 brrt :-)
07:34 shachaf It reads like someone who's really bad at English trying desperately to speak it.
07:35 bonsaikitten brrt: words like "te huur"
07:35 LoRe joined #perl6
07:35 sorear dutch: the one language I can read and understand despite never having studied
07:35 ynot but they would teach Swedish to somebody not speaging English, would they not?
07:35 bonsaikitten well, that's only funny for germans
07:35 brrt yes, why is it funny
07:36 ynot what does it mean?
07:36 bonsaikitten Hure = hooker/prostitute ... if a house is "te huur" (for rent) the germans parse it as "house prostituting itself"
07:36 brrt ah, i see
07:37 * bonsaikitten is half belgian
07:37 bonsaikitten helps to know the languages ...
07:37 brrt anyway, for your german entertainment: http://www.youtube.com/watch?v=aJiLZpDfevI
07:37 brrt as well as for your dutch: http://www.youtube.com/watch?v=5i0duYakqLY
07:38 brrt bonsaikitten: which half, and which half not?
07:38 bonsaikitten brrt: the other halves are luxemburgian and austrian
07:38 bonsaikitten I'm a first-gen european
07:39 brrt very much with such genetics
07:39 brrt sorear: the first video is said to be good for the understanding of german pronunciation
07:40 bonsaikitten if there's ever a european passport available I'll take it
07:43 brrt also, wallon or flemish?
07:43 masak bonsaikitten: oh, I had never considered the etymological proximity between "to whore" and "to hire" before. interesting.
07:44 ynot talking about programming languages, does anybody know another language besides perl6 embedding limited precision rationals in a general numeric type?
07:44 bonsaikitten brrt: if I have to choose flemish, but I could point at the german minority in the east ;)
07:45 brrt ah, i see, so neither :-)
07:45 brrt 2 towns or so
07:47 bonsaikitten well, I've just lived in belgium (near bruxelles) for a long time
07:51 c1sung joined #perl6
08:00 * masak just submitted a "Macros in Rakudo" talk to YAPC::EU
08:01 brrt where is YAPC::EU?
08:01 sorear Frankfurt, Germany
08:01 brrt ah, obviously
08:01 brrt :-)
08:01 sorear http://act.yapc.eu/ye2012/
08:03 moritz they still haven't accepted (or rejected) my talk :/
08:03 bonsaikitten hmm, I might just be near Frankfurt at that date
08:06 masak there should be a simple verb meaning "accept or reject".
08:06 masak "processed" I guess works.
08:07 brrt hmm, its an embarrasing question, but what does it cost?
08:07 brrt i have seen plenty of 'fun conferences' of which ticket prices where > 300 euro
08:09 moritz much less usually
08:09 moritz regular price: 110 EUR
08:09 moritz reduce price (early bird) 80 EUR
08:09 shachaf Oh, YAPC::NA is going on at this very moment.
08:09 moritz full-time students: 50 EUR
08:10 moritz corprate tariff: 450 EUR
08:10 brrt ah, i see, thats reasonable
08:13 sergot joined #perl6
08:14 sergot hi o/ o/
08:14 sorear o/ sergot
08:14 tadzik hellio
08:15 masak sergocie! \o/
08:15 masak tadziku! \o/
08:15 brrt o/ sergot
08:16 tadzik \o/
08:16 tadzik today is the last day of ultimate madness
08:17 moritz finals?
08:17 tadzik those will be the sane days
08:17 masak cramming before finals?
08:17 tadzik it's the-two-weeks-before-finals which are completely insane
08:17 moritz project deadlines?
08:17 masak deadlines in general?
08:17 masak procrastinating?
08:18 ynot I just tried to build niecza on an Ubuntu machine from git. Had to patch Serialize.cs to make it compile.
08:18 BaggioKwok joined #perl6
08:19 sorear ynot: what version of mono?  what was the patch?
08:19 ynot Mono JIT compiler version 2.4.4 (Debian 2.4.4~svn151842-1ubuntu4)
08:20 sorear I'm impressed
08:20 sorear I have never tested Niecza on anything older than 2.6.7
08:20 sorear and the last few releases have all been tested on 2.10.x
08:20 sorear I'm amazed it works as far back as 2.4.4
08:20 sorear please share the patch :)
08:21 ynot The patch was about a single method prototype to avoid a default value:
08:21 ynot index 42b7639..06770f5 100644
08:21 ynot --- a/lib/Serialize.cs
08:21 ynot +++ b/lib/Serialize.cs
08:21 ynot @@ -127,10 +127,14 @@ namespace Niecza.Serialization {
08:21 ynot byref[items[or.id]] = or;
08:21 ynot }
08:21 ynot
08:21 ynot +        public SerUnit LoadUnit(string name) {
08:21 ynot +            return LoadUnit(name, false);
08:21 ynot +        }
08:21 ynot +
08:21 ynot // Loads a single unit from the compiled-data directory.
08:21 ynot // Will throw a ThawException if a stale reference is encountered
08:21 ynot // or other data format error.
08:22 masak thank you. please use a pastebin next time ;)
08:22 ynot oh, I am getting throttled. one moment. please
08:22 ynot I am not used to IRC any more... :-)
08:22 sorear ynot: I've added dozens of default values for v19.  sorry.
08:25 ynot No problem.  A mono update might be due anyway.
08:29 ynot Here is the complete patch if you didn't guess the last 5 lines: http://pastebin.com/HBks2a0g
08:33 tadzik moritz, masak: multiple projects and exams in a single day, few days in a row
08:33 sergot joined #perl6
08:39 masak sounds insane indeed.
08:39 masak best of luck.
08:39 dakkar joined #perl6
08:44 moritz tadzik.success++
08:45 tadzik thanks :)
08:47 masak our as-yet unsolidified threading/events/parallelism champion might want to watch http://vimeo.com/42957952
08:47 sorear n: / <::($_)> /
08:47 p6eval niecza v18-7-ga660099:  ( no output )
08:48 sorear n: / <Moo::($_)> /
08:48 p6eval niecza v18-7-ga660099:  ( no output )
08:50 dalek niecza/non-bootstrap: 3b78bd8 | sorear++ | lib/ (5 files):
08:50 dalek niecza/non-bootstrap: Actions pt 5
08:50 dalek niecza/non-bootstrap: review: https://github.com/sorear/niecza/commit/3b78bd804a
09:13 moritz https://github.com/moritz/perlgeek.de/b​lob/HEAD/source/blog-source-en/perl-6/2​012-news-in-rakudo-2012-06-release.txt # draft blog post
09:13 moritz to be published around the rakudo 2012.06 release
09:19 sorear sleep&
09:19 kaleem joined #perl6
09:22 masak moritz++ # https://github.com/moritz/perlgeek.de/b​lob/HEAD/source/blog-source-en/perl-6/2​012-news-in-rakudo-2012-06-release.txt
09:34 * moritz hopes that his blog's protection against dates in the future has not bitrotten :-)
09:36 brrt good post, moritz++
09:45 cognominal joined #perl6
09:46 alvis` joined #perl6
09:50 cognominal_ joined #perl6
09:51 sergot moritz++
09:56 cognominal___ joined #perl6
10:01 PacoAir joined #perl6
10:10 moritz r: sub f() { }; say &f.^methods
10:10 p6eval rakudo 684fd2: OUTPUT«No such method 'gist' for invocant of type 'Sub'␤  in method gist at src/gen/CORE.setting:4598␤  in sub say at src/gen/CORE.setting:6972␤  in block <anon> at /tmp/mx6CJRfkX5:1␤␤»
10:11 moritz r: sub f() { }; say &f.^methods>>.name
10:11 p6eval rakudo 684fd2: OUTPUT«(signal SEGV)»
10:11 moritz meh.
10:11 moritz r: sub f() { }; say &f.namespace
10:11 p6eval rakudo 684fd2: OUTPUT«No such method 'namespace' for invocant of type 'Sub'␤  in block <anon> at /tmp/aE6IaYfo0T:1␤␤»
10:11 moritz r: sub f() { }; say &f.package
10:11 p6eval rakudo 684fd2: OUTPUT«GLOBAL()␤»
10:13 masak what's the term for a subset that's not necessarily a proper subset?
10:13 moritz subset
10:14 masak what if you want to explicitly disambiguate?
10:14 moritz then you use 'subset' vs. 'proper subset'
10:14 masak what if simple usage isn't disambiguation enough?
10:14 masak I'd like to put a word in parentheses before "subset".
10:15 moritz then you clarify the terms to the user before using it
10:15 masak so far I have "(non-strict)"
10:15 moritz or you can say (subset) type
10:15 masak maybe I should write "(no necessarily proper)" instead.
10:15 masak not*
10:16 moritz that certainly works, though it's a bit bulky
10:16 moritz .u subset
10:16 phenny U+2282 SUBSET OF (⊂)
10:16 moritz .u proper subset
10:16 phenny moritz: Sorry, no results for 'proper subset'.
10:16 masak I killed my darling and went parenthesesless.
10:17 moritz .u 2286
10:17 phenny U+2286 SUBSET OF OR EQUAL TO (⊆)
10:17 jnthn improper subset :P
10:17 moritz .u ⫘
10:17 phenny U+2AD8 SUPERSET BESIDE AND JOINED BY DASH WITH SUBSET (⫘)
10:17 moritz impoverisched subset
10:18 moritz s/c//
10:21 * masak .oO( intoxicated subset )
10:21 * masak .oO( "nah, he's just German" )
10:21 moritz :-)
10:29 snearch joined #perl6
10:35 brrt moritz: what is 'troy' in german?
10:36 brrt nothing, according to google translate anyway
10:46 skids joined #perl6
10:48 JimmyZ joined #perl6
10:52 Chillance joined #perl6
10:58 pmurias joined #perl6
11:08 felher moritz++ , jnthn++ #blog posts :)
11:09 skids joined #perl6
11:17 kaleem joined #perl6
11:31 moritz brrt: Troja, if you're talking about the city :-)
11:32 brrt no, i'm not :-), i'm talking about the fanta4 song 'troy', which i cannot parse
11:33 ynot can you give some context? troy as in troy weight?
11:34 moritz brrt: ah, it's phonetically similar to "treu"
11:34 brrt ah, i see
11:34 moritz which means faithful, devoted, loaly, true
11:34 brrt oh, thats obvious
11:34 brrt it sounds like 'trouw' which is the same thing in duthc
11:34 brrt thanks
11:34 brrt would have never guessed it
11:37 moritz well, it's nearly impossible to understand "smart" stuff in foreign languages (unless you know them very well)
11:37 masak '"smart" stuff'?
11:38 moritz intentially mis-spelling words, substituting words with a totally unrelated meaning but similar phonetics etc.
11:39 masak oh, I love those things.
11:39 moritz but very hard for a foreign speaker
11:40 brrt yes, clearly
11:45 cognominal___ r: say '' ~~ /  $d /;
11:45 p6eval rakudo 684fd2: OUTPUT«=␀␀␀=␀␀␀=␀␀␀S␀␀␀O␀␀␀R␀␀␀R␀␀␀Y␀␀␀!␀␀␀=␀␀​␀=␀␀␀=␀␀␀␤␀␀␀V␀␀␀a␀␀␀r␀␀␀i␀␀␀a␀␀␀b␀␀␀l␀␀␀e␀␀␀ ␀␀␀$␀␀␀d␀␀␀ ␀␀␀i␀␀␀s␀␀␀ ␀␀␀n␀␀␀o␀␀␀t␀␀␀ ␀␀␀d␀␀␀e␀␀␀c␀␀␀l␀␀␀a␀␀␀r␀␀␀e␀␀␀d␀␀␀␤
11:46 moritz eeks
11:46 cognominal___ weird.  It happened to me when I type $d instead  $<d> in a regex.
11:46 cognominal___ at least, here it says sorry  :)
11:47 moritz well, here it adds lots of null bytes between the characters of the 'SORRY'
11:48 moritz .u ␀
11:48 phenny U+2400 SYMBOL FOR NULL (␀)
11:48 ynot what is the perl6 equivalent of perl5: binmode STDOUT, ':utf8'; ?
11:48 moritz ynot: ;
11:48 moritz ynot: that's the default, you don't need to do anything to get it
11:49 cognominal___ oh it does so as well in my computer, the null were more conspcuous so I did not notice the error message.
11:49 * moritz submits rakudobug
11:51 ynot moritz: good point, thanks.
11:52 masak wtf
11:52 moritz ynot: I guess at some point we want to allow smething like $*OUT.encoding = 'Latin-1'
11:52 masak cognominal++ moritz++
11:52 crab2313 joined #perl6
11:52 moritz currently if you want binary IO, you use $*OUT.write($some-Buf-here)
11:53 moritz oh, I think I even know what's going on
11:53 moritz some encoding f*ckup from UCS-4 strings
11:53 ynot I think I can live with either binary or utf8 without a plethora of other encodings.
11:54 moritz ynot: me too, which is why I haven't done anything about it yet :-)
11:54 pmurias sorear: you're comming to YAPC::EU?
12:01 masak didn't seem like that in the backlog. http://irclog.perlgeek.de/​perl6/2012-06-13#i_5719859
12:04 ynot another question is how one should deal with encoded text on the command line or in %ENV.  I wonder whether this should be locale-dependent or not.
12:04 moritz currently it's all UTF-8, afaict
12:04 moritz fwiw so far nobody complained about that, but people did complain when it didn't work when the locales were broken or not set
12:05 moritz if you find a case where it's not UTF-8, please submit a bug report
12:11 mtk joined #perl6
12:11 JimmyZ joined #perl6
12:12 pmurias sorear: you are attending YAPC::EU?
12:13 masak <masak> didn't seem like that in the backlog. http://irclog.perlgeek.de/​perl6/2012-06-13#i_571985
12:13 masak pmurias: ^
12:18 brrt makefile is being weird
12:19 brrt ehm, wrong channel
12:19 masak Makefile being weird. news at 11 :)
12:19 moritz makefiles ar weird in this channel too :-)
12:23 ynot long live Stuart Feldman
12:25 moritz well, we don't have much better alternatives, have we?
12:27 ynot moritz: what is a perl program supposed to see in @*ARGS if the calling process has put some non-utf8 text in argv?
12:28 masak hm!
12:28 moritz ynot: that's a good questioni
12:28 masak a very good one.
12:29 masak arguments come in as strings, right?
12:29 masak which means that they have already been decoded.
12:29 moritz maybe a  Failure.new(payload => X::Buf::Decode.new(orig => $some_buf))
12:29 masak I think I'd expect to get a decoding error.
12:29 moritz and if that decoding error is smart enough, you even get access to the buffer it failed to decode
12:29 ynot on startup or on ARGS access?
12:29 moritz ynot: on ARGS access
12:30 moritz ynot: that's a good use case for unthrown exceptions
12:30 moritz ie you check for them, and if you have one you can access its properties, but if you treat it like a normal value it goes BOOM (with the original error message)
12:31 moritz r: my $failure = +'1.foo'; say 'alive'
12:31 p6eval rakudo 684fd2: OUTPUT«alive␤»
12:31 moritz r: my $failure = +'1.foo'; say $failure
12:31 p6eval rakudo 684fd2: OUTPUT«Cannot convert string to number: radix point must be followed by one or more valid digits in '1.⏏foo' (indicated by ⏏)␤  in method gist at src/gen/CORE.setting:9441␤  in sub say at src/gen/CORE.setting:6972␤  in block <anon> at /tmp/6VrVC3Y_nc:1␤␤»
12:31 moritz r: my $failure = +'1.foo'; say $failure.perl
12:31 p6eval rakudo 684fd2: OUTPUT«Failure.new(exception => X::Str::Numeric.new(source => "1.foo", pos => 2, reason => "radix point must be followed by one or more valid digits"))␤»
12:31 ynot neat :-)
12:32 moritz r: my $failure = +'1.foo'; say $failure.exception.source
12:32 p6eval rakudo 684fd2: OUTPUT«1.foo␤»
12:32 moritz that's our way to not drop information eary
12:32 moritz *early
12:34 masak moritz++
12:34 moritz I'm somewhat sceptical about wide use of unthrown exceptions, but this is actually a good use case
12:35 brrt left #perl6
12:35 masak aye. same.
12:36 masak the video I posted earlier mentioned parallel operations and something called ExceptionAggregate.
12:40 ynot I'll have to think about it; it sounds useful but your first example (the string to number conversion) did not strike me as essential.
12:41 pmichaud good morning, #perl6
12:42 ynot good afternoon, pmichaud :-)
12:42 moritz good am, pm
12:51 mhasch joined #perl6
12:52 * mhasch is back, has been ynot just before
12:53 mhasch strange how NickServ insisted my nick was taken yesterday and now let me register it.
12:54 pmichaud wb, mhasch/ynot
12:54 moritz ETOOMANYNICKS
12:55 pmichaud r: my $failure = +'1.foo';  $failure.defined || say $failure   # just curious
12:55 p6eval rakudo 684fd2: OUTPUT«Failure.new(exception => X::Str::Numeric.new(source => "1.foo", pos => 2, reason => "radix point must be followed by one or more valid digits"))␤»
12:55 pmichaud hmmmmm.
12:56 pmichaud okay, I can live with that.
12:57 moritz it allows you to write
12:57 pmichaud r: my $failure = +'1.foo';  $failure.defined || say $failure + 3
12:57 p6eval rakudo 684fd2: OUTPUT«3␤»
12:57 pmichaud wfm
12:57 moritz r: say +'1.foo' // 3
12:57 p6eval rakudo 684fd2: OUTPUT«3␤»
12:57 pmichaud sure, I was just checking that after testing for definedness the exception didn't get thrown on subsequent uses
12:58 pmichaud I guess I should start heading to the yapc::na venue
12:58 moritz r: say (my $ex = +'1.foo') // 3; say $ex
12:58 p6eval rakudo 684fd2: OUTPUT«3␤Failure.new(exception => X::Str::Numeric.new(source => "1.foo", pos => 2, reason => "radix point must be followed by one or more valid digits"))␤»
12:59 moritz I still don't know if that's actually a good idea
12:59 moritz but I can certainly live with it
13:03 * pmichaud looks at RT #113614  (nulls / ucs4 error message)  and .....   o_O
13:03 pmichaud that's just... bizarre.
13:04 pmichaud oh!  I bet I know what's happening
13:04 Facefox joined #perl6
13:04 moritz pmichaud: did you mean "\0\0\0o\0\0\0_\0\0\0O"? :-)
13:04 mhasch I'd prefer if the exception was just thrown right away in the case of conversion errors.
13:04 Facefox joined #perl6
13:05 pmichaud I think I meant "o\0\0\0_\0\0\0O\0\0\0" then.
13:05 moritz oh right :-)
13:05 Facefox joined #perl6
13:06 Facefox joined #perl6
13:06 pmichaud mhasch: I think the exception is thrown immediately if "use fatal" is in effect.
13:06 pmichaud r: say +"1.foo"; 1
13:06 p6eval rakudo 684fd2: OUTPUT«Cannot convert string to number: radix point must be followed by one or more valid digits in '1.⏏foo' (indicated by ⏏)␤  in method gist at src/gen/CORE.setting:9441␤  in sub say at src/gen/CORE.setting:6972␤  in block <anon> at /tmp/Yz1MH9GVRC:1␤␤»
13:06 pmichaud oops
13:06 pmichaud r:  my $x = +"1.foo"; say 'alive';
13:06 p6eval rakudo 684fd2: OUTPUT«alive␤»
13:06 moritz r: use fatal; my $ex = +'1.f00'
13:06 p6eval rakudo 684fd2: OUTPUT«Cannot convert string to number: radix point must be followed by one or more valid digits in '1.⏏f00' (indicated by ⏏)␤  in block <anon> at src/gen/CORE.setting:9454␤  in method Numeric at src/gen/CORE.setting:3629␤  in sub prefix:<+> at src/gen/CORE.setting:2285␤ …
13:06 pmichaud r:  use fatal; my $x = +"1.foo"; say 'alive';
13:06 p6eval rakudo 684fd2: OUTPUT«Cannot convert string to number: radix point must be followed by one or more valid digits in '1.⏏foo' (indicated by ⏏)␤  in block <anon> at src/gen/CORE.setting:9454␤  in method Numeric at src/gen/CORE.setting:3629␤  in sub prefix:<+> at src/gen/CORE.setting:2285␤ …
13:07 Facefox joined #perl6
13:07 * moritz not happy with the backtrace
13:07 Facefox joined #perl6
13:08 moritz actually it's not that bad
13:09 moritz one thing I'd really like is to mark the mainline in some unambiguous way
13:10 moritz so that the backtrace can say 'in mainline' with confidence
13:11 pmichaud or, alternatively, maybe double-indent the core.setting locations
13:11 spaceships joined #perl6
13:11 pmichaud to help the mainline stand out
13:11 pmichaud or, I wonder if there would be a way for us to tag that <anon> block
13:12 moritz that's what I mean with 'mark'
13:12 moritz I think
13:12 spaceships joined #perl6
13:14 Psyche^ joined #perl6
13:15 pmichaud maybe the code that handles {YOU_ARE_HERE} can do something more clever.
13:15 pmichaud like, encapsulate in a named sub and invoke it.
13:15 pmichaud src/Perl6/Actions.pm:3511 ish
13:16 moritz r: say {YOU_ARE_HERE}
13:16 p6eval rakudo 684fd2: OUTPUT«␤»
13:16 moritz r: say {YOU_ARE_HERE}, 1, 2, 3
13:16 p6eval rakudo 684fd2: OUTPUT«123␤»
13:18 mhasch forgive my ignorance, but what is {YOU_ARE_HERE} supposed to do?
13:19 pmichaud it marks the point in a setting where the user's mainline code is to be run
13:20 moritz ie nothing you ever need as a user :-)
13:20 pmichaud well, unless you're a user writing a new setting :)
13:20 moritz but if you do, {YOU_ARE_HERE} doesn't seem to work either :/
13:21 pmichaud oh, I suspect Rakudo's support for custom settings is still weak, yes.
13:22 moritz note that you can have custom settings which appear between the built-in one and the user code
13:23 pmichaud okay, I definitely need to head to the venue.  bbl
13:23 moritz have fun!
13:23 leprevost joined #perl6
13:44 cognominal_ joined #perl6
13:47 majrmovies joined #perl6
13:48 thou joined #perl6
13:50 * [Coke] yawns.
13:51 stol_ joined #perl6
14:02 pmichaud made it to the venue :)
14:09 kresike bye all
14:11 tokuhiro_ joined #perl6
14:11 brrt joined #perl6
14:18 daxim joined #perl6
14:21 majrmovies joined #perl6
14:24 [Coke] pmichaud: is there hacking time post-conf?
14:28 PerlJam lightning ads?
14:29 moritz eiro, cognominal_ is there a Strasbourg.pm? If not, who organizes fpw2012?
14:30 cognominal___ joined #perl6
14:32 eiro moritz, i'm Strasbourg.pm. fpw2012 is organized by http://mongueurs.net/, http://www-aius.u-strasbg.fr/, http://strasbourg.linuxfr.org/
14:34 moritz eiro: ok. Then we'll use Strasbourg as the next release name for rakudo :-)
14:34 eiro \o/ thanks
14:39 dalek rakudo/nom: 70fd758 | moritz++ | docs/announce/2012.06:
14:39 dalek rakudo/nom: [release] rename 2012.06 to Strasbourg
14:39 dalek rakudo/nom:
14:39 dalek rakudo/nom: in accord with PerlJam++, our release manager.
14:39 dalek rakudo/nom: We will use Frankfurt as a release name closer to YAPC::EU 2012 (August 2012)
14:39 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/70fd75874a
14:39 dalek rakudo/nom: 1e47735 | moritz++ | docs/announce/2012.06:
14:39 dalek rakudo/nom: [announce] start to collect features for the release announcement
14:39 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/1e47735e52
14:45 spaceships joined #perl6
14:46 tokuhiro_ joined #perl6
14:49 bluescreen10 joined #perl6
15:08 [Coke] nr: my ($a,$b,$c) = "  24:32:23.123" ~~ /(\d\d) ':' (\d\d) ':' (\d\d\.\d+)/ ; say ($a,$b,$c)
15:08 p6eval niecza v18-7-ga660099: OUTPUT«#<match from(2) to(4) text(24) pos([].list) named({}.hash)> #<match from(5) to(7) text(32) pos([].list) named({}.hash)> #<match from(8) to(14) text(23.123) pos([].list) named({}.hash)>␤»
15:08 p6eval ..rakudo 684fd2: OUTPUT«q[24:32:23.123]␤ 0 => q[24]␤ 1 => q[32]␤ 2 => q[23.123]␤ Nil Nil␤»
15:09 [Coke] nr: my ($a,$b,$c) = "  24:32:23.123" ~~ /(\d\d) ':' (\d\d) ':' (\d\d\.\d+)/ ; say (~$a,~$b,~$c)
15:09 p6eval niecza v18-7-ga660099: OUTPUT«24 32 23.123␤»
15:09 p6eval ..rakudo 684fd2: OUTPUT«24:32:23.123  ␤»
15:10 [Coke] nr: my ($a,$b,$c) = ("  24:32:23.123" ~~ /(\d\d) ':' (\d\d) ':' (\d\d\.\d+)/) ; say (~$a,~$b,~$c)
15:10 p6eval niecza v18-7-ga660099: OUTPUT«24 32 23.123␤»
15:10 p6eval ..rakudo 684fd2: OUTPUT«24:32:23.123  ␤»
15:14 [Coke] nr: my ($a,$b,$c) = ("  24:32:23.123" ~~ /(\d\d) ':' (\d\d) ':' (\d\d\.\d+)/) ; say (~$a,~$b,~$c)
15:14 p6eval niecza v18-7-ga660099: OUTPUT«24 32 23.123␤»
15:14 p6eval ..rakudo 1e4773: OUTPUT«24:32:23.123  ␤»
15:14 [Coke] whoops on that last one.
15:15 moritz rakudo doesn't flatten out match objects
15:15 moritz hence everything is in $a
15:15 masak who's right?
15:15 moritz yes :-)
15:15 masak (dang) :)
15:16 masak I like flattening, because it feels like Perl 5.
15:16 masak but it feels like a tiger trap somehow.
15:16 * moritz doesn't like flattening, because it causes so much confusion
15:19 majrmovies joined #perl6
15:20 ggoebel joined #perl6
15:22 masak troo.
15:22 [Coke] When used as an array, a Match object pretends to be an array of all its positional captures. Hence
15:22 [Coke] (S05)
15:23 [Coke] so, how can I use the result of that ~~ as an array?
15:23 masak was just about to ask that.
15:23 moritz you [0] index into it
15:23 [Coke] in the meantime, I'm left with: https://gist.github.com/2924735
15:23 moritz or call .list
15:23 masak "when used as an array" sounds a little like wantarray think to me.
15:23 moritz masak: not at all
15:23 masak or what moritz said.
15:24 moritz masak: it merely means that the Match object provides much of the API that Array does
15:24 masak oh, indeed.
15:24 masak yes. I take back the thing about liking flattening.
15:25 masak $/, and the thing coming out of infix:<~~>, should probably act like scalars until asked not to.
15:25 [Coke] (call .list) - https://gist.github.com/2924735 is better, thanks.
15:25 masak that said, it'd be nice if something like `my ($a, $b, $c) = list "foo" ~~ /.../` worked.
15:25 moritz r: say [+] ('01:02:89.1234' ~~ /(\d\d) ':' (\d\d) ':' (\d\d\.\d+)/).list X* 3600, 60, 1
15:25 p6eval rakudo 1e4773: OUTPUT«337263.7674␤»
15:26 PerlJam [Coke]: since you're already using parens, you could have said @(...) instead of (...).list
15:26 masak fsvo 'list'
15:26 PerlJam (I think)
15:26 masak aye.
15:26 masak maybe we need a @: listop ;)
15:28 masak rn: say [+] @('01:02:89.1234' ~~ /(\d\d) ':' (\d\d) ':' (\d\d\.\d+)/) X* 3600, 60, 1
15:28 p6eval rakudo 1e4773, niecza v18-7-ga660099: OUTPUT«337263.7674␤»
15:28 masak \o/
15:28 masak I think I can live with @(), though.
15:29 [Coke] r: say 1*3600 + 2*60 + 89.1234
15:29 p6eval rakudo 1e4773: OUTPUT«3809.1234␤»
15:29 [Coke] I think your math is off.
15:30 [Coke] say 1, 2, 89.1234 X* 3600, 60, 1
15:30 [Coke] r:say 1, 2, 89.1234 X* 3600, 60, 1
15:30 [Coke] r: say 1, 2, 89.1234 X* 3600, 60, 1
15:30 p6eval rakudo 1e4773: OUTPUT«3600 60 1 7200 120 2 320844.24 5347.404 89.1234␤»
15:31 [Coke] r: say 1, 2, 89.1234 Z* 3600, 60, 1
15:31 p6eval rakudo 1e4773: OUTPUT«3600 120 89.1234␤»
15:31 PerlJam well, the math is fine ... it's just the wrong op
15:31 [Coke] that's better.
15:32 moritz erm, yes
15:32 * masak .oO( I didn't order from the Cartesian product menu! )
15:33 [Coke] masak++ moritz++ PerlJam++ : https://gist.github.com/2924735
15:33 [Coke] of course, I spent way too much time on this script, but I am using it for work related perf testing.
15:33 moritz r: say ([\*] 60 xx *)[^10]
15:33 p6eval rakudo 1e4773: OUTPUT«60 3600 216000 12960000 777600000 46656000000 2799360000000 167961600000000 10077696000000000 604661760000000000␤»
15:33 fragrant joined #perl6
15:33 PerlJam [Coke]: That just means you'll spend less time on the next one :)
15:33 fragrant Anyone there?
15:33 masak fragrant: nope :)
15:34 PerlJam fragrant: I'm here, not there
15:34 [Coke] I'm way over here, sorry.
15:34 masak what's the failure mode of get_time? I'd do the match on a separate line and 'or die' it.
15:34 masak I'm not even over here.
15:34 fragrant I didn't like the perl way of passing parameter for a function
15:34 masak sorry to hear that.
15:34 [Coke] fragrant: 5 or 6?
15:34 fragrant I like the C way , void fun(int a, int b) { .. }
15:34 fragrant I don't know about perl6 function parameter
15:34 masak you mean the declaring of parameters?
15:35 fragrant The C way is good
15:35 [Coke] fragrant: this channel is about perl 6. if you don't like perl 5, you might like six.
15:35 masak r: sub foo($a, $b, $c) { say "$a $b $c" }; foo "oh", "hai", "world!"
15:35 p6eval rakudo 1e4773: OUTPUT«oh hai world!␤»
15:35 [Coke] fragrant: you are, of course, welcome to continue using C.
15:35 masak fragrant: does that answer your question?
15:35 * PerlJam isn't sure fragrant even has a question
15:35 masak <fragrant> I don't know about perl6 function parameter
15:36 moritz r: sub j($sep, *@values) { say @values.join($sep) }; j ' ', 'oh', 'hai', 'world!';
15:36 p6eval rakudo 1e4773: OUTPUT«oh hai world!␤»
15:36 masak I read "I don't know about" as "how about"
15:36 [Coke] masak: there is no failure mode at the moment. given this is a one off, not concerned.
15:36 masak fairynough.
15:36 PerlJam [Coke]: you know what they say about one-offs ... (after they've been used in production for a few years ;)
15:37 fragrant Is this the syntax for perl 6?  sub somefunction($a, $b, :$c, :$d, *@e) {
15:37 fragrant must the parameter be there?
15:37 TimToady you can do it the Perl 5 way if you prefer
15:37 PerlJam fragrant: you can specify optionality or give a default value
15:37 TimToady there are also about 3 other ways to declare parameters to a closure
15:37 fragrant perl 5 doesn't have parameter in that way, perl 5 has this, sub somefunction { .... }
15:38 masak fragrant: Perl 6 too.
15:38 PerlJam fragrant: to be fair, Perl 5 has several modules on CPAN that allow you to declare your parameters just like you can in Perl 6
15:38 masak r: sub foo { say @_.fmt }; foo "oh", "hai", "world!"
15:38 p6eval rakudo 1e4773: OUTPUT«oh hai world!␤»
15:38 PerlJam (well, as close as Perl 5 can get to Perl 6)
15:38 TimToady but Perl 6 generalizes @_ into any set of self-declaring parameters
15:38 fragrant I don't like this way, sub somefunction { .... }  , this must be in this C way, sub somefunction() { .... }  , at least
15:38 TimToady that is the normal way in Perl 6 now, so be happy
15:38 masak fragrant: sub somefunction() means no parameters in Perl 6.
15:39 fragrant is sub somefunction { .. } also supported in perl 6?
15:39 moritz as well as does  sub somefunction { ... } which doesn't mention @_, %_ or any of the $^foo or $:foo variables
15:39 PerlJam fragrant: yes
15:39 fragrant That's bad.
15:39 PerlJam fragrant: no it's not
15:39 fragrant Remove that functionality
15:39 moritz r: sub f { }; say f.count
15:39 p6eval rakudo 1e4773: OUTPUT«No such method 'count' for invocant of type 'Nil'␤  in block <anon> at /tmp/CwownkR5NB:1␤␤»
15:39 moritz r: sub f { }; say &f.count
15:39 p6eval rakudo 1e4773: OUTPUT«0␤»
15:39 fragrant That's ambiguous
15:39 moritz r: sub f { }; say &f.arity
15:39 p6eval rakudo 1e4773: OUTPUT«0␤»
15:39 moritz fragrant: no, it's well-defined
15:40 fragrant Then you have to get the parameter value from @_ , that's not a good way
15:40 moritz fragrant: see http://perlcabal.org/syn/S06.html for the full details
15:40 TimToady then don't do it that way
15:40 PerlJam fragrant: it's and *option*
15:40 moritz fragrant: nobody force you to do that if you don't want it
15:40 PerlJam fragrant: you don't *have* to do it that way.
15:40 fragrant passing parameter explicity in this way sub somefunction(a,b,c) { .. } is good
15:40 masak ah, the eternal struggle between the liberal and the straightjackets :)
15:40 TimToady that's the normal way in Perl 6
15:40 moritz fragrant: don't confuse passing arguments and declaring parameters
15:40 fragrant or this, sub somefunction() { .. } for no parameters
15:41 [Coke] fragrant: I get the feeling you're not really listening to what we're telling you.
15:41 * PerlJam suddenly gets a sense of deja vu
15:41 kaare_ joined #perl6
15:41 fragrant moritz: What's the difference?
15:41 masak fragrant: passing params happens at call time.
15:41 [Coke] fragrant: why don't you go read the spec at  http://perlcabal.org/syn/S06.html and then come back and complain once you've done that.
15:41 masak fragrant: declaring params happens when you write the sub.
15:41 PerlJam [Coke]: no, no!  no complaints ;)
15:41 moritz fragrant: declaring parameters is a way to describe what the subroutine wants
15:41 moritz fragrant: passing arguments is what happens when you call that routine
15:41 [Coke] complaints... backed up with a nice argument about why. ;)
15:42 TimToady moritz: to be fair, computing culture doesn't always make the argument/parameter distinction that we do
15:42 TimToady that's kind of a Perl 6 thing
15:42 masak no wai!
15:42 moritz TimToady: that's why I explained instead of just pointing to S06
15:43 masak a subroutine has its parameters declared once. it then gets called 0, 1, or many times. each time there is "parameter passing", that is arguments from the caller bound to formal parameters in the callee.
15:43 fragrant Is this for perl 5 ? http://perlcabal.org/syn/S06.html
15:43 moritz fragrant: no, that's for Perl 6
15:43 masak Perl 6 is the one with the spec.
15:43 masak Perl 5 only has perl :)
15:44 moritz masak: that's not quite fair
15:44 masak oh?
15:44 moritz masak: in many places the p5 docs are more precise than the perl 6 specs
15:44 [Coke] if you'd like to complain about perl 5, this is the wrong channel.
15:44 fragrant moritz: Where is the perl 6 function/sub docs/definition there? http://perlcabal.org/syn/S06.html
15:44 masak moritz: I wasn't implying it's not. but the docs are not spec.
15:45 moritz fragrant: the part that most interests you is probably http://perlcabal.org/syn/S06.​html#Parameters_and_arguments
15:47 mhasch perl5 might be able to approximate the syntax but not the compile-time checks, I reckon.
15:47 fragrant moritz: What's the difference between argument and parameters?
15:47 fragrant Can anyone post the link to check the difference/change from perl 5 to perl6?
15:48 PerlJam mhasch: Perl 5 can do compile time checks too
15:48 masak fragrant: there are quite a few differences. some small, some large.
15:48 masak fragrant: some syntactical, some semantic, some pragmatic.
15:49 fragrant Ok, look at this code, http://www.programmersheaven.com/mb/per​l/87094/87094/writing-a-perl-function/
15:49 PerlJam fragrant: yow that's old.
15:49 masak fragrant: looking at it.
15:49 fragrant Why don't they define or make the sub in this way? sub my_subroutine($x,$y) { $a=$x; $b=$y; }
15:50 masak r: sub my_subroutine { say join " ", @_ }; say "oh", "hai", "world!"
15:50 p6eval rakudo 1e4773: OUTPUT«ohhaiworld!␤»
15:50 fragrant My question is does perl 6 do the same way?
15:50 masak hm.
15:50 masak r: sub my_subroutine { say join " ", |@_ }; say "oh", "hai", "world!"
15:50 p6eval rakudo 1e4773: OUTPUT«ohhaiworld!␤»
15:50 PerlJam fragrant: because that's the "default" way to do it in Perl 5.
15:50 fragrant My question is does perl 6 do the same way?
15:50 PerlJam fragrant: Perl 6 *can* do it very similarly to Perl 5, but it can also do it as you desire.
15:50 TimToady fragrant: we've answered that question 42 times already
15:51 masak fragrant: you can do it the same way as in Perl 5. but the default is to do it the way you prefer.
15:51 fragrant Just remove the old feature of perl 5
15:51 TimToady no
15:51 TimToady we are not Python
15:51 fragrant Why not?
15:51 * masak suspects we're talking through some kind of language barrier
15:51 TimToady There's More Than One Way To Do It
15:51 PerlJam masak: culture barrier too probably
15:51 fragrant TimToady: That's not Python way, that' C/Java/C# way to define function/sub
15:51 masak fragrant: the language does not adapt to individual people with sticks up their bums.
15:52 fragrant Make it only one way, remove the older other way/option
15:52 TimToady no, then it wouldn't be Perl
15:52 masak fragrant: no :)
15:52 PerlJam fragrant: why?
15:52 fragrant Please follow the C way,
15:52 TimToady no
15:52 PerlJam fragrant: why?
15:52 PerlJam (I've got 3 more whys!)
15:52 fragrant Perl is writen in C
15:52 masak haha :)
15:52 TimToady you *may* do it the C way, but you are not required to
15:52 fragrant C's way is standard and good
15:53 mhasch ymmv
15:53 PerlJam fragrant: Perl is not C
15:53 * TimToady starts to think fragrant is merely a troll
15:53 * masak thinks not
15:53 fragrant And remove multiple way, that makes it confusing/ambiguous
15:53 TimToady hugme: hug fragrant
15:53 * hugme hugs fragrant
15:53 PerlJam TimToady: maybe. But I still have some charity to give
15:53 PerlJam fragrant: Perl is all about providing options, not taking them away.
15:53 TimToady commuting to a new conference room &
15:53 fragrant That's why i joined here to propose this suggestion so that perl can be a good language
15:54 masak fragrant: if you want to write Perl 6 in the C way, that's fine. no-one is stopping you.
15:54 moritz fragrant: http://perlgeek.de/en/article/5-to-6#post_04
15:54 PerlJam fragrant: but Perl is already a good language.
15:54 moritz fragrant: thing is, you didn't even know how stuff was like, and proposed a change within 5 minutes
15:54 fragrant I'm suggesting to make it better
15:54 masak fragrant: you don't create a good language by removing all the options except one.
15:54 masak fragrant: yes.
15:54 masak fragrant: but you're wrong.
15:54 masak and we're telling you.
15:54 masak and you're not listening.
15:54 moritz fragrant: don't you think you should *first* learn how it is, and *then* try to improve it?
15:55 PerlJam fragrant: you are free to fork one of the Perl 6 implementations and hack on it until it is "good"  :-)
15:55 masak fragrant: actually, this is quite interesting. you've managed to trigger this channel's immunoresponse, a rare feat.
15:55 PerlJam fragrant: We like Perl 6 the way it is (at least in this respect :)
15:56 moritz well, we are open to suggestions for improvements
15:56 moritz from people who know something about the language, or about other languages that we can steal from
15:56 moritz and from people who listen to our feedback too
15:56 masak the open/closed principle for postmodern language communities. :) open for suggestions, closed for demands. :)
15:56 moritz and listening to suggestions isn't always the same as acting upon it
15:57 moritz masak: I like that one. Is that a quote from somewhere?
15:57 fragrant Then who can change features? As i'm not good to understand huge source code, that's why i'm not contributing or spending my time in contributing
15:57 masak moritz: me, just now.
15:57 majrmovies joined #perl6
15:57 masak fragrant: anyone can change features.
15:57 fragrant That's why i'm proposing instead of doing direct contribution in code
15:57 masak fragrant: but this one ain't changing.
15:58 [Coke] fragrant: to be fair, you weren't proposing, you were demanding.
15:58 masak fragrant: I suggest you do things in a different order if you really are interested in contributing to Perl 6.
15:58 PerlJam fragrant: a more interesting question would be why you think this change actually improves the language.  Perl culture and philosophy has a certain way of thinking and looking at the world, but your change would run counter to that philosophy.  That can't be a good thing.  that can't "improve the langauge"
15:59 masak fragrant: you may have good intentions, but so far they haven't translated to anything that we can positively act upon.
15:59 moritz fragrant: would you care to comment on http://irclog.perlgeek.de/​perl6/2012-06-13#i_5721300  http://irclog.perlgeek.de/​perl6/2012-06-13#i_572130 ?
15:59 moritz sorry
15:59 moritz I meant http://irclog.perlgeek.de/​perl6/2012-06-13#i_5721300
16:00 PerlJam fragrant: also keep in mind that many people have been thinking about the design of this language for a long time.  How much thought have you put into the rammifications of the change you propose?
16:00 masak changes, even little ones, are tangled up in other language features. we keep learning this.
16:03 daxim http://www.programmersheaven.com/mb/Perl6    # :S
16:04 masak ah, nostalgia.
16:04 * jnthn is amazed that site is still alive
16:04 masak the web. it's like an elephant's graveyard of communities sometimes.
16:04 jnthn Yeah.
16:05 jnthn That place used to be a pretty good community.
16:05 masak now it's just bones.
16:06 masak sic transit gloria mundi.
16:08 pmichaud my wireless keeps dropping out :-/
16:09 pmichaud 14:24 <[Coke]> pmichaud: is there hacking time post-conf?
16:09 pmichaud [Coke]: I'm not aware of any post-conference hacking.  For me, I'm leaving Saturday morning.
16:16 TimToady masak: biáng would be classified as Xwalk.o roof.it eight.ibt Heart.ibb moon.ibml knife.ibmr 2tiny.ibmtC words.ibmtc 2Long.ibmbC horse.ibmbc
16:16 TimToady or some such
16:17 TimToady but I don't have it in my database yet, since it's not representable in Unicode
16:17 TimToady (yet)
16:18 sorear good * #perl6
16:18 masak TimToady: :D
16:18 masak sorear! \o/
16:18 masak TimToady: I find your classification interesting and I want to subscribe to your newsletter.
16:21 TimToady I suppose I could add it as another synthetic character, though most of those can be represented as part of some other char
16:22 daxim what's that ibt ibmbC stuff?
16:23 * masak guesses placements
16:23 crab2313 joined #perl6
16:23 masak crab2313! \o/
16:23 daxim how does it work?
16:23 crab2313 masak: \o/
16:24 pmichaud afk, commuting to new room
16:27 majrmovies joined #perl6
16:31 mikemol joined #perl6
16:34 mhasch are there plans to introduce arbitrary precision rationals into the standard library? Since there are already big integers, I think it could be done.
16:34 masak already in there.
16:34 masak grep spec for FatRat
16:35 mhasch whow, I'll do that presently.
16:36 masak the only thing we have to be careful with there is that people who actually didn't care about arbitrary precision don't end up with programs that slow down the longer they run because their numerators/denominators race towards the heavens without them knowing it.
16:37 masak Guido reported on that problem in some Python history blog post.
16:37 masak I remember mentioning it to TimToady, and some small spec change resulting.
16:38 masak so yeah, we're not Python, but we're still prepared to learn from the lessons learned in Python ;)
16:38 masak (and its ancestors -- ABC in this case, I believe)
16:38 jnthn Yeah, there should be one true way to do everything in Perl 6!
16:39 TimToady masak: the rad database started out kanjified, but I've been moving in the hanzi direction for some time now
16:39 jnthn (yes, yes, I just finished backlogging... :))
16:39 * TimToady is still backlogging while listening out of one ear
16:39 masak the Chinese. they always take over.
16:40 daxim what database is that?
16:40 TimToady well, not entirely, in this case; if there's anyway to pun both the Japanese and Chinese meanings, I'll do it, or I'll take an ancient meaning that relates to both in preference to a modern Chinese or Japanese-only meaning
16:41 TimToady *any way
16:41 TimToady daxim: my radical database
16:42 * TimToady should be done classifying all Unicode CJK chars (including extensions) within a month or two or three
16:42 TimToady all the plane 0 chars are already classified
16:42 * masak .oO( it's right next to his conservative database )
16:43 fglock joined #perl6
16:43 daxim do you classify manually? and what do you do with the db?
16:44 TimToady I classify manually in order to learn it; considered automating that, but decided that wouldn't make me as happy
16:44 TimToady particularly since I'm always adjusting the names of my radicaloids
16:45 mhasch perl6: my $foo = +"516109596266305643954182717736977​52132736915770371/18986610985766723​481463367409286454253253111186111"; say $foo.WHAT
16:45 p6eval niecza v18-7-ga660099: OUTPUT«Num()␤»
16:45 p6eval ..pugs: OUTPUT«Num␤»
16:45 p6eval ..rakudo 1e4773: OUTPUT«Rat()␤»
16:46 TimToady you have to work harder to get a FatRat, since they can be antisocial
16:47 masak what I said above.
16:48 [Coke] why "Fat"
16:48 zby_home joined #perl6
16:48 mhasch What a fitting name, then...
16:50 mhasch I think i got it:
16:50 mhasch perl6: my $foo=FatRat.new(516109596266305643​95418271773697752132736915770371, 18986610985766723481463367​409286454253253111186111); say $foo.WHAT
16:50 p6eval rakudo 1e4773, niecza v18-7-ga660099: OUTPUT«FatRat()␤»
16:50 p6eval ..pugs: OUTPUT«*** No such subroutine: "&FatRat"␤    at /tmp/7t3DICSv6i line 1, column 5-123␤»
16:52 masak mhasch: Pugs is a few years behind on some things. you might want to use 'nr:' for Niecza/Rakudo evals.
16:54 mhasch does that mean Pugs is going to catch up, or is it just here for historic reference?
16:54 harmil Almost certainly historic reference
16:54 harmil but I never place bets on people's fondness for obsolete tech ;)
16:55 masak there has been talk about a revival.
16:55 harmil see! ;)
16:55 mhasch I kind of liked it, actually, though I remember the bootstrap close to a nightmare on my ancient freebsd box.
16:55 GlitchMr joined #perl6
16:56 geekosaur every so often I think about it, then the meds kick in
17:02 [Coke] hey, pugs runs spectests every day.
17:02 AndreasX joined #perl6
17:03 [Coke] "Impl",      "pass","fail","todo","skip","plan","spec"
17:03 [Coke] # 06/12/2012 - rakudo++ (22448); niecza (91.19%); pugs (34.51%)
17:03 [Coke] "niecza",     20471,     3,   735,  1453, 22662, 24161
17:03 [Coke] "pugs"  ,      7749,  1983,  2978,  1296, 14006, 24022
17:03 [Coke] "rakudo",     22448,    30,   647,  1877, 25002, 24161
17:03 [Coke] pugs still has a lot of core stuff working. Someone with a bit of haskell experience could probably get that up to 50% in a week.
17:05 AndreasX left #perl6
17:06 * diakopter agrees with moritz on flattening
17:07 * masak too
17:08 sorear Where did moritz speak on flattening?
17:08 masak http://irclog.perlgeek.de/​perl6/2012-06-13#i_5721021
17:10 diakopter [causes so much confusion *to me*]
17:10 diakopter who knows about others.
17:24 * mhasch found FatRat in the specs but not FatFloat. Where is the catch?
17:29 mhasch nr: say pi; say pi.FatRat
17:29 p6eval niecza v18-7-ga660099: OUTPUT«3.1415926535897931␤3.1415926535897931␤»
17:29 p6eval ..rakudo 1e4773: OUTPUT«3.14159265394248␤3.141593␤»
17:30 mhasch nr: say pi.FatRat.nude
17:30 p6eval niecza v18-7-ga660099: OUTPUT«884279719003555 281474976710656␤»
17:30 p6eval ..rakudo 1e4773: OUTPUT«355 113␤»
17:31 masak huh.
17:31 mhasch pi == 355/113, that is bold.
17:31 benabik FatFloat?  I don't know if arbitrary floating point semantics make sense.
17:31 benabik *arbitrary precision
17:32 mhasch they do make a lot of sense if you need something like Real with more than builtin precision
17:34 benabik Something like FatRat?
17:34 geekosaur joined #perl6
17:36 benabik Floats exist because it's relatively simple to implement in hardware...  And the loss of precision means that there's no simple overflow techniques like with integers.
17:36 sorear floats existed long before FPUs
17:37 sorear I doubt anyone was thinking "can we build a FPU for this" when floats were first invented
17:39 brrt joined #perl6
17:39 mhasch Well, FatRat is there.  What I am missing is a numeric type with high precision (not necessarily unlimited precision)
17:39 masak mhasch: implement one!
17:39 masak the language is extensible.
17:40 benabik Rat is also a role.  You can limit it's precision.  :-)
17:41 crab2313 joined #perl6
17:46 mhasch We would have to carefully think about how to embed objects with a notion of their precision into the general picture of numeric values.
17:46 [Coke] mhasch: there's no guarantee the backend of a FatFloat is going to be efficient, no? (why not just use FatRat there?)
17:49 mhasch [coke]: for one thing, FatRat lacks many functions Num has, like sqrt or non-integer powers.
17:51 not_gerd joined #perl6
17:52 [Coke] ok.
17:52 majrmovies joined #perl6
17:54 not_gerd Parrot already auto-detects GMP, which comes with arbitrary precision floats ( http://gmplib.org/manual/Floating_002dpoint-​Functions.html#Floating_002dpoint-Functions )
17:54 masak r: my $x = FatRat.new; say $x
17:54 p6eval rakudo 1e4773: OUTPUT«0␤»
17:55 masak r: my $x = FatRat.new; say $x.sqrt
17:55 p6eval rakudo 1e4773: OUTPUT«0␤»
17:55 masak mhasch: what makes you say FatRat "lacks sqrt"?
17:55 masak r: my $x = FatRat.new(4, 1); say $x.sqrt
17:55 p6eval rakudo 1e4773: OUTPUT«2␤»
17:56 mhasch r: my $x=FatRat.new(2,1); say $x.sqrt
17:56 p6eval rakudo 1e4773: OUTPUT«1.4142135623731␤»
17:56 not_gerd hmm.. the floating point support of GMP seems to be lacking
17:57 masak I think you're confusing "lacks" with "it's not closed under"
17:57 not_gerd MPFR would be a better choice
17:58 mhasch r: mu $x=FatRat(2,1);say $x.sqrt.WHAT
17:58 p6eval rakudo 1e4773: OUTPUT«===SORRY!===␤Variable $x is not declared␤at /tmp/UIOLtzY0Pw:1␤»
17:58 mhasch typo
17:58 mhasch r: my $x=FatRat(2,1);say $x.sqrt.WHAT
17:58 p6eval rakudo 1e4773: OUTPUT«No such method 'FatRat' for invocant of type 'Parcel'␤  in <anon> at src/gen/BOOTSTRAP.pm:804␤  in <anon> at src/gen/BOOTSTRAP.pm:801␤  in any <anon> at src/gen/BOOTSTRAP.pm:796␤  in block <anon> at /tmp/JmbW8gRGo7:1␤␤»
17:58 masak FatRat.new
17:59 mhasch r: my $x=FatRat.new(2,1); say $x.sqrt.WHAT
17:59 p6eval rakudo 1e4773: OUTPUT«Num()␤»
18:00 MayDaniel joined #perl6
18:05 stol_ joined #perl6
18:07 carlin_ left #perl6
18:08 mhasch nr: my $x = FatRat.new(175568277047523,124145519261542); my $y = FatRat.new(2,1); my $z = $y.sqrt; say $x*$x - $y + 0e0; say $z*$z - $y
18:08 p6eval niecza v18-7-ga660099: OUTPUT«6.488404268253043E-2​9␤4.4408920985006262E-16␤»
18:08 p6eval ..rakudo 1e4773: OUTPUT«6.48840426826895e-29␤4.44089209850063e-16␤»
18:08 colomon joined #perl6
18:11 carlin joined #perl6
18:15 mhasch is this summary correct: functions like sqrt and cos are implemented on FatRat through a role that looks at the arguments only as plain num values?
18:15 * pmichaud woudl at least add "currently" to "implemented".
18:15 * masak .oO( I have a Bridge type to sell you )
18:17 brrt joined #perl6
18:23 mhasch I think this would put limited-precision FatFloats in a position socially favourable to FatRat; FatRat is meant to be precise at all costs, while limited-precision can approximate.
18:26 kurahaupo joined #perl6
18:29 pmichaud if you all get a chance to watch schwern's keynote address, I highly recommend doing so.  I think it may be very relevant to things we should be building now in Rakudo and Perl 6.
18:29 kaleem joined #perl6
18:33 PerlJam pmichaud: More Picard?
18:35 diakopter pmichaud: I see the video of what occurred after the keynote in the main hall, but not the keynote
18:35 pmichaud more along the lines of (a) I've already decided we need to grow our contributor pool; so (b) perhaps we can target some diversity at the same time
18:35 pmichaud diakopter: I haven't found a link for the keynote video yet
18:36 colomon site is complaining because I don't have a recent enough Silverlight.... :(
18:36 spider-mario joined #perl6
18:36 jnthn pmichaud: What kinda diversity, ooc?
18:36 pmichaud more to the point, I think that we in Perl 6 can likely blaze the trail for the type of world schwern is envisioning.
18:37 [Coke] colomon: URL?
18:37 pmichaud jnthn: schwere highlighted gender diversity, but was also clear to point out that we also need a wider diversity of skills, experiences, etc.
18:37 pmichaud *schwern
18:37 colomon [Coke]: I'm on the current talk rather than the keynote
18:37 colomon and apparently it just won't work with Chrome (on my Windows machine)
18:37 colomon working fine in IE
18:38 PerlJam I saw it with moonlight on linux (chrome)  It worked okay.
18:38 pmichaud I've already been thinking (and having discussions with others) that we need new blood to help us build documentation, guides, tutorials, support, etc.
18:40 masak developers, developers, developers.
18:40 masak we need more mindshare so we can build more mindshare.
18:40 pmichaud well, yes, but maybe also marketers, community organizers, ....
18:40 [Coke] did schwern have any ideas on how to actually /get/ new members?
18:40 jnthn So...I need to dance like Steve Balmer at the next YAPC::EU? :)
18:41 jnthn pmichaud: I agree with the goals...I'm especially keen to know how you get there. :)
18:41 pmichaud indeed, one of schwern's memorable lines is that too much of "Perl community" focuses on "library developers".
18:41 PerlJam ... people to teach Perl 6 to kids
18:41 PerlJam ;)
18:42 colomon [Coke]: yeah, I'm seeing a Lowell Wednesday AM, Part 2, but not Part 1, which should be the keynote.  :(
18:42 pmichaud jnthn: how to get there -- well, the main thing is to not build an environment that discourages things.  This is where Perl 6 has an advantage, I think.
18:43 [Coke] colomon: ah, the streams really are just streams, neh? hopefully there will be an archive, also.
18:43 * [Coke] rants again how his work screwed up his chances to go to yapc this year.
18:43 colomon [Coke]: no, there's an archive, that's where the AM Part 2 is.
18:44 colomon there's just no AM Part 1 in the archive
18:44 PerlJam (YAPC video)++
18:44 colomon I don't know how long it will last, mind you.
18:44 * colomon joins [Coke] in a similar rant
18:44 pmichaud I spoke to schwern and to also Noirin Plunkett afterwards about some of this, and a big thing Noirin said was "weed out the jerks from your community".  To some extent, #perl6 and the Perl 6 community already does that.
18:45 masak there are fewer jerks so far because we're a smaller community.
18:45 pmichaud yes, but we also actively work to not let them dominate
18:46 masak the jerks will come when people are employed and their putting food on their family depends on Perl 6.
18:46 masak but yes, we can seed in directions we like.
18:46 pmichaud masak: I don't think that's inevitable.  Or, more the point, the jerks may exist but they aren't the leaders or the drivers of the underlying culture.
18:48 masak I dunno. some brilliant/skilled/useful people are jerks.
18:48 masak in some cases, they end up having core roles.
18:48 masak it hasn't happened here -- is that structural, or incidental? hard to say.
18:49 pmichaud I think it's somewhat structural.  I don't think it's truly incidental.
18:49 PerlJam The perl 6 community hasn't been tested against such things yet
18:49 pmichaud I suspect much of it goes back to initial seeds that audreyt and Pugs planted
18:49 masak au++
18:50 brrt left #perl6
18:52 moritz au++ indeed
18:52 stol__ joined #perl6
18:52 PerlJam one of the things that stuck with me from Schwern's talk was about how CPAN is an aristocracy.
18:53 moritz erm, what?
18:53 moritz it looks like a mixture of anarchy and meritocracy to me
18:53 moritz or does he talk about the modules@perl.org mailing list?
18:53 masak meritocracy is probably a better description than aristocracy.
18:54 masak but every system that large will be self-sustaining and self-defending in some way.
18:54 pmichaud masak: schwern's point was explicitly that it's *not* a meritocracy, even though people think it is :)
18:54 masak I'm listening.
18:55 pmichaud he gave the example of Test::More, which schwern "owns" simply because he homesteaded it first.  As a result, he's really a benevolent dictator.  (more)
18:55 pmichaud and when he passes it along to someone else, it will likely be to someone that he feels will carry it forward in the direction he things it ought to go.  That's "inheritance"
18:55 pmichaud "dictator + inheritance" --> "aristocracy"
18:56 pmichaud *thinks
18:56 masak hmm.
18:56 mhasch Hm, he might own @those_modules, but that's not owning CPAN.
18:56 masak right.
18:57 pmichaud CPAN is a collection of aristocracies, then?
18:57 masak since this argument applies to every single module on CPAN, it feels quite a bit weaker.
18:57 mhasch of course he could screw up CPAN badly if he got something wrong in a popular module.
18:57 masak the modules are all part in some Darwinian race for mindshare, at least those that share a conceptual niche.
18:58 PerlJam masak: I don't think it's weaker.   The "aristocratic" nature of CPAN discourages contribution in certain areas because someone "owns" those ideaspaces.
18:58 masak sure. it's not github.
18:59 masak but it's still vastly better than closed source.
18:59 PerlJam better in a sharing sense, but that's about it.
19:00 PerlJam anyway, Perl 6 is headed in a better direction :)
19:00 masak I've sent CPAN module patches and got no response at all.
19:00 masak but sometimes I've sent patches and got a positive response. it varies.
19:01 pmichaud yeah, patch -> no response  doesn't seem to align well with "meritocracy"
19:01 mhasch masak: and sometimes you send a patch and end up inheriting the module.
19:01 simcop2387 joined #perl6
19:01 pmichaud other than in a larger sense where the patch submitter ends up moving efforts to another area instead
19:02 masak it'll be interesting to see when and how we end up docking with and/or reinventing CPAN.
19:03 PerlJam Perl6's idea of multiple authorities allows for a real meritocracy I think
19:03 PerlJam (github already does this effectively)
19:04 pmichaud anyway, I'm wanting to recruit more people to Perl 6 building; and part of that is going to be finding ways where we (perhaps unknowingly) discourage them
19:05 harmil pmichaud: what do you mean by "building"?
19:06 harmil just getting, building and using it, or helping to "build" the language?
19:06 pmichaud harmil: I mean building things beyond the language.  tutorials, documentation, roadmaps, onramps, guides, mentoring.  the community more than the technical stuff.
19:07 masak we're mostly "done" designing the language, actually.
19:07 pmichaud I feel like the recent advances made to Rakudo have really brought it to a better place, technically
19:07 masak the vast majority of spec changes are minor course corrections.
19:07 pmichaud where in previous years we would have to say "use rakudo, but ...."    now we're in a place where we can say "use rakudo"
19:08 raiph joined #perl6
19:08 harmil spec editing and building seem to me to be orthoganal
19:08 PerlJam Maybe some "meta-guides" would be useful.   Paths into the community and participation.  Reasons why people should participate.  Et cetera
19:08 harmil I was really asking if you were looking to attract more coders on the core or more community-builders
19:08 pmichaud PerlJam: to some extent, my current thesis is that our current set of contributors haven't yet demonstrated that they have the drive to build those
19:09 pmichaud perhaps they do... but our track record isn't all that good there.
19:09 pmichaud and, rather than split the group we have among more tasks, it's time to nurture growth of the group
19:09 PerlJam I've got some small drive to do some of it, but I can't seem to muster it to a point that something happens except at the odd moment.
19:09 pmichaud PerlJam: yes, I've often been in the same boat.
19:10 pmichaud harmil: "core coders" or "community builders".  Well, we of course want both.  But I think we have a shortage of the latter at the moment.
19:11 harmil I can tell you that, as someone who has tried to do some advocacy for Perl 6 over the course of the past decade, the most discouraging thing is when I can't figure out what the state of the world is, and people seem to react to my initial questions as if I should have S0(2..40) indexed in my brain before asking whether I should be using ".." or "…" in a for loop.
19:11 PerlJam in any case, the more people *using* perl 6, the better for community growth.  Work out how to get more users and the rest will start to happen.
19:12 pmichaud PerlJam: I'm not entirely sure that's true.
19:12 pmichaud I think it's a chicken/egg.  That's certainly what I'm hearing from people involved in training and the like.
19:12 harmil I don't know if the solution is better Ms for our RTFMs or fewer RTFMs
19:12 PerlJam harmil: RTFM is an anti-pattern here :)
19:13 masak pmichaud: documentation writers, besides being good at English, have to be quite familiar with the inner workings of Perl 6. most of those people already have things on their plate.
19:13 masak moritz++ is making good efforts, though. and trying to enlist me.
19:14 not_gerd pmichaud: I consider rakudo still in the "use it, but.." phase
19:14 simcop2387 joined #perl6
19:14 not_gerd parsing speed is an issue for small scripts
19:14 PerlJam harmil: having synopsis-on-the-brain is just a reaction to not having clear end-user documention yet (IMHO).
19:14 not_gerd (Rakudo parsing the script itself, that is)
19:14 PerlJam not_gerd: oddly, I don't mind the slow parsing, but I do mind the slow execution for what should be simple tasks
19:14 harmil It's true, I've never been told to "RTFM" … what I've been told is, "why are you doing x? It's right there on line 2048 of S05 that that's obsolete."  … that usually happens about 2 days before I take another 6 months off of trying to hack together something that uses Perl 6 as a first step to advocacy.
19:15 pmichaud not_gerd: we'll definitely have people/applications that fall into the "use rakudo, but..." phase -- it's a sliding scale.
19:15 pmichaud hopefully we can get rid of things like "but it's likely to break in a future revision" sort of stuff
19:15 harmil (note: this could sound like whining on my part… just to be clear, I'm trying to give helpful input on the the question of attracting new people, not complaining for my own sake)
19:15 diakopter I agree the S0n:nnn references should not be given to newbies.
19:16 diakopter unless they've already demonstrated they love to scour technical specs
19:16 masak but we have nothing better right now.
19:17 diakopter it's just the size is daunting
19:17 diakopter if it were better indexed and split up in much smaller sections, or a hierarchy, like a book, it would be far easier to find/reference things.
19:18 diakopter and not so off-putting
19:18 pmichaud diakopter: so we need some editors and authors that know how to do that.  :-)
19:18 pmichaud and that have tuits to do it and that like doing it.  :)
19:18 diakopter I wish I had any/all of those traits
19:19 pmichaud diakopter: so do I.  But I don't, so I want to see if we can attract/groom/recruit/grow some people that do.
19:19 * masak .oO( grow in vats )
19:19 pmichaud masak: I'm up for that if we can make it work without too many evil side effects.  :-)
19:20 pmichaud btw, I think the group picture from the oslo hackathon made it into schwern's talk :)
19:20 PerlJam pmichaud: btw, if merlyn lets you on FLOSS weekly, you can use it to help with recruitment  :-)
19:20 harmil Well, keep in mind that I've been involved with the specs from day one. I'm very intimately familiar with them. When someone says, "you should have known x" and I don't, I see that as a fundamental failure to advertise major changes.
19:21 harmil And perhaps that's the key: we need better ways to communicate, not just what has changed, but the level of importance of what has changed.
19:22 pmichaud harmil: for folks who are around, yes; I don't want to necessarily just attract our already-skewed community, though.  :)
19:22 harmil Hmmm… I'm not sure that having good communications vectors out of the design and development process will only attrract that sort
19:23 pmichaud describing what has changed in Perl 6 this past year isn't likely to attract a python developer, is what I'm kind of thinking of.
19:24 pmichaud I'm not saying communicating changes is unimportant.
19:25 [Coke] harmil: (specs since day 1) I'm sorry, who are you again?
19:25 [Coke] (speaking of advertising! ;)
19:25 harmil pmichaud: I think what attracts developers is a sense of forward motion coupled with a tool that can scratch their itch
19:25 harmil Oh, sorry IRC wouldn't let me keep "ajs" — I"m Aaron Sherman
19:26 masak oh!
19:26 not_gerd bye, #perl6
19:26 not_gerd left #perl6
19:26 masak not_gerd: bye! o/
19:26 harmil I wanted to say "bye not" but that  sounded like a boolean....
19:27 mucker joined #perl6
19:27 harmil Pardon me, I've been reading the SQL BNF a bit too much of late.
19:27 [Coke] harmil: ~~
19:29 pmichaud harmil: I don't disagree with you.  I'm not sure that "attract developers" is the only goal we want to be focusing on.
19:29 pmichaud or, put another way, a focus on 'attract developers' might end up being "attract people that are already a lot like us"
19:30 pmichaud no, I don't have a clear plan.
19:30 sorear isn't that a good thing?
19:30 PerlJam "Plans are of little importance, but planning is essential"
19:31 sorear do we WANT to attract mlehmann?
19:31 sorear +s
19:31 PerlJam sorear: My thoughts exactly when we were talking about jerks earlier.
19:32 masak I'm not sure I'm able to address that question if we're talking about specific people.
19:32 huf my my, he's well loved by his people :)
19:32 PerlJam masak: it's not the people that we want to discourage, just the behavior.
19:33 masak well, in this case, I've met the guy.
19:33 masak I have nothing bad to say about him. he's clearly talented and knowledgeable. he's on the spectrum somewhere.
19:33 masak I knew this before I knew his name.
19:34 sorear masak: I like concreteness but the question is much more general
19:34 masak right.
19:35 [Coke] masak: when you say "the spectrum" that means, to me, specifically the autistic spectrum.
19:36 masak yes.
19:36 [Coke] Hokay.
19:36 huf we're *all* somewhere on that spectrum
19:36 mucker joined #perl6
19:36 masak well, the vast majority of us.
19:36 * [Coke] has the fewest cross cultural mixups in this channel.
19:36 PerlJam NO huf, YOU'RE WRONG!
19:36 PerlJam ;)
19:36 huf :)
19:37 masak has mlehmann written useful, important modules? yes, I imagine he has. do some people use them even though they think he's a jerk? yes, they do. do some people boycott them because they think he's a jerk? yes, I know some do. has the Perl 5 "culture" allowed him to behave the way he does -- or would he have chosen other ways to behave if prompted clearly enough? that's the big question.
19:37 raiph As a sometime marketer, I think Perl 6 has a marketing problem
19:37 masak well, clearly enough early enough, perhaps. by the right kind of core people. "we don't do it that way here."
19:37 PerlJam raiph: yes, we know.
19:38 PerlJam masak: as long as we don't accidentally develop a disctintion between well-liked-jerks and not-well-liked-jerks.  I think Perl 5 has tended to do that to a certain extent.
19:38 raiph PerlJam: what I mean is that you don't really have any other problems
19:39 masak PerlJam: that does seem to be a dangerous distinction. but I'd be surprised if it were that black/white even in the p5 community.
19:40 masak raiph: we have a marketing problem. which essentially means we only manage to reach open-minded people.
19:40 raiph s/you/we/
19:40 PerlJam raiph: I don't know ... where are you drawing the line below which certain problems aren't that big of a deal?
19:40 dukeleto joined #perl6
19:42 mucker joined #perl6
19:43 raiph PerlJam: let me answer your q with a different q. can you name a big problem? just one for now.
19:43 [Coke] lack of a ``production'' release.
19:44 [Coke] (which is driven by a whole host of much smaller problems. todos?)
19:44 birdwindupbird joined #perl6
19:44 raiph ok. plz stop with that one for a moment.
19:44 raiph s/stop with/pause on/
19:45 geekosaur .oO { do I parse that in English or Spanish? }
19:45 PerlJam raiph: lack of clear documentation for newbies.
19:46 tokuhiro_ joined #perl6
19:46 masak lack of a clear stability policy.
19:47 PerlJam raiph: lack of CPAN
19:47 PerlJam (modules.perl6.org and ufo/panda aren't close enough)
19:47 PerlJam raiph: low bus/truck number on all of the Perl 6 implementations.
19:48 quietfanatic joined #perl6
19:48 fgomez joined #perl6
19:48 harmil As we know, from previous, successful language-level efforts (Perl comes to mind), everything else is negotiable if you have a working project that scratches a large enough audience's niche, because they'll be forced to expose themselves to the language, and thus become part of the community around it.
19:49 ggoebel joined #perl6
19:49 harmil Perl does not, yet, have its first real-world project that people want to use.
19:49 * [Coke] adds "fund perl 6/parrot" to his "if I hit the lottery" virtual plans.
19:49 PerlJam raiph: sorry, I didn't follow instructions and only give on problem  :)
19:49 raiph i'm with harmil. i think several of the problems listed aren't worth worrying about.
19:50 [Coke] define "worry"
19:50 PerlJam [Coke]: that's been on mine since forever.  (though, since I don't play the lottery except perhaps once in a blue moon ...)
19:50 raiph like harmil, i've been closely following and pondering Perl 6 since 2000
19:50 [Coke] to my way of thinking, these are TODOs, not necessarily problems.
19:50 harmil Just as an example, the low bus number: a successful project using Perl 6 would fix that rapidly.
19:50 PerlJam harmil: um ... that's a big leap of faith.
19:50 [Coke] I'm not sure that logically follows, harmil, no.
19:51 raiph worry --> big problem worthy of deliberate group focus
19:51 [Coke] there's a world of difference between a user of a project and a developer.
19:51 [Coke] s/developer/contributor/
19:51 masak I think we're pretty much ready for a killer app. but there's no easy recipe to developing one. best venue I see is just developing lots of apps.
19:51 harmil [Coke]: I think there are enough real-world examples that a succesful project attracts some fraction of users who will migrate to the core.
19:52 PerlJam masak: Darwinism to the rescue!  (we hope)
19:52 harmil Now, not putting giant road-blocks in their way of migrating from user to core developer is key to that, certainly, but you don't have to set out to solve the problem of coredevs.elems
19:53 harmil The problem is that that rate of migration is tiny, so you have to have a project (or suite of them) that scratches a really big itch.
19:54 harmil masak: I'd agree
19:54 * PerlJam afk &
19:55 harmil Trying to brainstorm the perfect killer app project is much slower than doing 10 little things and figuring out which of them seem to be interesting enough to foster and grow.
19:56 masak right.
19:56 masak that reminds me of something but I don't know what.
19:56 * [Coke] wonders if larry's radical app is written in six.
19:56 masak at least some part was.
19:57 masak or maybe there was just a planned migration.
19:57 [Coke] I was thinking of what we could use it for here, and it'd basically have to solve as many problems as j2ee and be as supported. Don't think it's going to happen for anything big.
20:01 spaceships joined #perl6
20:01 am0c joined #perl6
20:12 * moritz sees he missed some interesting discussions
20:12 harmil We decided you're now called "miles"
20:12 sorear km 4ever
20:12 masak still doesn't solve the m<tab> problem.
20:13 eiro ls
20:13 eiro oops
20:13 eiro hello all
20:13 sorear hello none.
20:13 masak eiro: Display all 2367 possibilities? (y or n)
20:13 harmil yes!!!
20:14 * sorear continues to want to parse eiro as 英- ...
20:14 harmil "yes!!!" ~~ (y or n) # hmm....
20:14 masak hm, it was an `ls`, not a double-Tab... :)
20:15 eiro masak, i wasn't in my warez dir but yes
20:15 eiro haha
20:15 sergot joined #perl6
20:15 masak ;)
20:16 masak sergocie! \o/
20:17 pmichaud argggggh, wireless here is aggravating
20:17 moritz spec question
20:17 moritz shouldn't   a => 1  create an Enum instead of a Pair?
20:17 masak are they in a subclass/superclass relation?
20:18 moritz yes, Pair is Enum
20:18 * pmichaud catches up on backscroll
20:18 masak rn: say Enum ~~ Pair; say Pair ~~ Enum
20:18 moritz and Pair just adds mutability
20:18 p6eval rakudo 1e4773, niecza v18-7-ga660099: OUTPUT«False␤True␤»
20:18 masak moritz: then I agree that it probably should.
20:19 pmichaud I mentioned last summer that I thought Pair/Enum  Hash/EnumMap  needed something along the lines of the List/Array duality :-)
20:19 moritz pmichaud: speaking of the List/Array duality... why does List have splice, pop, push, shift, unshift, when it's otherwise the immutable one?
20:19 pmichaud List isn't immutable
20:20 pmichaud we pop/push from lists all the time
20:20 moritz internally?
20:20 pmichaud externally
20:20 moritz example?
20:21 pmichaud r:   my $a = (1,2,3).list;  say $a.WHAT;  say $a.perl;  $a.pop;  say $a.perl
20:21 p6eval rakudo 1e4773: OUTPUT«List()␤(1, 2, 3).list.item␤(1, 2).list.item␤»
20:21 moritz (I consider the ListIter and MapIter internal)
20:21 moritz pmichaud: well, one could just as well force the user to coerce to Array instead of List
20:21 pmichaud that would be something else
20:21 pmichaud the difference between List and Array is that Array forces values into their own containers
20:22 moritz that needs to be much, much clearer in the specs
20:25 moritz r: say Enum.new(key => 3, value => 5).invert.WHAT
20:25 p6eval rakudo 1e4773: OUTPUT«Pair()␤»
20:26 majrmovies joined #perl6
20:26 sorear o/ majrmovies
20:27 majrmovies o/ sorear
20:27 masak if only Array wasn't so established. maybe we could Hungarian up some prefix for "forces values into their own containers". like CList.
20:28 PerlJam masak: except that hungarian perl is done with funny symbols  :)
20:28 mikemol joined #perl6
20:29 moritz sorear, TimToady: what do you think of current Pair literals creating an Enum instead?
20:30 dalek doc: 27f60af | moritz++ | lib/Enum.pod:
20:30 dalek doc: add some basic Enum documentation
20:30 dalek doc: review: https://github.com/perl6/doc/commit/27f60af6db
20:30 dalek doc: 48250ae | moritz++ | lib/Pair.pod:
20:30 dalek doc: [Pair] remove method key, it is inherited from Enum anyway
20:30 dalek doc: review: https://github.com/perl6/doc/commit/48250ae9b4
20:31 masak PerlJam: hehe. my first reaction was "wut? Hungarian doesn't have any funny symbols!" I must be fully European at this point.
20:34 pmichaud (another wireless drop :-/ )
20:34 raiph What if...
20:35 pmichaud here's an example of the difference
20:35 moritz my first reaction was "but my hovercraft isn't full of eels..." :-)
20:35 sorear moritz: I'm not thrilled with the names 'Enum' and 'EnumMap' for immutable Pair and Hash.  But otherwise +1.
20:35 pmichaud my $xyz = 'xyz';   my $list = (1,2,$xyz,4);  say $list.perl;  $list.[2] = 'abc';  say $list.perl
20:35 pmichaud oops
20:35 PerlJam sorear: iPair, iMap ?  :)
20:35 PerlJam er, iHash I guess
20:36 moritz Pair, PairRW, Hash, HashRW :-)
20:36 pmichaud r: my $xyz = 'xyz';   my $list = (1,2,$xyz,4);  say $list.perl;  $list.[2] = 'abc';  say $xyz
20:36 p6eval rakudo 1e4773: OUTPUT«$(1, 2, "xyz", 4)␤abc␤»
20:36 pmichaud r: my $xyz = 'xyz';   my $list = (1,2,$xyz,4).list;  say $list.perl;  $list.[2] = 'abc';  say $xyz
20:36 p6eval rakudo 1e4773: OUTPUT«(1, 2, "xyz", 4).list.item␤abc␤»
20:36 pmichaud there.  notice that $xyz was changed.
20:36 * PerlJam never has liked the rw suffix
20:36 pmichaud That's different from
20:36 raiph Perl 6 takes on the problem of creating tools that help Perl fans market Perl
20:36 pmichaud r: my $xyz = 'xyz';   my @list = (1,2,$xyz,4).list;  say @list.perl;  @list.[2] = 'abc';  say $xyz
20:36 p6eval rakudo 1e4773: OUTPUT«Array.new(1, 2, "xyz", 4)␤xyz␤»
20:37 moritz pmichaud: I think you've explained as much in Oslo. And I forget it every time. It needs to be in the specs
20:37 pmichaud if only someone was working on the S07 spe.... oh.
20:37 pmichaud :-)
20:38 moritz raiph: that sounds rather meta to me
20:38 pmichaud anyway, Pair and Enum often strike me as being similar -- a Pair might provide its own container, while an Enum can be bound directly to a value or to an existing container
20:38 moritz raiph: and the point is that we don't to target perl fans. We want to target programmers
20:39 raiph moritz: forex, i have a google alert for 'perl6 OR "perl 6"
20:39 moritz pmichaud: so it would make very much sense for :$x to create enum x => $x, which reuses the $x container
20:39 raiph moritz: and others for "haskell python", etc.
20:39 pmichaud moritz: I could see that, yes.
20:40 raiph moritz: so i get a steady stream of freshish relevant discussion on the web
20:41 * pmichaud goes back to attempting to read backscroll
20:42 raiph moritz: it would be very helpful to have a systematic response system
20:42 moritz raiph: to discussions on the web?
20:42 raiph moritz: relevant fresh discussions, yes
20:43 moritz ... and?
20:43 moritz you think that could be a killer app for perl 6?
20:43 dalek rakudo/nom: 90333b3 | moritz++ | src/core/Enum.pm:
20:43 dalek rakudo/nom: Enum.invert now returns an Enum, not a Pair
20:43 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/90333b3761
20:43 raiph if it works for perl 6 it would work for anything
20:43 moritz raiph: is that a "yes" or a "no"?
20:44 raiph yes it might be
20:45 raiph but that's not it's (only) raison d'etre
20:46 adu joined #perl6
20:46 * moritz waits for the raison d'etre
20:47 moritz oh, how I hate that. I wanted to write docs, and now I noticed that the stuff I'm documentating doesn't make sense the way they are, so instead of documenting I'm patching rakudo and proposing spec changes
20:47 raiph moritz: to market Perl 6
20:48 raiph afk
20:48 pmichaud moritz: (enum vs pair)  I was going to ask what the use case was for making the switch
20:48 harmil I've long thought that Perl 6 was ideally suited to replacing the various hackish Wiki formatting syntaxia with a real language. That would serve multiple purposes.
20:49 moritz pmichaud: consistency
20:49 pmichaud consistency between... ?
20:49 moritz 1, 2, 3 # doesn't create containers
20:49 moritz "foo" # doesn't create containers
20:49 moritz 1.2e4 # doesn't create containers
20:49 moritz 1 => 2 # creates container. Why?
20:49 pmichaud okay, so you're wanting   x => 1  to .... right
20:50 pmichaud as I said, I'm okay with that.    (1,2,'foo').list doesn't make containers either :-)
20:50 pmichaud and now I understand the motivation (more)
20:50 pmichaud so
20:50 pmichaud moritz: (how I hate that)   I think that Perl 4.036 was largely a lot of changes from Perl 4.0 because of things learned while writing Programming Perl
20:51 moritz pmichaud: I realize the benefit for the language, but it does hinder the docs progress
20:51 pmichaud maybe makes it seem slower
20:52 moritz and since it's more fun to hack than to doc (for me at least), it always feels like a backslash to be thrown back to coding when I found the motivation to doc
20:52 pmichaud docs that move in a more confusing direction aren't really "progressing"  :)
20:52 pmichaud anyway, yes, I understand the sentiment.
20:54 pmichaud we have some more of those sorts of things in Perl 6.   =>  doesn't really create a Pair, it (now) creates an Enum.   infix:<,>  doesn't create a List, it creates a Parcel  (but gosh it really looks a lot like a List)
20:57 harmil Parcel / List handling still confuses the hell out of me, and I've been trying to cope with it for years
20:58 harmil Mostly, Parcels just seem very fragile. They want to flatten at the first opportunity, and I'm forever trying to get them not to do that.
20:59 moritz call .tree or .lol on them
20:59 harmil My most recent fight was with a parcel that contained a single pair that I wanted to convert to a hash… oh, my head
20:59 pmichaud .hash :-)
20:59 moritz .hash
20:59 constantined joined #perl6
20:59 harmil yeah, that would have been nice
20:59 PerlJam harmil: %($parcel) or $parcel.hash should have done it
20:59 pmichaud r:  say (a => 1).hash.perl
20:59 sorear there was a time when we wanted to make Parcels invisible to users
20:59 p6eval rakudo 1e4773: OUTPUT«("a" => 1).hash␤»
20:59 harmil I think that ended up doing something like .flat.hash
20:59 dalek doc: 7034ce6 | moritz++ | lib/Buf.pod:
20:59 dalek doc: initial Buf docs
20:59 dalek doc: review: https://github.com/perl6/doc/commit/7034ce6621
20:59 PerlJam (I'm currently guessing that %() works like $() and @() )
21:00 pmichaud r:  say (a => 1).hash.elems
21:00 p6eval rakudo 1e4773: OUTPUT«1␤»
21:03 PerlJam nr: my $p = Parcel.new();
21:03 p6eval rakudo 1e4773:  ( no output )
21:03 p6eval ..niecza v18-7-ga660099: OUTPUT«Potential difficulties:â�¤  $p is declared but not used at /tmp/ghHDlpfhKT line 1:â�¤------> [32mmy [33mâ��[31m$p = Parcel.new();[0mâ�¤â�¤Â»
21:03 PerlJam (never had occasion to "manually" make a Parcel, just wanted to be sure the POLS still held :-)
21:04 pmichaud nr:  my $p = ();  say $p.perl   # curious
21:04 p6eval rakudo 1e4773, niecza v18-7-ga660099: OUTPUT«$()␤»
21:04 pmichaud \o/
21:05 pochi joined #perl6
21:05 PerlJam fwiw, parcels still trip me up sometimes too
21:06 harmil Ah, OK, I've got a rough reproducer for what I was running into:
21:06 harmil r: grammar G { rule TOP { <a> } ; rule a { <b>* } ; rule b { (1) (2) } } ; class A { method TOP($/) { make $<a>.ast } ; method a($/) { make $<b>>>.hash } ; method b($/) { make $/[0].Str => $/[1].Str } }; my $ast = G.parse("1 2 1 2", :actions(A.new())); say $ast.perl
21:06 p6eval rakudo 1e4773: OUTPUT«Match.new(orig => "1 2 1 2", from => 0, to => 7, ast => $(EnumMap.new(), EnumMap.new()), list => ().list, hash => EnumMap.new("a", Match.new(orig => "1 2 1 2", from => 0, to => 7, ast => $(EnumMap.new(), EnumMap.new()), list => ().list, hash => EnumMap.new("b", (Ma…
21:06 harmil oops
21:06 harmil r: grammar G { rule TOP { <a> } ; rule a { <b>* } ; rule b { (1) (2) } } ; class A { method TOP($/) { make $<a>.ast } ; method a($/) { make $<b>>>.hash } ; method b($/) { make $/[0].Str => $/[1].Str } }; my $ast = G.parse("1 2 1 2", :actions(A.new())); say $ast.ast.perl
21:06 p6eval rakudo 1e4773: OUTPUT«$(EnumMap.new(), EnumMap.new())␤»
21:06 PerlJam nr: my $p0 = (); my $p1 = ( a => 1 ); say $p0.WHAT; say $p1.WHAT;  # how do I keep the parcelness?
21:07 p6eval rakudo 1e4773, niecza v18-7-ga660099: OUTPUT«Parcel()␤Pair()␤»
21:07 harmil there we go… definitely not what I thought I was getting out of that.
21:07 pmichaud PerlJam: to keep the parcelness, you can itemize it
21:07 pmichaud you can also put a trailing comma
21:07 pmichaud ( a => 1)    _isn't_ a Parcel
21:07 pmichaud it's a parenthesized Pair
21:07 PerlJam ah.
21:07 PerlJam (and that's what trips me up)
21:07 pmichaud just like  (3 * 5)  is an Int
21:08 pmichaud nr:  my $p1 = (a => 1 ,); say $p1.WHAT;
21:08 p6eval rakudo 1e4773, niecza v18-7-ga660099: OUTPUT«Parcel()␤»
21:09 PerlJam It's too bad it couldn't be a leading comma
21:09 pmichaud harmil: for one, it looks to me like EnumMap.new needs a better .perl entry
21:09 harmil I'd certainly agree
21:09 adu harmil: nice grammars :)
21:10 harmil heh, thanks, it's obviously based on the way JSON::Tiny does its work
21:10 pmichaud $<b>».hash looks a bit awkward to me, though -- that could be an issue
21:10 pmichaud $<b> might be itemized
21:11 pmichaud (note the leading $)
21:11 adu harmil: just FYI, if you use $actions = A, then I think you can use :$actions as a param
21:12 harmil oh certainly. I was trying to pack this all into a somewhat clean one-liner, but yeah, in practice that's what I do (well $actions=A.new(), right?)
21:12 pmichaud I'm not sure the .new is needed on A.new, there.
21:12 harmil interesting
21:12 pmichaud just the type object might work, since there aren't any attributes
21:13 constantined left #perl6
21:14 adu harmil: right, A.new
21:14 harmil I really would feel so much better if the entry for $<foo> was always a real list whenever foo has a repeat quantifier… That would make my head hurt far less. IMHO users shouldn't be exposed to parcels unless they're trying to do something funky, and pulling repeated subrules out of a match doesn't seem funky to me
21:15 harmil But that's just me, and probably a pretty major change
21:15 pmichaud the issue here isn't list vs parcel, I don't think
21:15 pmichaud i.e., I don't think it's the parcelness that is causing the challenge
21:16 harmil hmm…
21:16 harmil you're right, I think I got confused over the hyperoperator
21:16 harmil r: grammar G { rule TOP { <a> } ; rule a { <b>* } ; rule b { (1) (2) } } ; class A { method TOP($/) { make $<a>.ast } ; method a($/) { make $<b>>>.ast>>.hash } ; method b($/) { make $/[0].Str => $/[1].Str } }; my $result = G.parse("1 2 1 2", :actions(A.new())); say $result.ast.perl
21:17 p6eval rakudo 90333b: OUTPUT«$(("1" => "2").hash, ("1" => "2").hash)␤»
21:17 harmil that does the right thing
21:17 pmichaud right,  $<b>.hash returns the hash portion of the match itself
21:18 harmil I'm still not 100% clear on why the final result is a parcel rather than just a hash, though
21:19 pmichaud well, it's a parcel of two hashes
21:20 pmichaud I think what you might want is  ($<b>>>.ast).hash
21:20 pmichaud which creates a single hash from the ast elements
21:20 harmil sorry, I have hash on the brain ;) I mean rather than just a list
21:20 harmil no, no that would be bad, as they're not unique.
21:20 harmil I want an ordered list of hashes
21:20 pmichaud okay, makes sense
21:21 bruges_ joined #perl6
21:21 harmil I could be convinced i want an ordered list of pairs, but I was getting some behavior I didn't understand when I tried to do that
21:23 Celelibi joined #perl6
21:23 harmil Hmm… but now that I try it, it works flawlessly. I'm going to just go cry ;)
21:24 PerlJam harmil: you just needed some of #perl6's brainpower to leak into your mind
21:24 harmil heh
21:25 pmichaud in general I think that subscripting operations return parcels because they're able to reflect "what the programmer wrote" without committing to a particular flattening/itemization
21:26 cog_ joined #perl6
21:27 PerlJam it's all about the lazy
21:27 tadzik good evening #perl6
21:27 felher 6o/
21:27 felher * o/
21:27 pmichaud it will also likely become more important when we have multi-dimensional indexes
21:31 tokuhiro_ joined #perl6
21:34 fgomez joined #perl6
21:36 spaceships joined #perl6
21:51 am0c joined #perl6
22:12 raiph Going thru the "big problems" raised earlier
22:13 raiph > lack of a ``production'' release.
22:13 harmil Given R*, what does that mean?
22:15 harmil Just that, e.g. Ubuntu doesn't have a binary package for perl6-rakudo-star and perl6-rakudo-star-devel?
22:19 adu joined #perl6
22:19 raiph I think it would useful for #perl6 to pick a target xmas date.
22:19 harmil I pick 2004
22:20 raiph heh
22:20 raiph "Larry Wall, primary author of Perl, on productizing Perl 6" @ http://www.reddit.com/r/perl/comments/u1y3z/lar​ry_wall_primary_author_of_perl_on_productizing/
22:21 harmil "whenever i've tried rakudo, it wasn't the speed that put me off, it was the enormous amount of memory required to build it. i think it needed 1.5GB last time i tried." — have to admit that I'm on-board, there. When it blew up a VM I had at home, I was a bit taken aback.
22:25 pmichaud ...memory needed to build?  That sounds to me like maybe we (the rakudo team) need to offer binaries.
22:25 harmil maybe… it also seems to me that there must be something very wrong going on if building requires more than a gig of ram
22:26 harmil I do understand the bootstrap process well enough to understand why it would be a memory hog, but that's a whole lot of memory
22:26 raiph s/I think it would useful for #perl6 to pick a target xmas date/I think running with Larry's sense of timing will help attract new blood/
22:27 pmichaud which step is taking the memory, ooc?  compiling CORE.setting?
22:27 harmil Now perl6 wants my blood?!
22:27 raiph heh
22:27 * TimToady wasn't aware that Larry had a sense of timing...
22:28 harmil pmichaud: checking
22:28 pmichaud just as a note, on my system CORE.setting.pbc  (the resulting output) is 11MB
22:29 raiph I've been waiting for years to see if you (fsvo of "you") would risk hinting at when xmas would come.
22:30 harmil Yeah, right after stage: past I'm at 850GM VM
22:30 pmichaud I think we've discovered that xmas means different things to different people.
22:30 jnthn pmichaud: It'll be compiling CORE.setting.
22:30 pmichaud jnthn: yes, that's what I suspected; just wanted to verify.
22:30 harmil 1.3GB after stage: post
22:31 * TimToady has hinted that p6 will probably take as long as The Hobbit sequel took
22:31 jnthn We shaved some couple of hundred meg off it a while ago :)
22:31 harmil yes, it's on "./perl6 --setting=NULL --optimize=3 --target=pir --stagestats --output=src/gen/CORE.setting.pir src/gen/CORE.setting"
22:31 jnthn The QAST work whould shave off a bunch more.
22:31 jnthn *more
22:31 harmil The nice thing is, if I suspect that I've got a lot of cruft hanging around resident in RAM for no reason, I can build p6 and force it all out to swap….
22:32 pmichaud harmil: the memory usage has to do with the tree structures we generate while compiling p6 code
22:32 pmichaud they're.... huge
22:33 harmil I'd imagine. I mean, I look at Grammar.pm and my mind boggles at the data structures that represent just that. I'm not saying I expect it to be small...
22:33 pmichaud jnthn is likely correct that we'll be able to make things slower when we get a better ast structure (QAST)
22:33 sorear harmil: hi, I gave up on rakudo dev two years ago because it wouldn't build on my 400MB box
22:33 jnthn slower?
22:33 jnthn I said smaller :)
22:33 pmichaud s/slower/smaller  # oops
22:34 harmil sorear, you just need more swap ;-)
22:34 pmichaud I'm trying to watch talks at the same time :)
22:34 adu harmil: a gig is nothing, a simple Go hello world will take up a gig of used memory and reserve 19G of unused memory
22:34 raiph TimToady: in your own words: http://irclog.perlgeek.de/​perl6/2012-01-07#i_4942518
22:34 harmil adu: I'm going to my happy place, now, where you didn't say that
22:36 adu harmil: the developer's response when I raise the issue was "if your OS allocates swap space for zeros, then your OS sucks"
22:36 sorear adu: I have to side with the developers here
22:37 harmil sorear: that's a finer knife than you think. If, in C terms, they're doing the equivalent of malloc(big_buckets_of_ram) then yes, that should not require work
22:37 harmil However, if they're requesting that zero-filled, then they're wrong.
22:38 sorear harmil: on UNIX, allocating big_buckets_of_ram is automatically "zero filled"
22:38 harmil You can either not care what you get (and hope for zero-filled) or you can suck up the fact that the RAM may have to be touched
22:38 harmil sorear: that's not entirely correct.
22:38 sorear harmil: allocate-on-demand pages are always zeroed before being passed to the process
22:39 sorear harmil: it's a security issue - can't have processes seeing the contents of pages freed by other users
22:39 harmil There  are ways to delay that work, but it's painful, and I'm sure Go doesn't want to (pardon the pun) go there
22:39 adu harmil: heh
22:40 harmil delayed work is not work undone. There's no security problem involved as long  as you ensure that reading from  a page will be preceeded by a zero-fill
22:40 sorear I know the Chrome sandbox allocates 64GB of scratch pages on 64-bit systems
22:41 harmil Unix provides no guarantees about the timing of zero-filling. Actually, I'm not 100% certain that Unix brk provides ANY guarantees about memory contents (though in practice, most POSIX systems do)
22:41 sorear harmil: on Linux, allocate-on-write pages are actually copy-on-write images of a special "zero page" allocated at startup.  there is no work or allocation until the write.
22:41 adu interesting
22:41 sorear if your OS doesn't do the same thing, it sucks.
22:42 sorear Rakudo, unlike Go, allocates 2GB of pages *and fills them with real data*
22:42 sorear there is no comparison here at all.
22:42 * diakopter wonders what OS adu has
22:42 harmil sorear: we're not comparing. You can relax
22:42 adu diakopter: macosx
22:42 diakopter I mean harmil
22:43 diakopter nm
22:43 diakopter I meant adu
22:43 adu :)
22:43 diakopter adu: so macosx allocates all that?
22:43 adu no
22:43 harmil macosx is roughly speaking machish, which means its VM handling is baroque as hell. you can't really force it to commit to anything until you actually poke a stick at a memory location ;-)
22:44 adu but top/ps report rsize as 1G and vsize as 19G
22:44 sorear does macosx do the GNU Mach thing where the kernel panics if it runs out of swap space?
22:44 harmil I ran into this while porting the original troff (shudder) source to OSF/1
22:44 diakopter adu: what OS does your above statement about the Go hellow world apply to?
22:44 adu macosx
22:44 sergot good night! o/
22:44 sorear adu: what is the rss for the go hello world?
22:44 geekosaur sorear: not in my experience
22:44 harmil wow, OK I'm shocked
22:44 adu sorear: is that a top/ps param?
22:45 sorear adu: RSS is one of the top columns
22:45 harmil The Go folks must be doing something really strange to force MacOS to pre-allocate ANYTHING
22:45 sorear escuse me, RES
22:45 adu let me find my hello world + while true
22:46 harmil Mind you, most of what I know about machish systems is all 2 decades old at this point, so ymmv
22:46 raiph So we agree that Rakudo currently has heavy build requirements.
22:46 adu oh oops
22:46 raiph And we don't know how much that will improve between now and xmas 2013.
22:46 harmil raiph: no, not at all. It's wafer thin
22:46 pmichaud I think we know that it will likely improve; no, we don't know how much.
22:47 raiph But would that be a blocker from shipping a "productized" Perl 6 compiler?
22:47 raiph I don't think so.
22:47 sorear raiph: niecza builds comfortably in 300MB on a 32-bit system
22:48 harmil I think we can say that Perl 6 will ship on xmas of a year that has either a Hobbit or Prometheus release. Then again, that's likely to be all of them for a while now...
22:48 whiteknight joined #perl6
22:48 adu are you talking about RSHRD?
22:49 sorear adu: what are your top columns?
22:49 pmichaud raiph: I don't think build requirements are a blocker for shipping.
22:49 sorear I don't have a RSHRD
22:49 sorear pmichaud: binary builds would be *awesome*
22:49 adu CPU TIME #TH  #WQ  #POR #MREG RPRVT  RSHRD  RSIZE  VPRVT  VSIZE  PGRP
22:49 adu it'd bsd top
22:49 raiph pmichaud: i agree.
22:50 sorear adu: ok, the relevant column is RPRVT
22:50 adu sorear: RPRVT=192K  RSHRD=212K  RSIZE=480K  VPRVT=34M  VSIZE=19G
22:50 pmichaud if we do binary builds, we just need to have the equivalent of release managers for binary builds, and the tools/instructions to build them
22:51 adu sorear: I guess I was wrong about rsize
22:51 pmichaud fsvo "just need"  :-)
22:52 harmil I'd say the blockers for P6 the "product" are: 1) a finished library suite 2) documentation that isn't cast in the form, "x, y and z differ from Perl 5" as the rules synopsis does 3) vastly improved error messages for cases like missing semicolons 4) module handling sorted out 5) integration with various OSes including packaging and distribution concerns
22:52 * TimToady wishes buffer bitops worked in niecza...
22:52 harmil and buffer bitops
22:52 harmil ;)
22:52 raiph pmichaud: binary builds would be awesome but i don't think you should prioritize them
22:52 TimToady or that s/// returned a boolean result in rakudo :)
22:53 pmichaud raiph: I know that build requirements is often cited as a blocker for folks (more)
22:53 TimToady those are my current blockers on translating my rad program to p6 :)
22:53 pmichaud and the debian / fedora packagers are always running months behind
22:53 sorear TimToady: are you sure you want buffer bitops?  Buffer is an immutable type, and if you're trying to do bitflags here, that's a sickening amount of copies
22:54 harmil If you're ever interested in why I put #2 on that list, go try to find the definition of /\w/ in S05
22:54 sorear TimToady: wouldn't a compact array of bool be better? :)
22:54 pmichaud harmil: what does "finished library suite" mean, ooc?
22:54 sorear harmil: the actual definition you're looking for isn't even in the perl 5 docs; it's in Technical Report #18 on unicode.org
22:54 adu harmil: pmichaud: are you talking about the settings library?
22:55 pmichaud adu: I don't know, that's why I'm asking :)
22:55 adu btw, why is it called "settings"? why not "standard library"?
22:55 harmil I'd say that it means everything listed as "DRAFT" OR "TBD" is sorted out at: http://perlcabal.org/syn/
22:55 harmil sorear: that's not an answer and any language that takes that position is user-hostile
22:56 harmil FWIW: Java used to take that position. They got better
22:56 sorear harmil: you seem angry today
22:56 sorear harmil: I'm not fighting you
22:56 sorear harmil: even if you think I am
22:57 adu someone said the synopses would be 10x bigger if they were written in language lawyerese
22:57 diakopter sorear: he wasn't asking as an implementor, who might be interested in reading TR18.
22:57 diakopter he was asking as a newbie.
22:57 sorear diakopter: I did not tell him to read TR18.
22:57 pmichaud harmil: *everything* in synopses?  S09 isn't likely to be finalized soon, but clearly Rakudo can ship and be usable if it's not finished.
22:57 harmil sorear: I'm not angry at all. I'm just saying 1) that wasn't an answer to the question I had at the time and 2) any language which doesn't give answers to common questions in their core docs is, fundamentally user-hostile.
22:57 sorear diakopter: I told him the documentation was even less useful than he thought.
22:57 sorear harmil: it was not intended to be answering the question.
22:57 harmil sorear: if I'm angry with you, I promise to write, "and I'm angry with you" at the end of my statements ;-)
22:57 diakopter that was unclear; it sounded like you were answering the question
22:58 raiph diakopter: but sorear was pointing out that even perl5 doesn't doc that stuff. why would we assume p6 must?
22:58 sorear how could I possibly be answering the question
22:58 sorear TimToady: I hear you saying "I need a hole in my foot.  May I have a gun?"
22:58 pmichaud let's stipulate that the synopses do not qualify as adequate "user documentation".
22:58 diakopter but... perl5 does document that stuff.
22:58 adu are those things (like \w) destined to be in syn? or are they destined to be in "the big Perl6 book" or something wiki-bookish?
22:59 sorear "the big Perl6 book" is wiki-bookish, so yes
22:59 harmil pmichaud: i think there should be "a spec" (in fact, I think that was a core requirement back in 2000). That spec should be finalized before we call p6 "a product". I don't think that's unreasonable. Right now the synopses seem to be the closest I have to "a spec"
22:59 sorear (it's a latex file in a github repo)
23:00 harmil end-user books are interesting, but they need to be informed by the spec.
23:00 pmichaud harmil: the problem is "finalized".  Specs evolve also.
23:00 diakopter sorear: that's not wiki-ish at all
23:00 adu sorear: is it public?
23:00 diakopter sorear: it's not open to the public
23:00 pmichaud We can talk about a 6.0.0 spec as being finalized, and that could be separate from the synopses.
23:00 sorear huh?
23:00 sorear github.com/perl6/book is NOT a private repo
23:00 harmil Put a 1.0 on it and take "DRAFT" etc off, and I'll call it a spec. It's allowed to evolve, but that won't have a 1.0 on it....
23:00 diakopter sorear: did I say it was a private repo?
23:00 pmichaud I think we need to put 1.0 only on the parts that we're certain we want to keep.
23:01 sorear diakopter: 16:00 < diakopter> sorear: it's not open to the public
23:01 pmichaud there are many parts (that haven't been implemented yet) that we don't want to freeze.
23:01 harmil pmichaud: you can call it whatever you like, but I want a URL :-)
23:01 diakopter sorear: oops. I thought only certain people could commit to it.
23:01 diakopter even though it's not a private repo.
23:01 harmil I have a ride outside, feel free to drop a line to harmil@ajs.com if you want me to follow up on anything more detailed
23:01 pmichaud in some sent the spec is really more of a "language plan" than a "language specification".... and few plans survive contact with implementations and users
23:01 pmichaud *in some sense
23:02 adu moritz: sorear: this looks familiar, I think I've seen a pdf from this source
23:02 sorear now I am not getting anything done, I promise not to read #perl6 for an hour
23:02 pmichaud in that sense, perhaps we need to recast the synopses as something other than "the language specification"
23:02 pmichaud maybe I can find some time to explore that with TimToady++ while we're both here at yapc::na
23:03 diakopter "the parts of Perl 6 that differ from Perl 5, jumbled."
23:03 pmichaud anyway, time to commute here -- bbl
23:04 diakopter sorear: a latex file is not wiki-ish at all.  very few people would know how to edit that.
23:05 diakopter sorear: I was right.  I don't have write access to perl6/book.  you were wrong.
23:06 diakopter and even if I could contribute to it, I don't know latex.
23:07 diakopter though obviously those who have commit access can apply pull requests.
23:07 diakopter that is not wiki-ish at all.
23:08 sorear diakopter: most wikis don't allow anonymous users to edit.  we have a registration process here, it involves hugme: add diakopter to book
23:09 sorear diakopter: I agree it's not very wiki-ish, but I think the wiki-ish-ness is nonzero
23:11 sorear ARGH
23:15 diakopter sorear: ok. I forgot/didn't realize folks are added to it via hugme, though not for a long time
23:22 adu hugme: add adu
23:23 adu hugme: add adu to book
23:23 hugme adu: You need to register with freenode first
23:24 adu hugme: add adu to book
23:24 hugme adu: You need to register with freenode first
23:26 sorear n: class A { method !bar() { say "-----Oops-----" }; }; BEGIN { A!A::bar() } # Cute.
23:26 p6eval niecza v18-7-ga660099: OUTPUT«[31m===[0mSORRY![31m===[0m��Cannot call private method 'bar' on A because it does not trust GLOBAL at /tmp/fZX7lut8eK line 1:�------> [32m-----Oops-----" }; }; BEGIN { A!A::bar()[33m�[31m } # Cute.[0m��-----Oops-----�Unhandled exception: Check faile…
23:26 jnthn r: class A { method !bar() { say "-----Oops-----" }; };  ; BEGIN { A!A::bar() }
23:26 p6eval rakudo 90333b: OUTPUT«===SORRY!===␤Cannot call private method 'bar' on package A because it does not trust GLOBAL␤at /tmp/UoTe4xMj8r:1␤»
23:27 jnthn Consistent answers \o/
23:27 jnthn Also the correct one.
23:35 skids joined #perl6
23:46 tyatpi joined #perl6
23:50 adu what does "Non-declarative sigil is missing its name" mean?
23:51 geekosaur you have a sigil that isnt followed by a variable name, and it's not in a prototype?
23:55 * jnthn -> sleep
23:55 adu { say $¢; }
23:55 jnthn Also, I'm going to be largely afk for several days.
23:55 adu does $¢ not work in rakudo?
23:55 jnthn phenny stuff that matters :)

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

Perl 6 | Reference Documentation | Rakudo