»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by sorear on 25 June 2013.
00:02 hoverboard joined
segomos nice 00:05
00:07 rurban joined 00:08 xenoterracide_ joined 00:11 hoverboard is now known as moistcherry 00:20 xenoterracide_ left 00:21 moistcherry is now known as hovercraft
colomon is intoxicated at the ease of working with rakudobrew 00:24
timotimo keeping my own rakudos, nqps and moarvms up to date is simple enough for me, but it really is a tiny bit annoying to be cding into pandas folder and rebootstrapping 00:26
at least rebootstrap will re-install the modules you had before
00:26 newperl joined
newperl hello 00:26
timotimo hello, newperl! 00:27
what can we do for you today? :)
newperl after using for a bit i really like the ability today
i new to perl and perl6
colomon timotimo: rakudobrew does that automatically when you rebuild!
timotimo how does rakudobrew handle having local patches? 00:28
colomon timotimo: I've got no clue. :)
timotimo probably doesn't, so it's not for me i fear :)
but i'll keep recommending it to everyone
newperl i have a question is their a way to submit a perl mascot concept? i would love to make one 00:29
timotimo newperl: glad to hear you're enjoying your time with The Perls
at least the Perl 6 mascot (camelia, the butterfly) has been in use for a long time now; i'm not sure if people are willing to give her up
i don't know anything about Perl 5
newperl well the butterfly is nice, i something in mind to draw and to give a symbol of animal that represent it. perl have great ability for all types of things especially today that we need more automation 00:32
for example their lot more data than ever before
and perl is the key
timotimo rakudo is currently much too slow to handle "big data" payloads, but at least we can parallelize 00:33
and perl could very well be a tool for Everybody™ to handle whatever data they come across in their lives
newperl true
timotimo though to be honest, excel/libreoffice spreadsheets are already pretty powerful (but only for numbers, not really text)
newperl so what would people think as a platypus, since its uniq and perl does many things well 00:34
for icon
timotimo platypuses are really adorable
the artistic license 2 says you can distribute your own version of rakudo with a modified name and logo if you want to :) 00:35
newperl sounds cool
00:39 xenoterracide_ joined
newperl its most likely going a tough road but i am going to work on it, 00:39
once i create the platypuses icon, is their a way email it to everyone of the perl community? 00:41
TimToady you should know that Darwin already claims the platypus as a mascot... 00:42
and no, there's no way to mail everyone, thankfully :) 00:45
colomon TimToady! \o/ 00:48
timotimo gaaaah i'm looking for this gif 00:51
and i'm not finding it
and i have now spent like 15 minutes :(
colomon afk # off to pub 00:52
00:53 hovercraft left 00:55 xenoterracide_ left 00:58 atroxaper joined 00:59 autark joined, xenoterracide_ joined, raiph left, dayangkun_ joined 01:03 dayangkun left, atroxaper left 01:04 klapperl left
BenGoldberg I know of an animal which is much stranger than a platypus... namely, the Tardigrade. Maybe you should make a logo of one of them? 01:05
01:06 kbaker joined, klapperl joined 01:14 gfldex left 01:16 gfldex joined 01:17 arturo_ left
timotimo BenGoldberg: well, rakudo isn't as stable and robust as a tardigrade yet :) 01:18
BenGoldberg You mean, we can't send it into out space without a suit? Drat. 01:19
01:20 bowtie joined 01:24 Sqirrel left
newperl how about an odder they can adapt to many things 01:24
as an icon, i forgot darwin use it 01:25
01:25 gfldex left
newperl the platypus 01:25
01:25 gfldex joined
newperl good bye 01:30
01:30 newperl left 01:39 brother left 01:40 bcode left, xenoterracide_ is now known as xenoterracide 01:41 bcode joined 01:45 geekosaur joined 01:53 kbaker left, brother joined 01:54 dayangkun_ left 01:55 btyler left 01:59 klapperl_ joined 02:03 klapperl left 02:04 hovercraft joined, hovercraft is now known as hoverboard 02:08 lue joined 02:21 pecastro joined 02:27 raiph joined 02:32 xragnar_ joined, xragnar is now known as Guest29930, xragnar_ is now known as xragnar 02:36 Guest29930 left 02:39 ssutch joined 02:52 Sqirrel joined 03:04 atroxaper joined 03:09 Khisanth left 03:16 Khisanth joined 03:35 bjz left 03:37 bjz joined 03:49 rurban left 03:54 atroxaper left, atroxaper joined 03:59 atroxaper left 04:03 kaare_ joined 04:15 anaeem1_ joined 04:19 arturo_ joined 04:20 raiph left 04:30 Psyche^ joined 04:31 BenGoldberg left 04:32 dj_goku joined 04:34 Psyche^_ left 04:42 kaare_ left 04:51 arturo_ left 05:07 kaare_ joined, atroxaper joined 05:10 atroxaper left, atroxaper joined 05:15 atroxaper left 05:31 atroxaper joined 05:44 grondilu left 05:50 atroxaper left 05:51 atroxaper joined 05:53 atroxape_ joined, atroxaper left 06:02 xinming_ joined
Timbus r: my ($a,$b) = 'a,b,c--1,2,3'.split('--')>>.split(',').lol; say $a.perl, ' and ', $b.perl; 06:03
camelia rakudo-moar 375404: OUTPUT«().list.item and ().list.item␤»
..rakudo-{parrot,jvm} 375404: OUTPUT«("a", "b", "c").list.item and ("1", "2", "3").list.item␤»
Timbus moar cannot lol; a very serious matter
06:04 dayangkun joined 06:05 xinming__ left 06:18 SamuraiJack_ joined 06:24 darutoko joined
sergot morning o/ 06:41
lizmat Timbus: please rakudobug it if you think it should not escape attention :-) 06:53
06:53 xinming_ left 06:55 xinming_ joined 06:58 donaldh joined 07:02 ojandi joined
ojandi Hey guys, does anybody know analog of caller for Perl6 ? How can I get stack trace ? Thanks 07:05
07:05 FROGGS joined
moritz ojandi: there's the callframe() sub, and for backtraces there Backtrace.new 07:07
m: sub f() { g() }; f(); sub g { say Backtrace.new } 07:08
camelia rakudo-moar 375404: OUTPUT«Backtrace::Frame.new(file => "src/gen/m-CORE.setting", line => 11086, code => -> () { #`(Block|140291048873912) ... }, subname => "") Backtrace::Frame.new(file => "src/gen/m-CORE.setting", line => 11087, code => method new(Backtrace: *%_) { #`(Method|74501…»
moritz m: sub f() { g() }; f(); sub g { say Backtrace.new.pretty }
camelia rakudo-moar 375404: OUTPUT«No such method 'pretty' for invocant of type 'Backtrace'␤ in sub g at /tmp/rWpZvbn1ui:1␤ in sub f at /tmp/rWpZvbn1ui:1␤ in block at /tmp/rWpZvbn1ui:1␤␤»
moritz m: sub f() { g() }; f(); sub g { say Backtrace.new.Str }
camelia rakudo-moar 375404: OUTPUT« in method new at src/gen/m-CORE.setting:11086␤ in sub g at /tmp/9PWv8Tf64A:1␤ in sub f at /tmp/9PWv8Tf64A:1␤ in block at /tmp/9PWv8Tf64A:1␤␤»
moritz there you go, backtrace without any exception
ojandi Cool, that's what I need. Thanks
07:08 brotherBox joined 07:09 xinming__ joined
ojandi m: say "This is a test. I'm newbie )" 07:10
camelia rakudo-moar 375404: OUTPUT«This is a test. I'm newbie )␤»
07:12 atroxape_ left 07:13 atroxaper joined, xinming_ left 07:14 zakharyas joined
ojandi m: sub t { sub f { say callframe() } } 07:15
camelia ( no output )
moritz ojandi: you also need to call it :-)
m: sub t { sub f { say callframe() }; f() }; t()
camelia rakudo-moar 375404: OUTPUT«Cannot find method 'perl': no method cache and no .^find_method␤ in method perl at src/gen/m-CORE.setting:9140␤ in method perl at src/gen/m-CORE.setting:1063␤ in method gist at src/gen/m-CORE.setting:1055␤ in sub say at src/gen/m-CORE.setting:1…»
moritz eeks
ojandi Yes. ^-)
moritz m: sub t { sub f { say callframe().^name }; f() }; t() 07:16
camelia rakudo-moar 375404: OUTPUT«CallFrame␤»
ojandi m: sub t { sub f { say callframe() } }; t();
camelia ( no output )
moritz m: say CallFrame.^methods
camelia rakudo-moar 375404: OUTPUT«new line file callframe <anon> <anon> <anon>␤»
moritz m: sub t { sub f { say callframe().file }; f() }; t()
camelia rakudo-moar 375404: OUTPUT«/tmp/5T71W60Ea0␤»
moritz m: sub t { sub f { say callframe().line }; f() }; t()
camelia rakudo-moar 375404: OUTPUT«1␤»
ojandi m: sub t { sub f { say callframe().line }; f() }; t(); 07:17
camelia rakudo-moar 375404: OUTPUT«1␤»
07:17 atroxaper left
moritz m: sub t { sub f { my %möp; say callframe().my.keys.perl }; f() }; t() 07:17
camelia rakudo-moar 375404: OUTPUT«("\%möp", "\$!", "\$/", "\$_", "\$*DISPATCHER", "\&?ROUTINE", "RETURN").list␤»
moritz m: sub t { sub f { my %möp; say callframe(1).my.keys.perl }; f() }; t()
camelia rakudo-moar 375404: OUTPUT«("\$!", "\$/", "\$_", "\&f", "\$*DISPATCHER", "\&?ROUTINE", "RETURN").list␤»
moritz you see that if you go one level up, it finds sub f (written as &f) in the lexpad 07:18
ojandi Yep
I see. What does it mean syntax my.keys. Key it's a hash keys, but "my" i didn't catch 07:19
07:21 xinming__ left
moritz ojandi: CallFrame.my returns a hash of lexical variables 07:22
'cause they are declared with 'my'
07:23 xinming_ joined, atroxaper joined 07:31 denis_boyun_ joined 07:33 Ven joined
lizmat do Backtraces work now in moar? Seem to remember they didn't reliably :-( 07:38
07:39 dayangkun_ joined, dayangkun_ left, dayangkun left
moritz lizmat: there seems to be a problem with the one-line version of backtraces that warnings use 07:40
r: sub f() { warn 42 }; f() 07:41
camelia rakudo-{jvm,moar} 375404: OUTPUT«42␤»
..rakudo-parrot 375404: OUTPUT«42 in sub f at /tmp/tmpfile:1␤␤»
ojandi m: my $caller = callframe(1); say $caller.^methods(:all); 07:44
camelia rakudo-moar 375404: OUTPUT«new line file callframe <anon> <anon> <anon> infinite exists exists_key exists_pos delete delete_key delete_pos list flat eager hash elems end uniq squish pick roll reverse sort values keys kv pairs reduce combinations permutations classify categorize lol …»
ojandi m: my $caller = callframe(1); say $caller.keys; 07:45
camelia rakudo-moar 375404: OUTPUT«0␤»
ojandi m: my $caller = callframe(1); say $caller.perl; 07:46
camelia rakudo-moar 375404: OUTPUT«CallFrame.new(level => 3, annotations => ("file" => "/tmp/jKgIcOTEqy", "line" => "1").hash, my => EnumMap.new())␤»
ojandi m: my $caller = callframe(1); say $caller.line; 07:48
camelia rakudo-moar 375404: OUTPUT«1␤»
ojandi m: my $caller = callframe(1); say $caller.file;
camelia rakudo-moar 375404: OUTPUT«/tmp/ImZwAEKDsk␤»
ojandi m: my $caller = callframe(1); say $caller.level;
camelia rakudo-moar 375404: OUTPUT«3␤»
ojandi What I like in Perl6 is object introspection :-) 07:52
08:08 plobsing left 08:16 rindolf joined 08:20 kaare_ left 08:23 brotherBox left, kaare_ joined 08:25 dmol joined 08:31 fhelmberger joined 08:40 [Sno] left
jnthn morning, #perl6 08:40
FROGGS morning jnthn
09:03 denis_boyun_ left
jnthn o/ FROGGS 09:04
09:09 atroxaper left 09:10 atroxaper joined, araujo left 09:11 bjz left 09:13 atroxaper left 09:19 atroxaper joined 09:36 simula67 left 09:55 spider-mario joined 09:58 hoverboard left
dalek p/async_ops: 31884dd | (Donald Hunter)++ | src/vm/jvm/ (2 files):
Add stubs for async ops on JVM.
10:04
10:06 [Sno] joined 10:07 denis_boyun_ joined
jnthn ooh :D 10:09
donaldh++ 10:10
10:19 a3gis joined
mathw \o/ 10:23
10:25 atroxaper left
timotimo o/ 10:25
10:25 atroxaper joined 10:29 atroxaper left 10:33 atroxaper joined 10:34 atroxaper left 10:35 chenryn joined 10:36 atroxaper joined 10:37 atroxaper left 10:38 atroxaper joined 10:39 atroxaper left 10:45 prevost joined 10:53 a3gis_ joined 10:55 a3gis left
Ven gist.github.com/paulp/10885699 :p 10:58
tadzik it seems to be missing „” :) 11:10
11:12 ssutch left 11:13 ssutch joined 11:15 a3gis_ left 11:21 a3gis joined
dalek ecs: 9d68384 | (Elizabeth Mattijsen)++ | S17-concurrency.pod:
Spec Supply.uniq( :expires )
11:23
11:26 bjz joined 11:31 a3gis left
colomon tadzik++ 11:33
11:40 kaleem joined 11:58 ojandi left
dalek ecs: cd4164c | (Elizabeth Mattijsen)++ | S17-concurrency.pod:
Spec Supply.unchanged
12:00
ecs: a3348d4 | (Elizabeth Mattijsen)++ | S17-concurrency.pod:
Attempt at speccing Supply.migrate
12:03
ecs: 339fada | (Elizabeth Mattijsen)++ | S17-concurrency.pod:
Stub spec Supply.(schedule_on|start)
12:07
lizmat capturing recent async developments 12:08
12:10 benabik left
woolfy in awe of the Perl6-goodness! 12:10
12:11 telex left 12:12 telex joined 12:19 kurahaupo joined
moritz in awe of the Perl6 godess 12:23
12:25 a3gis joined
Ven is looking at github.com/manastech/crystal 12:29
(really good type inference, simple ruby-like syntax, looks really neat)
m: sub a { 5 }; sub b { my String $s = a(); };
camelia rakudo-moar 375404: OUTPUT«===SORRY!===␤Type 'String' is not declared. Did you mean 'Stringy'?␤at /tmp/L3F_5JCrCA:1␤------> sub a { 5 }; sub b { my String⏏ $s = a(); };␤Malformed my␤at /tmp/L3F_5JCrCA:1␤------> sub a { 5 }; sub…»
Ven m: sub a { 5 }; sub b { my Str $s = a(); }; 12:30
camelia ( no output )
Ven :(
Ven thinks about that "successful typing with erlang" paper he read
Well, maybe Perl 6.5 will find it 12:33
lizmat Ven: what should be found?
Ven lizmat: that should totally fail.
you can't assign something that will always return an Int to a Str
lizmat why, Perl 6 has gradual typing
Ven m: sub a returns Int { 5 }; sub b { my Str $s = a(); }; 12:34
camelia ( no output )
12:34 kurahaupo left
lizmat ah, that 12:34
Ven I believe this should fail
lizmat yes, that could be statically analyzed: the infrastructure is there
it's just that we didn't have the tuits yet to do that at compile time
m: m: sub a returns Int { 5 }; sub b { my Str $s = a(); }; b 12:35
camelia rakudo-moar 375404: OUTPUT«Type check failed in assignment to '$s'; expected 'Str' but got 'Int'␤ in sub b at /tmp/QclT927jvs:1␤ in block at /tmp/QclT927jvs:1␤␤»
lizmat m: m: sub a { 5 }; sub b { my Str $s = a(); }; b
camelia rakudo-moar 375404: OUTPUT«Type check failed in assignment to '$s'; expected 'Str' but got 'Int'␤ in sub b at /tmp/lL2ixlxowO:1␤ in block at /tmp/lL2ixlxowO:1␤␤»
jnthn Yes, the promise is "fails at runtime at latest", and compilers are free to rule out things that couldn't possibly work at runtime during compile time. 12:39
But they're not obligated to. 12:40
Not in the 6.0 spec at least. Maybe in the future we make some stronger promises there.
12:41 kbaker joined 12:47 anaeem1_ left 12:48 anaeem1_ joined 12:52 anaeem1_ left, kaare_ left
masak good day, #perl6 12:54
FROGGS hi masak 12:58
jnthn: you mean 1.0 spec perhaps :o)
FROGGS is picky right now
12:59 thou left
Ven would really, really, really like it. 12:59
jnthn lol its masak 13:00
masak whose masak? :)
jnthn Ven: Well, if you annotate it with "returns" we can likely catch thta one without too much trouble.
masak: No eye deer
13:01 fhelmberger left
jnthn has almost finished his slides :) 13:01
Ven jnthn: like my second example :) ?
jnthn Ven: yes 13:02
Ven: It's just that the optimizer isn't analysing assignments yet
Ven: It'll need to do that for various opts I want to put in, and at that point I suspect it might be fairly easy to make that particular example blow up at compile time.
13:03 guru joined, guru is now known as ajr_
Ven yay ! 13:04
jnthn all of the type check at compile time stuff we have today actually is done by the optimizer.
It's trying to prove things about the program in order to do inlines and compile time dispatch, and as a side-effect sometimes proves the code could never possibly work. 13:05
Makes sense to do it in the same pass, since it's basically the same work. 13:06
Anyway, if you ever wonder what the difference between --optimize=off and --optimize=0 is, that's in :)
*it
dalek o: db7e553 | (Rob Hoelz)++ | bin/ufo:
Actually filter dirwalk entries

