»ö« 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.
00:00 thou left 00:02 tokuhiro_ joined
thundergnat Anyway, I watch the logs pretty regularly so if anyone has any advice, I'll probably see it even if I'm not on IRC. 00:02
00:06 thundergnat left, whiteknight left 00:41 Targen left 01:14 sudokode left 01:16 sudokode joined 01:17 am0c joined 01:21 xinming left 01:23 xinming joined 01:35 dayangkun joined, hypolin joined 01:38 scott_ joined, scott_ is now known as Guest66247
[Coke] nqp: my %foo; %foo<bar><baz> :=1 ; 01:41
p6eval nqp: OUTPUT«SixModelObject does not implement set_pmc_keyed_str␤current instr.: '' pc 72 ((file unknown):48) (/tmp/E25UcKdKAF:1)␤»
[Coke] phenny: tell pmichaud about nqp: my %foo; %foo<bar><baz> :=1 ;
phenny [Coke]: I'll pass that on when pmichaud is around.
01:59 tokuhiro_ left
MikeFair_ waves. 02:06
02:17 Pleiades` left 02:18 orafu left, orafu joined
japhb o/ 02:24
seen jnthn
aloha jnthn was last seen in #perl6 1 days 7 hours ago saying "tomorrow evening or so".
japhb dang
02:28 Pleiades` joined 02:40 Cofyc joined
benabik Completely OT, wasn't someone here an Amber player? 03:02
sorear Yes 03:12
03:12 am0c left 03:13 Targen joined
benabik remembers that he can search the logs. D'oh 03:13
sorear irclog.perlgeek.de/perl6/2012-03-27#i_5357813
colomon me 03:17
colomon just realized he's been GMing Amber for over 20 years now. 03:18
sorear does GMing count as playing?
colomon sorear: yes. and I've played, too.
sorear I mean I know you're a huge Zelazny fan and you've been going to Ambercon for 19 years, but this is the first time you used the p-word 03:19
colomon I've played in... hmmm... maybe ten Amber campaigns and who knows how many one-shot con games. 03:20
benabik++ 03:35
sorear what did benabik do? 03:40
benabik There's a Amber DRPG play by post starting up. It is open invite if anyone else is interested. (I don't want to post the URL publicly, it's on my dinky web server.) 03:41
Not really #perl6, but "all work and no play" 03:42
sorear Ah. 03:46
03:55 adu joined
MikeFair_ [Coke]: You about, I think I might have a clue regarding the Resizable Array problem you were encountering... 04:00
04:01 kaleem joined
MikeFair_ [Coke]: I did an strace on the nqp --target=pir main.nqp build, and it seems that when loading the NQPHLL.pbc multiple times, the last one triggers this error 04:02
[Coke]: Did you figure this one out?
04:09 kaleem left 04:25 ponbiki left 04:28 skids left 04:37 Chillance left 04:42 thou joined 04:51 marmay joined 05:11 thou left 05:13 throughnothing joined 05:15 thou joined 05:20 sudokode left 05:27 erkan joined, erkan left, erkan joined
moritz \o morning 05:36
sorear o/ moritz 05:44
05:51 wtw joined
MikeFair_ moritz: Good morning (though it's still an hour before I can officially say that ;) ) 05:54
adu morning 05:56
tadzik thundergnat: you've found a rakudobug
good morning
phenny: tell jnthn serialization fail: gist.github.com/3651868 05:57
phenny tadzik: I'll pass that on when jnthn is around.
MikeFair_ heads to sleep 06:02
06:02 MikeFair_ left 06:17 adu left 06:22 SHODAN left, SHODAN joined 06:28 adu joined 06:29 adu left 06:43 FROGGS__ joined, FROGGS joined
FROGGS morning 06:49
07:02 eternaleye left 07:09 eternaleye joined 07:11 brrt joined 07:12 erkan left 07:14 Cofyc left 07:15 erkan joined, erkan left, erkan joined 07:29 thou left
masak morning, #perl6 07:44
moritz \o masak, FROGGS, tadzik, adu 07:46
masak: what's the state of the macro fixes? 07:47
07:49 lizmat joined 07:52 drbean left 07:53 kresike joined
kresike good morning all you happy perl6 people 07:53
07:59 drbean joined 08:05 drbean left 08:13 drbean joined
sorear good night all you 6perl folks & 08:16
08:19 drbean left, drbean joined 08:23 Patterner left
FROGGS gnight sorear 08:23
Hi masak, moritz and kresike 08:24
kresike hello FROGGS o/
FROGGS what are we doing today?
kresike is working, and lurking in #perl6 08:25
08:25 Psyche^ joined, Psyche^ is now known as Patterner 08:27 stepnem joined 08:28 leont joined 08:29 xinming left
masak moritz: jnthn gave me some ideas yesterday, including what's wrong with the current patch. I might have time to look at it this evening; otherwise, in the weekend. 08:31
08:32 hoelzro|away is now known as hoelzro
masak ooh: github.com/aanand/deadweight -- pcawley suggested that something like this be a killer app for Perl 6. that was two years ago, I believe. 08:32
08:38 daniel-s__ is now known as daniel-s 08:39 hoelzro is now known as hoelzro|away 08:40 fhelmberger joined
sergot probably not everyone saw this. feather.perl6.nl/~sergot/modules 08:55
feather.perl6.nl/~sergot/modules/mo...tines.html
new feature ! :)
please comment. :)
masak ooh 08:57
tadzik oh, oh 08:58
sergot: the top link is broken, I wanted to fix it last night, but I guess it'll require some per-server configuration
as $basedir = '/foo/bar' or so
also, links on the main page could now direct to module pages :)
08:59 xinming joined
sergot tadzik: oh, right, I'll repair this. Thanks :) 09:00
09:00 dakkar joined
tadzik thank you :) 09:01
09:13 cognominal_ left 09:17 erkan left 09:20 erkan joined, erkan left, erkan joined 09:39 hoelzro|away is now known as hoelzro 09:42 hoelzro is now known as hoelzro|away 10:02 hypolin left, daxim joined 10:08 Guest66247 left 10:12 man joined
man hello 10:12
tadzik hi man
man hey
can u help in perl problem 10:13
tadzik is that Perl problem, or Perl 6 problem?
man its a program in perl
10:13 tomaw_ joined
man i m a beginner 10:13
tadzik this channel is dedicated to Perl 6; for Perl 5, you may want to go to #perl 10:14
man i need to write a perl script to store every word in a file as a key in hash
tadzik is that a homework of some sort? 10:15
man i m a beginner and its a part of my project
i tried doing a script but not getting the result 10:16
10:16 dayangkun left
tadzik is that to be a Perl 5 program or Perl 6 program? Those are 2 different languages 10:17
not 2 versions of the same one
man perl 6 10:18
10:18 man left
tadzik *shrug* 10:18
masak dang, I was curious what his problem was ;) 10:24
but most likely, it was 200 lines of horrific Perl 5. so, no big loss. 10:25
daxim tadzik, next time just ask for the code
tadzik daxim: I was about to do it after "perl 6"
daxim it saves you one step
tadzik right 10:27
masak .oO( "no! don't paste it directly in the channel! noooooo...!" ) 10:29
10:35 hoelzro|away is now known as hoelzro, sudokode joined
daxim you're melting, you're melting? 10:36
masak :) 10:39
10:45 tomaw left, tomaw_ is now known as tomaw 10:49 jaldhar joined 10:57 leont left 11:11 hoelzro is now known as hoelzro|away 11:16 tokuhiro_ joined
Juerd What's the size of a build tree of your favorite perl6 implementation, after build? 11:18
(Rough estimates are okay)
moritz 460Mrakudo/ 11:19
460M rakudo/
Juerd For a new feather (physical box), I think it makes sense to investigate SSDs as an option.
moritz currently we have ~106GB? 11:22
11:26 JJ_Brain joined
Juerd Something like that 11:28
JJ_Brain gtg 11:29
11:30 JJ_Brain left, crab2313 joined
pmichaud good morning, #perl6 11:55
phenny pmichaud: 05 Sep 22:10Z <[Coke]> tell pmichaud that "existkey" is metioned in the docs but doesn't exist.
pmichaud: 01:41Z <[Coke]> tell pmichaud about nqp: my %foo; %foo<bar><baz> :=1 ;
11:56 tadzik is now known as N950, N950 is now known as tadzik
masak pmichaud! \o/ 11:56
pmichaud hmmm, my irssi or screen session is malfunctioning. may need to restart. 11:57
11:59 henrys_ joined
moritz good am, pm 12:00
12:01 fgomez left 12:02 henrys_ left 12:03 fgomez joined 12:04 att joined 12:05 dayangkun joined 12:24 dalek left, dalek joined, ChanServ sets mode: +v dalek
lizmat Juerd: are SSD's reliable enough these days? Or would it make sense to have a "classic" hard drive in the new feather as well? 12:40
tadzik I find them reliable :)
but I only use mine for about 3-4 months
lizmat :-)
brrt lizmat: afaik, its a price thing, you can have really reliable ssds butthey are pricey 12:41
lizmat ack, same here with Wendy's notebook
all ok so far… but she also has a hard disk for making backups :-)
anyways, I need to be off for probably the rest of today
12:42 lizmat left
[Coke] morning, pmichaud. 12:44
dalek osystem: 13912e0 | (Alexandr Alexeev)++ | META.list:
added Sitemap::XML::Parser
12:45
osystem: d401129 | tadzik++ | META.list:
Merge pull request #12 from afiskon/patch-1

