»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend!
Set by sorear on 4 February 2011.
[Coke] ~. 00:03
[Coke] r: for lines { die $_ } 00:55
p6eval rakudo 643719: OUTPUT«===SORRY!===␤Missing block␤at /tmp/GoFCSUCU8u:1␤------> for lines { die $_ }⏏<EOL>␤ expecting any of:␤ postfix␤ infix or meta-infix␤ infix stopper␤ statement end␤ statement modifier␤ …
[Coke] r: for lines() { die $_ }
p6eval rakudo 643719: OUTPUT«Land der Berge, Land am Strome,␤ in block at /tmp/ltFJ67_SMb:1␤␤»
[Coke] when extracting named subrules from a match, do you -have- to talk through the named rules to get it? Or is there a syntax for saying "get me all the subrules that match this name." ? 01:19
s/talk through/step through/
lichtkind phenny: tell moritz hoping to have an calendar article by tomorrow 01:24
phenny lichtkind: I'll pass that on when moritz is around.
[Coke] phenny: tell masak: t1 says "must be on the form" when it probably should be "of the form" 02:49
phenny [Coke]: I'll pass that on when masak is around.
[Coke] hurm. using a grammar's .parse method - what does it do to indicate a failed parse? 02:55
[Coke] ah, returns a Match. 03:01
is there a way to get the .panic message out when a match fails? 03:08
sorear afaik, "panic" just trows an exception 03:12
[Coke] hurm. "panic" only appears in one spot in the specs. 03:17
r: grammar A { TOP { 'hi' | .panic("eek") } } ; say A.parse("hi") 03:19
p6eval rakudo 643719: OUTPUT«===SORRY!===␤Undeclared name:␤ TOP used at line 1␤␤»
[Coke] r: grammar A { rule TOP { 'hi' | .panic("eek") } } ; say A.parse("hi")
p6eval rakudo 643719: OUTPUT«「hi」␤␤»
[Coke] r: grammar A { rule TOP { 'hi' | .panic("eek") } } ; say A.parse("bye")
p6eval rakudo 643719: OUTPUT«#<failed match>␤»
[Coke] do I have to override panic, perhaps?
r: grammar A { rule TOP { 'hi' | { fail("eek") } } ; say A.parse("bye") 03:23
p6eval rakudo 643719: OUTPUT«===SORRY!===␤Unable to parse expression in block; couldn't find final '}'␤at /tmp/W70dNztTLe:1␤------> | { fail("eek") } } ; say A.parse("bye")⏏<EOL>␤ expecting any of:␤ postfix␤ infix or meta-infix␤ infi…
[Coke] r: grammar A { rule TOP { 'hi' | { fail("eek") } } }; say A.parse("bye") 03:24
p6eval rakudo 643719: OUTPUT«eek␤ in method gist at src/gen/CORE.setting:10292␤ in sub say at src/gen/CORE.setting:7483␤ in block at /tmp/mB1DgbPZXU:1␤␤»
[Coke] that's better.
[Coke] r: say set(1) (-) set(1); 03:56
p6eval rakudo 643719: OUTPUT«set()␤»
[Coke] r: say set("a");
p6eval rakudo 643719: OUTPUT«set(a)␤»
japhb phenny, tell masak, in the Day 16 advent entry, the tree structure in the "Operator precedence parser" section is missing the 5 term. 03:58
phenny japhb: I'll pass that on when masak is around.
[Coke] r: my $a = set(1) (-) set(1); say $a; 04:07
p6eval rakudo 643719: OUTPUT«set(1)␤»
[Coke] r: my $a = (set(1) (-) set(1)); say $a;
p6eval rakudo 643719: OUTPUT«set()␤»
[Coke] ... that was pretty surprising.
[Coke] r: my %a = {"a" => 2} ; my %b = %a.clone; %b<a>=3; say %a.perl; 05:10
p6eval rakudo 643719: OUTPUT«("a" => 2).hash␤»
[Coke] yay, t1 completed. 06:07
moritz \o/ new HPMoR chapter: hpmor.com/chapter/86 06:10
phenny moritz: 01:24Z <lichtkind> tell moritz hoping to have an calendar article by tomorrow
popl moritz: Harry Potter fanfiction? 06:13
popl Oh. 06:15
Interesting.
sorear yes. by Yudkowsky. 06:18
popl I had no idea who the man even was. I just looked it up.
sorear if you haven't heard of Yudkowsky before you are either very lucky or very unlucky, I'm not sure which...
popl He seems like a philosopher. 06:19
sorear that's definitely one of the things he is 06:20
he used to be involved in the AI community, until he decided that successful AI would most likely kill us all and is campaigning to stop world AI research 06:21
popl haha 06:26
wow
sounds like a winner
popl sorear: Thank you for the information. 06:40
arkydo How can I install perl6 on my system? 06:50
Tene That's not quite accurate. 06:56
bonsaikitten arkydo: carefully
arkydo bonsaikitten: a compiler for perl6? 06:57
bonsaikitten arkydo: you might give us a hint what operating system you're on, if you haven't already looked at either rakudo or niecza and considered ways to install either one 06:58
arkydo bonsaikitten: I use Archlinux. 06:59
bonsaikitten that means you should have a package manager that can do the job for you 07:00
popl pacman
fwiw
arkydo: ask in #archlinux
arkydo Which implementation is recommended rakudo or niecza? 07:01
popl arkydo: Which is available for Archlinux? 07:02
arkydo popl: I've found rakudo in aur repo.
bonsaikitten I think rakudo is easier to handle for now 07:03
popl arkydo: I guess AUR has made your decision easy, then. :)
arkydo Could you recommend a tutorial to learn perl6? 07:39
popl arkydo: perl6.org/getting-started/ 07:44
FROGGS monring 07:57
morning
sorear mroning FROGGS 07:59
FROGGS :o)
jnthn moorning, 08:33
#perl6
...keyboard skills. I haz them.
felher god moorning, jnthn 08:55
jnthn :P 09:01
FROGGS bah 09:04
:P
kresike hello all you happy perl6 people 09:15
FROGGS hi kresike 09:17
tadzik hello hello 09:18
kresike FROGGS, tadzik o/
FROGGS hi tadzik 09:23
tadzik oh, moritz 09:24
I almost fixed Panda yesterday :)
it now fails with some Bad Utf-8 errors
jnthn
.oO( (bad utf-8) errors or bad (utf-8 errors) :) )
09:25
tadzik the former :)
moritz tadzik: it tries to decode ANSI escape sequences as UTF-8? 09:26
tadzik not sure why it would do that
moritz well
r: 1 1
p6eval rakudo 643719: OUTPUT«===SORRY!===␤Two terms in a row␤at /tmp/H19lIGCpdg:1␤------> 1 ⏏1␤ expecting any of:␤ postfix␤ infix or meta-infix␤ infix stopper␤ statement end␤ statement modifier␤ statement modifie…
moritz if it ever tries to read in such an error message as a Perl 6 string, it must get decoded somewhere 09:27
jnthn yeah, da colors will emit ANSI escapes
tadzik oh, hm
moritz jnthn: can we fudge them not to do that if standard output is a pipe?
jnthn moritz: If we can figure out the latter
tadzik that is quite possible
jnthn er, figure out it's a pipe
wtf...my brain is not working at all today :)
tadzik but iirc it fails on step "fetching panda" 09:28
jnthn Note that you can also set RAKUDO_ERROR_COLOR env var to 0
moritz tadzik: ouch 09:30
tadzik I may remember wrong 09:31
FROGGS tadzik: btw, my panda fork almost creates the MANIFEST files in the CUSTOM_LIB dirs... 09:36
moritz fwiw my fresh bootstrap.pl on qast-sink-1 seems to have worked 09:43
now smoking the cheese
tadzik FROGGS: wow, cool 09:45
moritz jnthn: lib/NativeCall.pm6 line 54 uses an undeclared &r 09:51
jnthn: and I can't figure out what it's supposed to use instead
so far we got away with it because it used for .?method call
seems like it's fallout from a refactoring 09:52
FROGGS hmmm, I'd guess that it is the $r from the trait_mods around line 240 09:54
moritz ... which we need to pass along, it seems 09:54
FROGGS hmmm, wait 09:55
if you compare line 23 and 54...
there might be $s instead of &r
moritz then maybe the patch I just pushed is wrong 09:56
problem is, I have no idea what that role might apply to
FROGGS well, I'm just guessing since I don't understand what's going on there
moritz me neither; that's the problem 09:57
FROGGS I believe these subs (param_hash_for, return_hash_for) are called when you have an native sub that should return a hash 09:58
hoelzro good morning, #perl6 09:58
moritz and Inline::C has copied the same folly :( 09:59
FROGGS of course, because it does what it should ;o) 09:59
moritz well, if you think it should die... :-) 10:00
FROGGS btw, thats where I love the strictness of C and hate the lazyness of PHP
FROGGS hi hoelzro 10:01
FROGGS moritz: I wanna parse module files (and classes, roles, whatever). so I made a grammar to pick up statements like "module Foo {"... 10:04
moritz: how can I do something like: rule TOP { <package_declarator>+ % [ * ] }
moritz <package_declarator>+ % [ .*? ] # maybe?
FROGGS hmmm, okay, will try 10:05
had .* but not .*?
moritz well, .* will use up the rest of the file :-) 10:06
FROGGS ohh 10:08
jnthn moritz: bit tied up with $dayjob at the moment, will look at NativeCall later on 10:15
FROGGS moritz: why does that fail to match? gist.github.com/4317261 ó.ò 10:16
moritz FROGGS: no idea off-hand; use jnthn++'s great regex tracer to find out 10:19
FROGGS k, will do 10:20
jnthn rule package_declarator { 10:27
| 'module' \s+ ]
by the time you hit \s+, the implict <.ws> nommed the whitespce.
FROGGS what? 10:28
moritz it's a rule { }
so each whitespace in there implies a <.ws> call
FROGGS I see now that \s+ doesnt match, but when I use <ws> or <.ws> instead, it hangs
so it already matches or ignores whitespaces? 10:29
jnthn FROGGS: rule automatically inserts <.ws> calls for you. Just delete the \s+
FROGGS k
moritz that's usually the result of quantifying a rule that can match zero characters (hangs, that is)
FROGGS ahh, understand 10:30
btw, that debugger is so awesome
moritz++, jnthn++ # it is the working! 10:35
moritz \o/
cedrvint Hello #perl6! 11:35
moritz \o cedrvint
cedrvint \o moritz
does anyone want to proofread Day 18? 11:36
perl6advent.wordpress.com/?p=1745&a...eview=true
moritz nice once, cedrvint++ 11:41
though I confess I've only skimmed it
cedrvint thanks :) 11:42
dalek : 4636cf0 | colomon++ | misc/perl6advent-2012/schedule:
Update misc/perl6advent-2012/schedule

