»ö« 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 alec left
timotimo i was just made aware of the "secret perl operators" page and am amused/bewildered 00:07
arnsholt Hehe. Several of them aren't operators, but there are some neat tricks around ^_^ 00:08
timotimo yes, indeed
i'm amused because i know how the eskimo greeting operator works 00:09
arnsholt The joys of #perl6 (and macros =D) 00:10
timotimo are there crazy combinations like those in perl6 already? 00:12
arnsholt Well, there are hyperops =) 00:13
And metaops
timotimo those are straightforward, kind of.
arnsholt In a way, yeah 00:14
timotimo did you see how =()= desugars? 00:15
00:17 rummik left, rummik joined
arnsholt Yeah, it's neat 00:18
timotimo opaque is what i'd call it :) 00:19
gives perl its reputation i'd say :P
00:19 lorn left
spider-mario it seems that rakudo’s debugger fails to build on my machine 00:19
Missing or wrong version of dependency 'src/stage2/QRegex.nqp' 00:20
paste.awesom.eu/eGJ
timotimo did you make sure to make install your nqp?
00:21 rking left
spider-mario yes, I did 00:21
00:22 lorn joined, whiteknight joined 00:24 pmurias left 00:25 rking joined 00:28 spider-mario left
timotimo someone just competently explained the the goatse operator 00:30
i think i can make a lightning talk about perl6 equivalents of the horrible abominations that are the secret perl operators 00:33
colomon +1
timotimo would anyone be ready to help me? 00:34
tadzik sure 00:36
timotimo great
i think the first slide will be: "forcing contexts is now simple" 00:38
skids Not sure the eskimo op is germain, maybe use it to introduce phasers (and the less sleazy perl5 one-liner uses END{}) 00:39
00:43 PacoAir_ joined, PacoAir left, PacoAir_ is now known as PacoAir
grondilu rn: sub prefix:<♀> { 0 + $^x }; say ♀43 00:45
p6eval rakudo 930369, niecza v24-12-g8e50362: OUTPUT«43␤»
00:45 PacoAir left 00:46 PacoAir joined
timotimo grondilu: tgat's excellent 01:14
01:33 thou left
skids r: print "\c[ARABIC LETTER HEH GOAL] inchworm!" 01:33
p6eval rakudo 930369: OUTPUT«ہ inchworm!»
skids r: print "\c[ARABIC LETTER HEH GOAL WITH HAMZA ABOVE] angry inchworm!" 01:37
p6eval rakudo 930369: OUTPUT«ۂ angry inchworm!»
timotimo will not get a spot for the lightning talk tomorrow, i believe. 01:56
01:59 fgomez joined 02:26 labster left 02:28 slayer101_ joined 02:42 FROGGS_ joined 02:46 FROGGS left 02:52 fgomez left 02:54 fgomez joined 03:05 orafu left, orafu joined 03:15 slayer101_ left 03:17 slayer101_ joined 03:29 PacoAir left 04:02 alec_ joined
alec_ if i want to read in some strings and turn them into urls, what's a good way to do that? 04:03
for instance, the urls look like:
www.uniprot.org/uniprot/XXXXXX.fasta
i'm completely new to perl; i'd never wanted to use it until i saw perl6 04:04
i tried:
sorear mm, FASTA
alec_ my $urlbase = "www.uniprot.org/uniprot"; my $id = "B5ZC00"; my $ext = ".fasta"; shell('wget $urlbase$id$ext') 04:05
but that didn't work of course
sorear $url isn't interpreted in single quotes 04:06
japhb alec_, you're missing a slash.
sorear single quotes suppress most magical behavior
japhb shell("wget $urlbase/$id.$ext");
sorear "wget $url$base$id$ext" will work better 04:07
alec_ yeah, i knew that, sorear, but i'm just a bit shaky with the whole thing
ok
double quotes
true, japhb
japhb Punctuation. We haz it. :-)
alec_ ok
great, works fine 04:08
thank you
japhb np
japhb is teaching his eldest some Perl 6 :-) 04:09
04:09 whiteknight left
alec_ how old is your eldest, japhb? 04:20
japhb 9 04:23
04:24 labster joined
alec_ does rx/^^ just mean 'here's a regex?' 04:30
flussence pretty much 04:35
alec_ ok 04:36
having trouble figuring out what Num.new does in this line:
take Num.new: 100*$dna.comb.grep(any(<G C>)).elems / $dna.chars; 04:37
i know what the code's doing, i just don't know how it does it 04:38
i don't really understand take
it's used two lines up in the same code like this:
sorear alec_: rx/^^ means "regex anchored to the begining of the line"
alec_ { take ~.[0];
ok, sorear, thank you
why two ^'s? 04:39
sorear because one ^ anchors to the beginning of the string
alec_ ahh
ok
sorear ^ is more commonly used, so it gets to be shorter
alec_ yes 04:40
makes sense to me
04:42 quester joined
skids r: my $d = 1/2; $d.WHAT.say; Num.new($d).WHAT.say; # it ensures the result is coerced to Num rather than Rat 04:57
p6eval rakudo 930369: OUTPUT«Rat()␤Num()␤»
04:58 am0c joined
alec_ i think i see, skids 04:58
skids (And actually just Num() works, but is not a method, so Num.new allows the colon listform arguments)
alec_ ok 04:59
but in the line:
take Num.new: 100*$dna.comb.grep(any(<G C>)).elems / $dna.chars;
why is there a colon after take? is that standard?
er, after Num.new?
skids It's the listform method arguments. You can say Obj.method: <args> instead of Obj.method(<args>). It eliminates a set of parens so some people like it that way. 05:00
It makes mnemonic sense given in signatures, an invocant is followed by colon. 05:01
alec_ ok, thanks skids 05:05
the lights are starting to go on now
what exactly does this match? 05:10
(<[\nAGCT]>*)
what do the < > do? and the *?
it's roughly the same as [AGCT]+ right? 05:11
sorear <> are not separate tokens 05:13
<[ and ]> are one unit
<[\nAGCT]> matches a newline, A, G, C, or T
<[\nAGCT]>* matches zero or more of the above
alec_ ok
sorear (<[\nAGCT]>*) matches the same, but stores a copy into the next $0, $1, ... 05:14
alec_ ahh, ok
Woodi morning # :) 05:36
Util: no, I do not want 3D text editor :)
Util: maybe programming environment to do 3D code-objects visualisation and manipulation... I have only spark of idea... 05:39
Util: but to be less theoretical: on your 3D holographic personal display you want to do programming - visualising code as plain paper sheet will be waste of "pixels" :) 05:41
Util: anyway, maybe it can have more sense in modyfing *complicated* code at runtime in multithread or "multistream" configurations (let say you cannot restart it)... future will come! :) 05:46
05:48 TreyRust left 05:49 thou joined 05:54 jokar joined 05:55 kaare_ joined
Woodi btw. I read somewhere "describing idea prevents patenting it later by someone" - it works ? :) 05:57
alec_ what does take ~.[0] mean? 06:01
06:04 Chillance left
Timbus it means take( $_.[0].Str ) 06:07
alec_ ok 06:09
raiph alec_: do you understand each of these? take; [pre|in|post|circum|postcircum] fix; ~; the postcircumfix .[]; .Str; $_ ? 06:13
alec_ i understand $_ up to a point, but all of them are a bit hazy 06:14
i've just basically decided to learn perl6 from scratch; i have no previous experience with perl
Timbus oh
alec_ i'm trying to learn how to use take and gather because they seem useful 06:15
06:17 jokar left 06:18 am0c left
raiph i pretty much view $_ as the same as "it" in English. 06:18
06:18 am0c joined
alec_ yes, i can see how that's true 06:18
it's a bit pronounish
raiph right. otherwise known in p6 speak as "the topic" 06:19
alec_ ok
raiph given <a b> say $_
nr: given <a b> say $_
p6eval rakudo 930369: OUTPUT«===SORRY!===␤Missing block␤at /tmp/By1QhEqct7:1␤------> given <a b> ⏏say $_␤ expecting any of:␤ postfix␤ infix or meta-infix␤ infix stopper␤ parameterized block␤» 06:20
..niecza v24-12-g8e50362: OUTPUT«===SORRY!===␤␤Missing block at /tmp/Oczy91yro7 line 1:␤------> given <a b> ⏏say $_␤␤Parse failed␤␤»
raiph nr: say $_ given <a b>
p6eval rakudo 930369, niecza v24-12-g8e50362: OUTPUT«a b␤»
alec_ ...i can't seem to write a valid regex for strings like 0484ABU_494BT... i'm using (<[A..Z0..9_]>*)
Timbus .say for gather given <a b> { take $_ } 06:22
r: .say for gather given <a b> { take $_ }
p6eval rakudo 930369: OUTPUT«a␤b␤»
Timbus heh.
alec_ nice
why .say?
Timbus because im calling it on $_ :P
alec_ ok
raiph Obj.method is a method call 06:23
Timbus im being confusing on purpose fyi. you sort of have to learn all of the building blocks of the language to see what it is doing
raiph if you omit the Obj, p6 assumes you mean to apply the method to "it" 06:24
alec_ yes, i can see that now raiph
can anyone figure out why that regex isn't matching? or doesn't seem to be? 06:25
raiph r: say "0484ABU_494BT" ~~ /<[A..Z0..9_]>*/
p6eval rakudo 930369: OUTPUT«「0484ABU_494BT」␤␤»
skids r: my $g; my $d; $g = gather do { $d = (take(1), 2, take(3), take(4))}; $g.say; $d.say; # simple gather/do example, which does not show laziness
p6eval rakudo 930369: OUTPUT«1 3 4␤1 2 3 4␤»
raiph what is making you think it doesn't match? 06:26
alec_ dunno raiph maybe i'm just using gather wrong... i'm using it with gather
my %hashtable = gather for $s.match ( rx/^^ (<[A..Z0..9_>*) \n /, :g) { take ... 06:27
raiph alec: do you know what a pastebin or similar is? 06:29
alec_ yes, i can pastebin it
06:32 am0c left
alec_ www.pastebin.com/s0faD7hE 06:33
skids r: my %hashtable = gather for "0484ABU_494BT\nOHAI\n".match( rx/^^ (<[A..Z0..9_]>*) \n /, :g) { take ($_.from => ~$_) }; %hashtable.gist.say
p6eval rakudo 930369: OUTPUT«("0" => "0484ABU_494BT\n", "14" => "OHAI\n").hash␤»
alec_ nice
i will remember %hashtable.gist.say 06:34
raiph alec_: you know what "gist" (as an English word) means, right? 06:36
alec_ yes 06:37
english is my native tongue 06:38
Timbus i dont really know, but i get the general, core, underling meaning of the word :p
alec_ lol
the gist of it
skids alec: You are up late. :-) 06:39
alec_ 12:39, so sorta late
raiph Timbus: lol
alec_ where are you, skids?
06:39 yeltzooo joined
raiph 1:39am here (New Hampshire, US) 06:40
skids alec: MA
So I am up later. 06:41
alec_ gotcha 06:43
06:44 am0c joined
raiph r: my $h = gather for "A2Z669\nB5ZC00\n".match( rx/^^ (<[_A..Z0..9]>*) \n /, :g ) { take $_ }; say $h 06:46
p6eval rakudo 930369: OUTPUT«A2Z669␤ B5ZC00␤␤»
06:47 dalek joined, ChanServ sets mode: +v dalek 06:54 SamuraiJack joined 07:01 Bucciarati joined 07:05 Ayiko left 07:06 Ayiko joined 07:07 BooK joined 07:12 slayer101_ left 07:18 slayer101_ joined 07:24 thou left 07:29 kaare_ left 07:33 raiph left 07:38 slayer101_ left
moritz \o 08:16
dalek ast: e225c9d | moritz++ | S32-exceptions/misc.t:
test X::Obsolete error for s///i
08:17
08:22 quester left 08:46 rindolf joined
FROGGS_ morning moritz 08:53
08:54 FROGGS_ is now known as FROGGS
tadzik good morning #perl6 09:03
FROGGS morning tadzik
phenny FROGGS: 28 Dec 23:02Z <jnthn> tell FROGGS the reason you get odd results is probably 'cus it looks like you add the other proto to the candidate list, rather than the other proto's dispatchees.
FROGGS: 28 Dec 23:03Z <jnthn> tell FROGGS also you should only do this auto-merging for onlystar dispathcers; real competition to "own the proto" is a problem, I suspect.
rindolf Good morning everybody. 09:04
09:11 denisboyun_ joined, rindolf left, rindolf joined 09:16 GlitchMr joined, GlitchMr left 09:17 GlitchMr joined 09:18 am0c left 09:19 PacoAir joined 09:23 rindolf left, rindolf joined
alec_ bows to grondilu 09:30
i finally finished solving rosalind/mprt
grondilu, your solution is elegant; code like that is the whole reason i want to learn this language
it's weird because i had a dream about a year ago about perl being a good language for bioinformatics 09:33
09:35 rindolf left, rindolf joined 09:36 Kharec joined 09:39 spider-mario joined 09:42 Psyche^ joined 09:45 Patterner left, rindolf left, Psyche^ is now known as Patterner 09:46 denisboyun_ left, rindolf joined 09:48 alec_ left 09:50 alec_ joined, alec_ left 09:53 denisboyun_ joined 09:55 kivutar joined 09:59 labster left 10:00 rindolf left 10:01 rindolf joined 10:07 GlitchMr_ joined 10:08 GlitchMr left, rindolf left 10:09 rindolf joined 10:18 rindolf left, rindolf joined 10:23 spider-mario left 10:36 denisboyun_ left
masak good morrow, #perl6 10:38
time to close up p6cc2012 registration :)
10:40 rindolf left 10:41 rindolf joined 10:45 denisboyun_ joined
masak hm, seems I don't usually blog on registration closing, I just assume people will stop registering. 10:48
very well. people, stop signing up! :P 10:49
10:55 rindolf left, rindolf joined
[Coke] good morning! 10:56
10:56 rindolf left
[Coke] or rather, good night. Time to finally go to bed. 10:56
10:56 rindolf joined
masak :) 10:58
11:23 rindolf left
GlitchMr_ I guess that loop { } in Perl 6 is defined behavior, unlike C++ 11:31
11:33 rindolf joined
Ayiko according to S04, loop {...} is equivalent to the Cish idiom: loop (;;) {...} 11:37
rindolf Infinite loop. 11:38
Timbus now people say it goes to infinity, but ive never seen it get there 11:39
11:44 MayDaniel joined 11:55 rindolf left, GlitchMr_ left 12:00 rindolf joined 12:10 rindolf left, rindolf joined
grondilu How do I leave a message to someone who's not here right now? (there's a "tell later" command I think but I don't know the exact syntax) 12:13
colomon phenny: tell grondilu This is how. 12:14
phenny colomon: I'll pass that on when grondilu is around.
grondilu phenny: tell alec Glad you liked it. Thanks. 12:15
phenny grondilu: I'll pass that on when alec is around.
grondilu: 12:14Z <colomon> tell grondilu This is how.
12:26 kaare_ joined 12:32 rindolf left, rindolf joined 12:42 rindolf left 12:44 rindolf joined, rindolf left, shlomif joined 12:45 shlomif is now known as rindolf 12:47 GlitchMr joined 12:57 werwerwer joined
masak jnthn: ok, merged multi/LEAVE and multi/temp RT tickets. 13:04
Timbus: since the spec *says* it goes to infinity, I think the burden of proof rests on you if you want to claim it doesn't. :P 13:10
(sometimes I think "infinity" sends people down the wrong garden path. maybe in PL design we should speak of "bounded" and "unbounded" instead.) 13:13
Timbus ehhhn sounds like effort. ill just write a program to determine if it finishes or not 13:14
masak I see no potential difficulties with that. none whatsoever.
13:19 rindolf left 13:32 rindolf joined 13:43 rindolf left 13:45 rindolf joined, rindolf left
dalek ast: 639a766 | moritz++ | S06-other/anon-hashes-vs-blocks.t:
RT #68298, $_ in block makes it not a hash
14:17
14:34 denisboyun_ left
masak replied to perl6advent.wordpress.com/2012/12/2...mment-2437 14:54
14:54 am0c joined 14:59 am0c left, am0c joined 15:01 shlomif joined, shlomif left, shlomif_ joined 15:02 shlomif_ left, rindolf joined 15:10 spider-mario joined
moritz how do I create a non-associative operator in rakudo? 15:11
15:12 kivutar left
masak r: sub infix:<@>($a, $b) is assoc<non> { $a + $b }; say 1 @ 2 @ 3 15:14
p6eval rakudo 930369: OUTPUT«6␤»
masak like that, but it isn't enforced.
masak submits rakudobug
r: say 4 but role {} but role {} 15:16
p6eval rakudo 930369: OUTPUT«4␤»
masak seems non-associativity in general, even among built-in operators, isn't enforced.
std: say 4 but role {} but role {}
p6eval std a8bc48f: OUTPUT«ok 00:00 43m␤»
masak hm.
std: 1 <=> 2 <=> 3
p6eval std a8bc48f: OUTPUT«===SORRY!===␤"<=>" and "<=>" are non-associative and require parens at /tmp/p70idsTt5F line 1:␤------> 1 <=> 2 <=> ⏏3␤Check failed␤FAILED 00:00 42m␤»
masak r: 1 <=> 2 <=> 3 15:17
p6eval rakudo 930369: ( no output )
masak .oO( every topic of discussion is a potential rakudobug ) 15:21
15:21 zby_home joined 15:27 rindolf left, rindolf joined 15:34 gcole left
colomon n: 1 <=> 2 <=> 3 15:35
p6eval niecza v24-12-g8e50362: OUTPUT«===SORRY!===␤␤"<=>" and "<=>" are non-associative and require parens at /tmp/cpMV12aAKz line 1:␤------> 1 <=> 2 <=> ⏏3␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 1443 (die @ …
15:35 zby_home left 15:39 bowtie joined 15:52 Chillance joined 15:53 xinming_ joined 15:56 rindolf left, rindolf joined, xinming left
masak today's useful neologism: "squoval". not quite square, not quite oval. :) 16:02
felher :D
masak like a fingernail, for example. 16:07
16:08 hash_table joined, |Ares| joined 16:11 |Ares| left
pmichaud good morning, #perl6 16:18
pmichaud builds a .msi
moritz \o
16:20 arkydo joined
arkydo t 16:20
masak t, arkydo. 16:21
flussence \t 16:22
(u+xxxx waving giraffe with hat)
FROGGS masak: you might enjoy "deeper meaning of liff" 16:24
brb
masak FROGGS: yes, I've enjoyed both those books a number of times.
colomon o/, pmichaud
masak I have fond memories of sitting in mberends' living room quoting from TMoL. 16:25
I even remember some of mberends' comments to some of the terms. :)
16:25 thou joined
pmichaud o/ colomon 16:26
16:26 SamuraiJack left
moritz has found a rakudobug that triggers in some of the remaining PIR code :( 16:28
arkydo hello , masak 16:35
masak greetings, arkydo
arkydo: I was going to ask if it's your first time here, but I see you've been her twice before. 16:40
welcome back :)
16:41 raiph joined 16:47 werwerwer left
arkydo masak: I'm glad beeing here, with such nice people. 16:50
16:51 werwerwer joined
dalek ast: 9d4767b | moritz++ | S06-traits/is-assoc.t:
tests for "is assoc" trait
16:55
kudo/nom: c7479c3 | moritz++ | t/spectest.data:
run tests for "is assoc" trait
16:56
masak arkydo: and such nice people are glad to have you here! :) 16:58
moritz++ # writing tests 16:59
17:05 Kharec left 17:06 Kharec joined
pmichaud rakudo star 2012.12 windows .msi uploaded: rakudo.org/downloads/star/ 17:08
17:08 grondilu left 17:13 hash_table left
hoelzro does anyone mind if I merge my pull request for NQP? 17:14
pmichaud which request?
hoelzro github.com/perl6/nqp/pull/69
pmichaud hmmm.... I'm very wary of a bootstrap update in a pull request. What if someone has updated the bootstrap since the pull request was created? 17:17
hoelzro hmm
fair enough.
would you like me to cherry pick my "real" changes, apply them to master, rebuilt bootstrap, and push? 17:18
pmichaud ...thinking... 17:20
Parrot uses "--dynext" instead of "--dynext-path" for its option to do the same thing... should we perhaps use the same option switch? 17:21
hoelzro that sounds like a good idea
moritz pmichaud++ # star .msi 17:22
pmichaud hoelzro: so yes, change to '--dynext', cherry pick real changes and apply to master 17:24
then rebuild bootstrap if needed
hoelzro ok 17:25
rindolf Hi all. Please back me up here - en.wikipedia.org/wiki/Wikipedia:Art...ristiansen . 17:27
moritz isn't "author of a pretty popular book" reason for notability? 17:28
masak or having invented the term "Schwartzian transform" and coined the expression "only perl can parse Perl"? 17:30
*I* think tchrist is a notable individual. I don't know enough about how Wp editors think to convince them :) 17:31
rindolf masak: well, I added a comment there. 17:33
You can add ones too.
masak: www.shlomifish.org/humour/bits/How-...a-Editors/ . :-)
masak rindolf: I like your comment. I have nothing to add. 17:36
pmichaud rindolf: you may have more success if you point to some secondary sources. 17:37
secondary sources count more than primary sources when establishing notability
moritz www.perl.org/advocacy/white_camel/1999.html might be a nice secondary source 17:38
or is that primary again?
17:39 pmurias joined
pmichaud whether it's primary or secondary is less important than the fact that he received a community-recognition award, there 17:40
so definitely include the white_camel reference
definitely falls under WP:ANYBIO 17:41
also WP:AUTHOR in terms of "created a significant or well-known work" 17:42
I'm afk for a while 17:44
17:47 Kharec left, Kharec joined
hoelzro apparently I can't push to nqp? 17:50
=(
pmurias hoelzro: github problems or lack of commit bit? 17:51
hoelzro pmurias: I'm guessing the latter, but I'm a member of the perl6 org
pmurias hoelzro: I think something else is needed for that? 17:52
hoelzro I can push to roast, afaik 17:53
pmurias hoelzro: you can always pull request and me or jnthn will apply your changes
hoelzro ok, I'll just do that
pmurias: fresh commits are in the PR 17:54
github.com/perl6/nqp/pull/69
dalek p: aac87bb | (Rob Hoelz)++ | src/NQP/ (2 files):
Allow appending to dynext load path from NQP
17:56
p: cd6c574 | (Rob Hoelz)++ | src/HLL/Compiler.pm:
Add libpaths.pasm to generated PIR
p: 9781b25 | (Rob Hoelz)++ | src/stage0/ (9 files):
Update bootstrap.
p: e5e58d3 | (Rob Hoelz)++ | src/NQP/World.pm:
Use constant instead of magic number for dynext path
p: bcd4f82 | (Pawel Murias)++ | src/ (12 files):
Merge pull request #69 from hoelzro/master

Add --dynext-path option
hoelzro \o/
thanks
now to get my Rakudo * request merged ;)
pmurias can't help with that
hoelzro heh 17:57
17:58 am0c left
hoelzro needs to add highlighting for token { ... }, but has been putting it off 18:15
18:16 spider-mario left, am0c joined
masak watching vimeo.com/6624203 -- Steele just sort of mentions in passing that mergesort and quicksort are duals, in that one does structural recursion on the input and the other on the output. whoa. 18:24
arnsholt Neat! 18:33
I never knew
pmichaud hoelzro: hoelzro: Your Rakudo * request still uses --dynext-path, if I'm reading it correctly. 18:38
masak arnsholt: the rest of the talk is interesting too. I've only ever read the slides before.
but the message is beginning to sink in, I think.
I still really like the three-way unshuffle example.
hoelzro it does? 18:44
ah, the title does, but the code has been changed 18:45
pmichaud: ^^
masak monoid caching, hm... 18:46
pmichaud hoelzro: I checked the code 18:47
github.com/hoelzro/rakudo-star/com...7465976493 still uses --dynext-path
hoelzro pmichaud: I just realized that! I thought you were talking about the NQP pull request 18:48
hoelzro is helping out in the kitchen 18:49
pmichaud: it should be good now! 18:50
ugh
hang on one second
ok, done.
cooking & 18:51
pmichaud merged.
dalek star: 5d804c4 | (Rob Hoelz)++ | tools/build/Makefile.in:
star: Remove DESTDIR prefix from bin-install line
star:
star: If using DESTDIR to package up Rakudo Star in an RPM or similar
star: format, the Makefile currently ends up writing the package build
18:51 dalek left 18:52 dalek joined, ChanServ sets mode: +v dalek 18:58 fgomez left
pmichaud moritz: ooc, did you run "modules-test" for the 2012.12 star release? 19:00
19:00 fgomez joined
hoelzro yay! 19:00
jnthn Good evening o/ 19:02
pmichaud jnthn: o/ 19:03
hoelzro ahoy jnthn
jnthn hi, pmichaud, hoelzro :)
masak jnthn! \o/
jnthn is with UK family :)
r: role Foo { }; Foo.gist 19:04
p6eval rakudo c7479c: ( no output )
jnthn r: role Foo { method gist() { 42 }; }; say Foo.gist
p6eval rakudo c7479c: OUTPUT«42␤»
jnthn r: role Foo { method gist() { 42 }; method blah() { ... } }; say Foo.gist 19:05
p6eval rakudo c7479c: OUTPUT«Method 'blah' must be implemented by Foo because it is required by a role␤ in at src/gen/Metamodel.pm:2127␤ in compose_method_table at src/gen/Metamodel.pm:2118␤ in any apply at src/gen/Metamodel.pm:2136␤ in at src/gen/Metamodel.pm:2271␤ in any compose at sr…
masak jnthn: I brought you this big basket of RT tickets :>
jnthn A role that is not fully defined may not be punned into a class, and additionally "cheating" somehow will just create another problematic situation.
So I'm inclined to reject that ticket as not a bug.
masak jnthn: we're not punning it, we're doing .perl 19:06
or .gist
jnthn masak: That puns it.
masak then my question is, "why?"
why does it have to pun it there?
doesn't feel strictly necessary.
pmichaud masak: we brought you this new Rakudo release full of RT-ticketable items :>
jnthn You can't call methods on a role.
It always has to be punned. 19:07
masak jnthn: I guess I feel it should be different because we're dealing with the type object.
jnthn I guess I don't.
pmichaud type objects are just instances of the role/class
masak that's my intuition. that the type object of a role doesn't require punning.
pmichaud: yes, I know.
jnthn Er
pmichaud and one cannot instantiate a role
doy jnthn: so if i have this incomplete role type object, and i want to introspect it while debugging 19:08
what do i do?
masak doy++ # the right question to ask
pmichaud my guess is that it'd have to be meta-program inspected.
jnthn The ONLY REASON SomeRole.new works is because the self by the time we get into .new is the class punned from the role.
doy r: role Foo { method bar {...} }; say Foo.^name
p6eval rakudo c7479c: OUTPUT«Method 'bar' must be implemented by Foo because it is required by a role␤ in at src/gen/Metamodel.pm:2127␤ in compose_method_table at src/gen/Metamodel.pm:2118␤ in any apply at src/gen/Metamodel.pm:2136␤ in at src/gen/Metamodel.pm:2271␤ in any compose at src…
doy pmichaud: ^^
jnthn r: role Foo { method bar {...} }; say Foo.HOW.name(Foo) 19:09
p6eval rakudo c7479c: OUTPUT«Foo␤»
jnthn It works.
doy huh
jnthn Guess the .^ sugar wants implementing differently...
doy yeah
i thought those two were equivalent
pmichaud r: role Foo { method bar {...} }; say Foo.^name(Foo) # curious
p6eval rakudo c7479c: OUTPUT«Method 'bar' must be implemented by Foo because it is required by a role␤ in at src/gen/Metamodel.pm:2127␤ in compose_method_table at src/gen/Metamodel.pm:2118␤ in any apply at src/gen/Metamodel.pm:2136␤ in at src/gen/Metamodel.pm:2271␤ in any compose at src…
jnthn At the moment it rewrites to .dispatch:<^> or so
pmichaud yeah, I suspect the .^ sugar
jnthn Which causes a pun. 19:10
I'd kinda feared we'd get caught out on that at some point...
Anyway, that's what needs fixing.
doy yeah, that works for me
jnthn As opposed to breaking role punning.
I really don't want a bunch of special cases there.
pmichaud agreed 19:11
masak agreed.
doy agreed
(:
jnthn OK, I put it on the todo list.
19:11 Chillance left
jnthn :) 19:11
That non-assoc one is a missing throw in EXPR, fwiw. 19:12
19:12 Chillance joined
jnthn I noticed it wasn't there when I was updating EXPR to handle the adverb stuff, then promptly forgot about it. 19:12
jnthn takes a look at adding it. 19:14
pmichaud I'm afk for a bit
rindolf jnthn: hi. 19:16
jnthn o/ rindolf 19:17
FROGGS to the experts: is it possible to add things to the match object from within a grammar rule/token? 19:25
pmichaud btw, comments and/or discussion on github.com/perl6/specs/issues/26 would be greatly welcomed. I don't feel comfortable with the 2012.12 release as things stand now. 19:26
masak r: "" ~~ / { $<something> = 'foo' } /; say $/ 19:27
p6eval rakudo c7479c: OUTPUT«Cannot assign to a non-container␤ in block at /tmp/yXntO44FIc:1␤␤»
masak r: "" ~~ / { $<something> := 'foo' } /; say $/
p6eval rakudo c7479c: OUTPUT«No such method 'bind_key' for invocant of type 'Match'␤ in method postcircumfix:<{ }> at src/gen/CORE.setting:1493␤ in block at /tmp/Sk86z7d64j:1␤␤»
masak aww
jnthn pmichaud: looking 19:33
pmichaud: Clearly, beaking that many modules is Not Good. Do you know the origin of the change? 19:36
pmichaud: I ask because in the Rakudo commits between the two, I don't find any socket changes... 19:38
(that is, 2012.11 - 2012.12)
arnsholt moritz++ prodded #parrot about it an hour ago or so. No response so far though 19:39
jnthn And git log says last changes to src/core/Socket* were in October.
So yeah, musta come in via a NQP bump, which and he corresponding Parrot bump.
arnsholt This could be rooted in Parrot, similar to the newline thing earlier this year 19:40
19:41 GlitchMr left 19:42 GlitchMr joined
masak today's autopun: twitter.com/TheRealSheldonC/status...2320889856 19:47
jnthn heh :)
Ulti why not have a buffered read too 19:53
jnthn Got a patch for the non-assoc thing, but I messed up the error message. D'oh 19:55
Ulti though I dont understand what someone expects when reading from a socket.. if you ask for 1024 bytes and only 512 were ever sent is .read expected to block forever or was there previously an implicit time out? 19:57
FROGGS Ulti: if you request 2049 bytes, then you actually get 512b, 512b, 512b, 1b, and not 2049b a piece 20:00
Ulti so you get it broken on packets as a list? 20:01
FROGGS it is like the maximum chunksize
I dont understand
you get several chunks, as long as there is data
Ulti right 20:02
FROGGS but the parameter is some sort of useless if it is greater 512
than*
masak raiph: I fear perl6advent.wordpress.com/2012/12/2...mment-2515 is not an ideal place to discuss changes to the spec. that said, suggestions noted. 20:03
FROGGS for simplicity of end user programs I'd say the implementation has to concat the chunks to the size the user wants
so not everyone has to do it
jnthn r: say 1 <=> 2 <=> 3 20:04
p6eval rakudo c7479c: OUTPUT«Increase␤»
Ulti yeah thats what I'd expect
but the bug reported was about not getting the full ammount of bytes, which I think is fine, its the difference between buffered IO and not
20:05 alec joined
alec i've got some perl6 code here that i can't get to work with rakudo 20:05
phenny alec: 12:15Z <grondilu> tell alec Glad you liked it. Thanks.
alec ah, thanks, phenny
FROGGS alec: can you nopaste it? 20:07
masak alec: could you ... what FROGGS++ said :)
Ulti oh I see FROGGS bbkr__ is saying you just get the first 512 because its the first element in the list
FROGGS masak: I am #sdl trained first level guy ;o) 20:08
alec nopaste is like pastebin? 20:09
20:09 nyuszika7h left
masak alec: gist.github.com/ 20:09
(but yes, any pastebin will do, that's just our favorite)
20:10 nyuszika7h joined
dalek p: 8ea7814 | jonathan++ | src/HLL/Grammar.pm:
Complain when non-assocs get associated.
20:10
timotimo what cool things have i missed during the last three days? 20:12
alec www.pastebin.com/NSNkE7w2
when i try running it i get this error:
unidentified routine '&rx' called: line 4 20:13
masak timotimo: about half of Kwanzaa, for one! 20:14
alec: there should be no space after 'rx'.
20:14 spider-mario joined
masak alec: if there is, Perl 6 syntax says what you're doing is a function call. 20:15
FROGGS r: my $rx = rx / /;
p6eval rakudo c7479c: ( no output )
timotimo oh, yes, kwanzaa, sure. what about perl6 related cool things, though?
FROGGS r: my $Nglycosylation = rx / N <-[P]> <[ST]> <-[P]> /; 20:16
p6eval rakudo c7479c: ( no output )
FROGGS n: my $Nglycosylation = rx / N <-[P]> <[ST]> <-[P]> /;
p6eval niecza v24-12-g8e50362: OUTPUT«Potential difficulties:␤ $Nglycosylation is declared but not used at /tmp/nWWRvfKigT line 1:␤------> my ⏏$Nglycosylation = rx / N <-[P]> <[ST]> <␤␤»
FROGGS .oO( E_NOSUCHPROBLEM )
masak timotimo: if only there were regular summaries that one could simply go and read somewhere... :) 20:17
FROGGS alec: your racudo is not the latest version I suppose?
alec no, FROGGS
FROGGS rakudo*
k
alec lemme check
2012.04.1 20:18
moritz that's a bit old
like, 8 releases behind shiny new
alec it was the one in the ubuntu 12.10 repos
there should really be an ubuntu PPA, didn't see one
i would use that to keep up to date if there were 20:19
FROGGS hmmm
alec i'm too lazy to compile stuff usually though
FROGGS well, then remove the space and pray, cause I dont think there is a ppa yet
alec lol 20:20
which space?
moritz 21:14 < masak> alec: there should be no space after 'rx'.
21:15 < masak> alec: if there is, Perl 6 syntax says what you're doing is a function call.
alec ah, didn't see that, sorry
ok
FROGGS it treats it like: rx() / ... 20:21
alec ok 20:22
thank you
it does work now
i'm curious about $*IN.lines
is that the normal way to grab text from stdin? 20:23
moritz yes
alec cool
i like it
masak FROGGS: no, it treats it like rx( / ... / )
dalek kudo/nom: 7d3e01f | jonathan++ | / (2 files):
Mark %structural as non-assoc.
alec but it automatically splits at line beaks, doesn't it? $*IN.lines 20:24
jnthn There's one masakbug down :P
alec can i use it to read a whole shakespeare play in as a giant string?
moritz you'd use $*IN.slurp for that
masak alec: $*IN.slurp
alec ok
i see
masak alec: or just slurp(), which defaults to $*IN 20:25
alec ahhhh
masak just as lines() defaults to $*IN.
moritz not quite actually
masak oh right
moritz it defaults to $*IN if there are no command line arguments
alec yes
moritz if there are, they are treated as file names and read instead
masak moritz++ # usually corrects me on this :)
moritz like Perl 5's magical <> file handle
alec hmm, well i used this script i'm playing with on a file instead of piping text via stdin, and it's just sitting there 20:26
so i take it $*IN.lines doesn't handle opening files 20:27
moritz right, only lines() does
alec is there an easy way to rewrite the script so it does both automagically?
moritz and slurp() does too, I think
r: say slurp().chars
p6eval rakudo c7479c: OUTPUT«616␤»
moritz wanted to change p6eval's STDIN to an Austrian Christmas song for the advent time, but forgot 20:28
jnthn Thankfully, advent is a renewable resource :) 20:29
FROGGS awwww
arnsholt Put in a note in your Google calendar for next year, so you remember then ´=
Er, =)
FROGGS there should be more easter eggs...
jnthn Is there any interest in nqp-jvm-prep commits getting reported here, btw? 20:30
FROGGS loves VLC for its christmas hat
moritz jnthn: OH YES
jnthn (aside from "jnthn is interested in moar karma :P"
)
FROGGS hehe
20:30 Kharec left
[Coke] jnthn-- #there, that should balance it out. 20:31
FROGGS jnthn++ # for helping me
dalek p-jvm-prep: bc84245 | jonathan++ | src/org/perl6/nqp/sixmodel/ (5 files):
Get storage_spec REPR function in place.
p-jvm-prep: 2fc7df2 | jonathan++ | src/org/perl6/nqp/ (2 files):
Get BOOTInt and BOOTNum in place.