We pass in a filter argument via $f, but it never gets used.
o: 85b015a | tadzik++ | bin/ufo:
Merge pull request #11 from hoelzro/master

Actually filter dirwalk entries
tadzik I took a liberty to merge that
jnthn off doesn't run the analysis at all. 0 runs it, complains about things that'll never work, but then does not actual program transformations.
tadzik sweet karma
13:09 cognominal left, cognominal joined 13:13 xenoterracide left
dalek rlito: bce7e2e | (Flavio S. Glock)++ | src5/lib/Perlito5/Grammar/Regex5.pm:
Perlito5 - regex - simplify AST
13:22
13:29 thilp joined, kaare_ joined
dalek rlito: 296edfe | (Flavio S. Glock)++ | src5/lib/Perlito5/Grammar/Regex5.pm:
Perlito5 - regex - more rules
13:35
13:38 BigBear joined 13:42 a3gis_ joined, prevost left 13:43 btyler joined
JimmyZ r: 'abc'.subst(/.+/, 'a') 13:44
camelia ( no output ) 13:45
JimmyZ r: say 'abc'.subst(/.+/, 'a')
camelia rakudo-{parrot,jvm,moar} 375404: OUTPUT«a␤»
13:46 a3gis left
masak "One of the hard lessons is that you need symbol tables and flow analysis to do good program analysis or transformation. ASTs are necessary but not sufficient. This is the reason that Aho&Ullman's compiler book doesn't stop at chapter 2." -- stackoverflow.com/questions/3455456...o-translat 13:57
interesting. sounds relevant to macros, too.
as well as automated tools to do program transformations and refactors. 13:58
[Coke] fdd
dalek kudo-star-daily: 358d8d2 | coke++ | log/ (5 files):
today (automated commit)
rl6-roast-data: 80228e4 | coke++ | / (6 files):
today (automated commit)
lizmat commuting to DPW& 14:01
14:01 lizmat left
dalek kudo/nom: 1ae0b29 | (Elizabeth Mattijsen)++ | src/core/Supply (2 files):
First stab at implementing Supply.live
14:03
14:06 salv0 left
jnthn & 14:08
14:11 woolfy left
Ulti if I want to keep something moarvm can run directly what do I --target= with Rakudo? 14:13
FROGGS --target=mbc --output=foo.moarvm
Ulti: ^^
Ulti hmmm I did that but without the --output 14:14
Ulti tries
thanks FROGGS++
ahh ok it was just that
maybe a less than awesome error message
"Cannot dump this object; no dump method"
FROGGS the code it on github :P 14:15
is*
Ulti heh ok
[Coke] is surprised the target is mbc since I thought moarvm didn't use that extension 14:17
FROGGS [Coke]: it is not an extension, see :o)
[Coke] ok, the rakudo.jvm daily run is looking much better. I just need to update the memory or time limit to close the gap.
FROGGS but yeah, confusing 14:18
[Coke] FROGGS: yah, but still confusing.
heh.
there are two legit jvm failures in that report, though, both in S17-concurrency/supply.rakudo.jvm 14:19
14:24 salv0 joined
Ulti hmmm I get a segfault from moar if I run the dumped .moarvm file :S weird 14:25
the invocation is basically the same as how perl6 is itself calling moarvm apart from with my .moarvm file
14:27 treehug88 joined 14:28 bluescreen10 joined 14:29 BigBear left
[Coke] Ulti: can you gist it and maybe get a backtrace via gdb? 14:29
dalek rlito: 225dd50 | (Flavio S. Glock)++ | src5/lib/Perlito5/Grammar/Regex5.pm:
Perlito5 - regex - capture counter
14:31
colomon avuserow: just looking at your latest changes to Audio::Taglib::Simple, have you considered using Proxy to allow something like $tl.title = "Awesome Song" ?
14:38 BigBear joined
Ulti [Coke]: gist.github.com/MattOates/11257194 14:42
I should probably be finishing off my thesis corrections rather than playing anway ;) 14:44
JimmyZ [root@li618-176 ~]# perl6 -e 'say "abc".subst(/.+/, "a")' 14:46
a
[root@li618-176 ~]# perl6
> my $s = 'abc';
abc
> $s.subst(/.+/, 'a')
Segmentation fault (core dumped)
A bug...
14:46 a3gis joined 14:47 a3gis_ left
Ulti [Coke]: sorry 'list' isn't working out since I'm running gdb from my home 14:51
I assume
masak JimmyZ: reproduced locally.
masak submits rakudobug
JimmyZ: um, why are you running as root? :)
Ulti because he is god 14:52
JimmyZ because it's my friends vps, he changed my jimmy id to 0
Ulti sudo ftw 14:53
JimmyZ I only use it to compile rakudo, since my x86 system can't compile nqp due to some moarvm bug 14:54
s/my/my local/
masak JimmyZ: rt.perl.org/Ticket/Display.html?id=121726 14:58
FROGGS Ulti: do you also run the perl6.moarvm file in the same run? 15:00
JimmyZ masak++ 15:01
masak I live to serve. 15:03
15:03 denis_boyun_ left 15:04 ajr_ left 15:05 guru joined, guru is now known as ajr_ 15:11 anaeem1 joined 15:13 araujo joined, araujo left, araujo joined 15:14 ajr_ left 15:21 guru joined, guru is now known as ajr_
japhb TimToady: Is there somewhere a set of "guiding principles" you think about in the design of Perl 6? I'm looking to give people a sense of the "flavor" of the language in my lightning-talk-in-progress. 15:26
moritz japhb: have you read S01? 15:29
also, TIMTOWTDI, DWIM, keep things lexical 15:30
PerlJam That doc where Larry talks about the waterbed theory of langauge design has some good guiding principles.
www.perl.com/pub/2003/06/25/perl6essentials.html 15:31
masak japhb: also, self-clocking principle.
japhb: also, LTM.
japhb moritz: Yeah, read S01, but pretty much back when it was first written. 15:32
moritz, PerlJam, masak: Thank you.
15:34 kaleem left
masak japhb: also, TimToady has said at some point that he seldom makes decisions due to one thing, more often due to two or more things. 15:36
I think that partly explains why some features turn out to be terrific unifications. 15:37
15:38 zakharyas left
japhb masak: Yeah, I always saw it as many soft constraints 15:40
Ven masak: "terrific unifications" ? 15:43
moritz for example the colonpair notation, which works for named arguments, quoting adverbs, regex adverbs 15:44
masak or roles, which soak up the good parts of contracts, traits, abstract classes, and interfaces. 15:45
moritz or that quoted strings work in regexes too 15:46
Ven r: role Foo { method abstract { ... } }; class A does Foo {};
camelia rakudo-jvm 1ae0b2: OUTPUT«(timeout)»
..rakudo-{parrot,moar} 1ae0b2: OUTPUT«===SORRY!===␤Method 'abstract' must be implemented by A because it is required by a role␤»
Ven yeah, that's cool 15:47
masak or signatures, which fill a role in both assignment and invocation.
moritz Ven: it goes match faster if you just ask m:
Ven moritz: I know, I do it most of the time
I just tend to forget from time to time ;_;
15:47 FROGGS[mobile] joined 15:48 FROGGS[mobile] left
moritz no problem 15:48
15:48 anaeem1__ joined, FROGGS[mobile] joined 15:49 FROGGS left
Ven reminds me of www.infoq.com/presentations/noether 15:50
15:51 anaeem1 left
TimToady you guys do a better job of listing the design principles than I could :) 15:54
japhb TimToady: clearly you did something right then. :-)
Ven Though "terrific unifications" can be executed poorly, like I think it's the case in Scala : Small building blocks, yet thousands of corner cases 15:55
masak yeah, Perl 6 totally doesn't have thousands of corner cases :P pffffft 15:56
wait, is "millions" bigger than "thousands"?
TimToady well, that's kind of the Unix mode of failure; it's all very well to do one thing and do it well, but if your various bits are speaking different languages to each other, they won't work together
15:57 a3gis_ joined
geekosaur but people tend to at least think about how to deal with them... 15:57
Ven masak: having been bit by one of those that "can't be fixed" not so long ago : "I didn't say that !"
masak Ven: :)
15:57 a3gis left
masak Ven: we all agree there are corner cases that should be removed; we just disagree on which ones. 15:57
TimToady the most underlying design principle is that communication can only happen when you agree on the language
masak oh, that reminds me: 15:58
japhb: "always know which language you're in" (when parsing)
TimToady but also, two entities have to agree on how they talk to each other 15:59
Ven masak: which one would you remove :) ?
masak japhb: also "sublanguages (regex, quoting, etc) are first-class citizens and should be treated as such"
Ven: I would start listing things, but I'm at $work...
TimToady not to mention grammars, but we're not quite there yet
japhb Wow, lots of good stuff this morning 16:06
16:07 xinming_ left 16:08 xinming_ joined
segomos this is valid, yea? /bookstore/book[price>35] 16:10
masak japhb: re community design principles, check out TimToady++'s two advent posts.
segomos oops
masak segomos: no :)
TimToady it's valid only if you agree on the language :P
segomos xpath :)
Ven is being back into the past -- www.perl.com/pub/2005/03/03/pugs_interview.html 16:11
16:11 cxreg left
masak segomos: ...which we don't agree on :P 16:12
segomos i disagree with you about that
16:16 cxreg joined
masak well, we agree on that, at least. 16:16
"I keep hitting the limit of p5." -- au++ is scary :>
16:18 a3gis_ left, fhelmberger joined 16:19 dwarring left
moritz the question is always, what limit? 16:19
FROGGS[mobile] there is a limit?
masak the interview goes on to describe some shortcomings/needs for kludges of Perl 5. 16:21
Ulti FROGGS[mobile] no I didnt (re: perl6.moarvm) 16:22
PerlJam It would be interesting to get a then-and-now perspective from au++ 16:23
(regarding Perl 6)
masak aye.
she does pop by, very occasionally. 16:24
FROGGS[mobile] Ulti: do "cat /path/to/perl6-m" and replace $@ by foo.moarvm -e1
16:25 anaeem1__ left 16:28 [Sno] left
Ulti FROGGS[mobile]: Error while reading from file: Malformed UTF-8 16:28
FROGGS[mobile] hmmm 16:29
[Coke] au: if you pop by, please help me fix pugs on host07.
Ven masak: that's still nice. I talked to her for quite some time before even hearing of perl6, because she's a contrib on an altJS i'm a developer on. I only realized she was well-known in a community like that ~2 months ago
FROGGS[mobile] Ulti: can you gist the thing you invoke? 16:30
16:30 adu joined
masak Ven: LiveScript, no? 16:30
16:30 FROGGS[mobile] left
Ven masak: right 16:30
masak neat. 16:31
16:32 FROGGS joined
FROGGS Ulti: forget what I wrote, you must run them as -Mfoo -e1 16:32
vaskozl should I type: use strict; and use warnings; in my files? 16:33
FROGGS vaskozl: in Perl 5 yes, in Perl 6 no 16:34
vaskozl what is the default behaviour?
FROGGS vaskozl: both is turned on
vaskozl nice
16:35 woosley left
FROGGS strict is meant to be off for one-liners for example, but that is NYI 16:35
16:35 woosley joined
vaskozl what is NYI? 16:36
not yet implemented...
masak quick, someone get the list of terms!
vaskozl: you might enjoy reading github.com/perl6/specs/blob/master...ossary.pod 16:37
vaskozl well that's the firs time I've seen this one, and I got a bunch of new york shit when i googled it
so it took me some time to figure it out :D
FROGGS *g*
masak *gasp* -- NYI is not *in* that list!
FROGGS wow
masak how... ironic. 16:38
FROGGS yeah :/
vaskozl gotta learn that regex 16:39
OOH the :i goes infront 16:40
masak :) 16:41
we like to be up-front about things in Perl 6.
vaskozl help the me! I'm trying : curl github.com/perl6/specs/blob/master...ossary.pod | perl6 -e 'if(:i/nyi/){say}' 16:42
*I've only one month perl experiences (most of which has been perl5 up to now)
or rather perl6 -p -e 16:43
16:43 anaeem1 joined 16:44 ajr_ left
moritz you probably want -n -e 16:44
also, no parens around the condition
and finally, stuff doesn't default to $_ anymore
but you can use .say to call a method on $_
vaskozl WHAT?
moritz what WHAT? 16:45
vaskozl what does stuff doesn't default to $_ mean?
moritz perl 5 has lots of subroutines that use $_ as a default if no argument was supplied
but it's always hard to remember which ones do and which ones don't 16:46
vaskozl arligth but it tells me that I need brackets when I try: curl github.com/perl6/specs/blob/master...ossary.pod | perl6 -n -e 'if :i/nyi/ {.say}'
moritz so, in Perl 6, only syntactic constructs (like m//, s///) default to $_
instead there's a short syntax for calling methods on $_
std: say
camelia std ec3d853: OUTPUT«===SORRY!===␤Unsupported use of bare 'say'; in Perl 6 please use .say if you meant $_, or use an explicit invocant or argument at /tmp/SM5uA5cdGA line 1:␤------> say⏏<EOL>␤Check failed␤FAILED 00:00 120m␤»
vaskozl masak: oh ok
what does: Expression needs parens to avoid taking the block 16:47
at -e:1
mean?
moritz oh, if you need modifiers, use m:i/../ instead of just :i
vaskozl ok 16:48
ok it worsk!
moritz in general, it means if you write if stuff { ... } and 'stuff' is a subroutine, that could be parsed as if stuff({...}) { block here to come }
vaskozl s/sk/ks/
moritz so the compiler tells you to either write if stuff() { } or if stuff({...}) { }, depending on which one you meant
in this case it was parsed as if :i / nyi ... 16:49
and the nyi was interpreted as a subroutine call without parens
which is why you got that error
vaskozl: as a piece of general advice: use more whitespace 16:50
vaskozl: there are some places where whitespace disambiguates 16:51
foo(1, 2) # calls &foo with two arguments
foo (1, 2) # calls & with a single argument, which is a two-element list
vaskozl moritz: arlight
thx
I can still use () around conditions right? 16:52
moritz vaskozl: yes, but you need to put a blank before the (
vaskozl: because stuff that looks like word( is always parsed as a subroutine call
16:53 SamuraiJack_ left 16:56 slavik left 17:03 a3gis joined
timotimo what did i miss besides teaching? 17:04
(teaching is awesome, btw. moritz++)
i thought about TheDamian's latest talk abstract, the one about "perl 6 without the awe-inspiring parts" and i think that might make a pretty nice talk 17:07
like, here's how perl 6 has your back for things you used to use python/ruby/php/scala/haskell for
Ven is not sure what timotimo is talking abut 17:11
timotimo i'm also not yet sure what i'll be talking about 17:13
that's the problem :)
here's the context: i want to give a talk about Perl 6 at this year's GPN
i've read the abstract of damian conway's talk "everyday perl 6": www.oscon.com/oscon2014/public/sche...tail/33839
which has now inspired me
17:21 BigBear left 17:22 anaeem1 left 17:23 zakharyas joined 17:24 anaeem1 joined 17:27 a3gis left
btyler I've been poking off and on at a collection of blog posts or book sections called "plain old perl 6" with the same core idea (but with rather less expertise than TheDamian, of course). I think one of the things that's challenging about p6 outreach is that so many code samples are written by experts/core hackers trying to maximally demonstrate the language's power in as little space as possible 17:28
17:28 denis_boyun joined
btyler which makes for some pretty dang intimidating pieces of code to look at 17:28
17:30 zakharyas left 17:31 a3gis joined 17:32 a3gis left
timotimo hehe 17:32
aye.
17:36 [Sno] joined, zakharyas joined 17:37 guru joined 17:38 guru is now known as ajr_ 17:39 denis_boyun left 17:43 hoverboard joined
[Coke] oh. someone here might know, esp. TimToady - anyone familiar with the phrase "jump jesus" ? (used in the Grapes of Wrath) 17:49
TimToady hasn't heard that one 17:50
17:50 anaeem1 left
FROGGS TimToady: can you please look at that and tell me if this would make things better or worse? gist.github.com/FROGGS/a78ff92ec5e7ce2f8fda 17:51
TimToady: the comment box shows what it does in short
[Coke] TimToady: it was something like "I could fight you now or jump jesus" 17:56
FROGGS wikipedia says it is the same as saying "Jesus Christ!"
but that does not fit well to your sentence 17:57
TimToady FROGGS: I can argue that one both ways, since * has a different meaning already in signatures, and it might or might not be confusing 17:58
it might be better to do the other thing, and allow $ where we know it's an lvalue list
FROGGS well yes, I'd like to have the "my (...) = ..." and "(...) = ..." form at least use the same thingies 17:59
I do not really care if it is dollar or the asterisk
well, that is not really true
I'd prefere the asterisk because even in the signature it would mean "slurp that one thing" (and throw it away) 18:00
TimToady except it doesn't mean slurp, which implies flattening the rest of the args
FROGGS hmmm, that did not imply flattening to me yet :o) 18:01
TimToady perl6: sub foo(*$a, *$b, *$c) { say "$a $b $c" }; my @a = 1,2,3; foo(@a) 18:02
camelia rakudo-{parrot,jvm,moar} 1ae0b2: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Calling 'foo' will never work with argument types (Positional)␤ Expected: :(Any $a, Any $b, Any $c)␤at /tmp/tmpfile:1␤------> *$c) { say "$a $b $c" }; my @a = 1,…»
..niecza v24-109-g48a8de3: OUTPUT«1 2 3 ␤»
TimToady niecza++
FROGGS I see
TimToady er, except niecza-- for wrong semantics 18:03
18:03 vaskozl left
FROGGS m: my ($, $, $x) = 1, 2, 3; say $x 18:03
camelia rakudo-moar 1ae0b2: OUTPUT«3␤»
18:03 adu left
FROGGS m: my $x; ($, $, $x) = 1, 2, 3; say $x 18:03
camelia rakudo-moar 1ae0b2: OUTPUT«===SORRY!=== Error while compiling /tmp/CQ92eBnSgq␤Unsupported use of $, variable; in Perl 6 please use $*OUT.output_field_separator()␤at /tmp/CQ92eBnSgq:1␤------> my $x; (⏏$, $, $x) = 1, 2, 3; say $x␤ expe…»
FROGGS ahh, the $, var... 18:04
std: my $x; ($, $, $x) = 1, 2, 3; say $x
camelia std ec3d853: OUTPUT«===SORRY!===␤Non-declarative sigil is missing its name at /tmp/0Nlk20iYAS line 1:␤------> my $x; (⏏$, $, $x) = 1, 2, 3; say $x␤Use of uninitialized value $first in string eq at STD.pm line 67059.␤Use of uninitialized…»
TimToady yes, we'd have to not check that anymore
but might be worth it for the unification
FROGGS "nice" --> Use of uninitialized value $first in string eq at STD.pm line 67059
18:04 raiph joined
FROGGS might be the missing name 18:04
TimToady m: my $x; (anon $, anon $, $x) = 1,2,3; say $x 18:05
camelia rakudo-moar 1ae0b2: OUTPUT«===SORRY!=== Error while compiling /tmp/RAsDb_0VvQ␤anon scoped variables not yet implemented. Sorry. ␤at /tmp/RAsDb_0VvQ:1␤------> my $x; (anon $⏏, anon $, $x) = 1,2,3; say $x␤ expecting any of:␤ s…»
FROGGS at least it is sorry
TimToady n: my $x; (anon $, anon $, $x) = 1,2,3; say $x
camelia niecza v24-109-g48a8de3: OUTPUT«===SORRY!===␤␤Unsupported use of $, variable; in Perl 6 please use .join() method at /tmp/5cyqsvCL9F line 1:␤------> my $x; (anon $,⏏ anon $, $x) = 1,2,3; say $x␤␤Parse failed␤␤»
TimToady n: my $x; (anon $ , anon $ , $x) = 1,2,3; say $x
18:05 vaskozl joined
camelia niecza v24-109-g48a8de3: OUTPUT«3␤» 18:05
TimToady niecza++ again :)
FROGGS bah 18:06
:P
TimToady anyway, we could turn those into anons and let the optimizer throw them away :)
FROGGS that sounds sweet
:o)
TimToady and then $ as rvalue would just be Any 18:07
but maybe we could catch that as std currently does
well, much like, but not the same 18:08
would depend on rvalue-ness, not non-decl-ness
so you'd have to notice after the initial parse of the $, somehow
alternately, just forget about the check, and let people pass $ as function args 18:10
which might have a use
for rw params that you don't care about the result
18:11 fhelmberger left
TimToady I think I'd be happier with that than with overloading * in signatures 18:11
18:11 molaf joined
FROGGS sure sure :o) 18:11
18:18 a3gis joined
dalek rl6-roast-data: 1642c10 | coke++ | / (6 files):
today (automated commit)
18:19
18:28 vaskozl left 18:35 arturo_ joined 18:40 darutoko left
dalek rlito: e806fd8 | (Flavio S. Glock)++ | src5/lib/Perlito5/Grammar/Regex5.pm:
Perlito5 - regex - quotemeta
18:42
18:47 Rotwang joined 18:50 rindolf left
vendethiel It's interesting how niecza gets some stuff right 18:58
19:00 vaskozl joined
dalek rlito: f4073d4 | (Flavio S. Glock)++ | src5/lib/Perlito5/Grammar/Regex5.pm:
Perlito5 - regex - cleanup
19:02
19:05 hoelzro_ joined, yogan_ joined 19:06 Bucciarati_ joined 19:07 hoverboard is now known as moistcherry, isacloud___ joined, hoelzro left, Bucciarati left, isacloud___ is now known as isacloud__ 19:10 Shozan joined, SHODAN left 19:12 timotimo joined 19:13 _sri joined 19:21 zakharyas left
dalek rl6-roast-data: efdeeb4 | coke++ | bin/rakudo.jvm.sh:
rakudo.jvm needs more memory & time than others
19:26
[Coke] there. now any remaining failures should be real. Still one in concurrency.
19:28 _sri left 19:31 _sri joined 19:32 treehug8_ joined 19:34 molaf left 19:36 treehug88 left
vendethiel m: say $*SCRIPT_NAME; 19:46
camelia rakudo-moar 1ae0b2: OUTPUT«===SORRY!===␤Dynamic variable $*SCRIPT_NAME not found␤»
vendethiel is trying to get the script dir
FROGGS m: say $*PROGRAM_NAME 19:47
camelia rakudo-moar 1ae0b2: OUTPUT«/tmp/EMOMdQX3wJ␤»
FROGGS m: say $*PROGRAM_NAME.directory
camelia rakudo-moar 1ae0b2: OUTPUT«No such method 'directory' for invocant of type 'Str'␤ in block at /tmp/Q3DAz9sKrf:1␤␤»
FROGGS m: say $*PROGRAM_NAME.IO.directory
camelia rakudo-moar 1ae0b2: OUTPUT«No such method 'directory' for invocant of type 'IO::Handle'␤ in block at /tmp/8iqrbigFw4:1␤␤»
FROGGS m: say $*PROGRAM_NAME.IO.dir
camelia rakudo-moar 1ae0b2: OUTPUT«No such method 'dir' for invocant of type 'IO::Handle'␤ in block at /tmp/_PgzIpD0H3:1␤␤»
FROGGS m: say $*PROGRAM_NAME.path.directory
camelia rakudo-moar 1ae0b2: OUTPUT«/tmp␤»
FROGGS vendethiel: ^^ 19:48
19:48 moistcherry is now known as hoverboard
vendethiel ty :-) 19:48
19:48 molaf joined
vendethiel i.imgur.com/yDXWI4r.png No pugs on windows I guess ... 19:57
vendethiel failed to install pugs on 2 windows and a mac, only stuff he found on SO and such where "reinstall haskell" )=(
FROGGS :/ 20:00
geekosaur pugs is a pain to install, yes 20:01
20:01 Bucciarati_ is now known as Bucciarati
[Coke] it's still not installed properly on the semi-official testing box. :) 20:09
every time I move to another box, i have to pray au will show up and rescue me. :)
20:11 treehug8_ left 20:12 autark left 20:18 treehug88 joined, molaf left
[Coke] s/pray/hope/, to be more precise. 20:18
20:31 effbiai left 20:32 btyler left
FROGGS does this make sense in nqp? 20:33
$push_target.push($check);
$push_target := $check;
20:34 Rotwang left 20:37 effbiai joined 20:38 kurahaupo joined 20:39 Alina-malina left 20:40 Alina-malina joined 20:45 Alina-malina left, bluescreen10 left 20:46 Alina-malina joined
timotimo opinions on renaming "SORRY!" to become "BEG YOUR PARDON?" 20:48
FROGGS *g* 20:52
vendethiel votes to change "sorry" to "s-s-sorry !" with a cute smiley :) 20:54
timotimo moe? 21:06
vendethiel ~ 21:08
21:08 btyler joined 21:15 raiph left 21:23 a3gis left 21:29 kurahaupo left 21:43 colomon left
timotimo i feel a bit bad about not being productive today :( 21:43
21:44 colomon joined 21:47 kaare_ left 21:54 kbaker left 22:02 btyler left 22:03 treehug88 left 22:10 ajr_ left 22:14 grep0r left
timotimo i suppose i was eductive at least 22:15
22:19 grep0r joined 22:21 ssutch left, ssutch joined 22:26 ssutch left 22:34 nebuchadnezzar left 22:38 lizmat joined 22:42 BenGoldberg joined 22:47 ssutch joined, BenGoldberg left 22:50 BenGoldberg joined 22:51 dmol left, arturo_ left 22:53 arturo_ joined 22:57 treehug88 joined 22:58 hoverboard is now known as moistcherry 22:59 adu joined 23:01 effbiai left, effbiai joined, gfldex left 23:02 ssutch_ joined, [particle] left 23:03 ssutch left, xinming_ left, ashleydev joined, [particle] joined 23:05 xinming_ joined, gfldex joined 23:09 nebuchadnezzar joined 23:17 Ben_Goldberg joined 23:18 BenGoldberg left, Ben_Goldberg is now known as BenGoldberg 23:19 BenGoldberg left 23:20 BenGoldberg joined 23:22 BenGoldberg_ joined, BenGoldberg left, BenGoldberg_ is now known as BenGoldberg 23:23 treehug88 left 23:24 spider-mario left 23:28 adu left 23:29 moistcherry left 23:34 donaldh left 23:35 moistcherry joined 23:40 moistcherry left, adu joined 23:44 nebuchadnezzar left, nebuchad` joined