Switch my days' descriptions around, since I ended up doing the second one first.
12:01
moritz r: for ^1 { say FIRST 42 } 12:21
p6eval rakudo 643719: OUTPUT«Nil␤»
moritz r: for ^1 { say CHECK 42 }
p6eval rakudo 643719: OUTPUT«42␤» 12:22
gfldex p6: my $flag = -1; sub will_fail(){ ENTER $flag = 0; LEAVE $flag = 1; while 1 { say "enter: while"; die "welp!"; } }; try will_fail; say $flag; 12:24
p6eval rakudo 643719, niecza v24-12-g8e50362: OUTPUT«enter: while␤1␤»
timotimo please excuse the pestering - could this patch be applied on rakudo-nom? t.h8.lv/0001-.perl-Enums-correctly-too.patch 12:39
moritz timotimo: yes, will do 12:40
dalek kudo/nom: f93e603 | (Timo Paulssen)++ | src/core/Enum.pm:
.perl Enums correctly, too.

Signed-off-by: Moritz Lenz [email@hidden.address]
12:41
timotimo thanks :)
moritz thanks for the patch :-) 12:42
timotimo sure, was a nice little task to learn a bit more about rakudos internals
moritz tadzik: fwiw panda seems to work fine with qast-sink-1 now. Your last commit message was "Almost fix panda for sink context" -- are you aware of anything missing? 12:46
timotimo how new is the sink context idea? has it been spec'd for a long time now? 12:58
moritz yes
jnthn moritz++ tried to implement it a while back, but PAST was not quite so well suited to it as QAST 12:59
moritz it first appears in the roast commit logs in 2009, where void context was renamed to sink context
moritz now that qast-sink-1 seems to come along nicely, I could delete the old sink branches 13:12
branches sink and sink2 deleted. 13:15
jnthn :) 13:18
yeah, qast-sink-1 is the winner :)
Woodi hallo :) 13:24
reading jnthn++ phasers post make me thinking: this is meta-programming :) also: it starting to look 3D when imagined... 13:25
btw. if bootstrapping nqp require compiled older-nqp I will reinstall my boxes :) 13:27
FROGGS jnthn: is there a way to get all global symbols in my current scope? 13:32
moritz: thanks 13:33
jnthn FROGGS: GLOBALish, perhaps? 13:34
jnthn r: class Foo { }; say GLOBALish:: 13:34
p6eval rakudo f93e60: OUTPUT«("Foo" => Foo).hash␤»
FROGGS r: say $*GLOBALish
p6eval rakudo f93e60: OUTPUT«Dynamic variable $*GLOBALish not found␤ in method gist at src/gen/CORE.setting:10292␤ in sub say at src/gen/CORE.setting:7483␤ in block at /tmp/LagLHz7NJA:1␤␤»
FROGGS ahh
dalek p: e6a721b | (Paweł Murias)++ | src/ops/nqp_bigint.ops:
Avoid loosing significant digits when converting from bignums to doubles on 32bit. One less failing assertion on test 60.
FROGGS r: say GLOBALish::; { use Test; say GLOBALish::; } 13:35
p6eval rakudo f93e60: OUTPUT«("Test" => Test).hash␤("Test" => Test).hash␤»
FROGGS r: say GLOBALish::; sub test { use Test; say GLOBALish::; }; test()
p6eval rakudo f93e60: OUTPUT«("Test" => Test).hash␤("Test" => Test).hash␤»
jnthn Globals are...global
FROGGS :/
jnthn Note that GLOBALish is "what do I provide to merge into the main set of globals if I'm a module" 13:36
FROGGS r: say GLOBALish::; sub test { require Test; say GLOBALish::; }; test()
p6eval rakudo f93e60: OUTPUT«().hash␤("Test" => Test).hash␤»
FROGGS --------------------------^
jnthn Right, require happens at runtime
FROGGS so this way I can see what a module exports 13:37
jnthn say GLOBALish::; sub test { require Test; say GLOBALish:: }; test(); say GLOBALish::;
r: say GLOBALish::; sub test { require Test; say GLOBALish:: }; test(); say GLOBALish::;
p6eval rakudo f93e60: OUTPUT«().hash␤("Test" => Test).hash␤("Test" => Test).hash␤»
jnthn Not a scoping thing
FROGGS ya, right
jnthn FROGGS: No, you can see what *GLOBALs* it has
FROGGS just runtime
[Coke] ドリンクコーヒー
jnthn Import is lexical
FROGGS jnthn: thats what I want
at least I think 13:38
[Coke] Q: should the texas set operators bind looser than = ? 13:39
moritz A: no 13:42
my proposed precedence was the same as junctive operators
but I don't have much experience nailing down precedence levels
so I decided to wait for feedback from the magical TimTOADy :-) 13:43
[Coke] ok. sample bug in yesterday's backscroll if you need one. 13:45
moritz there's one in RT too
[Coke] wonders how much effort it would be for masak to post a leaderboard of various solutions pre-decision. 13:46
moritz++
moritz judging from last year's experience, judging solutions is a lot of work. 13:47
[Coke] Just for the stuff a program could handle, like 'wc -l' and 'time .\base_test' output. 13:48
[Coke] also wonders if historically there has been a private tester with more curveballs.
[Coke] understands that even the automated stuff is a PITA to do, though.
moritz has implementations for three tasks that pass base-test 13:49
and I'm only happy with one of them
and have submitted none so far :(
[Coke] I could see some extensions to t1, for example, that aren't explicitly tested but could be.
Passing base test on t2 is easy! :) 13:50
moritz github.com/perl6/specs/issues/25 # missing set operators
say "XXXXX" for ^3 # bases t2 base_test
[Coke] moritz: which ones? I am passing on t1 and t2. I like my t1, but it could use some cleanup and more sixing, and my t2 is barely there (but passes!) 13:51
masak moritz: the base tests are never meant to be exhaustive.
phenny masak: 02:49Z <[Coke]> tell masak t1 says "must be on the form" when it probably should be "of the form"
masak: 03:58Z <japhb> tell masak in the Day 16 advent entry, the tree structure in the "Operator precedence parser" section is missing the 5 term.
moritz [Coke]: I'm happy about my t3 solution
masak [Coke]: right. see notes.md.
moritz masak: I know :-)
masak moritz: and relying on only those tests is a sure way to lose the contest :P 13:52
moritz [Coke]: and t2 and t5 pass their base tests
masak: I know :-)
masak anyway, wohoo chapter 86 \o/
moritz has read it already during commute and pauses
masak: and the second half of chapter 85 was completely redone 13:53
[Coke] masak++ notes.md
masak moritz: I suspected that, based on author notes. 13:53
I will probably re-read chapter 85 first. 13:54
moritz anyway, masak++ # I've had quite some fun during p6cc so far 13:55
masak that's the intent :)
moritz and t3 produces cute output :-) 13:56
LlamaRider masak++ I'm back to P6 after a year of plain old P5 for the new contest :) Let's see if I stick a little longer this time. Thanks! 13:59
masak welcome back, LlamaRider :) 14:02
[Coke] If I'm in a grammar, and I'm calling { fail("...") } - do I have access to the current position of the parse so far? (so that I can figure out what's been successfully matched so far?) 14:03
masak such information should be available through the cursor, I should think. 14:04
moritz: re rt.perl.org/rt3//Public/Bug/Displa...?id=116114 -- yes, but what's that variable $v mentioned in the warning? 14:06
moritz masak: that's LTA, but afaict that wasn't what the ticket complained about
and I think we have another ticket for that too
masak very well. 14:10
moritz but yes, that's something that annoys me too 14:12
felher impressive.sourceforge.net/index.php -- this thing is great. Exactly what I need for PDF presentations. 14:17
oops, wrong channel. 14:18
masak "The page transition effects aren't exactly useful, but they are nice to watch and provide a moment of relaxation for both the audience and the presenter :)" -- as a frequent audience member, I expect better of the presenter than this. 14:20
[Coke] masak: self.CURSOR ?
masak [Coke]: I often see $/.CURSOR, I think.
timotimo masak: the transition effects are, of course, optional 14:21
[Coke] r: grammar b { 'hi' { fail self.Cursor } }; b.parse("hi world");
p6eval rakudo f93e60: OUTPUT«===SORRY!===␤Two terms in a row␤at /tmp/kURRfcWtyj:1␤------> grammar b { 'hi' ⏏{ fail self.Cursor } }; b.parse("hi worl␤ expecting any of:␤ postfix␤ infix or meta-infix␤ infix stopper␤ statement en…
moritz self.CURSOR if you're inside a method in the grammar
[Coke] r: grammar b { rule TOP { 'hi' { fail self.Cursor } } }; b.parse("hi world");
p6eval rakudo f93e60: OUTPUT«No such method 'Cursor' for invocant of type 'b'␤ in regex TOP at /tmp/2DTjpQP5co:1␤ in method parse at src/gen/CORE.setting:10508␤ in block at /tmp/2DTjpQP5co:1␤␤»
[Coke] r: grammar b { rule TOP { 'hi' { fail self.CURSOR } } }; b.parse("hi world");
p6eval rakudo f93e60: OUTPUT«No such method 'CURSOR' for invocant of type 'b'␤ in regex TOP at /tmp/jqvo0C8dI6:1␤ in method parse at src/gen/CORE.setting:10508␤ in block at /tmp/jqvo0C8dI6:1␤␤»
moritz $/.CURSOR (or $/ often has enough information) if you are inside a block inside a regex
felher masak: yeah, I don't like page transitions myself. But what I like is the overview of your slides you get pressing [TAB] and that is really fast, as soon as it has cached the slides. The Spotlight/Highlight-Area features are nice, too :) 14:22
[Coke] $/ isn't guaranteed to exist at that point, is it?
moritz but, nobody really really knows what's supposed to happen if you call fail() withiin a regex
masak timotimo: yes, of course. my point, though, is that gratuitous transition effects are a "presentation smell".
moritz [Coke]: $/ always exists inside a block inside a regex
[Coke] moritz: is there a better way to fail a regex?
timotimo i agree
moritz [Coke]: die() (and catch on the outside)
masak timotimo: the most memorable presentations I've seen sometimes used transitions. but in every single case, the transition was "part of" the message, not an external effect. 14:23
no doubt I've seen many bad presentations with lots of useless transitions. some of them intentionally bad :)
timotimo as long as there's no microsoft powerpoint sound effects (there's one with clapping and cheering ... yup) 14:24
masak like this one: www.youtube.com/watch?v=lpvgfmEU2Ck :) 14:25
[Coke] moritz++ 14:27
moritz in the past I've wished for a mechanism to just abort the current parse, without dieing on the outside 14:28
but the more I know about actual, non-trivial gramamrs, the less realistic that idea becomes
because most of these grammars switch between mainline code and regex quite a bit
(see the OPP in the Perl 6 parsers) 14:29
masak .oO( every time I abort my parse, I die a bit on the outside ) 14:36
colomon errr... does qqx capture standard error? 14:41
moritz iirc it shouldn't, but there's a bug in rakudo that makes it capture it anyway 14:43
colomon ah, that would explain what I was just seeing 14:44
[Coke] how to install rakudo-debugger? 14:54
jnthn [Coke]: panda can install it these days 14:55
[Coke] ah, so says the README. bother. now to install panda.
jnthn Yeah, but who reads READMEs P
[Coke] hangs his head in shame. 14:56
masak that's why current best practice is to name them nothing-important-here-I-promise.txt
[Coke] Ugh. as someone who is trying to write perl6, relying on the latest and greatest is a PITA.
masak [Coke]: could you be more specific? 14:57
moritz [Coke]: I wrote my p6cc solutions using the qast-sink-1 branch of Rakudo :-)
[Coke] masak: I wish to have an installed version somewhere that I can easily update to git-latest of everything. I can't use rakudo *, since it's pretty much instantly out of date 14:58
(e.g. I am using some set stuff in my t1 solution.)
I also don't want this installed version to be the version of rakudo I might occasionally hack on.
so, slightly more of a headache than "port install rakudo-dev". 14:59
masak oh, I see.
moritz [Coke]: my recent %*CUSTOM_LIB patches were a step towards making that possible
moritz well, towards have two different Rakudos installed, at least 15:00
masak I was wondering why I don't experience that. but it's because I build from source and virtually don't use Star at all.
[Coke] masak: nothing insurmountable or new. I just should get around to writing a "REBUILD RAKUDOENV" script.
PerlJam masak: how often do you build rakudo? 15:00
Su-Shee so, someone written sixbrew yet? (or should it be called sixpack? :) 15:01
masak PerlJam: somewhere between once a week and dozens of times a week. depends if I'm hacking on it ;) 15:01
Su-Shee++ # sixpack
Su-Shee masak: or, the module installer is sixpack and then there's sixbrew.. :) 15:02
masak queues up "sixpack" as the name of Panda.next :)
PerlJam "sixpack" makes me think of "fatpack" 15:06
Su-Shee I'm waiting for release renaming then to becks, guiness, jever..
PerlJam: yes because you don't have beer which deserves to be called beer. ;)
masak oh! by the way, do we have a good .pm group candidate to name the upcoming Rakudo release? 15:10
Su-Shee masak: Northpole, of course. ;) 15:13
[Coke] ZA.pm ? They look lonely on the map. 15:14
[Coke] . o O (probably a horrible reason to pick them.) 15:14
Su-Shee name it "hackernews" with "and thanks for years of perl bashing" ;) 15:15
masak [Coke]: also, release #40 was ZA. 15:16
Su-Shee: though HN is a less angry crowd in that regard than is Reddit. 15:17
[Coke] Any PMs of #perl6 folks that haven't been picked yet? 15:18
Su-Shee masak: I've realized that the second you go outside "web development" hackernews and reddit are more or less irrelevant...
[Coke] tries to use rakudo-debugger without installing it (and without panda) and gives up, and will setup "update_all_my_rakudo.sh" later. 15:19
masak lurkers, divulge your PMs! 15:20
Su-Shee: I guess any forum of that kind shall be taken with a big pinch of salt.
[Coke] I am at Albany.PM, but the last meeting was years ago with one guy who was never leaving 5.6 15:21
Su-Shee masak: imagine a totally no-nonsense forum focused on content and in depth discussions and people only posting if they actually know stuff.. ;)
FROGGS [Coke]: well, there a six in it
jnthn masak: We could call it after Malmo.pm to shame us into setting it up :P 15:22
[Coke] After that disappointing showing, I pretty much gave up. Being a cheerleader is hard.
masak wut, there is no Warzawa release?
tadzik: you live there, no? 15:23
Warszawa*
GlitchMr I was going to propose Warsaw.
masak that settles it, then. 15:24
jnthn: heh, there's even a Helsingborg.pm!
GlitchMr I don't live in Warszawa, but close enough.
masak that *is* shameful.
GlitchMr I don't know where tadzik lives, however.
jnthn I know. Helsingborg doesn't deserve a PM group!
Shocking it could be thoguht to have such culture.
:P
masak :P 15:25
I wonder what would happen if we set one person on contacting all the PM groups, let's say of Europe.
asking them if they'd like us to come speak about Perl 6 :)
GlitchMr From Poland, also Kraków and Szczecin makes sense. But well... 15:26
make*
jnthn masak: We could try to do a tour of all the PM groups of Europe! :D
One group a day should only take us...er...hm, $dayjob may not like this... :)
moritz Tour D'Europe!
masak jnthn: that's... an awesome idea.
GlitchMr There are lots of PM groups in Europe...
Su-Shee how about with a perl 6 conference for starters.. 15:27
GlitchMr And lots of those in Germany.
Su-Shee GlitchMr: they just look like usergroups, many are silent or a tiny group of disappointed aging ex perl developers. 15:28
GlitchMr Interesting how Perl in Germany doesn't have PM group.
masak sorear: is Yudkowsky really "campaigning to stop world AI research"? I thought he was mostly having very specific (and arguably non-workable) ideas of how to do AI development so that the resulting AI doesn't kill us. 15:29
Su-Shee it's a tiny city with nearly no IT companies..
masak I think at this point a Perl 6 conference is quite feasible.
jnthn We could have t-shirts with a big 6 on ;) 15:30
GlitchMr Camelia or 6?
Su-Shee jnthn: _I_ will go for "rakudo starlet" in pink. ;)
GlitchMr (why not both)
jnthn 6 Cameliii
[Coke] Y'all are welcome to come to an Albany.pm meeting. I can guarantee beer for anyone who shows up, even if I cannot guarantee attendees. 15:31
jnthn Su-Shee: ooh :)
Su-Shee masak: let's keep the conference idea in mind for next year. 15:31
[Coke] guesses that's more of a hackathon. >Close Enough!<
jnthn There's gonna be a Perl 6 hackathon day before YAPC::EU, btw :) 15:32
moritz yes, I've read it in the blog 15:33
and there's a decent chance that $work pays my trip to YAPC::EU
jnthn (Andrew Shitov)++ contacted me about it and I was like "omg yes let's have one" :)
Su-Shee i've just saw the line on the docs that perl 6 is prototypical OO underneath.. what exactly does that mean? that I could bypass classes and still get object creation with new by.. <insertmagichere>? 15:38
in the docs 15:39
moritz Su-Shee: it's prototypical in the sense that you can manipulate the class itself like an ordinary object
call methods on it, pass it around 15:40
Su-Shee moritz: isnt that more of a MOP-ish thing?
jnthn wonders which docs :)
moritz Su-Shee: what's the essense of protytpical OO, in your opinion?
Su-Shee moritz: I know that from Moose of course and Smalltalk has that too.. but I've never put that into the realm of "self, javascript, lua prototype OO"
moritz: I mean the class-less OO like self lua javascript by that 15:41
moritz: the "object creation on the fly" kind of thing without a class keyword etc
moritz Su-Shee: but is the lack of a class keyword really the essence? 15:42
Su-Shee jnthn: raw.github.com/perl6/specs/master/...bjects.pod
moritz: imho yes it's part of it.
[Coke] is reminded to mention p6cc2012 on the albany.pm list.
moritz has to remind himself every time that albany isn't albania :-) 15:43
Su-Shee moritz: (this is just a feeling and might be wrong) it leads to a different object creation style with interestingly few instance vars for example
[Coke] moritz: hey, don't insult Albania like that.
Su-Shee it's also no albino and not elbonia ;)
moritz Su-Shee: I guess that what S12 means is that in prototype OO, methods are looked up first in the instance, then in the prototype, then in the prototype's prorotype etc. 15:44
Su-Shee: in Perl 6 that's very similar
Su-Shee moritz: that's very confusing to understand for everyone coming from javascript for example these days.. 15:45
jnthn If you want something that feels more prototype-y like JavaScript in Perl 6, it'd need a custom meta-object to make it happen.
moritz method lookup is done in the object (which might have roles mixed in (jnthn, I know this isn't quite accurate)), then in the class, then in the classes' parent class etc.
jnthn moritz: Only conceptually. Mixing in a role actually causes a change of type. 15:46
And the anonymous type has the methods
moritz jnthn: that's why I wrote I knew it wasn't quite accurate :-)
Su-Shee maybe it's just a syntax thing, but I've come to like JS's OO. 15:47
if it now had modules that would be even nicer.
masak I tend to use the class-based parts of Perl 6 OO if I use them at all. when I want something more lightweight, I use hashes.
it's not often that I actually feel a direct need to do prototypal inheritance. 15:48
Su-Shee masak: to me it seems that javascript put an OO style forward which emphasizes the shoving around of functions a lot more and toned down the OO part to its bare minimum. it has a nice whipup-an-object feel. 15:50
masak: and I always wondered how the prototype-ishness of perl 6 would relate to that but it seems it wouldn't because it means something different.. 15:51
masak Su-Shee: to date the prototype-ishness of Perl 6 seems more of an unrealized potential. 15:53
unless you count the 'but <role>' behavior discussed above, which I don't really view as prototype-based OO. 15:54
Su-Shee masak: so far, I don't have a real opinion, because I don't know everything about perl 6 classes/MOP and its features.. 16:01
masak well, the MOP is great. it's still the coolest thing I've seen in terms of OO design, ever. 16:02
Su-Shee funnily, it just sounds complicated, it came quite naturally in Moose (I wrapped old *cough* classes into Moose and had et viola shiny new classes ;) 16:03
masak Moose does some details better, but Perl 6's MOP is cleaner because it has a better starting point.
Su-Shee masak: well now it's implemented twice, now people know where to put the fingers on. 16:04
masak note how all the cool tech jnthn keeps churning out (mocking framework, code+regex debugger) rests directly on the MOP.
jnthn++
Su-Shee takes note. :) 16:05
timotimo std: q\ \ 16:10
p6eval std a8bc48f: OUTPUT«===SORRY!===␤Undeclared routine:␤ 'q' used at line 1␤Check failed␤FAILED 00:00 41m␤»
timotimo rt.perl.org/rt3/Ticket/Display.html?id=77664 - 2 year old bugs irk me for some reason, especially if it doesn't say what direction the solution should go 16:11
moritz rakudo: q\ \ 16:12
p6eval rakudo f93e60: ( no output )
moritz std: q\ \
p6eval std a8bc48f: OUTPUT«===SORRY!===␤Undeclared routine:␤ 'q' used at line 1␤Check failed␤FAILED 00:00 41m␤»
moritz timotimo: in case of parsing errors, it's usually safe to accept std's answer 16:13
s/errors/questions/
dalek p: 36f5853 | (Paweł Murias)++ | / (2 files):
When converting doubles to bignums fill up 3 digits. Pass test 60 on 32bit machines
16:20
pmurias jnthn: you should test if test 60 still passes on 64bit machines 16:20
moritz tries it 16:21
timotimo rt.perl.org/rt3/Ticket/Display.html?id=77712 - so rakudo now says "Unsupported use of C++ constructor syntax", is that correct or wrong? should i mark the ticket as resolved or should rakudo implement new Foo to mean Foo.new instead? 16:22
std: class A {}; my $a = new A;
p6eval std a8bc48f: OUTPUT«===SORRY!===␤Unsupported use of C++ constructor syntax; in Perl 6 please use method call syntax at /tmp/laGzRrDlX5 line 1:␤------> class A {}; my $a = new A⏏;␤Parse failed␤FAILED 00:00 43m␤»
timotimo ah, ok, there's my answer 16:23
moritz pmurias: since you're already working on that file on a 32 bit system, could you please check if nqp_bigint_is_big actually works there?
moritz (and if no, possibly fix it) 16:23
moritz the only nqp test failure I have is in 46-charspec.t, but that's related to ICU and unrelated to bigints 16:24
pmurias that should skip instead of failing 16:27
pmurias moritz: I'm not sure what's nqp_bigint_is_big is supposed to do as it's not tested, I generally prefer to work on nqp-js instead of nqp-parrot but was just fixing failing tests which are a nuisance to everybody 16:32
kresike bye folks
moritz pmurias: it's supposed to report 1 if the value in the bigint is too big to fit into an INTVAL 16:32
jnthn home 16:58
grondilu My medidation on irrational numbers: perlmonks.org/?node_id=1009200 17:04
timotimo did i understand the sink context branch correctly that it makes for generally lazy and if the last statement in a block is a for loop, the loop may not be executed because the lazy result is returned upwards and not necessarily iterated over? 17:07
TimToady we probably need a warning "Final loop is in unknown context; please set the return type to clarify" 17:14
jnthn TimToady: Just for "for" or for "map" also? 17:15
Su-Shee so, I just installed a nice CPAN viewer for android.. can someone point me to the Perl 6 pocket reference for android? :)
timotimo sounds good to me. or maybe there'll be a Perl6::Critic one day that can do that
jnthn TimToady: Also, "set the return type" doesn't seem too clear. 17:15
timotimo "set the return type or add a sink or lazy declaration"? 17:16
jnthn Are we meant to actually compile things differently based on some kind of returns declaration?
TimToady certainly the optimizer will care 17:17
timotimo Su-Shee: anything else androidy that's nice to have for a perl6 interested person?
(i don't think i'd benefit much from a perl6 interpreter on my phone :D)
TimToady also, the warning should probably be only on Routines
jnthn TimToady: Oh sure, but the optimizer isn't meant to make *semantic* changes :)
TimToady in a sense, it isn't, presuming you're intending to call the routine consistently with its semantics 17:18
that is, you'd generally call a sinking procedure in sink context anyway
TimToady (sooner or later, somewhere up the call chain) 17:19
jnthn That doesn't actually catch all the problems though.
If your side-effects expect to be in the dynamic scope of the routine, that's when you hit issues.
TimToady sure, hence the warnings
Su-Shee timotimo: well my nokia N9 comes with a perl 5 out of the box.. ;) no, no perl 6 stuff that I know of...
TimToady we could go as far as to have separate declarators for "procedures", but just having a sink return type already seems to say that 17:20
jnthn Anyway, +1 to a warning
TimToady sink or constant return, now that we can put a constant return value like True
jnthn What does "sink return type" mean precisely?
TimToady well, maybe means returning () or Nil as a value
std: sub foo($a,$b --> Nil) { for $a,$b {...}} 17:21
p6eval std a8bc48f: OUTPUT«ok 00:00 46m␤»
jnthn ah, you mean actually annotating the routine with a return type.
TimToady std: sub foo($a,$b --> True) { for $a,$b {...}}
p6eval std a8bc48f: OUTPUT«ok 00:00 46m␤»
TimToady yes
that's part of why I relaxed what came after -->
jnthn I'd always expected those things to be constraints. 17:21
huh? when? :)
S06? 17:22
TimToady just in STD
at least, don't remember respeccing yet..
but I've been insane busy this last couple weeks
jnthn ah, OK 17:23
Then I didn't miss the change :)
jnthn Well, the spec change I was expecting anyways. 17:23
OK, I'd really like to get a good warning and good solution in place for this before a Rakudo release ships with sink context enabled, but there's plenty of time for that (will merge it after this month's compiler release). 17:24
So no massive hurry. :)
TimToady you and everyone else :) 17:29
timotimo i, for one, welcome our sinky overlords. 17:30
masak grondilu: the 'while' loop in the infix:<==> seems redundant to me. as the code stands now, at least. 17:35
[Coke] masak: so, last year, I was surprised at how slow my solution was compared to the other entrants. There's no feedback on that before judgement time unless I troll other participants directly, aye? 17:42
[Coke] troll is probably an unfortunately choice of words, but actual trolling might be super effective. "Wow, my t1 tests run in under a second, how are you lamers doing?" 17:45
TimToady enum How <quick-and-dirty clean-and-elegant>; given How.pick { when clean-and-elegant { ... }; when quick-and-dirty { ... } } # submit two solutions as one :) 17:46
you can at least compare two of your own solutions for speed
[Coke] aye. 17:48
You participating this year, TimToady ?
diakopter [Coke]: my t4 solution (this year) takes 2 seconds to run. nearly all of that is compilation time
masak [Coke]: there are no rules against contestants communicating. personally, I like it when people talk about the problems.
diakopter like, 97% of that is compilation time 17:49
masak though of course different contestants may play more or less close to their chest.
diakopter [Coke]: have you solved t4?
[Coke] diakopter: no. I haven't even digested the problem statement. 17:50
TimToady [Coke]: maybe under a pseudonym :)
masak o.O 17:51
[Coke] I have a decent solution for t1, but it base test there takes 0m18.388s
masak the base tests are bound to be slow, because they re-compile all the time. 17:52
hm, unless you're using Niecza, I guess.
(Niecza caches compiled code)
jnthn Scripts as well as modules?
masak aye.
jnthn Hm 17:53
jnthn had only been considering it for modules :)
[Coke] wonders if submissions are better split up into modules if enough code, single file, or "whatever works"
TimToady I think it should be considered inside files too, so we end up with an incremental compiler :)
"Oh, this function didn't change, where did I put that AST for it?" 17:54
diakopter whenever I read incremental I think of encroaching
don't know why
TimToady you're thinking of "insidious" :) 17:55
certainly we'd like Perl 6 to be insidious...
diakopter [Coke]: I was almost done with my solution then I realized it didn't balance/limit the water table of caverns/tunnels connected underground 18:03
diakopter making that adaptation will require probably another 10 lines of code or so 18:08
my problem is my code is not p6y 18:09
it could be written in p5 or javascript and look the same
except for a few uses of -> and ..^ 18:10
masak well, "idiomaticity" is only one dimension. 18:11
diakopter it's also not brevious 18:12
lichtkind hmh
diakopter er, brief.
but I do think it has efficiency going for it 18:13
and clarity
and readability and correctness.
diakopter but brief and idiomatic, not so much 18:13
[Coke] I'm at 224 lines for t1, with several comments like: #?? there has GOT to be better way to do this in p6 ;) 18:23
[Coke] panda requires perl6 be in your path, you can't specify a FQ path to perl6 to run the bootstrap? 18:26
diakopter I haven't thought about t1 enough to be able to guess how long my solution would be
other than "implement prolog" 18:27
[Coke] I am stunned that someone would do them out of order! ;)
FROGGS [Coke]: I'am doing right now: PERL6LIB=~/dev/panda/lib PATH=$PATH:~/dev/nqp/install/bin ~/dev/rakudo/perl6 ~/dev/panda/bin/panda install File::Spec 18:27
diakopter actually I got most of the way through t4 without reading the other 4 at all 18:28
FROGGS [Coke]: I put panda's lib dir in INC because I make changes to it...
[Coke]: should work for you too
[Coke] I'm also sad that the binary installs into lib/..../site/bin instead of bin/ 18:30
FROGGS well, it installs in site/bin, that is basically what you want
dump you %*CUSTOM_LIB to see what your <site> is 18:31
your*
[Coke] an alias in the main bin/ dir would be nice.
FROGGS what is the "main bin"? 18:32
home, site, vendor or perl?
[Coke] the top level bin of the install dir.
so that I do not have to update my path with multiple bins.
FROGGS the problem is that you can have the same filename multiple times from different dists or different versions of the same dist 18:33
there is no proper way to do that right now 18:34
[Coke] fair enough. Danke. 18:35
Does panda respect $http_proxy ?
kthakore hi FROGGS 18:53
flussence [Coke]: I'm looking at the source... it uses LWP/UserAgent.pir, which does seem to do that (line 429 checks for env vars with "_proxy" in the name) 19:15
[Coke] flussence: thank you for doing my legwork for me. :0 19:21
er, :)
flussence the one thing I seem to be consistently good at is being better than ack :) 19:22
FROGGS hi kthakore 19:38
diakopter how do I escape 3 loops at once in rakudo
diakopter eh, the checks have to be there anyway, nm 19:38
tadzik moritz: (panda) it wasn't bootstraping properly on my box, but I don't have access to it now 19:41
masak: live where?
(hellp #perl6)
er, hello :) 19:42
aw, Warsaw. The after-gsoc release was to be named after it, but for some reason it wasn't :)
jnthn o/ tadzik 19:45
sorear good * #perl6 20:05
diakopter hi
masak hellp tadzik! :) 20:34
tadzik /o\ 20:35
GlitchMr cosimo: perhaps late, but check out stackoverflow.com/a/13922039/736054 20:59
rindolf More git trouble today.
Story of my life. 21:00
The git sage continues.
[Coke] rindolf: something we can help with? 21:01
rindolf Yay, working now. 21:01
rindolf kicks git.
I pushed once into the github repository and it made it the default for the branch.
git saga*
GlitchMr I really would like to use junctions in other programming languages :-(. 21:03
But perhaps I shouldn't... I ABUSED them in t3.
GlitchMr Junctions of junctions of junctions of junctions... 21:04
GlitchMr Perl 6 is full of interesting ideas. 21:09
GlitchMr I think it's too modern for 2012 ;-). 21:10
pmurias jnthn: can we count on sizeof(FLOATVAL) <= 2*(size of bignum digit) 22:23
japhb_ A couple minutes ago I wrote a bash script that generated a symlink on disk based on the output of a Perl 6 one-liner that did a regex match and then did 'say $0' to pass the result back to bash. Imagine my surprise when I found that the symlink target on disk had half-width corner braces at the start and end. ;-) 22:30
masak hah! :)
jnthn pmurias: Not sure we can on 32-bit... There FLOATVAL will still typically be double, but bignum digit will be 28 bits iirc. 22:31
May be misremembering...
pmurias why 28? doesn't 32 make much more sense? 22:32
jnthn pmurias: Apparently, not when implementing bigints :) 22:33
pmurias: I think the other bits are used for carry and other stuch things.
felher Good night, perl6 :) 22:43
pmurias jnthn: I think using 3 digits should still work even with big numers as doubles use 53 bits for significant precision 22:46
jnthn pmurias: ah, good point
jnthn I have a patch that makes { a => $_ } be a block, not a hash (due to $_ usage). But now I've implemented it, I don't see S06 claiming it's meant to be that way. Anyone know where the reference is? 22:57
Also: 22:58
$obj = hash( 1, 2, 3, 4, 5, 6 ); # Anonymous hash
That's fine, but I guess
jnthn hash { a => $_ } # is not fine? 22:58
'cus you pass a block to hash, and it thinks it's getting one element?
jnthn Anyway, the patch passes spectests, apart from this test: 22:59
# XXX is hash { ... } legal?
my @b = map { hash {"v"=>$_, "d" => $_*2} }, @a;
is(+@b, 6, "should be 6 elements (list context)");
I think the test is questionable. Heck, even the test questions itself. :) 23:00
masak jnthn: S04:1606
jnthn masak: OK, so I wasn't being nuts :) 23:01
masak++ # thanks
That also doesn't claim that hash { ... } should work.
And I can't see any way to make it work. 23:02
Well, any sane way
pmurias jnthn: why should $_ make { a=>$_ } a hash? 23:07
jnthn: that seems strange
jnthn pmurias: 'cus the spec says so.
pmurias s/a hash/a block/
jnthn map { $_ => foo($_) }, @bar # so this works 23:08
pmurias ok
masak that's basically the reason, yes.
pmurias I'm not yet used to $_ being a parameter 23:09
jnthn ah, then I can see the confusion
rn: my @a = 1, 2, 3; (map { { $_ } }).perl.say 23:10
p6eval niecza v24-12-g8e50362: OUTPUT«Potential difficulties:␤ @a is declared but not used at /tmp/PHy8sHJ0I0 line 1:␤------> my ⏏@a = 1, 2, 3; (map { { $_ } }).perl.say␤␤().list␤» 23:10
..rakudo f93e60: OUTPUT«().list␤»
jnthn oops 23:11
rn: my @a = 1, 2, 3; (map { { $_ } }, @a).perl.say
p6eval rakudo f93e60, niecza v24-12-g8e50362: OUTPUT«(1, 2, 3).list␤»
jnthn ah, right, bare block
dalek ast: a48a486 | jnthn++ | S32-list/map.t:
Correct a couple of tests.

One was uncertain, and the spec doesn't anywhere claim it should work. The other certainly contradicted the spec.
23:14
kudo/nom: e960577 | jnthn++ | src/Perl6/Grammar.pm:
Start tracking variable usage a bit.
kudo/nom: b030c86 | jnthn++ | src/Perl6/Actions.pm:
Make hash/block disambig consider $_ usage.
dalek kudo/nom: e2d35b8 | jnthn++ | docs/ROADMAP:
Remove completed item.
23:17
kudo/nom: 03346c0 | jnthn++ | docs/ChangeLog:
Update ChangeLog.
masak 'night, #perl6 23:30
sorear night masak