added Sitemap::XML::Parser
moritz tadzik: when you merge those pull requests, please keep a list of the github nick names
tadzik: so that I can give them commit access later 12:46
tadzik I think there's a pull request history
yes, there is
moritz \o/ 12:47
[Coke] sorear: OOC, why the interest in partcl on nqp? 12:48
[Coke] wonders if there's a way to tell diff "pretend that any thing with a leading # removed is otherwise the same." 12:51
FROGGS [Coke]: man diff says: -I, --ignore-matching-lines=RE 12:53
ignore changes whose lines all match RE
moritz FROGGS++ 12:54
FROGGS rtfm++
moritz fm++
FROGGS absolutely 12:55
12:56 PacoAir joined
sirrobert in: for @foo -> $bar { ... } 12:59
is the $bar implicitly scoped with "my"?
or should I get in the habit of doing it explicitly?
moritz it's scoped the signature and the block
[Coke] I don't want to ignore the line, just the leading #.
sirrobert it's scoped to the following block
moritz: thanks
[Coke] so if I change #foo to bar, tell me, but not if I change #foo to foo. 13:00
moritz you can write -> $bar, $flurb = $bar { }
[Coke] niche request. I can handle it maually.
timotimo WHOA. diff can output diffs with #ifdef? that's amazing.
masak sirrobert: yes. besides the slight differences between parameters other local variables, $bar is essentially my-scoped.
moritz
.oO( #ifdiff )
masak sirrobert: you can't put 'my' before $bar, because it's a signature.
sirrobert makes sense, thanks 13:01
13:02 PacoAir left
timotimo [Coke]: personally, i'd make a "transformation" where i remove initial # from all lines in both files and diff them 13:02
if that's at all feasible for you in this case
13:02 PacoAir joined, cognominal_ joined
timotimo you may need a backtransformation later to get a proper diff, though. that shouldn not be terribly much work, though, if your diff isn't terribly huge 13:03
moritz my new boss just told me to take longer to solve problems :-) 13:06
timotimo oh, that's a nice compliment, isn't it?
moritz aye
FROGGS or it means that it didnt work what you did and you should be more careful
moritz though there's some serious background: he has to explain quite a few things before I'm able to work on the stuff
FROGGS but hey, cant be, you are moritz ;o) 13:07
timotimo oh, so by solving problems fast, you use up more of his time?
moritz timotimo: correct
FROGGS: you don't know me very well, I'm actually quite sloppy
FROGGS I just can tell what I see, and that looks good to me 13:08
sirrobert I recall some operator that coerces to Bool (not !!)... any clues? 13:14
FROGGS so
colomon ?
sirrobert FROGGS: yes!
thanks
FROGGS ;o)
cool, I actually be of any help
colomon sirrobert: ? does as well
sirrobert colomon: ahh! good to know 13:15
are they perfectly synonymous?
moritz just difference precedence
colomon no.
moritz ? is tighter, so is looser
colomon what moritz said
moritz but the semantics are the same
sirrobert cool
I want looser this time, but great to know
moritz faq.perl6.org/#so
sirrobert nice 13:16
13:18 bluescreen10 joined
sirrobert I think I'll write something like an interactive p6 grammar/syntax tool lookup 13:20
are the doc.perl6.org generated out of the POD? 13:21
moritz yes
script htmlify.pl in the perl6/doc repo
sirrobert nice
looking
moritz feel free to integrate your tool with bin/p6doc in that same repo 13:22
that's what it is supposed to do in the future
sirrobert ohhh cool
even better 13:23
moritz though it'll be qutie some time until I get around to do it, so if you want to do parts of it, that would be really nice
sirrobert sure
I'd much rather put my resources to an existing project
need to finish my current task (a controller dispatcher for api requests... looking nice so far =) 13:24
in "method foo:bar () { ... }" is there anything weird happening with the colon? 13:26
or is it just a name with a colon 13:27
timotimo r: method foo:bar(){...}
p6eval rakudo cc1858: OUTPUT«Useless declaration of a has-scoped method in mainline␤»
timotimo oh, duh :)
r: class A { method foo:bar(){...} }; say &A.foo:bar
p6eval rakudo cc1858: OUTPUT«No such method 'foo' for invocant of type 'Nil'␤ in block at /tmp/yWJpwCybx7:1␤␤»
sirrobert r: class A { method a:b () { say 'foo'} }; A.new.a:b();
p6eval rakudo cc1858: OUTPUT«No such method 'a' for invocant of type 'A'␤ in block at /tmp/VCZCfBN5q3:1␤␤»
timotimo okay, i'll figure it out!
sirrobert hmm
timotimo r: class A { method foo:bar(){...} }; my $a = A.new; say &A.foo:bar; say &A.foo; say &A.bar; 13:28
p6eval rakudo cc1858: OUTPUT«No such method 'foo' for invocant of type 'Nil'␤ in block at /tmp/P8Ft4ltx4r:1␤␤»
sirrobert curiously it declares fine, and you can do MOP stuff with it
timotimo r: class A { method foo:bar(){...} }; my $a = A.new; say &($a.foo:bar); say &($a.foo); say &($a.bar)
p6eval rakudo cc1858: OUTPUT«No such method 'foo' for invocant of type 'A'␤ in block at /tmp/wjWY0yp3HH:1␤␤»
timotimo i'm not good at this :( 13:29
sirrobert r: class A { method a:b () { say 'foo'} }; A.new."a:b"();
p6eval rakudo cc1858: OUTPUT«foo␤»
sirrobert I guess the parser gets confused because of the colon-for-args syntax
timotimo maybe A.new.a:b() parses as infix:<:>(A.new, b())? 13:30
sirrobert well, not *confused*
[Coke] nqp: my $foo := -> { say("eek") }; $foo();
p6eval nqp: OUTPUT«Missing block at line 2, near "-> { say(\""␤current instr.: 'panic' pc 19998 (src/stage2/gen/NQPHLL.pir:7314) (src/stage2/gen/NQPHLL.pm:325)␤»
sirrobert I think it gets parsed as: A.new.a(b())
[Coke] r: my $foo := -> { say("eek") }; $foo();
p6eval rakudo cc1858: OUTPUT«eek␤»
timotimo oh, that makes some sense.
13:30 nnunley joined
timotimo we can test that! 13:31
sirrobert [Coke]: what's := -> ?
moritz := is binding
timotimo -> is for lambdas, no?
moritz and -> introduces a pointy block
aka lambda, yes
sirrobert didn't know either of those =)
moritz nqp: my $foo = { say('eeks') }; $foo()
p6eval nqp: ( no output )
[Coke] needs that in nqp for partcl-nqp to work, hethinks.
sirrobert oh, I guess it's the -> from a for loop
moritz nqp: my $foo := { say('eeks') }; $foo()
p6eval nqp: ( no output )
timotimo r: class A { method foo:bar(){ say "foo bar called" }; method foo(){ say "foo called"} }; sub a() { say "a called" }; A.new.foo:bar()
p6eval rakudo cc1858: ( no output ) 13:32
timotimo oh, huh?
moritz nqp: say('sanity')
p6eval nqp: ( no output )
moritz nr: say 42
p6eval rakudo cc1858, niecza v21-1-ga8aa70b: ( no output )
moritz oh noez
timotimo whoopsie.
sirrobert heh
[Coke] nqp: say(3);
p6eval nqp: ( no output )
[Coke] O_o
timotimo time for a test suite that sends a few basic eval lines to the bot in a query to see if everything works?
tadzik r: say " ( no output ) 13:33
p6eval rakudo cc1858: ( no output )
timotimo ah, it works!
but only for *some* outputs!
13:33 p6eval left
diakopter p6: boo 13:34
moritz let's try it with a bot restart
13:34 p6eval joined, ChanServ sets mode: +v p6eval
timotimo r: say " ( no output ) 13:34
why does that even work without an additional " at the end?
diakopter masakbot: poing
moritz because it's p6eval that produces ( no output )
r: say 42
p6eval rakudo cc1858: ( no output ) 13:35
timotimo wouldn't it display an error instead? lie it did before?
diakopter moritz: did you see my unreported rabugkudo yesterday
timotimo oh, gotta run, bbl
[Coke] r: say "
p6eval rakudo cc1858: ( no output )
moritz diakopter: no
colomon r: say '' this is a
p6eval rakudo cc1858: ( no output )
moritz I don't know what's up with p6eval
13:35 p6eval left
moritz $ . ~/nom-inst/bin/perl6 -e 'say 42' 13:36
-su: .: /home/p6eval/nom-inst/bin/perl6: cannot execute binary file
any idea what would cause such a message?
oh 13:37
file ~/nom-inst/bin/perl6
/home/p6eval/nom-inst/bin/perl6: ELF 32-bit LSB
$ uname -a
Linux feather3 2.6.32-5-amd64 #1 SMP Mon Mar 7 21:35:22 UTC 2011 x86_64 GNU/Linux
masak mystery solved.
moritz did somebody just change the architecture of feather{1,3}?
diakopter heh 13:38
I thought 32-bit could run unmodified on 64-bit
or is that just Windows 13:39
moritz I dunno. /bin/echo is also a 32 bit ELF, and runs fine
arnsholt I think, 32-bit can run on 64-bit, but all the libraries have to be 32-bit as well, IIRC
diakopter what's the age of the kernel file 13:40
kresike moritz, don't you have disk read errors in dmesg ? 13:42
moritz no, just segfaults
13:43 GlitchMr joined 13:47 stopbit joined
moritz diakopter: I can't even find the kernel file 13:50
dalek rlito: fa54da2 | (Flavio S. Glock)++ | / (2 files):
Perlito5 - javascript: update TODO (reference counting)
13:51
13:51 benabik left 13:52 benabik joined 13:55 atrodo joined 13:58 FROGGS left 13:59 FROGGS__ left, FROGGS__ joined 14:07 fhelmberger left 14:10 phenny left 14:11 FROGGS joined, thou joined 14:15 phenny joined
timotimo moritz: on my system, i have /proc/kcore, which seems to be the kernel image 14:18
kcore: ELF 64-bit LSB core file x86-64, version 1 (SYSV), SVR4-style, from 'BOOT_IMAGE=/vmlinuz-3.2.0-3-amd64 root=UUID=463414d4-50c5-49e7-855f-be37db23f378'
would that help at all?
diakopter some virtualization modes don't expose a kernel 14:20
timotimo oh, that makes sense, too. 14:22
14:24 sjn left, benabik_ joined 14:25 skids joined 14:27 benabik left, benabik_ is now known as benabik 14:29 dayangkun left 14:30 Circlepuller left, Circlepuller joined 14:33 Circlepuller_ joined 14:34 fgomez left, sjn joined
sirrobert Is there a builtin that converts a string to something numerical iff possible? 14:34
14:35 hoelzro|away is now known as hoelzro, Circlepuller left
masak sirrobert: prefix:<+> 14:35
sirrobert oh, right 14:36
thanks
masak rn: say +"42 penguins"
tadzik p6eval is down
masak oh, still? sorry to hear that.
locally: 14:37
$ nom -e 'say +"42 penguins"'
Cannot convert string to number: trailing characters after number in '42⏏ penguins' (indicated by ⏏)
$ nom -e 'say +"42"'
sirrobert I can use: (+$foo || $foo)
masak 42
sirrobert: infix:<//> is probably more what you mean there.
sirrobert: otherwise 0 will default back to the string.
sirrobert I thought it might be.. 14:38
ahh
I couldn't think of the case that made the difference
masak that's the difference here.
infix:<||> defaults for all falsy values.
14:38 nwc10 joined
masak infix:<//> defaults for all undefined values (a subset of the falsy ones, most of the time) 14:38
sirrobert got it 14:39
(+"0" // "0").WHAT # Int()
(+"0" || "0").WHAT # Str()
masak right. 14:40
14:41 wtw left
sirrobert what provides p6eval? a bot running on ... perl6.org? 14:41
we should definitely wire that into the interactive docs 14:42
14:42 raiph joined
GlitchMr sirrobert: feather3 14:43
sirrobert hmm
looking 14:44
raiph hi all
GlitchMr It's running on feather3 sandbox
Also, github.com/perl6/evalbot
14:45 telex left, tokuhiro_ left
raiph i'm #perl6-warnocked on irclog.perlgeek.de/perl6/2012-09-04#i_5961151 14:45
got feedback from uvtc: www.reddit.com/r/perl/comments/zazl...01/c63mjwc
14:46 telex joined
masak raiph: I wouldn't do red at all there, just bold. 14:46
raiph: or maybe a very dark green.
(but still bold)
raiph i hope to start preparing this week's summary tonight. i'm hoping for feedback before then.
masak: thanks. agreed. 14:47
GlitchMr But perhaps it would be possible
masak "red" means "wrong" :)
at least in a lot of contexts.
FROGGS
.oO( red is the color of love )
14:48
GlitchMr Perl 6 startup is slow (Rakudo is like 1.6s, Niecza is 1s) on empty script 14:49
But perhaps if Perl 6 would be already ran...
tadzik 1.6s? What hardware is that?
It's about 0.25 on my old laptop 14:50
GlitchMr feather1
FROGGS less then half a second on my box I'd say
tadzik is that a fresh nom on feather1?
GlitchMr I haven't checked with nom 14:51
I have checked 2012.08
Perhaps nom is faster, I don't know
tadzik 2012.08 is fresh
14:54 marmay left
GlitchMr See tryhaskell.org/ for example 14:55
Everything reacts very quickly
14:57 kst left
sirrobert perl6 -e "" takes about 0.1 second for me 14:58
14:58 erkan left
FROGGS perl -MTime::HiRes -e '$t=Time::HiRes::time; `perl6 -e ""`; print Time::HiRes::time-$t' # 0.241441965103149 14:59
GlitchMr wait what
sirrobert use: time perl6 -e ""
GlitchMr -e is way faster than reading code?
Why?
I know that filesystem IO could be slow, but not that slow
benabik It takes about 1.6s either way on my machine. 15:00
sirrobert time perl6 foo.pl #contains "use v6;"
real0m0.325s
GlitchMr what?
sirrobert use: time perl6 -e "" # real0m0.272s
GlitchMr real 0m0.291s 15:01
what
FROGGS GlitchMr: its the same speed for doing -e '' or using an empty file
s/for/for me/
GlitchMr But now it's apperently faster 15:02
Even when reading empty file.
I don't know
daxim now = after the disk cache is hot?
FROGGS that wouldnt explain a whole second
GlitchMr gist.github.com/3657109 15:03
That was original result
But yeah, probably some random delay
It doesn't happen now
sirrobert nod 15:04
TimToady maybe it just hadn't had its morning coffee yet
GlitchMr The lesson being - don't trust single "time" run
FROGGS thats true for testing threads too 15:05
I learned that the hard way
sirrobert that's true for testing anything ;)
daxim run this many times, throw the outliers away, then determine the median
GlitchMr But if 2 + 2 says you 5 then things are wrong anyways 15:06
Or perhaps definition of 2 has changed
FROGGS maybe its the operator now O.o
GlitchMr But perhaps you need additional runs...
dalek rlito: 966c1c8 | (Flavio S. Glock)++ | / (4 files):
Perlito5 - javascript - bugfix (#5) - $| not predeclared
15:07
kresike bye folks
15:07 kresike left 15:14 kaare__ joined 15:20 hoelzro is now known as hoelzro|away
sergot moritz, Juerd: is there any possibility to update rakudo on feather1 ? 15:21
cron uses the old one
Juerd sergot: What's needed is someone who will compile it
sergot: The current one is a symlink to ingy's homedirectory. He hasn't maintained that Rakudo build in ages :)
I personally don't want to do it because then people will think I'll maintain things on feather, which I don't :) 15:22
But if you'll compile rakudo, I'll gladly point that symlink to your binary.
sergot Juerd: you can use p6eval bot's rakudo, can't you? :) 15:23
It's /home/p6eval/nom/perl6
sirrobert r: 'a' ~~ / ^'b' / 15:25
Juerd I can do that. I'll symlink it.
sirrobert oh, right
sergot Juerd++ thanks. :) 15:26
Juerd Done
sirrobert ok: how do I match "not char x" in a regexp?
FROGGS it was [^x]
but I have no idea how it is now
sirrobert me neither =)
I tried [^x] already 15:27
TimToady std: /[^x]/
ENOBOT
should say: [^x] appears to be an old-school character class; please use <-[x]> if you mean a character class 15:28
masak .oO( today, we all have to be evalbots )
FROGGS that gives me true: perl6 -e 'say so "abc" ~~ /<-[b]>/' 15:29
TimToady yes, it found a character that was not b
FROGGS .oO( thinks of a cool evilbot name for himself ) 15:30
-.-
ya, I'm a bit stupid :o)
sirrobert I have something in the format 'foo/bar/baz'. I want to catch bar and baz as args to foo
(I'm using a grammar)
masak FROGGS: momentary stupidity happens to all of us. the trick is to do great stuff during one's similarly brief smart moments ;)
TimToady I'd use a subrule to match the latter two 15:31
sirrobert subrule... hm
FROGGS masak: I'll keep that in mind *g*, thanks
masak FROGGS: and then there are various ways to increase one's averages, and decrease the standard deviation...
TimToady even better if you can do the smart thing *because* of the stupid thing
being stupid is an opportunity :)
sirrobert TimToady: I had something like: token foo { 'foo' <arg> <arg> } 15:32
is that ('arg') what you mean by subrule?
TimToady I've made a whole living from that...
sirrobert I see it in S05 15:33
TimToady but if it's variadic you want <arg>*
sirrobert ok. I can't seem to get that set of rules/subrules to work.
TimToady: nod
still working on making the match work with a fixed number =)
masak sirrobert: are you using automated tests?
sirrobert masak yeah 15:34
^:
masak sirrobert: it's a really good combination with grammars.
sirrobert masak: yeah, we have a pretty strict test policy (integration and unit are required for all commits)
masak nice.
sirrobert a little looser on unit =)
unit tests are weird with LISPs 15:35
masak nowadays when I develop a new grammar, I do it with test-first development.
it's one of the few situations where I prefer to iterate with strict TFD.
sirrobert yeah
masak and it works really well for that.
sirrobert I'm trying to get the aforementioned test to work =) 15:36
foo/bar/baz to match: token { 'foo' <arg> <arg> }
haven't been able to so far (I guess the problem is in the definition of <arg>)
but I can't figure out how to say 'match up to char x'
masak sirrobert: you realize that you're using 'token', not 'rule', so whitespace is not significant? 15:37
sirrobert masak: nod
masak good.
sirrobert found out about that Tuesday ;)
masak :) 15:38
15:46 ChoHag left 15:51 FROGGS left, FROGGS__ left 15:53 ChoHag joined 15:59 brrt left 16:03 MayDaniel joined 16:08 average_drifter left
GlitchMr Grammars are amazing. You don't have to write ugly regexpes like 16:12
\A(?=\s*[[{])(\s*(?:("(?:[^\x00-\x1F\\"]|\\(?:["\\/bfnrt]|u[0-9A-Fa-f]{4}))*")|-?(?:0|[1-9][0-9]*)(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?|\{(?:(?-1):(?-2)(?:,(?-1):(?-2))*)?\}|\[(?:(?-2)(?:,(?-2))*)?\]|true|false|null)\s*)\z
(ok, I know you can use /x, but grammars still look nicer) 16:13
masak well, PCRE-like regex syntax was designed over a long time and with severe constraints of backwards compatibility. so it's not so strange that grammars look nicer. :) 16:18
16:18 pat_js joined, nebuchadnezzar left 16:19 pyrimidine joined 16:21 FROGGS__ joined, FROGGS joined
TimToady "Break everything that needs breaking", we said, and regexes are at the front of that line. 16:21
arnsholt First against the wall when the revolution came 16:22
16:23 nebuchadnezzar joined
mst regular expressions' compactness is a huge win for interactive whipuptitude 16:23
16:23 pat_js left
TimToady sure, but it should be optional, not required... 16:23
PerlJam That would make a good cartoon. A bunch of coffee mugs labeled for various bits of Perl 5 that needed breaking for Perl 6 and someone throwing them against a wall and another someone using those pieces to build a big "Perl 6" or something 16:24
16:24 pat_js joined, pat_js left
mst grammars' expressivity is a huge win for long term manipulexity 16:24
I think what we're really breaking here is people's tendency to reach for regular expressions for things they just don't work for, at all
PerlJam mst: we can only hope that's the case.
mst api.metacpan.org/source/MSTROUT/Web.../Parser.pm
Juerd mst: In my experience, Perl 6 regexes are very typable. Especially (?:) that's optimized to [] is a big win, and so are <before ...> which I find easier to type than (?=...). The punctuation's tough. 16:25
16:25 pat_js joined
mst the way I use regexps in there isn't particularly horrible 16:25
TimToady "I know, I'll use regular expresssions. Now I have 10 types of problems."
mst in that it'd probably be nicer using grammars, but it's not particularly unnice without
TimToady: "Now you have /(?:problem){2,}/s"
masak .oO( another way to recognize p5ers... they say "regexps", not "regexes"... ) :P 16:26
Juerd Repetition sucks in p6regexes.
TimToady 'problem' ** 2..* # you mean this?
Juerd masak: Nah, I switched to regexes long before I even heard about Perl 6 :P
mst but grammars seem to me to invite the user to apply the sort of discipline to your thinking that you only learn to apply to regexps through shooting yourself in the foot repeatedly
Juerd TimToady: Yes. I find that syntax hard to remember and hard to parse visually.
masak Juerd: sure. it's not a sure-fire way to recognize p5ers. 16:27
16:27 am0c joined
TimToady well, I'd argue that repetition of that form *should* be hard to read :) 16:27
masak Juerd: the mnemonic for infix:<**> is quite nice, I think. it's a kind of exponentiation, because 'xxx' is 'x ** 3'.
PerlJam Juerd: you get used to it after a while.
masak Juerd: but I use infix:<**> quite rarely.
Juerd masak: Oh, did the x operator go away? 16:28
PerlJam Juerd: also, once you "box it" in your head correctly, it seems "natural"
TimToady which is why it should be hard
Juerd I don't use {4} much at all in p5, but I do use {4,} a lot.
masak Juerd: the infix:<x> operator is for the main slang. infix:<**> is in the regex slang. 16:29
TimToady well, we certainly weren't going to waste precious brackets on it
Juerd And going from xx{4,} to 'xx' ** 4..* feels like a huge step backward. I'll just have to get used to it, perhaps.
PerlJam maybe we should use postfix ^ to mean, "from here on" so, 4^ is the same as 4..* ;-)
Juerd masak: Sorry, I was confused for a second.
masak no prob :)
16:29 pmichaud left
masak yeah, I don't see the huge step backward. 16:30
Juerd TimToady: I understand and agree. I've tried to come up with an alternative but couldn't think of any... except the backtick of course ;)
masak also xx{4,} would mean x(?:x{4,})
Juerd True.
16:31 pmichaud joined 16:33 bob___ joined
GlitchMr sub postfix:<^> { $^a .. * } 16:34
I guess it's something that shouldn't happen?
masak GlitchMr: I have no idea what you're asking. 16:35
GlitchMr perl6: sub postfix:<^> { $^a .. * }; (5^4).perl.say;
masak evalbot is down.
GlitchMr lol
masak but if that had run, I think you would get a TTIAR from the 4. 16:36
TimToady and that'd be two terms in a row
Juerd: also, there's some subtle editorial pressure here that if you've designed a language that has arbitrary repetition counts, yer doing it rwong. 16:38
16:39 xinming left, xinming joined
TimToady there is no instance of ** repetition in the Perl 6 grammar, in fact 16:40
TimToady recognizes that the write of the regex is not necessarily in charge of the design of language being parsed :) 16:41
*writer
and that languages designed for hardware often must enforce the arbitrary limits imposed by the hardware 16:42
otoh, merely failing to match is probably the wrong approach for situations where you want to give a better error message 16:44
"You provided 7 args, but only 4 are allowed here"
In general, catching semantic errors with syntax is not very user friendly. 16:48
Juerd TimToady: In a language, sure, but when parsing arbitrary text, looking for phone numbers for example, it's really useful to require at least N digits. 16:50
4 is very unlikely to be a phone number, 12384877234 might be one, though. 16:51
TimToady yes, you didn't design that language
but if you're designing a phone to do autodialing, you have to allow for dialing short numbers too, in case you want to dial an extension
Juerd Yes, that is true. 16:52
TimToady I've seen lots of phones that assumed, for instance, north american telephone number schemes when they shouldn't 16:53
modem manufacturers usually got it right though
anyway, that's why it's merely a subtle editorial policy :) 16:54
arnsholt I was impressed with my clever phone the other day. It detected when I was dialling a US number (from a Norwegian phone) and grouped the digits 3/3/4
TimToady without a 1 on the front? 16:55
that seems a bit presumptious... 16:56
16:56 diakopter___ joined
TimToady *tuous 16:56
arnsholt No, with the +1
16:56 diakopter___ left
TimToady ah, well, then 16:56
arnsholt Wouldn't have worked without that, after all
TimToady NA still has a bit of weight in the world :) 16:57
the USA is important, and Canada is, well, big... :)
very very big 16:58
arnsholt (And lucky enough to use the same phone numbers)
masak TimToady: they're bigger than Australia, and it's a continent! :P
TimToady +1
TimToady thinks North Dakota is really Canada in disguise, sneaking a couple senators into Washington, D.C. 17:00
it used to be that phone exchanges in the US allowed you to leave the 1 off the front of long distance numbers because all area codes had 0 or 1 as the middle digit, and none of the exchanges did 17:02
but then they ran out of area codes 17:03
(of that form)
talk about design decisions that won't scale...
diakopter prefix-free phone numbers 17:05
arnsholt We have prefix-free phone numbers. Of course that means you always have to dial all eight digits =) 17:06
TimToady I wish, rather than overlaying area codes, that they'd just add more digits on the end 17:07
PerlJam which end? :)
TimToady the right end :)
PerlJam I dunno. I think in a few decades phone numbers won't be important enough to be part of the user interface anymore. 17:08
FROGGS thats not that simple, the numbers before that suffix mustn exist already 17:09
I guess you will dial ipv6 "numbers" in a few years
like :::6f:7 or what it looks like
TimToady as long as telemarketers have identifiable ipv6 numbers, I'm all for it 17:10
FROGGS right
PerlJam or you won't *dial* at all. 17:11
TimToady  
^ autopun of "That goes without saying." 17:12
PerlJam We're already talking to our cell phones, why not the others as well?
FROGGS my college's phone at home responses to a blacklist from web like "the number you dialed is not available"
but he is some sort of guy that can check the temperature at from anywhere using his smartphone (nagios) 17:13
sirrobert What's the syntax for a named capture? 17:15
TimToady <foo> is the easiest 17:16
$<foo> = [ ... ] to get fancy
sirrobert What's the next easiest?
ok, thanks
TimToady in between is <foo=.bar>
but that only works to name assertions that could already go inside <>
sirrobert r: say test 17:17
FROGGS no bot, no fun
TimToady of course, you *could* just read S05
sirrobert s05 reads more like a spec than a tutorial ;) 17:18
TimToady well, every time we explain something here, we don't explain something there :)
sirrobert heh nod. It's just that the synopses are in engineering order, but I'm at the level of needing things in educational order. 17:19
TimToady ja
17:19 benabik left
sirrobert still, I'm learning to use them better and better 17:20
PerlJam sirrobert: What's "education order" for you exactly?
TimToady tutorials should be designed to help you use the references :)
PerlJam (maybe that could be the start of a good tutorial)
sirrobert both: agreed
FROGGS PerlJam: arange it from a simple task (with a simple solution) to the harder ones 17:21
well, we now know that there are no impossible things at all ;o)
PerlJam FROGGS: my simple and your simple will be two very different things. It's the people who are actually in the midst of learning who know where the rough spots are.
TimToady Teach a man to burn a fish, and, er, it'll stay burnt after it's dead. 17:22
or something like that
It'll stay burnt after he's dead too... 17:23
FROGGS ohh, I can burn fish^^
PerlJam: I guess there are some good articles on the net covering this problem (not perl specific ones) 17:24
PerlJam thinks it's really time for "Learning Perl 6" to be written.
FROGGS PerlJam: ya, that would be sweet!
TimToady is clever enough this morning to appreciate his own cleverness, without being clever enough to notice that it's not clever enough...
17:25 am0c left
PerlJam I wonder how much prodding it would take to get bdf and merlyn to write stuff 17:25
FROGGS and this time I wont forget to ask TimToady for a sign when standing next to him holding a new copy of programming perl -.-
PerlJam (and would they be amenable to accepting stuff we've already written (even if just in our heads ;)
)
17:26 am0c joined
PerlJam I bet you could get 4 or 5 chapters of LP6 from #perl6 without too much difficulty 17:27
FROGGS well, it dont has to cover everything
PerlJam Just like the "Using Perl 6" book though, the trick is putting it all together into a cohesive whole
sirrobert because of the breadth, I'd break it up into a series
FROGGS +1 17:28
TimToady there's that country code again
PerlJam heh
FROGGS hehe
masak "cohesive whole" is probably very related to "designed by a single mind". Fred Brooks talks about that. 17:29
PerlJam yep 17:30
TimToady +1 a capitalist memeplot to convince us that the US can only prosper through incremental growth
*is a 17:31
TimToady should quit emitting random permutational humor (?) and go do something useful... 17:32
TimToady usually goes depressive at the end of conference season, not manic... 17:33
masak well, I've never seen +1 inflation on IRC. maybe because in practice the uses of it take place in a contextual silo. 17:34
TimToady thinks context works more like a stack than a silo, generally 17:35
sirrobert agrees. 17:36
17:36 daxim left
TimToady but if you keep your context in firefox tabs, all bets are off 17:36
masak don't I know it.
though I don't do that anymore. I'm a reformed taboholic. 17:37
TimToady -holic is a lovely productive suffix, unlike me. 17:38
17:40 dakkar left
sirrobert "Tabohol is a bitter drink" 17:42
FROGGS TimToady: I got much motivation from YAPC::EU, but being at work, hacking php sucks a bit... 17:44
would like todo more stuff in perl5&6
17:44 raiph left
FROGGS thats what I do when the kids are in bed 17:46
sirrobert Thankfully I get to p6 at $work
17:48 pyrimidine left
FROGGS ya, that would be better... but the tasks must be fun too 17:49
sirrobert Thankfully, they are =)
(I get to make them up =)
FROGGS what are you doing?
sirrobert at the moment I'm writing a grammar-based api dispatcher
"controller" 17:50
17:51 bob___ left 17:53 tokuhiro_ joined
sirrobert how do I call a method from a given object if I have the Method() object? 17:54
17:54 am0c left
masak sirrobert: if your method is in $m, you can just do $m($obj, $arg1, $arg2, ...) 17:57
sirrobert wow, that's cool
17:57 pyrimidine joined
masak sirrobert: which would correspond to $obj.m($arg1, $arg2, ...) 17:57
moritz \o 17:58
17:58 pyrimidine left
masak moritz! \o/ 17:58
sirrobert I did a much more convoluted: ::("MyClass")."{$m.name}"(|@args);
17:58 pyrimidine joined
sirrobert (more or less) 17:58
thanks
hi moritz =)
masak hm, time to have another look at macros-d2. 18:00
18:01 p6eval joined, ChanServ sets mode: +v p6eval
moritz p: say 42 18:01
n: say 42
18:01 pat_js left
p6eval pugs: ( no output ) 18:02
niecza v21-1-ga8aa70b: ( no output )
moritz the weird thing is, I can spawn the process on the command line
at least the niecza process
18:02 p6eval left
moritz and rakudo works again too 18:03
on the command line
sirrobert weird
FROGGS sounds like a permission problem
moritz I did it as the same user as the bot
FROGGS maybe the environment?
I had problems lately running a job via cron as a user, then I've seen that the environment vars were not the same 18:06
moritz yes, but I launch the bot from the same shell where I try the commands 18:07
so it inherits all the variables
FROGGS hmmm
moritz on windows I'd reboot 18:08
FROGGS on unix I would check the logs 18:09
if there are any
sirrobert reboot anyway =) couldn't *hurt*, right? 18:10
moritz sirrobert: it could not come up again 18:11
sirrobert heh
moritz reboot anyway
PSA: feather3 is going down for reboot NOW 18:12
moritz waves
18:12 dalek left
moritz ... and it's back 18:13
sirrobert =) 18:14
TimToady The delek is dead! Long live the dalek!
moritz oh wait, dalek was also on feather3?
oops
18:15 p6eval joined, ChanServ sets mode: +v p6eval
moritz r: say 42 18:15
p6eval rakudo cc1858: OUTPUT«42␤» 18:16
moritz and it's also a mystery to me why the first command being execute is so slow
GlitchMr Why dalek in on feather3?
It doesn't evaluate code 18:17
TimToady std: race my @cars;
p6eval std b87ea13: OUTPUT«ok 00:00 42m␤»
sirrobert r: say 'foo'
p6eval rakudo cc1858: OUTPUT«foo␤»
moritz GlitchMr: hysterical raisins, I assume
sirrobert moritz: use 'Win32::Env'?
TimToady std: /[[-]/ 18:18
p6eval std b87ea13: OUTPUT«===SORRY!===␤Invalid regex metacharacter (must be quoted to match literally) at /tmp/oYC2maRagQ line 1:␤------> /[[-⏏]/␤Unrecognized regex metacharacter / (must be quoted to match literally) at /tmp/oYC2maRagQ line 1:␤------> [32…
TimToady std: use v5; /[[-]/
p6eval std b87ea13: OUTPUT«ok 00:00 53m␤»
masak \o/ 18:19
TimToady std: use v5; /[a-b-c]/ 18:21
p6eval std b87ea13: OUTPUT«ok 00:01 53m␤»
TimToady eval /[a-b-c]/ 18:22
buubot_backup TimToady: No output.
TimToady I guess
std: /<[ a .. b .. c ]>/
p6eval std b87ea13: OUTPUT«===SORRY!===␤Range missing start character on the left at /tmp/DidfRPynTS line 1:␤------> /<[ a .. b ..⏏ c ]>/␤Check failed␤FAILED 00:00 43m␤»
moritz sirrobert: sorry, I don't understand 18:23
sirrobert: do you mean to imply that because a reboot fixed it, it's like a win32 environment?
18:31 Circlepuller joined 18:33 kst joined, Circlepuller_ left 18:34 Circlepuller__ joined
masak grapples with a "level confusion" inside his macros fix that he apparently fell victim to yesterday 18:34
sometimes things are QAST nodes, and sometimes they're already compiled blocks.
18:36 Circlepuller left
masak most of what the compiler does is to produce the former. that's the compiler's job, after all. 18:37
but macros and quasis... straddle these two worlds.
18:40 fgomez joined
sirrobert moritz: was just referring to your prior comment: 14:08 < moritz> on windows I'd reboot 18:40
the reboot seemed to have done something =) 18:41
r: class A { $?PACKAGE.^add_fallback( sub ($a, $b) { True }, sub ($a, $b) { method () {say 'fallback'} }); }; class B is A { }; B.new.foo; 18:44
p6eval rakudo cc1858: OUTPUT«No such method 'foo' for invocant of type 'B'␤ in block at /tmp/deho0PTLCi:1␤␤»
sirrobert is that a bug?
it works if the fallback is declard in B:
r: class A { }; class B is A { $?PACKAGE.^add_fallback( sub ($a, $b) { True }, sub ($a, $b) { method () {say 'fallback'} }); }; B.new.foo;
p6eval rakudo cc1858: OUTPUT«fallback␤»
masak moritz: also, I've realized I can't (in the long run) put the dynamic unquote-fixing closure at the macro call sites, like I did. simple reason: macros and quasis/unquotes are orthogonal constructs. 18:45
[Coke] what is "add_fallback" ?
sirrobert a meta-object method that let's you add a "fallback" method 18:46
moritz it's an undocumented feature
sirrobert a method executed if no suitable method is found in the class
is the issue that I'm calling it from $?PACKAGE?
masak [Coke]: it's a method on ClassHOW. 18:47
sirrobert trying to hide some ugly code in a base class (or role would be fine) 18:48
18:48 pyrimidine left
sorear good * #perl6 18:48
sirrobert \o
masak another good thing about private attributes being strictly scoped to the class block: you can reason about them easily. 18:49
I guess that's what people mean by "proper encapsulation"...
sirrobert heh
colomon o/ 18:51
sirrobert doing it with a role times out
r: role A { $?PACKAGE.^add_fallback( sub ($a, $b) { True }, sub ($a, $b) { method () {say 'fallback'} }); }; class B does A { }; B.new.foo; 18:52
p6eval rakudo cc1858: OUTPUT«(timeout)»
masak $?PACKAGE ? in a role? 18:53
feels wrong.
sirrobert just trying stuff =)
masak $?CLASS I could imagine working...
that's the one's generic in all roles. 18:54
sirrobert huh, didn't know that
masak r: role A { say $?CLASS }; class C does A {}; class D does A {}
p6eval rakudo cc1858: OUTPUT«===SORRY!===␤None of the parametric role variants for 'A' matched the arguments supplied.␤Method 'gist' not found for invocant of class 'C'␤»
masak hm!
p6eval: it's good to have you back.
moritz++
sirrobert moritz++ indeed 18:55
masak r: role A { method foo { say $?CLASS } }; class C does A {}; class D does A {}; say C.new.foo; say D.new.foo
p6eval rakudo cc1858: OUTPUT«C()␤True␤D()␤True␤»
masak heh.
r: role A { method foo { $?CLASS.^name } }; class C does A {}; class D does A {}; say C.new.foo; say D.new.foo 18:56
p6eval rakudo cc1858: OUTPUT«C␤D␤»
masak there we go. generic.
sirrobert hmmm
r: role A { $?CLASS.^add_fallback( sub ($a, $b) { True }, sub ($a, $b) { method () {say 'fallback'} }); }; class B does A { }; B.new.foo; 18:57
p6eval rakudo cc1858: OUTPUT«===SORRY!===␤None of the parametric role variants for 'A' matched the arguments supplied.␤Method 'dispatch:<.^>' not found for invocant of class 'B'␤»
18:57 popl joined 18:58 Circlepuller joined 18:59 crab2313 left
moritz code directly inside a role body is... problematic 18:59
sirrobert makes sense ...
I had tried doing things like defining: method _fallback () {...}
but didn't find anything =)
moritz use a class (and inheritance) for the fallback 19:00
sirrobert or I guess method FALLBACK would be a good one
sorear don't you need to use $?ROLE ?
sirrobert class and inheritance doesn't work
(that was the first example)
19:00 Circlepuller__ left
sirrobert r: class A { $?PACKAGE.^add_fallback( sub ($a, $b) { True }, sub ($a, $b) { method () {say 'fallback'} }); }; class B is A { }; B.new.foo; 19:00
p6eval rakudo cc1858: OUTPUT«No such method 'foo' for invocant of type 'B'␤ in block at /tmp/ovQ6RcXNza:1␤␤»
sirrobert unless you mean some different syntax?
moritz ok, you are right 19:01
sirrobert bummer =)
moritz r: role A { BEGIN A.^add_fallback( sub ($a, $b) { True }, sub ($a, $b) { method () {say 'fallback'} }); }; class B does A { }; B.new.foo
p6eval rakudo cc1858: OUTPUT«===SORRY!===␤None of the parametric role variants for 'A' matched the arguments supplied.␤Cannot call ''; none of these signatures match:␤␤»
sirrobert here's a work-around (but it exposes the ugly bits a li'l) 19:04
r: class A { method __add_fallback () { self.^add_fallback( sub ($a, $b) { True }, sub ($a, $b) { method () {say 'fallback'} }); } }; class B is A { }; B.__add_fallback(); B.new.foo;
p6eval rakudo cc1858: OUTPUT«fallback␤»
19:06 erkan joined, erkan left, erkan joined 19:15 Edument joined 19:16 fgomez left 19:25 benabik joined
masak I would like to talk to someone about $*W.create_simple_code object. 19:30
I guess $someone is any(pmichaud, jnthn).
19:32 Edument left 19:35 lotreck joined
lotreck hello. can anyone provide an update on perl6 ? Is it in prod status ? I've been reading about perl6 for a few years now. What's up ? 19:36
sirrobert I'm using it for my stuff and have no major problems =) 19:37
(note: I'm not a p6 dev; I'm a user)
lotreck is perl6 shipping w/ any linux distros ? 19:38
diakopter lotreck: many people have very different definitions of 'prod', so you'd have to give us your before we can answer
sirrobert lotreck: I dunno
masak I'm mostly a user. I'm using Perl 6 in what I consider to be production, and I'm happy with it.
moritz lotreck: yes, it's included in several distributions
lotreck: and for others there are third-party packages
masak lotreck: the future is mostly here, but unevenly distributed. 19:40
moritz the present is also here, and also unevenly distributed :-)
lotreck Thanks for the update. I've googled that rakudo.org is one implementation of perl6. 19:41
moritz it is 19:42
diakopter it's the one included in the distributions, but last I checked they were old.. moritz?
sirrobert there's always a lag behind distribution versions of stuff and up-to-date versions 19:43
diakopter I thought they were *very* old
sirrobert dunno =)
diakopter ok, looks like debian has it at 2012-04 and 2012-01 19:44
that's not terribly old 19:45
sirrobert old-ish, but not *very* old
tadzik I just saw that ideone has 2010.08 19:46
diakopter ubuntu has 2011-07
tadzik and there it says to take 80 MB for say $*PERL.perl
I checked the recent rakudo OOC, and it needs about 150 on my system
diakopter opensuse has 2011-06 19:48
sirrobert opensuse has 2013-04 # oneupsdistroship 19:49
moritz diakopter: iirc gentoo and/or arch linux are only behind a week usually
sirrobert moritz: cool
diakopter wow that's fast
lotreck my ubuntu 12.04 have perl 5.14.2 19:50
diakopter that's Perl 5; Perl 6 is a different language 19:51
tadzik contrary to popular belief, it's not the next version :)
19:53 leont joined
moritz does anybody know of any data about where open source programmers come from, broken down by country? 19:54
tadzik I wonder if GSoC stats are a good approximation
[Coke] moritz: just curious? 19:55
lotreck so to get perl6 onto ubuntu it's looks like one has to do a 'apt-get install rakudo'
moritz [Coke]: no, I'm being asked to answer some questions for the German parliament
[Coke] O_o
moritz tadzik: at least they are a data point, not just guesswork 19:56
diakopter www.econstor.eu/dspace/bitstream/10...705071.pdf
has a country breakdown
moritz tadzik: do you have some numbers about it? I've only seen the map, and don't want to count
diakopter++
diakopter p10
tadzik moritz: I'll look for them 19:57
[Coke] lotreck: Depending on what sort of work you're doing, you might be better off installing your own more recent copy of rakudo, but that should get you started.
tadzik I remember seeing a pie chart
sorear comic sans in an acadeic paper? never seen it before
this is also imperfect because it uses sf.net data
moritz sorear: any such breakdown will be imperfect, and they are all better than no data at all 19:58
tadzik moritz: google-opensource.blogspot.com/2012...rs_10.html 19:59
moritz wonders if ohloh.net or github.com offer such stats 20:00
tadzik++
sirrobert lotreck: I use ubuntu and get it from rakudo.org
tadzik what version does ubuntu have>?
20:01 prammer joined
diakopter 2011-07 20:01
moritz that's pre-nom
diakopter www.takhteyev.org/papers/Takhteyev-...s-2010.pdf 20:02
sorear tadzik's list is very strange
Sri Lanka above France?
diakopter moritz: that one seems to have a good survey of the field 20:03
moritz diakopter++
sirrobert tadzik: no idea
[Coke] seen jnthn? 20:04
aloha jnthn was last seen in #perl6 2 days ago saying "tomorrow evening or so".
sirrobert tadzik: looks like 12-04 (the distro's latest release date)
20:05 GlitchMr left
diakopter moritz: write some queries. :) www.blackducksoftware.com/knowledgebase 20:05
oh wait, it's not public; oops
20:08 kst left
moritz thanks diakopter and tadzik 20:08
(and if anybody else knows about such data, or data about closed source programmers, please let me know) 20:09
japhb Was there ever a fix for the "Method 'seek' not implemented for type Socket in method send" bug that Net::IRC::Bot triggers? 20:10
diakopter this has a ton of info, but no stats by country that I could find: mitpress.mit.edu/books/chapters/0262562278.pdf 20:11
sirrobert programmers.stackexchange.com/quest...0300#20300 20:12
has some good resources 20:13
sorear is also curious about why the german parliament is going to moritz 20:14
benabik Why wouldn't they? 20:15
sorear There are an awful lot of other Germans 20:16
diakopter not all of them are awful!
sorear When one person is chosen from a population of 1e8 or so, I tend to assume there's a reason 20:17
20:17 Moukeddar joined
sorear o/ Moukeddar 20:17
Moukeddar \o/ guys , how are you all doing 20:18
masak Moukeddar! \o/
Moukeddar masak, My man 20:19
tadzik hi Moukeddar
20:21 sivoais left 20:22 kaare__ left
Moukeddar hi tadzik 20:22
how's everybody ?
sorear I can't speak for everybody but I'm fine. 20:23
Moukeddar the most friendly IRC room ever :)
20:23 Circlepuller_ joined
japhb Moukeddar, we try. :-) 20:24
sorear current topic is geographic distribution of open-source involved people
tadzik pretty good on my side :)
Moukeddar you're doing a damn fine job :)
japhb phenny, ask GlitchMr Was there ever a fix for the "Method 'seek' not implemented for type Socket in method send" bug that Net::IRC::Bot triggers? Or did you find a workaround for it?
phenny japhb: I'll pass that on when GlitchMr is around.
sorear you were from Morocco, do I remember correctly? a country which doesn't even show up on the lists we found :( 20:25
tadzik Moukeddar is working on fixing that, I think :)
Moukeddar yeah sorear , i'm from Morocco
what list ?
20:25 tokuhiro_ left 20:26 Circlepuller left
tadzik list of people involved in open source software, by country 20:26
moritz was looking for one (or two)
Moukeddar i know some guys involved in open source, they just aren't that much
i've found this DVCS 20:28
www.veracity-scm.com/
20:28 Circlepuller_ left
diakopter moritz: flossproject.org/report/Final4.htm#_Toc13908299 20:30
(10 years old)
20:31 Chillance joined
sirrobert wow, phenny is pretty cool 20:31
benabik Heh. Git's Immutability Doctrine is liberal and mercurial's conservative? I find that somewhat amusing...
20:33 ingin joined
ingin good morning perl6. 20:33
masak git takes immutability quite seriously.
good morning, ingin.
benabik People often confuse git-rebase with mutable history... It's more creating an alternate history. 20:34
masak aye.
commits are immutable. 20:35
ingin \o/
benabik Mercurial implemented rebase and commit --amend by rewriting my history files. Wasn't amused.
ingin masak: a small question
benabik file locks as a feature? Oooookay... I'm going to stop ranting about that now, other than to say I'm not impressed by veracity. 20:36
ingin my $f = open 'save', :w; $f.say('yes')'save'.IO.s==>the output is 0. why?
my $f = open 'save', :w; $f.say('yes')';save'.IO.s==>the output is 0. why?
masak ingin: because you havn't flushed the contents yet? 20:37
colomon ingin: probably need to close the file
masak ingin: try closing the file.
20:37 Circlepuller_ joined
Moukeddar the author; eric sink was giving away a book called : Source control by example 20:37
ingin masak:I'll try
masak: you are right! 20:38
masak \o/
ingin masak; /0/ \0\....thanks! 20:39
sorear this ingin fellow is sounding a lot like ingy 20:40
ingin not same one?
bye.........perl6!
20:40 ingin left
masak I don't see why ingy would take the nick ingin :) 20:40
benabik Huh. Veracity supports versioned distributed databases. That's far more interesting than the source control half. 20:41
masak ...or use freenode's webchat...
'night, #perl6
FROGGS gnight
sirrobert o/
20:42 lotreck left, Moukeddar left 20:47 flussence left 20:49 stepnem left 20:50 erkan left
ingy is not ingin 20:53
21:03 Circlepuller joined 21:06 Circlepuller_ left
jnthn evening o/ 21:09
phenny jnthn: 05:57Z <tadzik> tell jnthn serialization fail: gist.github.com/3651868
jnthn tadzik: known 21:11
colomon \o
jnthn tadzik: Also, filed in RT already
colomon is relieved to see jnthn++ back on the channel. 21:12
diakopter jnthn: here's a funny one: 21:13
r: 1 if 1 if 1 { say 4 }
p6eval rakudo cc1858: OUTPUT«4␤»
diakopter I didn't see masakbot submit it yet 21:14
21:14 skids left
jnthn colomon: Sadly, I'm (a) still sick and (b) have a schedule for the week to come that's likely to deprive me of the rest I need to get really better. :/ 21:14
colomon doh! take care of yourself!
21:15 benabik left, att left
jnthn r: say 1 if 1 if 1 { say 4 } 21:16
p6eval rakudo cc1858: OUTPUT«1␤4␤»
japhb jnthn, sorry to hear about nasty sick. Hope you feel better soon. 21:17
jnthn diakopter: hah, I get that something eats the spaces after it, then eat_terminator has a || <?terminator> branch. 21:18
japhb jnthn, Unfortunately while phenny was out, I used lambdabot to message you, and now lambdabot is gone. :-(
jnthn diakopter: And "if" is a terminator.
diakopter jnthn: you and I discussed that rule and this possibility a while back
well, something like it
jnthn maybe :)
Not sure what the "right fix" is off hand besides "see what STD's doing different" 21:19
hah
rule modifier_expr { <EXPR> }
It's right there.
japhb: Aww. 21:20
japhb jnthn, the message I sent via lambdabot: Is there a way to use multi *subs* from a Role? Or does a Role even have a way of feeding multi subs to a composer?
(The context BTW, is that I'm trying to factor a pile of common multi subs out of the Pod::To::* renderers into something common that they consume.) 21:21
jnthn subs are lexically scoped
You can put them in the role, but they'll only be visible lexically within the role. 21:22
21:22 sivoais joined
japhb If it was a class, I'd try exporting them. But you can't do that with a role, can you? 21:22
jnthn I suspect things get awkward there 21:23
We have a problem with roles as packages
r: class Foo { our bar { say 42 } }; Foo::bar()
p6eval rakudo cc1858: OUTPUT«===SORRY!===␤Malformed our␤at /tmp/jdVY38FsDu:1␤»
jnthn r: class Foo { our sub bar { say 42 } }; Foo::bar()
p6eval rakudo cc1858: OUTPUT«42␤»
jnthn r: role Foo { our sub bar { say 42 } }; Foo::bar()
p6eval rakudo cc1858: OUTPUT«Could not find symbol '&bar'␤ in method <anon> at src/gen/CORE.setting:9815␤ in at src/gen/Metamodel.pm:2317␤ in any find_method_fallback at src/gen/Metamodel.pm:2305␤ in any find_method at src/gen/Metamodel.pm:859␤ in at src/gen/BOOTSTRAP.pm:826␤ in any a…
jnthn There's multiple reasons that doesn't work. 21:24
(what if it mentions a type arg somewhere in it for one, but also because the Foo we install is not the individual role, but a "role proto" that can dispatch at composition time tot he correct role variant if there are many of the same name) 21:25
There's an RT for the above, but whenever I think about it, I'm inclined to simply disallow our-scoped things in roles with a good error and mark it wontfix. :)
japhb OK, so then what is the proper unit of decomposition here? 21:26
21:26 leont left
jnthn What are the Pod::To:: renderers? Classes? 21:26
Is there any reason they can't compose in a common role, if so?
japhb Right now, yes, "classes". But they just have one method that makes a single call into a world of interacting multi subs that handle polymorphic rendering across a pile of different node types at different levels of the Pod tree. 21:27
jnthn (and you have them as methods)
japhb Yeah, I was wondering if the solution was to just s:g/multi sub/multi method/ 21:28
jnthn And you don't want to promote them to multi methods for a reason?
That feels like the "obvious thing" to do at first blush
Import is lexical though so there's no reason you can't inside the class body import a bunch of multi subs from some other module 21:29
And they'll be included in the candiate list with any locally delcared multis.
*declared
sorear jnthn! 21:30
jnthn o/ sorear
japhb Ah, so it would be a 'module' that I would pool multi subs into ... Would they all need to be marked 'is export'?
japhb is guessing yes
As for why not to use multi methods, primarily because A) subs are what they're using now, and B) I wanted to know if multi subs were amenable to refactoring in that way. Otherwise they become much less useful. 21:31
sorear jnthn: irclog.perlgeek.de/perl6/2012-09-05#i_5962851 21:32
jnthn japhb: Yes, mark them "is export"
japhb OK, just so my current understanding is 'module Pod::To; multi sub render-node(Foo --> Str) is export { };' and then 'class Pod::To::Bar; use Pod::To; multi sub render-nod(Bar --> Str) { # part of same multi as the one from Pod::To }' ... correct? 21:36
jnthn presuming the second one was meant to be "node" also :)
japhb heh 21:37
TimToady you should render a nod
japhb ((:-)) 21:38
TimToady not sure if that's a nod or a snow monkey...
japhb If this chat window could handle Unicode input properly, I'd use that. :-) 21:39
TimToady ☊ ~ ☋ 21:40
oh wait, that's node, not nod
actually, looks more like frog doing a barrel roll 21:43
japhb
.oO( What would a Camelia barrel roll look like? )
21:46
TimToady »ö« ~ »o̤« 21:49
sorear »o̤«
TimToady wins by an antenna 21:50
errands & 21:51
22:09 lizmat joined 22:12 lotreck joined, bluescreen10 left 22:15 MayDaniel left 22:25 stopbit left 22:26 revdiablo left, revdiablo joined 22:34 skids joined 22:35 lotreck left 22:53 lizmat left 22:55 lizmat joined 23:02 lizmat left 23:06 lizmat joined 23:14 orafu left
japhb S06:77-81 specifies that a proto declaration for a given short name changes the default from only to multi for that short name. This does not appear to work in current Rakudo. NYI or S06 fossil? 23:34
sorear NYI 23:36
japhb sorear, OK, thank you.
23:40 PacoAir left 23:45 whiteknight joined
japhb If class/module A exports a set of multi *sub* candidates, and these are imported into some other compilation unit, is there a way to replace (or just not import) one of the multi sub candidates from A? (Yes, I know if they were multi *methods* the answer is trivial.) 23:54
sorear as far as importation is concerned, multi subs and multi methods should be treated identically 23:56
japhb sorear, right, but if you want to replace the behavior of a given multi variant, it's trivial with the method (just write a new multi method with the same signature and allow normal method overriding to work), but with subs of course you get ambiguous dispatch by default. 23:58
japhb shouldn't say 'of course' when dealing with something as complex as multidispatch. ;-)