Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2012-03-26

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:20 noteventime joined #perl6
00:34 shinobicl__ joined #perl6
00:36 shinobicl__ left #perl6
00:37 localhost joined #perl6
01:09 fgomez joined #perl6
01:19 scott__ joined #perl6
01:34 havenn joined #perl6
02:45 xinming_ joined #perl6
03:14 orafu joined #perl6
03:20 envi_ joined #perl6
03:30 lestrrat joined #perl6
04:47 Timbus joined #perl6
04:50 NamelessTee joined #perl6
05:33 havenn joined #perl6
05:38 moritz sorear: btw my niecza build still fails, make: *** No rule to make target `boot/obj/Run.CORE.ser', needed by `boot/obj/Run.CClass.ser'.  Stop.
05:49 sorear moritz: don't use -j
05:50 moritz sorear: I don't
05:50 sorear comments earlier today suggest some dolt made (g)make -j by default
05:51 moritz I'm on Debian stable; I'm pretty sure my make is too old for that kind of fancy
05:51 * moritz tries again after git clean -xdf
05:51 sorear in that case, I have no idea whatsoever what the problem is, and as such cannot help you.
05:52 sorear sorry.
05:53 moritz hm, seems to get further this time
05:53 sorear what version of make do you use?
05:54 sorear that error message is worthless
05:54 moritz sorear: 3.81
05:54 sorear me too
05:54 moritz sorear: if you want to reproduce, simply rm -rf boot/, touch a source file and try to rebuild
05:54 moritz anyway, build finished now after git clean -xdf
05:55 sorear hmm, I would consider that DIHWIDT
05:55 sorear since you left .fetch-stamp alone
05:56 sorear .fetch-stamp is newer than FETCH_URL, so no downloading of boot/
05:56 sorear directory modtimes aren't terribly useful so we need to use an external file
05:57 sorear if you find a way to make it less breakable, tell me
05:57 sorear since I no longer care about staying on ingy's good side - I HATE MAKE
06:02 wtw joined #perl6
06:17 mucker joined #perl6
06:43 birdwindupbird joined #perl6
06:52 agentzh joined #perl6
07:34 * moritz deletes a few old rakudo branches
07:42 mj41 joined #perl6
07:46 moritz rafl: good morning. Did you attend the GSoC feedback meeting on Friday? Was there a good explanation about why TPF wasn't accepted?
07:53 DarthGandalf joined #perl6
07:53 DarthGandalf joined #perl6
07:57 fglock joined #perl6
08:00 arnsholt sorear: Indeed. Make sucks mightily. It's just a shame that all the alternatives suck mightily
08:00 arnsholt I've been meaning to look into redo though, which looks promising
08:02 masak good morning, #perl6
08:02 sorear good moring, masak
08:02 moritz good am, arnsholt and masak
08:10 tadzik good mornings
08:11 tadzik moritz: there's a log: http://gist.github.com/2175315
08:11 moritz tadzik: thanks
08:18 moritz rafl: never mind :-)
08:22 dakkar joined #perl6
08:24 kaleem joined #perl6
08:26 masak carol++ GSoc++ # http://gist.github.com/2175315
08:26 * moritz curses loudly at the proprietary simulation software he uses
08:43 eternaleye joined #perl6
08:44 eternaleye joined #perl6
08:44 eternaleye joined #perl6
08:45 zipf joined #perl6
09:04 moritz wow, perl 5.16 gets __SUBS__, which is like Perl 6's &?ROUTINE
09:06 Gothmog_ joined #perl6
09:07 flussence I hear they're trying to make gather/take work too :)
09:07 masak __SUB__, surely?
09:08 moritz erm, yes
09:08 bacek joined #perl6
09:08 tadzik flussence: I think they did :)
09:09 moritz there's a module for that
09:09 tadzik I see we all read lwn from time to time :)
09:09 moritz https://metacpan.org/release/List-Gather
09:14 moritz n: 'foo'.print
09:14 p6eval niecza v15-6-gefda208: OUTPUT«Unhandled exception: Unable to resolve method print in class Str␤  at /tmp/db_Pe7OphD line 1 (mainline @ 2) ␤  at /home/p6eval/niecza/lib/CORE.setting line 3842 (ANON @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting line 3843 (module-CORE @ 65) ␤  at /home/p…
09:15 masak n: 'foo'.say
09:15 p6eval niecza v15-6-gefda208: OUTPUT«foo␤»
09:15 moritz that stops the starry obfu from working on niecza
09:16 moritz though easy enough to work around
09:16 masak or patch :)
09:17 moritz and wow, I've written a program that's faster in rakudo than in niecza
09:18 moritz mainly because its runtime is dominated by &eval calls
09:20 masak heh.
09:20 masak hm -- http://en.wikipedia.org/wiki/Perl mentions Rakudo but not Niecza. arguably this should be rectified.
09:21 rafl masak: glad i could help ;)
09:22 masak "At the 2000 Perl Conference, Jon Orwant made a case for a major new language initiative."
09:22 * masak laughs
09:23 rafl whops. s/masak/moritz/. ETOOEARLY!
09:23 masak heh -- figgered it was a mistab. :)
09:23 daxim joined #perl6
09:23 moritz rafl: masak and me are quite used to mistabs :-)
09:24 masak I never wake up and wonder whether I'm moritz or masak. but apart from that, basically every kind of mixup happens. :P
09:25 masak yeah, that wikipedia page needs an update. it contains a lot of "As of early 2009", and mentions Mildew as an active non-Parrot implementation, but not Niecza.
09:25 moritz we also shouldn't have 'Future' as the heading for the Perl 6 section
09:26 moritz it's another instance of the "p6 is an automatic upgrade from p5" thought
09:26 masak Richard Bandler talks a lot about people with a mental slot like "later" or "soon" or "tomorrow". they place tasks there and somehow never get them done.
09:27 masak I think something similar is going on with the "Perl 6 == future" meme.
09:27 arnsholt masak: Perhaps rephrase to "Orwant made a _strong_ case for a major new language initiative"? =)
09:28 masak arnsholt: he said "we need to do something, or people will lose interest and walk away".
09:29 masak http://strangelyconsistent.org/blog/happy-10th-anniversary-perl-6
09:32 arnsholt Indeed, indeed
09:32 envi_ joined #perl6
09:37 moritz ok, I've now split the "Future" section into a "Perl 6" and a "Future of Perl 5" section, http://en.wikipedia.org/w/index.php?title=Perl&diff=483985548&oldid=483623605
09:38 moritz but both section still need lots of work
09:40 zipf joined #perl6
09:41 moritz but I can't do that at $dayjob right now :-)
09:43 masak nevertheless, moritz++
09:47 masak today's autopun: "Doctor told me I had insomnia. I spent all night awake worrying about it."
09:47 moritz there's an odd feeling to changing a web page that seems to have so much authority
09:47 icwiener joined #perl6
09:47 icwiener joined #perl6
09:47 moritz it's a mixture of "wow, I can do that?" and "if it's so important, why has nobody bothered before me?" and "I hope I don't screw it up"
09:47 moritz masak: nice one :-)
09:49 masak moritz: that pretty much sums up Wikipedia. we wouldn't think the same of it if it were named "Jimbo's Bag o' Trivia"
09:50 masak instead, it's called "Wikipedia", and there's a definite black-hole effect around it, whereby things become slightly more authoritative *because* they're on Wikipedia.
09:51 moritz and the weird thing is, if I write arbitrary stuff into it, I get called out for not citing my sources. But if I write the same arbitrary stuff on my own web page first, nobody complains, because I can cite is as a source :-)
09:51 moritz ss/cite is/cite it/
09:51 masak there's all kind of ways to "trick" Wikipedia into accepting facts, yes. some of them are subtle and truly worrying.
09:52 moritz well, I don't want to trick wp; I sometimes just want to add some knowledge to it, and need to take an extra step to "prove" my credibility
09:53 masak nod
09:55 moritz fwiw on the 'Black Perl' page I've added a link to the IRC logger where TimToady++ confirms his authorship. So far it has survived, contrary to colomon++'s prediction that it would go away in a week
09:56 masak yay
10:09 zipf joined #perl6
10:11 * colomon is trying to remember when he said that....
10:12 moritz colomon: http://irclog.perlgeek.de/perl6/2010-05-11#i_2319892
10:13 colomon indeed!
10:13 moritz the IRC logs are part of my outsourced memory :-)
10:14 colomon moritz++
10:16 colomon have to admit I'm still a bit astonished, but I'm glad, too.  :)
10:16 masak I feel slightly powerless nowadays when I don't have the Internet at my fingertips. prediction: this will only get more pronounced as we progress into the future.
10:17 masak or rather, the human/internet connection will be even more immediate and effortless, and as a consequence, we will feel more powerless when the connection is broken.
10:19 havenn joined #perl6
10:19 * moritz doesn't contradict at all
10:20 moritz though I'll do my best to raise my daughter so that she'll be able to both efficiently use the Internet, and cope without it too
10:20 masak oh, sure.
10:21 colomon Little Henry is already learning to type (at his own desire, not ours)
10:21 masak my point is just that it'll be "coping" ;)
10:21 moritz colomon: how old is he? and can he read?
10:22 colomon 3, and no, he cannot
10:22 colomon but he's learning his letters
10:22 colomon well, he can read / spell a few words
10:22 moritz wow, that's quite early
10:22 colomon actually, I think he knows all his letters now
10:23 moritz I couldn't even spell my name when I entered school with 6 years
10:23 masak I could, but I insisted my name should be spelled more logically.
10:23 masak "KAL"
10:23 colomon he also knows that caps lock gets you uppercase (he doesn't really have the dexterity for the shift key yet) and enter/return sends the messages (he's been texting his granny)
10:24 colomon but mostly we have to spell for him.
10:24 bbkr hm, I'm 30 and I can barely handwrite because I got C64 with printer at the age of 6 :)
10:24 colomon "I want to type 'model railroading'."
10:24 colomon C64++
10:24 masak bbkr: hey, I'm 30 too! :)
10:24 moritz bbkr: :-)
10:24 * moritz also doesn't like writing manually
10:25 masak I can handwrite, and I take pride in knowing how to do it. but I'm just so slow at it!
10:25 moritz I mean, handwriting
10:25 moritz masak: fast xor readable :-)
10:30 masak writing sloppily only makes my writing sloppy, and not much faster.
10:31 colomon bbkr: I'm old enough that I'd already learned to handwrite, but young enough that when we got a C64, I changed my printing to look more like its characters.  ;)
10:31 dakkar joined #perl6
10:31 masak but I write quite clearly, most of the time. I've often gotten the comment that my handwriting looks like a girl's.
10:32 masak apparently, girls tend to handwrite well, according to some.
10:34 NamelessTee joined #perl6
10:35 dakkar joined #perl6
10:43 jlaire I've been told that many times, too :|
10:44 jlaire I handwrite mostly math or other things where slowness isn't a big issue
10:55 am0c joined #perl6
11:19 icwiener joined #perl6
11:22 moritz meh, nobody can distinguish my u's, v's and \nu's reliably, not even I
11:26 masak heh, for a few seconds I read your "\nu" as "a u written after a linebreak" :P
11:27 masak I'm pretty sure I can write those three and reliably distinguish them afterwards. whether others can, I'm not so certain.
11:28 masak \nu is distinguished from v. in the former, both strokes "curve" a bit to the right.
11:29 masak or "bulge", is perhaps a more appropriate term.
11:29 daxim experts:  what's the Perl6 equivalent code of <http://www.mail-archive.com/perl-unicode@perl.org/msg03055.html>?
11:29 moritz when I have enough time, I can do that too. But in the haste of transcribing a lecture on the fly, I usually fail
11:30 moritz daxim: I don't think we have an API for the Unicode::UCD stuff yet :/
11:30 moritz daxim: feel free to propose one
11:30 daxim what about the program with the two matches?
11:31 moritz n: say so "为" ~~ /<:isHan>/
11:31 p6eval niecza v15-6-gefda208: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤ISHAN does not exist as a UCD table at /tmp/BcoFaqE8DR line 1:â�¤------> [32msay so "为" ~~ /<:isHan[33mâ��[31m>/[0mâ�¤â�¤Unhandled exception: Check failedâ�¤â�¤  at /home/p6eval/niecza/boot/lib/CORE.setting line 1362 (die @ 3) â�¤  at …
11:31 moritz n: say so "为" ~~ /<:Han>/
11:31 p6eval niecza v15-6-gefda208: OUTPUT«True␤»
11:31 moritz and \X is supposed to be dealt with by a single dot in grapheme mode, but that's NYI too
11:32 colomon perl6: say so "为" ~~ /<:Han>/
11:32 p6eval pugs: OUTPUT«*** No such subroutine: "&so"␤    at /tmp/69AK70W3LJ line 1, column 5 - line 2, column 1␤»
11:32 p6eval ..rakudo 57a681, niecza v15-6-gefda208: OUTPUT«True␤»
11:40 kaleem joined #perl6
11:43 jferrero joined #perl6
11:45 pernatiy joined #perl6
11:46 icwiener joined #perl6
11:51 tokuhiro_ joined #perl6
11:52 masak r: say so "ASCII" ~~ /<:Han>/
11:52 p6eval rakudo 57a681: OUTPUT«False␤»
11:52 masak n: say so "ASCII" ~~ /<:Han>/
11:52 p6eval niecza v15-6-gefda208: OUTPUT«False␤»
11:52 masak \o/
12:07 awwaiid joined #perl6
12:10 pernatiy joined #perl6
12:48 lestrrat joined #perl6
12:50 moritz http://tratt.net/laurie/tech_articles/articles/parsing_the_solved_problem_that_isnt
13:14 Juerd moritz: How's the feather1/3 thing? Do the current memory assignments suffice?
13:15 * [Coke] ~~
13:16 moritz Juerd: feather1 has enough memory for compiling rakudo. That's about all I currently know :/
13:17 Juerd Okay, great
13:18 moritz now testing stuff in #perl6-bottest
13:22 spider-mario joined #perl6
13:32 fgomez joined #perl6
13:33 skids joined #perl6
13:41 masak spider-mario! \o/
13:42 spider-mario :)
13:42 fsergot joined #perl6
13:42 fsergot hi #perl6 o/
13:44 masak dzień dobry, fsergocie.
13:47 fsergot :)
13:51 * masak : making people smile
14:00 araujo joined #perl6
14:00 araujo joined #perl6
14:07 alester joined #perl6
14:16 daxim http://mail.pm.org/pipermail/moscow-pm/2012-March/012134.html
14:19 zipf joined #perl6
14:24 fsergot masak: Do You learn Polish lang.? :)
14:24 moritz ok, I now have rakudo, b and niecza running on the feather3 evalbot
14:25 moritz no cron jobs for rebuilding/rsyncing yet
14:25 Juerd moritz++
14:25 moritz next on the list: std and pugs
14:25 moritz though maybe it'll take a day or two
14:27 spider-mario what does “b” refer to?
14:27 masak spider-mario: an old branch of Rakudo.
14:27 moritz spider-mario: the 'Beijing' release of rakudo, the last release before the 'nom' branch
14:27 masak spider-mario: pre-nom, to be exact.
14:27 spider-mario ok :)
14:28 spider-mario I thought nom had become the main branch, are there still reasons to use the old one?
14:28 spider-mario are there still regressions?
14:28 masak fsergot: I'm in an eternal love affair with the slavic languages. Russian in particular, but I like Polish too.
14:28 moritz spider-mario: yes, some few
14:28 moritz spider-mario: the most significant being autovivification
14:29 flussence b: 'abc'.indent(4) # doesn't work in nom yet
14:29 p6eval b 1b7dd1:  ( no output )
14:29 moritz nom: say 'abc'.indent(4)
14:29 p6eval rakudo 57a681: OUTPUT«Method 'indent' not found for invocant of class 'Str'␤  in block <anon> at /tmp/vquXQ76jPx:1␤␤»
14:29 moritz flussence: what is it blocking on? tuits?
14:30 flussence AFAIK the breakages were very minor, I might have the nom code somewhere, lemme check
14:33 flussence https://github.com/flussence/p6-misc/blob/master/lib/Indent.pm - there it is, not quite in copy-pastable form, but it passes its tests.
14:35 flussence I'm at $dayjob right now, but if anyone familiar with rakudo's innards wants to put that in the right place, go for it
14:36 flussence n: say 'abc'.indent(4)
14:36 p6eval niecza v15-6-gefda208: OUTPUT«    abc␤»
14:36 flussence ooh, didn't know it worked there.
14:40 masak n: say "  a\n    b\n  c".indent(*)
14:40 p6eval niecza v15-6-gefda208: OUTPUT«a␤  b␤c␤»
14:40 masak \o/
14:40 masak n: say "\ta\n\t  b\n\tc".indent(*)
14:41 p6eval niecza v15-6-gefda208: OUTPUT«a␤  b␤c␤»
14:41 masak I've forgotten the exact indent rules, but that's gotta be right :)
14:41 PacoAir joined #perl6
14:41 flussence well, implementing it did involve changing the rules :)
14:42 masak I remember :)
14:42 masak n: say "  abc".indent(-4)
14:42 p6eval niecza v15-6-gefda208: OUTPUT«Asked to remove 4 spaces, but the shortest indent is 2 spaces␤  at /home/p6eval/niecza/lib/CORE.setting line 1226 (warn @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting line 913 (ANON @ 10) ␤  at /home/p6eval/niecza/lib/CORE.setting line 926 (Str.indent @ 10…
14:43 masak \o/
14:43 thou joined #perl6
14:44 spider-mario the error message is awesome \o/
14:44 flussence oh, I remember now, I prodded sorear++ to change Test.pm just so I could test that triggered a warning
14:45 spider-mario if only all error messages could be as descriptive.
14:45 masak I like the fact that we have such a method, too.
14:46 masak it fell out of heredocs, because heredocs need .indent(*) internally.
14:46 GlitchMr joined #perl6
14:49 mucker joined #perl6
14:50 dalek specs: 13572a7 | masak++ | S32-setting-library/Str.pod:
14:50 dalek specs: [S32/Str] clarification/grammar fix
14:50 dalek specs: review: https://github.com/perl6/specs/commit/13572a7e46
15:20 masak aha, "scannerless parsing". good term. # http://tratt.net/laurie/tech_articles/articles/parsing_the_solved_problem_that_isnt
15:21 masak and I hadn't thought about it that way, but it's really essential for slang braiding. ("language/grammar composition")
15:21 shinobicl hi... today i saw a discussion online about OOP and i got a question for you perl6 people :)
15:22 shinobicl pure abstract classes plus multiple inheritance... v/s roles... is there _any_ difference at all?
15:23 shinobicl besides runtime composition, that is..
15:24 flussence perl6 roles have the []-parameterisation thing
15:24 masak abstract classes + MI don't give you composition safety.
15:24 NamelessTee joined #perl6
15:26 shinobicl flussence: that's a +1, but, masak, sorry i'm not very versed on this stuff. What do you mean by composition safety?
15:27 masak r: role R1 { method foo {} }; role R2 { method foo {} }; class C does R1 does R2 {}; say "alive"
15:27 p6eval rakudo 57a681: OUTPUT«===SORRY!===␤Method 'foo' must be resolved by class C because it exists in multiple roles (R2, R1)␤»
15:27 masak I mean that.
15:28 shinobicl oh, i see, and how do you solve that?
15:28 masak class C tries to compose roles R1 and R2, but fails because there are conflicting methods.
15:28 masak MI doesn't have anything like it and just does... whatever it feels like, much depending on the particular MRO.
15:29 masak r: role R1 { method foo {} }; role R2 { method foo {} }; class C does R1 does R2 { method foo { self.R1::foo } }; say "alive"
15:29 p6eval rakudo 57a681: OUTPUT«alive␤»
15:29 masak like that.
15:30 masak it's really over-stretching the use for package/our :: notation, but it works really well, and is sorta strangely consistent.
15:30 masak in general, any role composition conflict can be silenced by declaring a method in the class body.
15:33 shinobicl r: role R1 { method !foo {} }; role R2 { method foo {} }; class C does R1 does R2 { }; say "alive"
15:33 p6eval rakudo 57a681: OUTPUT«alive␤»
15:33 shinobicl nice :)
15:35 shinobicl but, why the error does not arise when you try to use "foo" for the first time? you are being forced to solve any conflict even if you dont' use the conflicting methods
15:36 masak private and public methods never collide.
15:36 doy shinobicl: getting the errors at compile time is a pretty huge win
15:36 masak shinobicl: because having conflicting methods is a grave enough design error that you deserve to be alerted at composition time.
15:37 masak shinobicl: your methods form an API, and if your API contains ambiguities like this, it means you're confused and need to be told.
15:37 masak I might turn the question around: "why wait with reporting an obvious error until the last moment, when we can report it as we find it?"
15:38 zipf joined #perl6
15:41 masak or maybe s/error/thinko/
15:43 mtk joined #perl6
15:46 shinobicl well, it makes sense :) and in some ways it encourages you to make roles as small as possible, unless you want to take care of hundreds of conflicting methods whenever you make a new class from roles.
15:47 Psyche^ joined #perl6
15:49 masak there are lots of reasons to keep roles small.
15:49 masak then again, there are lots of reasons to keep classes small, too :)
15:51 benabik joined #perl6
15:53 * masak decommutes
16:05 MayDaniel joined #perl6
16:28 snearch joined #perl6
16:38 kaleem joined #perl6
16:44 kaare_ joined #perl6
16:52 tadzik 'evenings
16:54 felher o/ tadzik
17:04 TimToady lovely community/rosettacode page, but there's no link to it
17:06 kaleem_ joined #perl6
17:17 spider-mario great, the parsing time of rakudo seems to have been divided by ~4 since star 2012.02
17:18 raiph joined #perl6
17:22 PerlJam re small roles ... I'd hate to see class defs like  class Foo does Alpha does Beta does Gamma does Bingo does Fred does Work does Blah does More-Blah does Something-else { ... }
17:23 PerlJam It's all about balance.
17:23 colomon Isn't the degree of the name collision problem going to be exactly the same in either case?
17:24 colomon well, maybe not exactly the same, but of the same magnitude, anyway.
17:25 zipf joined #perl6
17:30 flussence std: class A { does B }
17:30 p6eval std 1ad3292: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Undeclared name:â�¤    'B' used at line 1â�¤Undeclared routine:â�¤ 'does' used at line 1â�¤Check failedâ�¤FAILED 00:01 108mâ�¤Â»
17:30 flussence std: role B {}; class A { does B }
17:30 p6eval std 1ad3292: OUTPUT«[31m===[0mSORRY![31m===[0m�Undeclared routine:� 'does' used at line 1�Check failed�FAILED 00:01 109m�»
17:30 flussence dunno, I thought that worked.
17:31 flussence either way I think there's a way to not have to specify everything all on one line
17:32 flussence (though I'm also of the opinion that you're doing something wrong when your package's full name is a significant fraction of its total code)
17:32 TimToady "also does"
17:32 flussence aha
17:32 flussence (why the "also"?)
17:33 TimToady hid the namespace of declarators
17:33 TimToady *hide
17:33 TimToady especially with regard to "is"
17:33 TimToady see Test.pm
17:34 flussence oh, I get it
17:34 TimToady it also reads better
17:34 TimToady since you're doing something later than expected
17:34 PerlJam flussence: it's not about having to specify everything on one line as much as it is about having to *think* about all the different roles and what they might contain and how they'll be mashed together, etc.
17:34 jevin joined #perl6
17:38 PerlJam But, for  the most part, I think people will find a natural balance between packaging things in classes vs packaging  them in roles after the initial cambrian explosion caused by the introduction of a relatively new concept.
17:42 leprevost joined #perl6
17:44 dukeleto joined #perl6
17:44 dukeleto o/
17:44 PerlJam dukeleto: greetings.
17:45 dukeleto how did the recent Rakudo release on top of parrot 4.2.0 go?
17:48 Chillance joined #perl6
17:51 arnsholt jnthn: I've been having a fair bit of trouble getting the Zavolaj test suite to run properly, and I'm considering fiddling with the test suite to only use functions from POSIX (which should be available on Windows as well)
17:51 arnsholt Would you be interested in such a patch?
17:54 * PerlJam assumes the rakudo release went fine because he had no problems with it
17:56 * colomon assumes the rakudo release went fine because he had no part in it
17:57 PerlJam colomon: does that mean we should be extra careful for the release(s) you are a part of?  :)
17:58 colomon ;)
18:02 TimToady moritz: I'm not happy with the error message, since the ⏏ should be after the whitespace
18:03 colomon arnsholt: that sounds like a very good idea to me
18:07 masak PerlJam: I don't see the problem with a class doing lots of roles. have you had a look at ClassHOW lately? it's wonderfully subdivided into role, just like that.
18:09 masak PerlJam: subdividing into more roles means the metamodel becomes more refined/flexible. going for larger roles -- don't even know if that was an option here -- would mean the metamodel became *less* refined flexible.
18:09 masak it doesn't even feel like a tradeoff in this case.
18:14 mj41 joined #perl6
18:16 PerlJam Yeah, I guess we'll start coming up with standard roles (role names) that make sense and add those to our "normal" vocabulary.
18:18 PerlJam I know we went through this same thing in the early days of Perl 5 when we suddenly had CPAN and modules that started with many "use" lines.  But everyone adjusted as the modules (modules names) got more "conceptual clout"
18:20 masak oh, the current MOP factoring as cute-today over-usage of roles? I didn't even consider that possibility.
18:29 TimToady about the too-many-role-names problem, note that related roles can be composed into larger roles
18:30 TimToady so you aren't required to have a million 'does' declarations in a row
18:31 TimToady so small vs large roles is not really an either/or thing
18:44 masak right.
18:45 masak but let's say I was somehow forced to choose between bulky roles and many roles: I'd choose many.
18:48 ksi joined #perl6
18:49 icwiener joined #perl6
18:50 arnsholt phenny: tell jnthn I'm considering making the Zavolaj test suite depend only on stdlib/POSIX. Sound interesting?
18:50 phenny arnsholt: I'll pass that on when jnthn is around.
19:00 Araq joined #perl6
19:06 lestrrat joined #perl6
19:07 Araq hi everyone
19:07 Araq what's your favourite perl6 feature?
19:11 tadzik hm, let's see
19:11 tadzik the full-blown MOP I thin
19:11 tadzik k
19:12 masak I like the fact that you can mutate the grammar to your liking.
19:12 tadzik or multiple dispatching
19:12 masak I like how the grammar is homoiconic in a way.
19:12 masak or at least metacircular :)
19:13 lucas_ joined #perl6
19:14 tokuhiro_ joined #perl6
19:15 colomon the rich suite of operators, I think
19:17 masak on a higher level, I kinda like how it "carr[ies] forward the high ideals of the Perl community", essentially answering lots of "what-if" type questions about Perl-the-language-family that we wouldn't have known with just Perl 5.
19:17 masak two Perls for the price of one.
19:21 masak and speaking of language evolution; I just found this: http://blog.feabhas.com/2012/03/on-the-evolution-of-programming-style/
19:22 masak (following a simple program through C -> C with classes -> C++98 -> C++11)
19:23 havenn joined #perl6
19:25 masak ooh, and the HN thread has a nice "C++ without classes" solution :) # http://news.ycombinator.com/item?id=3757005
19:31 _jaldhar joined #perl6
19:47 noteventime joined #perl6
19:51 birdwindupbird joined #perl6
19:58 TimToady interesting article: http://cr.yp.to/critbit.html
19:59 TimToady though, of course, handwavey on the subject of what "sorted" means
19:59 Araq it means lexicographical order
20:00 TimToady whatever that means
20:00 masak r: class P{has@.c;method Str{join "+",map {my$j=""if$j=@.c[$_]or next;my ($e)=("x"when 1),("x**$_"when *>1);"{$j}$e"},reverse ^@.c}};multi infix:<*>(P$p1,P$p2){P.new(:c(map ->$i{[+]map {$_ <$p1.c&&$i-$_ <$p2.c??$p1.c[$_]*$p2.c[$i-$_]!!0},^$i},^($p1.c+$p1.c)))};sub x{P.new(:c(0,1))};say x*x
20:00 p6eval rakudo 57a681: OUTPUT«===SORRY!===␤Unable to parse blockoid, couldn't find final '}' at line 2␤»
20:00 Araq 'a' < 'b' ?
20:01 masak b: class P{has@.c;method Str{join "+",map {my$j=""if$j=@.c[$_]or next;my ($e)=("x"when 1),("x**$_"when *>1);"{$j}$e"},reverse ^@.c}};multi infix:<*>(P$p1,P$p2){P.new(:c(map ->$i{[+]map {$_ <$p1.c&&$i-$_ <$p2.c??$p1.c[$_]*$p2.c[$i-$_]!!0},^$i},^($p1.c+$p1.c)))};sub x{P.new(:c(0,1))};say x*x
20:01 p6eval b 1b7dd1: OUTPUT«x**2␤»
20:01 masak \o/
20:01 Araq well you can use any order relation that you like
20:01 colomon masak: I've been pondering how to solve the quadratic equation thing Properly in p6.  ;)
20:01 masak sorry for being a bit terse. I was concerned about the character limit.
20:01 masak colomon: yeah, that's what started me off down this lane too :)
20:02 masak I think I just invented an idiom in there somewhere :P
20:04 TimToady I think about all you can say about crit-bit is that it shorts a 1 bit after a 0 bit, but anything else is going to be assuming an encoding that may or may not produce a meaningful sort
20:04 TimToady UTF-8 will probably sort nicely, in a raw sort of way
20:05 TimToady UTF-16 will not sort so nicely
20:05 TimToady at least, not after you get out of plane 0
20:06 doy well, and the fact that the sorting order is reliant on the encoding at all seems pretty wrong too
20:07 TimToady from a Unicode point of view, but not from a low-level view :)
20:07 doy well, right
20:07 masak r: class P { has @.c;method gist {join "+",map {my $j="" if $j=@.c[$_] or next;my ($e)=("x" when 1),("x**$_" when * > 1);"{$j}$e"},reverse ^@.c}};multi infix:<*>(P $p1, P $p2) {P.new(:c(map ->$i {[+] map {$_ <$p1.c && $i-$_ <$p2.c??$p1.c[$_]*$p2.c[$i-$_]!!0},^$i},^($p1.c+$p1.c)))};sub x {P.new(:c(0,1))}; say x * x
20:07 p6eval rakudo 57a681: OUTPUT«x**2␤»
20:07 masak \o/
20:08 doy but if you expose the sorting functionality as an actual api, it effectively means that you can't ever change your internal encoding in the future
20:11 TimToady for an object hash, we'd have to sort based on the bitstring of .WHICH, which may or may not have anything to do with UTF-8
20:11 TimToady for a Str key, however, keys could be canonicalized to UTF-8 if they didn't come in that way
20:12 Araq convert strings to utf-32 in the crit bit tree implementation and be done with it ;-)
20:12 Araq or just use the byte comparisons
20:12 TimToady so we could conceivably guarantee Unicodebetical order for hashes
20:12 TimToady Str hashes*
20:12 Araq after all, a hash has no order whatsoever
20:12 Araq so it's still a win
20:13 TimToady well, our utf8 can potentially represent characters outside of UTF-32
20:14 TimToady and UTF-32 is rather wasteful for memory in western lands
20:14 Araq do it on the fly in the crit bit tree implementation
20:15 Araq and utf-8 can't represent characters outside of utf-32
20:15 Araq per definition
20:15 TimToady I'll wager UTF-8 will be faster simply because you don't have to look at all those 0 bits
20:15 TimToady our definition of utf8 is not utf-8
20:15 Araq if "your" utf-8 supports more characters, it's not utf-8 ;-)
20:16 TimToady note the absence of a hyphen :)
20:16 Araq omg
20:16 TimToady but yes, Unicode is only defined to 10ffff
20:17 TimToady one of the principles of Perl is must be possible to think evil thoughts
20:17 TimToady and characters outside that range are one of those evil thoughts that must be thinkable
20:17 TimToady it's perfectly fine to blow up if you try to send those characters to an API that doesn't expect it, however
20:18 TimToady as far as perl is concerned, characters are just numbers
20:18 Araq *shrug* your utf32 could be different from utf-32 too
20:19 TimToady and I'm not even claiming this will be the default view, since we're supporting Unicode by default, so by default it'll blow up on big chars
20:19 TimToady so perhaps our crit-bit trees could just be thought of as a sequence of integers
20:20 TimToady where the size of the integers is known one way or another
20:20 masak please optimize for the non-evil case ;)
20:20 TimToady either by fiat (this tree uses 32-bit integers) or by variable-length encoding (this tree encodes integers in a utf8-ish form)
20:21 TimToady you just have to avoid accidentally comparing bits that are not the same power of 2
20:22 TimToady masak: it is not clear that there is a distinction, at least for western languages
20:23 jnthn o/
20:23 phenny jnthn: 18:50Z <arnsholt> tell jnthn I'm considering making the Zavolaj test suite depend only on stdlib/POSIX. Sound interesting?
20:23 TimToady if we end up with strings made out of ropes of UCS-4, UCS-2, and UCS-1, then the crit bits have to be cognizant of that somehow
20:23 jnthn phenny: ask arnsholt what else does it currently depend on?
20:23 phenny jnthn: I'll pass that on when arnsholt is around.
20:24 TimToady and ropes of UCS are extendible to UCS-8, UCS-16 for evil purposes as well.  :)
20:24 TimToady (using the term UCS loosely, of course)
20:26 TimToady this also fits with the notion that NFG is simply a list of Int on some level
20:27 TimToady in which case critbits need to deal with signedness, assuming we use negative ints for synthetic codepoints
20:28 TimToady which I still think is probably the right way to go
20:28 jnthn phenny: tell arnsholt anyways, patches that improve Zavolaj portability are welcome.
20:28 phenny jnthn: I'll pass that on when arnsholt is around.
20:32 masak jnthn! \o/
20:32 jnthn masak! \o/
20:37 jnthn On small roles, I guess there's perhaps some role-y version of the SRP and ISP.
20:43 masak ISP should apply directly to roles.
20:51 TimToady I don't think my ISP would understand the thrust of that remark...
21:02 havenn joined #perl6
21:04 fsergot good night #perl6 o/
21:04 fsergot :)
21:15 japhb_ joined #perl6
21:16 japhb_ Anyone else having trouble getting to the IR clog, or is it just me?
21:16 flussence nope, 's down
21:16 japhb_ bah
21:17 masak 'night, #perl6
21:18 japhb_ Well, from earlier today (I don't know if it's been answered already):  TimToady, the RosettaCode community page has not been linked in to the rest of perl6.org yet because I was still adding content and seeking community input.  Are you wanting to link it in as is?
21:18 japhb_ o/ masak
21:19 mikemol japhb_: Just about everything around Perl 6 is considered work-in-progress, and very little needs to be of some kind of 'release' grade.
21:19 mikemol It's probably OK to add the link.
21:19 TimToady .oO(commit early, commit often)
21:20 mikemol Also, AFAIK, you're not stepping on anyone's toes if you add the link. To the contrary; you might be risking taking ownership. :)
21:20 japhb_ mikemol, understood.  I tend to have a higher-than necessary bar for releasing, so it's good to get the reminder sometimes.
21:20 japhb_ Anybody object to fitting the link into the box on the front page, as well as the main community index page?
21:21 PerlJam japhb_: ask forgiveness rather than permission  :)
21:21 crncosta joined #perl6
21:21 japhb_ PerlJam, damn you and your sense of sanity!
21:21 mikemol "forgiveness" often comes in the form of bugfixing, anyway; if stuff had to be perfect before being committed, we wouldn't need bugtrackers. :)
21:22 pernatiy joined #perl6
21:22 japhb_ OCD: sometimes, it gets in the way.
21:22 PerlJam japhb_: we have an aphorism for every situation  :-)
21:23 japhb_ Of course.  That's what I get for hanging out with linguists.
21:23 mikemol Does that mean that for every situation, $situation === $aphorism?
21:23 mikemol .oO( Uh, sir? We've got an aphorism here... )
21:39 dalek perl6.org: 08cec58 | (Geoffrey Broadwell)++ | source/ (2 files):
21:39 dalek perl6.org: Add Rosetta Code page to main community page and community box on front page
21:39 dalek perl6.org: review: https://github.com/perl6/perl6.org/commit/08cec58821
21:39 dalek perl6.org: 5358193 | (Geoffrey Broadwell)++ | source/index.html:
21:39 dalek perl6.org: Fix a few places on home page where 'Perl 6' should be 'Perl&nbsp;6'
21:39 dalek perl6.org: review: https://github.com/perl6/perl6.org/commit/5358193386
21:39 japhb_ There, should be linked in on the next site update.
21:40 japhb_ Is there a way to awaken the update bot?
21:41 japhb_ Also, is there any particular reason that perl6.org internal links are absolute, instead of relative?
21:42 japhb_ (It would be much nicer to test changes locally if the internal links were relative.)
21:44 pyrimidine joined #perl6
21:49 lichtkind joined #perl6
21:50 lichtkind cheers
21:59 jlaire p6: say 0/0
21:59 moritz japhb_: yes, it means you can move a page around without having to udpate all the local links inside that file
21:59 p6eval pugs: OUTPUT«*** Illegal division by zero␤    at /tmp/DUaVzCA0Gu line 1, column 5 - line 2, column 1␤»
21:59 p6eval ..rakudo 57a681: OUTPUT«Divide by zero␤  in sub infix:<div> at src/gen/CORE.setting:2641␤  in sub DIVIDE_NUMBERS at src/gen/CORE.setting:6851␤  in sub infix:</> at src/gen/CORE.setting:6983␤  in block <anon> at /tmp/qjMj38PqYQ:1␤␤»
21:59 p6eval ..niecza v15-6-gefda208: OUTPUT«0␤»
21:59 jlaire p6: say 0.Num/0
21:59 p6eval rakudo 57a681: OUTPUT«Divide by zero␤  in sub infix:</> at src/gen/CORE.setting:3067␤  in sub infix:</> at src/gen/CORE.setting:2480␤  in block <anon> at /tmp/SkQPVdk4IX:1␤␤»
21:59 p6eval ..niecza v15-6-gefda208: OUTPUT«NaN␤»
21:59 p6eval ..pugs: OUTPUT«*** No such method in class Int: "&Num"␤    at /tmp/6ZxzbIebW6 line 1, column 5 - line 2, column 1␤»
22:00 flussence This sounds like the sort of problem <base href=> was invented to solve :)
22:00 jlaire niecza: say (0.Num/0 xx 8) ~ " Batman!"
22:00 p6eval niecza v15-6-gefda208: OUTPUT«NaN NaN NaN NaN NaN NaN NaN NaN Batman!␤»
22:00 jlaire niecza: say ("" xx 8).join(0.Num/0) ~ " Batman!"
22:00 p6eval niecza v15-6-gefda208: OUTPUT«NaNNaNNaNNaNNaNNaNNaN Batman!␤»
22:03 spider-mario <p6eval> ..niecza v15-6-gefda208: OUTPUT«0␤»
22:03 spider-mario something’s wrong, or am I missing something?
22:04 flussence n: say (0/0)
22:04 p6eval niecza v15-6-gefda208: OUTPUT«0␤»
22:04 flussence n: (say 0)/0
22:04 p6eval niecza v15-6-gefda208: OUTPUT«0␤»
22:04 flussence to me, looks like it's wrong
22:05 flussence n: say (0/0).WHAT
22:05 p6eval niecza v15-6-gefda208: OUTPUT«Rat()␤»
22:05 flussence n: say (0/0).Num
22:05 p6eval niecza v15-6-gefda208: OUTPUT«0␤»
22:07 japhb_ flussence, how does the <base> element solve my issue?  Or where you referring to moritz's?
22:08 flussence japhb_: moritz's I guess, though it'd fix both :)
22:13 * japhb_ smacks himself upside the head
22:13 japhb_ DUH, *that's* why the repo has an app.psgi file in the root.
22:14 japhb_ Hmmm, without file extensions, it 404's.
22:14 moritz not on perl6.org
22:14 moritz which uses apache2, and content negotation
22:15 japhb_ I was just using plackup to run the app on a local port.
22:15 japhb_ I can't (easily) make perl6.org the root of my apache2 instance.
22:15 moritz I also have an Apache running locally, and a 'perl6' virtual host which points to the online/ dir
22:15 japhb_ nod.
22:18 japhb_ IWBNI the plack up just did that for you.
22:18 japhb_ (I'm not an expert on Plack plugins)
22:18 Araq left #perl6
22:22 dalek perl6.org: 36f4aef | (Geoffrey Broadwell)++ | source/index.html:
22:22 dalek perl6.org: (Hopefully) reduce the number of lines used in the community box on the front page so that it doesn't overflow
22:22 dalek perl6.org: review: https://github.com/perl6/perl6.org/commit/36f4aefe07
22:28 lichtkind moritz: planned any yapc talks?
22:44 aloha joined #perl6
22:47 bruges joined #perl6
23:01 dalek perl6.org: 97c3336 | (Geoffrey Broadwell)++ | source/community/rosettacode.html:
23:01 dalek perl6.org: perl6.org's styles expect <dd> contents to be wrapped in paragraphs, so do that for the rosettacode page community favorites list
23:01 dalek perl6.org: review: https://github.com/perl6/perl6.org/commit/97c3336bb3
23:14 envi_ joined #perl6
23:17 lue joined #perl6
23:17 lue hello world o/
23:18 whiteknight joined #perl6
23:20 japhb_ o/ lue
23:26 havenn joined #perl6
23:26 skids joined #perl6
23:34 sorear good * #perl6
23:34 sorear carol++ GSoC++
23:35 sorear masak: the 'r' in Carl is silent in German?
23:36 sorear my han/kana handwriting is a lot neater than my latin handwriting - I blame learning as an adult
23:37 sorear moritz++ # updating Wikipedia
23:46 dalek std: 3c2fb9c | larry++ | STD.pm6:
23:46 dalek std: obs updates; move ident checks to explain_mystery
23:46 dalek std:
23:46 dalek std: Obsolescence messages based on identifiers now done from explain_mystery
23:46 dalek std: so that user-defined subs of the same name aren't impacted.  Added messages
23:46 dalek std: for new P5 regex modifiers, qr, local, and new (as function call).
23:46 dalek std: review: https://github.com/perl6/std/commit/3c2fb9c2d4
23:48 sorear masak: ping

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

Perl 6 | Reference Documentation | Rakudo