Also a small refactor to avoid some code duplication.
p-jvm-prep: bd560b5 | jonathan++ | / (2 files):
Add ops to get KnowHOWAttr and BOOT types.
FROGGS fair
jnthn yay, it worked first time :)
nwc10 ooh, that's an interesting branch name
jnthn nwc10: It's a repo rather than a branch :)
arnsholt Indeed it is, now you mention it 20:33
arnsholt goes to look
jnthn nwc10: Its contents will likely end up in nqp repo eventually, but this means I can get on with stuff without figuring out the details of that.
masak ...can always merge git histories later... ;) 20:34
arnsholt Indeed. I learned how to do that kind of stuff a while back, but now I've forgotten again 20:35
moritz git-filter-branch probably
that's the swiss army chainsaw of mass history rewrite 20:36
jnthn masak: I hear you know something about that ;)
masak yeah :)
arnsholt moritz: Yeah, that sounds familiar 20:37
masak moritz: I tend to use git-filter-branch when I'm splitting repositories, and format-patch/am when I'm merging them.
arnsholt It was splitting a repo (or extracting a subdir for external release, really) I did as well 20:38
moritz masak: well, I've only done one merge so far, and that consisted simply of adding the second repo as a remote, and doing a merge
masak yeah, that works too. 20:39
depending on how "live" you want that merge to be, you might also want to consider subtrees.
20:41 alec left
dalek ast: 80239a7 | moritz++ | S06-traits/is-assoc.t:
unfudge and label test for RT #116238
20:42
doy jnthn: also, things like this: 20:46
r: role Foo { method bar {...} }; say defined Foo
p6eval rakudo c7479c: OUTPUT«Method 'bar' must be implemented by Foo because it is required by a role␤ in at src/gen/Metamodel.pm:2127␤ in compose_method_table at src/gen/Metamodel.pm:2118␤ in any apply at src/gen/Metamodel.pm:2136␤ in at src/gen/Metamodel.pm:2271␤ in any compose at src…
doy makes it hard to do things with role type constraints 20:47
jnthn That is really calling .defined
doy right
jnthn Role type constraints?
doy has Foo $.foo
if you don't pass a value for foo to the constructor
it gets the Foo type object
jnthn Ah 20:48
and // uses .defined
doy right, among other things
jnthn Not .DEFINITE
Hmm.
Good point.
That issue probably wants waving in TimToady's direction :)
doy (:
.DEFINITE does appear to be a usable workaround for the moment though 20:52
jnthn Yeah
It asks "is this a type object or not"
doy is there a type constraint for that, actually? 20:53
jnthn I'm wondering if punning a role with ... should be made to work, but calling any of those methods explodes.
doy that's something else i was wondering about
if i want an attribute that holds classes or roles or whatever
jnthn Yeah, but not fully implemented yet
doy okay
jnthn I figured out how to do it, but it only works in the special caes of parameters 20:54
(as in, I figured out how to have a general solution...)
Will probably do it in January once I get back from family trips, along with adding coercion types, which need changes in similar places.
doy it does make it a bit confusing to ask "has this attribute been set" when it can only hold undefined values 20:56
worked around that by requiring that the roles do a certain other role, but a better solution would be nice 20:57
20:59 GlitchMr left 21:28 bruges joined 21:30 bruges_ left 21:31 zby_home joined
dalek p-jvm-prep: 1f8d60c | jonathan++ | / (2 files):
Implement nqp::list and basic positional ops.
21:31
p-jvm-prep: fb3030a | jonathan++ | t/qast.t:
A couple of list/positional op tests.
21:45 alec joined 21:54 arkydo left
dalek p-jvm-prep: 90472b0 | jonathan++ | / (2 files):
Implement nqp::hash and atkey/bindkey.
22:03
p-jvm-prep: 928da15 | jonathan++ | t/qast.t:
Test nqp::hash and basic hash usage.
p-jvm-prep: 7cfd727 | jonathan++ | docs/ROADMAP:
Update ROADMAP.
jnthn enough for today &
22:05 tcpr1347 joined
hoelzro on line 227 of S05-regex.pod in the spec, it talks about :sigspace; shouldn't this be talking about :samecase instead? 22:11
tadzik omg, it is happens :> 22:15
[Coke] phenny: ask jnthn about implementing the math ops - I have the project open in eclipse, docs say that some of the math ops are already implemented, so I was going to use that as a basis to implement the missing ones. - but I can't see where Math or sin is used, e.g. help me help you! 22:20
phenny [Coke]: I'll pass that on when jnthn is around.
22:23 kaare_ left
[Coke] phenny: ask jnthn - I'm assuming that the others are more builtin, somehow. If you could point me at one of those math ops, I can knock out the rest. 22:23
phenny [Coke]: I'll pass that on when jnthn is around.
[Coke] er, *implement* one of those... 22:24
22:37 spider-mario left 22:44 zby_home left 22:51 pmurias left 22:55 Khisanth left 23:01 rindolf left 23:09 Khisanth joined
japhb Re: the WP AfD on Tom Christiansen, I fail to see how someone would establish NOTABILITY to the level Msnicki suggests -- what would a person outside the field have to say about him? "Here's a man well-known in his community for 23:10
*actually doing his research*"?
He writes articles and posts in various fora that are well known for *ending* conversation, because they become the definitive answer to a question. 23:11
But he's not an academic, so doesn't have classical peer-reviewed papers, and he's not a rock star, so doesn't have fawning articles written about him in well-known rags. 23:12
At some point, you have to apply common sense. 23:13
As, you know, stated at the top of WP:N 23:14
Sigh, </rant>
23:36 nyuszika7h left 23:38 nyuszika7h joined 23:53 jeffreykegler joined