»ö« 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:06
LlamaRider left
00:07
census left
|
|||
timotimo | wouldn't it be nice to put RT notifications in here? just one line per activity instead of 3+? | 00:12 | |
(i want to see my name pop up more often, haha) | 00:13 | ||
sorear | you mean cc RT stuff into the channel>? | 00:26 | |
00:27
kurahaupo left
|
|||
sorear | might be possible with procmail shenannigans | 00:27 | |
you *don't* want to get any closer than that to rt.perl.org | |||
timotimo | :D | 00:28 | |
00:28
cognominal joined
00:41
cognominal left
00:43
cognominal joined
00:50
kurahaupo joined
00:51
cognominal__ joined,
cognominal left
00:56
lustlife joined
01:07
cognominal joined
01:08
cognominal__ left
01:12
lustlife1 joined
01:13
lustlife left,
anuby joined
01:14
hypolin joined
01:23
thou left
01:43
cognominal left
01:45
lizmat left
01:46
Liz_ joined
|
|||
labster | how do you declare regexes inside a class? Should this work?: | 01:54 | |
r: class Foo { has regex b { 'b' }; method bar ($in) { $in ~~ /<b>/ }; }; my $x = Foo.new; Foo.bar('bob'); | |||
p6eval | rakudo 1c9939: OUTPUT«No such method 'b' for invocant of type 'Cursor' in regex at /tmp/N1Mt6SxCqq:1 in method ACCEPTS at src/gen/CORE.setting:10899 in method bar at /tmp/N1Mt6SxCqq:1 in block at /tmp/N1Mt6SxCqq:1» | ||
01:55
Sifr left
02:01
FROGGS_ joined,
sqirrel__ joined
|
|||
geekosaur | I think "has" wants to make it an attribute, but a regex is a kind of method (so leave off the "has")? | 02:02 | |
r: class Foo { regex b { 'b' }; method bar ($in) { $in ~~ /<b>/ }; }; my $x = Foo.new; Foo.bar('bob'); | |||
p6eval | rakudo 1c9939: OUTPUT«No such method 'b' for invocant of type 'Cursor' in regex at /tmp/pn9Di2Dt1G:1 in method ACCEPTS at src/gen/CORE.setting:10899 in method bar at /tmp/pn9Di2Dt1G:1 in block at /tmp/pn9Di2Dt1G:1» | ||
geekosaur | hm, but there's something else involved too, involving grammars | 02:03 | |
but I don't recall | |||
02:04
FROGGS left
02:05
sqirrel_ left
|
|||
labster | there are just 3 rules, which all get called, and I don't want to bother with a grammar for that. I suppose the "has $var = rx/.../" form would work. | 02:06 | |
*called individually | |||
02:29
ggoebel_ left
|
|||
[Coke] | (procmail for rt) there's a command line interface that's probably easier for a non perl.org admin to setup. | 02:36 | |
... ooh, we could write a perl6 interface to the bugqueue. | |||
labster | r: class Foo { my regex b { 'b' }; method bar ($in) { $in ~~ /<b>/ }; }; say Foo.bar('bob') | 02:39 | |
p6eval | rakudo 1c9939: OUTPUT«Nominal type check failed for parameter ''; expected Foo but got Cursor instead in regex b at /tmp/ekW1ZN7OcC:1 in method INTERPOLATE at src/gen/CORE.setting:10739 in regex at /tmp/ekW1ZN7OcC:1 in method ACCEPTS at src/gen/CORE.setting:10899 in method ba… | ||
labster | well, that's a new error with 'my' | ||
r: my regex b { 'b' }; sub bar ($in) { $in ~~ /<b>/ }; say bar('bob'); | 02:40 | ||
p6eval | rakudo 1c9939: OUTPUT«「b」 b => 「b」» | ||
colomon | r: my regex b { 'not' }; sub bar ($in) { $in ~~ /<b>/ }; say bar('bob'); | ||
p6eval | rakudo 1c9939: OUTPUT«#<failed match>» | ||
colomon | did not expect that. sweet! | 02:41 | |
labster | yeah, it seems to work unless you wrap it in a class. | ||
02:47
thou joined
|
|||
labster | r: class Foo { my $b = regex { 'b' }; method bar ($in) { $in ~~ /<$b>/ }; }; say Foo.bar('bob'); | 02:48 | |
p6eval | rakudo 1c9939: OUTPUT«「b」» | ||
labster | that works, but you don't get $<b> set | 02:49 | |
03:07
orafu left,
orafu joined
03:54
Sifr joined
03:57
xinming left
|
|||
Sifr | Hello, is this the typical vim setup for perl6 cpansearch.perl.org/src/AUDREYT/Per.../perl6.vim ? | 03:57 | |
or just which ever floats your boat? | |||
sorear | think most people use alester's perl6.vim, not audrey's | 03:58 | |
03:59
xinming joined
|
|||
Sifr | sorear: is there a link available to it? I am just finding irc logs of alester joining #perl6 haha | 04:04 | |
04:07
rindolf joined
|
|||
Sifr | oh petdance | 04:10 | |
04:15
SamuraiJack joined
04:17
census joined
|
|||
[Coke] | github.com/vim-perl/vim-perl | 04:17 | |
not sure if it's up to date | 04:18 | ||
04:28
census left
04:33
odoacre left
04:36
odoacre joined
|
|||
Sifr | last updates two months ago | 04:42 | |
04:46
toddr_ joined,
preflex_ joined
04:47
preflex left,
Cynede joined,
preflex_ is now known as preflex
|
|||
toddr_ | Hey the talk submission due date is tomorrow. Does anyone have any talks they plan on submitting perl 6 related? | 04:48 | |
diakopter | for what conference? | 05:09 | |
05:10
census joined
|
|||
toddr_ | Oops sorry. YAPC::NA in Austin this year | 05:11 | |
05:14
Cynede is now known as Heather
|
|||
diakopter | Heather: I added you to perl6 org | 05:16 | |
Heather | diakopter \o/ | 05:17 | |
thank you | |||
and good morning | 05:18 | ||
diakopter | evening here; morning there? | ||
Heather | yes | ||
utc+4 | 05:19 | ||
05:33
wk left
05:36
rindolf left
05:37
rindolf joined
|
|||
diakopter | toddr_: are you on the talk selection committee? | 05:38 | |
05:39
araujo left
05:40
araujo joined
05:46
snearch joined
05:47
snearch left,
SamuraiJack left,
snearch joined
05:49
rindolf left,
rindolf joined
|
|||
Sifr | is there an easy way to write the unicode >> operator? | 05:53 | |
oh | |||
sorear | depends on your environment | 05:54 | |
editor/OS? | |||
moritz | » is AltGr+x on my keyboard | ||
and Ctrl+k >> in vim | |||
Heather is having some wicked network issues, all the downloads fails at 93-96 % ... | 05:55 | ||
Sifr | C-k >> | ||
sorear | wget --continue :D | ||
moritz | .oO( wrong MTU? :-) |
05:57 | |
Heather | sorear with wget it comes damaged | 05:59 | |
wget splitting it with the 206 Partial Content seems weird | |||
06:02
rindolf left,
rindolf joined
|
|||
Heather HTTP request sent, awaiting response... 206 Partial Content - What the wicked thing is that? | 06:07 | ||
moritz | whne wget continues a download, it sends a Range header | ||
*when | |||
to say "give me only the bytes 346...2048 from this file" | |||
and then the answer isn't "OK", but "OK, I'm giving you a part of the file, as requested" | 06:08 | ||
thus 206 Partial Content | |||
Heather | moritz it's still being something strange with it... sha256 is always differen, alike network damage it regularry | 06:10 | |
moritz | Heather: then maybe you have to fix the broken network | 06:12 | |
tadzik | good morning #perl6 | 06:14 | |
Heather | tadzik good morning | ||
moritz if I only know how... | 06:16 | ||
06:17
kurahaupo left
|
|||
sorear | alternatively, tunnel all of your traffic over UDP with some good forward error correction | 06:22 | |
06:22
Heather_ joined,
Heather_ is now known as Cynede
06:23
Cynede is now known as Guest6885,
Guest6885 left,
Guest6885 joined
06:25
Guest6885 is now known as Heather_,
Heather_ is now known as Heather__,
Heather left
06:27
census left
06:33
Heather__ is now known as Heather
06:39
rindolf left,
rindolf joined
|
|||
Heather | %o == open ? | 06:48 | |
ah.. not | 06:49 | ||
06:58
sigkill joined
07:00
unknowndna left
07:05
Rina joined
07:06
Rina left
|
|||
sorear | Heather: what context? | 07:09 | |
Heather | sorear it was just guess, no I see it's wrong ) | 07:10 | |
07:11
rindolf left
07:16
wk_ joined
07:19
SamuraiJack joined
07:24
erkan left
07:39
Liz_ is now known as lizmat
|
|||
Heather | mkdir failed: ╤шэЄръёшўхёър ю°шсър т шьхэш Їрщыр, шьхэш яряъш шыш ьхЄъх Єюьр. -_-' | 07:48 | |
bonsaikitten | Heather: try using a nicer locale? :) | 07:56 | |
08:07
domidumont joined
08:10
thou left
08:17
lue left
|
|||
Heather | bonsaikitten it's windows | 08:24 | |
08:30
lue joined,
brrt joined
08:38
woosley left,
woosley joined
08:39
domidumont left
08:40
domidumont joined
08:50
cognominal joined
08:51
lizmat left
09:14
fhelmberger joined
|
|||
jnthn | morning o/ | 09:20 | |
brrt | hi jnthn | 09:23 | |
FROGGS_ | morning | ||
09:29
nemesys joined
|
|||
nemesys | moo | 09:30 | |
09:31
labster left
|
|||
Heather | meow | 09:31 | |
09:34
rindolf joined
09:36
Liz joined,
Liz is now known as lizmat
|
|||
Heather | pugs is dead? | 09:48 | |
moritz | starved by low bus number | 09:49 | |
au occasionally fixes the build for new GHC versions | |||
but no new development happens | |||
Heather | that's sad | 09:51 | |
FROGGS_ | Heather: well, you can change that if you want | ||
Heather | :3 | 09:52 | |
09:53
am0c joined
|
|||
moritz | port 6model to Haskell | 09:54 | |
Heather | moritz 6model ? | ||
moritz though 6 is default for pugs | |||
isn't it? | 09:55 | ||
Heather is compiling pugs | 09:56 | ||
09:57
woosley left
|
|||
cognominal | Hi, what is the current library choice if one wants to write a web server in Perl 6? | 09:57 | |
moritz | cognominal: I think there's an HTTP::Server::Simple or so | 10:02 | |
Heather: 6model is the storage layer that nqp and rakudo use | |||
for in-memory object layout | 10:03 | ||
cognominal: and Dancer if you want something higher level | |||
(ie a web framework) | |||
erm Bailador, not Dancer. Sorry. | |||
cognominal | thx | 10:04 | |
10:09
hypolin left
10:10
lustlife1 left
|
|||
Heather | stringtable-atom fails on 7.6.2 GHC | 10:10 | |
sadness... | |||
10:28
donaldh joined,
erkan joined
10:30
Vlavv_ joined
|
|||
donaldh | jnthn: thanks for the NQPHLL pointer yesterday. That's what I was looking for. | 10:32 | |
jnthn | :) | ||
donaldh: How are things coming along? I guess if you're at the point of testing it from the self-host, pretty far... | 10:33 | ||
10:34
Vlavv left
|
|||
donaldh | jnthn: yes, all t/jast tests pass for self-hosting. But I'm hitting problems with nqp tests when self-hosted | 10:38 | |
jnthn: I'm getting an array index out of bounds error inside ASM that I'm trying to track down. | 10:39 | ||
10:40
lizmat left
|
|||
donaldh | jnthn: so debugging with ASM's CheckClassAdaptor which is _much_ stricter than ASM's ClassWriter. | 10:41 | |
jnthn | donaldh: Does the cross-comp work out, just not the self-hosted? | 10:42 | |
Anyway, that's awesome progress. Feel free to push what you have so far...I'm curious to see it :) | 10:43 | ||
donaldh | jnthn: let me check. I've had very fragmented time this week, with travelling. | 10:44 | |
jnthn | And excited that using invokedynamic is in sight | ||
np, mine has been a mix of teaching, course material writing and terrible sleep... | |||
10:57
anuby left
10:59
cibs joined
|
|||
Heather | how to make for with index | 11:05 | |
for .lines -> $ln | |||
for @names.keys ? | 11:07 | ||
jnthn | r: my @a = <Dogs Cats Hamsters>; for @a.kv -> $idx, $val { say "$idx = $val" } | ||
p6eval | rakudo 1c9939: OUTPUT«0 = Dogs1 = Cats2 = Hamsters» | ||
jnthn | Like that, maybe? | ||
Just .keys if you just want the indexes. | 11:08 | ||
Heather | oh | ||
cool | |||
thanks | |||
jnthn is there mod function ? :) | 11:09 | ||
hoelzro | r: 5 % 2 | 11:10 | |
p6eval | rakudo 1c9939: ( no output ) | ||
hoelzro | r: say 5 % 2 | ||
p6eval | rakudo 1c9939: OUTPUT«1» | ||
hoelzro | c'mon, p6eval! DWIM! | ||
Heather | it is also mod :P | ||
r: say 5 mod 2 | 11:11 | ||
p6eval | rakudo 1c9939: OUTPUT«1» | ||
hoelzro | ah, neat! | ||
Heather | but I like % more | ||
jnthn | Well, they're not quite the same | 11:13 | |
mod ensures each side is an integer, iirc | |||
r: say 10 % 2.5 | |||
p6eval | rakudo 1c9939: OUTPUT«0» | ||
jnthn | r: say 10 mod 2.5 | ||
p6eval | rakudo 1c9939: OUTPUT«-2.5» | ||
jnthn | Hm :) | ||
11:14
ggoebel_ joined
|
|||
tadzik | is any of our HTTP servers functional at the moment? | 11:20 | |
11:22
donaldh left
|
|||
Heather | r: my $a, $b = 1, 2; | 11:30 | |
p6eval | rakudo 1c9939: OUTPUT«===SORRY!===Variable '$b' is not declaredat /tmp/Tt2u5rp5aQ:1------> my $a, $b⏏ = 1, 2; expecting any of: postfix» | ||
Heather | is it possible to declare some variables inline? | ||
moritz | r: my ($a, $b) = 1, 2; | 11:33 | |
p6eval | rakudo 1c9939: ( no output ) | ||
moritz | r: r: my $a, my $b = 1, 2; | ||
p6eval | rakudo 1c9939: OUTPUT«===SORRY!===Two terms in a rowat /tmp/VmLnCAT9ch:1------> r⏏: my $a, my $b = 1, 2; expecting any of: argument list postfix infix stopper infix or meta-infix statement end st… | ||
moritz | r: my $a, my $b = 1, 2; | 11:34 | |
p6eval | rakudo 1c9939: ( no output ) | ||
moritz | Heather: both of these work | ||
Heather | thanks. | ||
jnthn | uh | 11:35 | |
11:35
FROGGS_ left
|
|||
jnthn | r: my $a, my $b = 1, 2; say $a; say $b; | 11:35 | |
p6eval | rakudo 1c9939: OUTPUT«WARNINGS:Useless use of "," in expression "my $a, my $b = 1, 2" in sink context (line 1)(Any)1» | ||
moritz | right, the second needs parens to do what you want | ||
jnthn | r: my $a = 1, my $b = 2; say $a; say $b; | ||
p6eval | rakudo 1c9939: OUTPUT«WARNINGS:Useless use of "," in expression "my $a = 1, my $b = 2" in sink context (line 1)12» | 11:36 | |
jnthn | But then you shoulda used a ; :) | ||
so yeah, my ($a, $b) = 1, 2; is the good way :) | |||
Heather | can I declare an sub in sub ? | 11:37 | |
r: sub a { sub b { } } | |||
p6eval | rakudo 1c9939: ( no output ) | ||
jnthn | Sure | ||
Heather | good | ||
jnthn | Note the inner one is only visible inside of the outer one | ||
(they're scoped like "my" variables) | 11:38 | ||
Heather | it's good | ||
jnthn | Yes, it's a nice thing :) | ||
Heather | can I call sub alike ^&@#@ | ||
r: sub &^@# { } | |||
p6eval | rakudo 1c9939: OUTPUT«===SORRY!===Missing blockat /tmp/8BJMutZVCC:1------> sub ⏏&^@# { } expecting any of: statement list prefix or term prefix or meta-prefix new name to be defined» | ||
Heather | r: sub = { } | ||
p6eval | rakudo 1c9939: OUTPUT«===SORRY!===Missing blockat /tmp/p1Z4PZxLhZ:1------> sub ⏏= { } expecting any of: statement list prefix or term prefix or meta-prefix new name to be defined» | ||
Heather | can I declare custom operators ? including infix ones? | 11:39 | |
jnthn | r: sub ::('!!^:-)') { say 'yes' }; ::<&!!^:-)>() | ||
p6eval | rakudo 1c9939: OUTPUT«yes» | ||
11:39
brrt left
|
|||
hoelzro | "private multi methods are not supported" # is that a Rakudo thing, or a spec thing? | 11:40 | |
Heather | aha, cool | ||
jnthn | r: sub infix:<heather>($a, $b) { say "$a you $b" }; 'yes' heather 'can' | ||
p6eval | rakudo 1c9939: OUTPUT«yes you can» | ||
moritz | Heather: rakudo limitation | ||
jnthn | moritz: Was that to hoelzro? :) | ||
11:41
SmokeMachine joined
|
|||
moritz | erm yes, sorry | 11:41 | |
hoelzro: rakudo limitation | |||
hoelzro | ok | ||
good to know =) | |||
jnthn wonders how private multi-methods work out | |||
I guess kinda simply given private methods never inherit... | |||
11:42
fhelmberger left
|
|||
moritz | well, for private method dispatch you simply never consider parent classes | 11:48 | |
so you have disjoint method tables for each subclass | 11:49 | ||
so the invocant type never plays a big role in private method dispatch | |||
iirc niecza implements it | |||
jnthn | I think the reason it's not there is because when you add a multi method, it calls .add_multi_method. When you add a private method it does .add_private_method. | 11:50 | |
11:50
kivutar joined
|
|||
Heather | how can I write this easier: for @cml -> $c { $c.close; } | 11:50 | |
moritz | .close for @cml; | ||
Heather | omg... | 11:51 | |
jnthn | And I was wondering if we should get something smarter than just adding a .add_private_multi_method :) | ||
moritz | or if you don't care about the order of execution: @cml>>.close | ||
jnthn | But maybe I'm over-designing :) | ||
Well, or over-putting-off-out-of-feeling-I-should-design :) | |||
Heather | it's magic | ||
tadzik | it's Perl | ||
Heather | Unsupported use of >> to do right shift; in Perl 6 please use +> or ~> | 11:52 | |
11:53
pmurias joined
|
|||
pmurias | jnthn: how hard would it be to port nqp-jvm to android? | 11:53 | |
tadzik | Heather: you typoed something, must be | 11:54 | |
moritz | r: my @cml = < a b c >; say @cml>>.uc | ||
p6eval | rakudo 1c9939: OUTPUT«A B C» | ||
hoelzro | ok, stupid Perl 6 question | ||
moritz | Heather: works here | ||
hoelzro | what's the Perl 6 equivalent to List::MoreUtils::all? | ||
ex. if(all { $_ > 5 } (6..10)) { ... } | |||
tadzik | all junction, I guses | ||
moritz | if all(6..10) > 5 { } | ||
Heather | moritz I used space, here is my fault | 11:55 | |
hoelzro | hmm | ||
does the all junction just dispatch any method to its components? | 11:56 | ||
moritz | hoelzro: not all, but most | ||
hoelzro | which don't work? | ||
moritz | hoelzro: any method not in Mu or Junction itself is dispatched to its eigenstates | ||
hoelzro | oh, ok | ||
11:57
Liz joined
|
|||
jnthn | pmurias: I guess you'd have to turn the bytecode into stuff for Dalvik... | 11:57 | |
pmurias: There's a tool for taht. | |||
11:57
Liz is now known as lizmat
|
|||
jnthn | pmurias: Not quite sure what happens next :) | 11:57 | |
"Try It To See" :) | 11:58 | ||
I'd be curious how it works out | |||
12:04
cibs left
12:11
brrt joined
12:22
brrt left
|
|||
Heather | renamed github account \o/ | 12:33 | |
dalek | osystem: 11e5e2f | Heather++ | META.list: META.list update due github account rename |
12:39 | |
12:41
skids left
|
|||
arnsholt | jnthn: Thanks for the remembering nqp::islist. I think I could've spent quite a bit of time figuring that one out | 12:43 | |
Working on a refactor now | |||
jnthn | See what it does in nqp-jvm for inspiration | 12:44 | |
12:47
wk_ left
|
|||
arnsholt | Good idea =) | 12:49 | |
My current thought is "nqp::istype($obj, NQPArray) || nqp::old_islist($obj)" | 12:50 | ||
jnthn | No | 12:51 | |
You check the REPR | |||
islist doesn't care about type, iirc | |||
12:51
woosley joined
|
|||
arnsholt | Right, right | 12:51 | |
That does make sense | 12:52 | ||
jnthn | Cheaper too :) | ||
arnsholt | =) | ||
12:52
census joined
12:58
lizmat left,
Heather left
|
|||
arnsholt | jnthn: Is it ok to look up the VMArray REPR ID in the NQP dynop setup, or should islist retrieve the REPR ID each time? | 13:03 | |
hoelzro | could anyone help me debug this: gist.github.com/hoelzro/5169741 | 13:04 | |
I'm guessing the fact that I'm comparing $^value and $value has something to do with it | 13:05 | ||
but I figured they would be independent? | |||
jnthn | arnsholt: It's fine in the setup, sinc eit'll never change | ||
colomon | hoelzro: yes | ||
jnthn | hoelzro: They're not independent | ||
colomon | after you've done $^value, you've assigned $value | 13:06 | |
arnsholt | jnthn: Yeah, that's what I thought. Cheers! | ||
jnthn | { $^value < $value } is just like -> $value -> { $value < $value } | ||
In fact, they compile to almost exactly the same thing. | |||
arnsholt | A segfault, a segfault! \o/ | 13:11 | |
Oh. Can't look up a REPR before the registry is set up =D | 13:13 | ||
13:14
SamuraiJack_ joined,
SamuraiJack left
|
|||
moritz | "I was going to tackle my procrastination problem last weekend but I never got around to it." | 13:16 | |
rindolf | moritz: heh. | 13:25 | |
13:25
mavcunha joined
13:27
LlamaRider joined
13:33
grondilu joined
13:42
mavcunha left,
mavcunha joined
13:44
LlamaRider left
13:48
Liz joined,
Liz is now known as Guest56784
13:52
Guest56784 left
13:54
kivutar left,
bluescreen10 joined
|
|||
arnsholt | jnthn: What's the difference between nqp::list_b and nqp::list? | 13:57 | |
Or, supposed to be the difference. Previously I think they both did the same thing | 13:58 | ||
jnthn | list_b is given a list of blocks and pushes the BVals of all of them | 13:59 | |
It's mostly there for the sake of serialization code-gen | |||
Saves a bit of shuffling stuff around. | |||
arnsholt | Ah, right | ||
jnthn | But under the hood it makes the same thing ias an nqp::list() | 14:00 | |
Just a code-gen difference in pushing the elements | |||
arnsholt | Yeah. I'll refactor it to make a hlllist rather than an RPA | 14:01 | |
14:05
cognominal left
14:06
woosley left
14:08
cognominal joined
14:10
skids joined
14:16
PacoAir joined
14:18
PacoAir left
14:19
PacoAir joined
|
|||
davidagain | is (1..100).pick(100) the idiomatic way to randomize the first 100 positive integers? | 14:21 | |
or randomly order, I should say | |||
jnthn | r: say (1..100).pick(*) | ||
p6eval | rakudo 1c9939: OUTPUT«5 56 17 34 75 58 26 13 90 54 45 42 16 9 44 63 77 1 96 97 83 22 46 94 78 100 82 20 72 30 7 37 43 14 62 4 69 89 70 12 23 80 66 64 11 55 67 28 99 98 40 49 15 19 65 60 27 79 74 84 10 21 91 48 50 87 32 33 2 3 53 47 29 57 6 51 95 41 18 68 8 31 93 35 85 92 36 73 39 88 52 … | ||
moritz | (1..100).pick(*) would be more idiomatic | ||
davidagain | ah, thanks | ||
14:23
Psyche^ joined
|
|||
davidagain | what's the syntax for defining a new operator, which has both unary and binary valences? | 14:24 | |
something like multi sub <¿> $a, $b {...} ? | 14:25 | ||
jnthn | more like multi sub infix:<¿>($a, $b) {...} | 14:26 | |
afk for a bit | |||
tadzik | how does binary infix work? | ||
davidagain | infix is neccesarily binary | ||
14:26
Patterner left,
Psyche^ is now known as Patterner
|
|||
davidagain | foo OP bar | 14:26 | |
tadzik | r: sub infix:<foo>($, $) { }; sub prefix:<foo>($) { }; say 'alive'; | 14:27 | |
p6eval | rakudo 1c9939: OUTPUT«alive» | ||
tadzik | infix:<foo> and prefix:<foo> are already different things, no need for a multi | ||
oh, sorry, I was wondering about unary infix :) | |||
moritz | ENOSENSE | 14:28 | |
tadzik | right | ||
moritz | well, you can call an infix with one argument if you call it as infix:<name>($arg) | ||
but not syntactically | |||
davidagain | r: sub infix<¿> $m,$n {(1..$n).pick($m)}; say 10 ¿ 100 | ||
p6eval | rakudo 1c9939: OUTPUT«===SORRY!===Missing blockat /tmp/kCTje4UBSP:1------> sub infix⏏<¿> $m,$n {(1..$n).pick($m)}; say 10 ¿ 1 expecting any of: statement list prefix or term prefix or meta-prefix new name to be … | ||
moritz | r: sub infix:<¿> $m,$n {(1..$n).pick($m)}; say 10 ¿ 100 | 14:29 | |
p6eval | rakudo 1c9939: OUTPUT«===SORRY!===Missing blockat /tmp/8XjLlRwvNe:1------> sub infix:<¿> ⏏$m,$n {(1..$n).pick($m)}; say 10 ¿ 100 expecting any of: colon pair quote words» | ||
moritz | r: sub infix:<¿>($m,$n) {(1..$n).pick($m)}; say 10 ¿ 100 | ||
p6eval | rakudo 1c9939: OUTPUT«41 31 10 81 75 56 28 13 14 19» | ||
moritz | it helps to use Perl 6 syntax :-) | ||
davidagain | what did you change? I'm missing it | ||
moritz | first I added : after 'infix' | ||
davidagain | ah | ||
moritz | and then parens around the argument list | ||
davidagain | thank you | ||
sub infix:<¿>($m,$n) {(1..$n).pick($m)}; sub prefix:<¿>($n) {$n ¿ $n}; say ¿ 10; | 14:30 | ||
r: sub infix:<¿>($m,$n) {(1..$n).pick($m)}; sub prefix:<¿>($n) {$n ¿ $n}; say ¿ 10; | |||
p6eval | rakudo 1c9939: OUTPUT«9 3 7 5 6 2 4 10 1 8» | ||
davidagain | this shit is cool | 14:31 | |
14:31
cognominal left
|
|||
davidagain | how can I force the arguments to be positive integers? | 14:31 | |
and also force $m < $n ? | 14:32 | ||
tadzik | a 'where' clause | ||
davidagain | (without the obvious if .... die | ||
tadzik | or a subset | ||
r: subset MyArg of Int where * > 0; # positive | |||
p6eval | rakudo 1c9939: ( no output ) | ||
moritz | r: sub infix:<¿>(Int $m where { $m > 0 }, Int $n where { $n > $m }) { ... } | ||
p6eval | rakudo 1c9939: ( no output ) | ||
davidagain | r: sub infix:<¿>(Int $m where { $m > 0 }, Int $n where { $n >= $m }) {(1..$n).pick($m)}; sub prefix:<¿>($n) {$n ¿ $n}; say 2 c¿ 10; | 14:33 | |
p6eval | rakudo 1c9939: OUTPUT«===SORRY!===Two terms in a rowat /tmp/grAQiIZXLN:1------> )}; sub prefix:<¿>($n) {$n ¿ $n}; say 2 ⏏c¿ 10; expecting any of: postfix infix stopper infix or meta-infix statement end s… | ||
davidagain | r: sub infix:<¿>(Int $m where { $m > 0 }, Int $n where { $n >= $m }) {(1..$n).pick($m)}; sub prefix:<¿>($n) {$n ¿ $n}; say 2 ¿ 10; | ||
p6eval | rakudo 1c9939: OUTPUT«9 4» | ||
davidagain | r: sub infix:<¿>(Int $m where { $m > 0 }, Int $n where { $n >= $m }) {(1..$n).pick($m)}; sub prefix:<¿>($n) {$n ¿ $n}; say 12 ¿ 10; | ||
p6eval | rakudo 1c9939: OUTPUT«Constraint type check failed for parameter '$n' in sub infix:<¿> at /tmp/zGFor0_YGX:1 in block at /tmp/zGFor0_YGX:1» | ||
davidagain | r: sub infix:<¿>(Int $m where { $m > 0 }, Int $n where { $n >= $m }) {(1..$n).pick($m)}; sub prefix:<¿>($n) {$n ¿ $n}; say -2 ¿ -3; | ||
p6eval | rakudo 1c9939: OUTPUT«Constraint type check failed for parameter '$m' in sub infix:<¿> at /tmp/jTUVEbqVUV:1 in block at /tmp/jTUVEbqVUV:1» | ||
davidagain | if I "multi" it, can I give different semantics to different parameter constraints? | 14:34 | |
14:34
rindolf left
|
|||
moritz | yes | 14:34 | |
davidagain | and p6 figures that out for me? | ||
moritz | yes | ||
just make sure to not create overlaps | 14:35 | ||
davidagain | oh, off I go to the races then | ||
moritz | it might give you amibiguous dispatches | ||
davidagain | moritz: I've never written a buggy program in my life. I've just been misunderstood by the compiler. | ||
14:35
cognominal joined
|
|||
moritz | davidagain: some compilers are very good at misunderstanding :-) | 14:35 | |
cognominal | rn: say 1.sprintf(1, '%02d') | 14:37 | |
p6eval | niecza v24-33-gfc6d5fd: OUTPUT«Unhandled exception: Unable to resolve method sprintf in type Int at /tmp/ctnVOR5X8f line 1 (mainline @ 3)  at /home/p6eval/niecza/lib/CORE.setting line 4285 (ANON @ 3)  at /home/p6eval/niecza/lib/CORE.setting line 4286 (module-CORE @ 581)  at /hom… | ||
..rakudo 1c9939: OUTPUT«1» | |||
cognominal | oops | ||
rn: say 1.sprintf('%02d') | |||
p6eval | rakudo 1c9939: OUTPUT«1» | ||
..niecza v24-33-gfc6d5fd: OUTPUT«Unhandled exception: Unable to resolve method sprintf in type Int at /tmp/ZiM39XUu1H line 1 (mainline @ 3)  at /home/p6eval/niecza/lib/CORE.setting line 4285 (ANON @ 3)  at /home/p6eval/niecza/lib/CORE.setting line 4286 (module-CORE @ 581)  at /hom… | |||
14:42
SamuraiJack_ left,
bbkr joined,
cognominal left
14:43
LlamaRider joined
14:49
cognominal joined
|
|||
davidagain | alright, on to macros ... let's say I wanted to re-spell a keyword in p6 | 14:50 | |
say, I want to write infix as xifni | |||
is that painful? | |||
14:53
bbkr left,
kst joined
15:01
Sifr left
15:03
cognominal left
|
|||
[Coke] | Yes, why would you do that. ;) | 15:04 | |
I am not sure macros work as simple textual substitutions yet. They do work if you have them return valid ASTs, however. | |||
I am trying to find masak's post on macros at strangelyconsistent.org/, but can only find the AST example at : | 15:05 | ||
strangelyconsistent.org/blog/macros...hey-really | |||
15:09
pmurias left
|
|||
raiph | Friendly reminder: YAPC::NA 2013: "The deadline for talk submissions is March 15th" | 15:09 | |
[Coke] strangelyconsistent.org/blog/list-of-posts | 15:11 | ||
15:12
cognominal joined
|
|||
davidagain | [Coke]: I have a little project I'm working on | 15:12 | |
trying to get a sense of the purpose and limitations of macros and other novel p6 features | |||
thanks for the links guys | |||
15:14
rindolf joined
15:17
thou joined
|
|||
hoelzro backlogs | 15:17 | ||
ah, thanks for clearing that up | |||
it's getting a lot harder to find bugs! | |||
15:19
cognominal left
|
|||
hoelzro | is there a method for checking an Array for an item's presence? something like @values.contains($value) | 15:20 | |
[Coke] | grep | 15:21 | |
hoelzro | I was hoping for something that would short circuit, but that'll do | 15:22 | |
[Coke] | first | ||
hoelzro | first throws an exception if it's not found though, doesn't it? | 15:23 | |
[Coke] | r: my @a = <a b c d a a a a a>; say @a.first({$^x eq 'a'}) | ||
p6eval | rakudo 1c9939: OUTPUT«a» | ||
[Coke] | r: my @a = <a b c d a a a a a>; say @a.first({$^x eq 'z'}) | ||
p6eval | rakudo 1c9939: OUTPUT«No values matched in method gist at src/gen/CORE.setting:10555 in sub say at src/gen/CORE.setting:7614 in block at /tmp/YF_isLfIiT:1» | ||
[Coke] | r: my @a = <a b c d a a a a a>; say @a.grep({$^x eq 'z'}) | ||
p6eval | rakudo 1c9939: OUTPUT«» | ||
[Coke] | looks like a bug. spec says "exactly like grep, but returns only the first matching value" | 15:24 | |
hoelzro | seriously? when I tried it it threw an exception | 15:26 | |
hoelzro tries again | |||
now it works | 15:27 | ||
hoelzro shrugs | 15:28 | ||
15:29
cognominal joined
|
|||
[Coke] | :yes, it throws an exception. (see above). | 15:30 | |
I'm saying the spec seems to indicate that's a bug. | |||
timotimo | r: my @a = <a b c d e f f>; say @a.first({$^x eq $^y}) | 15:31 | |
p6eval | rakudo 1c9939: OUTPUT«Not enough positional parameters passed; got 1 but expected 2 in block at /tmp/icvKVUBYz7:1» | ||
timotimo | r: my @a = <a b c d e f f>; say @a.grep({$^x eq $^y}) | ||
p6eval | rakudo 1c9939: OUTPUT«Not enough positional parameters passed; got 1 but expected 2 in block at /tmp/ozPDEL44_h:1» | ||
timotimo | r: my @a = <a b c d e f f>; say @a.map({$^x eq $^y}) | ||
p6eval | rakudo 1c9939: OUTPUT«Not enough positional parameters passed; got 1 but expected 2 in block at /tmp/NQGaIa_GhS:1» | ||
timotimo | only works in for loops? | ||
[Coke] | what are you expecting the second positional parameter to be? | 15:32 | |
(yes, you'd need to roll a loop there, though you might just need .uniq or .squish depending on what you're doing.) | 15:33 | ||
timotimo | r: for <a b a b a a b b a c b c b b> -> $a, $b { say "$a eq $b" if $a eq $b } # like this | ||
p6eval | rakudo 1c9939: OUTPUT«a eq ab eq bb eq b» | ||
timotimo | hm, i wonder what the most succint and natural syntax is to get every item in the list as $a and the next one as $b | 15:35 | |
i know this trick from python: | |||
r: my @a = <a b c d e>; for @a[..*-1] Z @a[1..*] -> $a, $b { say "$a $b " } | 15:36 | ||
15:36
toddr_ left
|
|||
p6eval | rakudo 1c9939: OUTPUT«===SORRY!===Preceding context expects a term, but found infix .. insteadat /tmp/yxos1wJZLR:1------> my @a = <a b c d e>; for @a[..⏏*-1] Z @a[1..*] -> $a, $b { say "$a $b » | 15:36 | |
timotimo | r: my @a = <a b c d e>; for @a[0..*-1] Z @a[1..*] -> $a, $b { say "$a $b " } | ||
p6eval | rakudo 1c9939: OUTPUT«a b b c c d d e » | ||
timotimo | other than that the only thing that directly comes to mind is using a counting variable | ||
15:37
cognominal left,
toddr_ joined
|
|||
[Coke] | r: my @a = <a b c d d e e f g g>; say gather for @a[0..*-1].kv -> $i, $v { if $v eq @a[$i+1] { take $v } } | 15:38 | |
p6eval | rakudo 1c9939: OUTPUT«use of uninitialized value of type Any in string context in block at /tmp/HW5j5__t6Z:1d e g» | ||
[Coke] | r: my @a = <a b c d d e e f g g>; for @a[0..*-1].kv -> $i, $v { if $v eq @a[$i+1] { say $v } } | ||
p6eval | rakudo 1c9939: OUTPUT«deguse of uninitialized value of type Any in string context» | ||
timotimo | hehe, should have used -2 | 15:39 | |
or a ^ | |||
[Coke] | oh, that DID work, it just also gave the Any. | ||
so, something like that ,maybe | |||
timotimo | no, it put an Any into the RHS of eq | 15:40 | |
is how i interpret it | |||
[Coke] | yah, that went from 0 to 9 the first time. | 15:41 | |
r: my @a = <a b c d d e e f g g>; say gather for @a[0..*-2].kv -> $i, $v { if $v eq @a[$i+1] { take $v } } | |||
p6eval | rakudo 1c9939: OUTPUT«d e g» | ||
[Coke] | r: my @a = 1..5 ; say @a[0..*-1]; | 15:42 | |
p6eval | rakudo 1c9939: OUTPUT«1 2 3 4 5» | ||
[Coke] | oh, duh, I was thinking in tcl for part of that. | ||
timotimo | i think that's what the ^ was made for, so that you don't have to always specify the -1 after +@foo | ||
was that already in perl5 also? | 15:43 | ||
bbiab | |||
[Coke] | r: my @a = <a b c d d e e f g g>; say gather for @a[0..^*-1].kv -> $i, $v { if $v eq @a[$i+1] { take $v } } | ||
p6eval | rakudo 1c9939: OUTPUT«d e g» | ||
15:44
cognominal joined
15:48
LlamaRider left
15:50
domidumont left
|
|||
jnthn back :) | 15:53 | ||
And seems I've done all the week's $dayjob tasks :) | |||
[Coke] | \o/ | 15:54 | |
15:55
toddr_ left
15:57
elementz joined
|
|||
raiph | jnthn, moritz, masak, timtoady, pmichaud: Do we still just have only one P6 talk submitted for YAPC::NA? Today is the submission deadline... | 15:57 | |
jnthn | raiph: Filing some talks is on my todo list for this evening. :) | ||
jnthn has got as far as registering at least :) | 15:58 | ||
raiph | jnthn: cool. what topics are you thinking of doing? lightning, regular, or both? | 15:59 | |
dalek | p/vmarray-list: 47e8fee | (Arne Skjærholt)++ | src/QAST/Operations.nqp: Refactor nqp::list_b to create an nqp::list instead of an RPA. |
||
p/vmarray-list: 1ee8aa8 | (Arne Skjærholt)++ | src/ops/nqp.ops: Make nqp::islist allow VMArrays. RPAs are still allowed as well, since there may be some of those hanging around in the serialized bits of the bootstrap compiler. |
|||
timotimo | i think @foo.kv -> $i, $v is a nicer idiom than python's for i, v in enumerate(thing) | 16:04 | |
jnthn | raiph: Pondering submitting a couple of regulars, one on something related to Perl 6 grammars and one about Rakudo's architecture (including lessons learned that can perhaps apply to many other systems). I have been pondering something on concurrency, but I'm wary of submitting it when I don't know how much I'll have to show by the time YAPC::NA comes around. | ||
[Coke] | jnthn: can always squeeze that in as a lightning talk if you ahve something. | 16:05 | |
jnthn | [Coke]: True | ||
16:05
LlamaRider joined
|
|||
jnthn | I guess lightnings are schedulable much later? | 16:05 | |
Also, if I have some stuff in that realm working on the JVM come the conf, Pm can talk about it in his talk :) | 16:06 | ||
16:06
davidagain_ joined
|
|||
[Coke] | jnthn: depends on the conf, I think, whether you can or not. I think historically you schedule them on site. I think there might be a trend to do it sooner these days. | 16:06 | |
16:09
davidagain left
|
|||
raiph | for this yapcna "The first deadline is with the full length talks. The second deadline is one week before the conference starts and many proposals will be accepted. At least two speaking spots on days 2 and 3 will be held open until the day before the talks to give you a chance to see something at the conference and put together a Lightning Talk response. However if you wait for the later deadlines note that there are fewer spots | 16:09 | |
available and you are less likely to be accepted so please try to submit more than a week before the conference." | |||
[Coke] | I imagine you'll know by then. | ||
jnthn | yes :) | 16:10 | |
16:13
elementz left
16:14
sigkill left
16:16
spider-mario joined
|
|||
TimToady can't really guarantee his state of health well enough to predict whether he can give a talk in June | 16:19 | ||
16:22
SunilJoshi joined,
kaare__ joined
|
|||
TimToady | it will depend mightily on what happens when the pathologist runs the spectests :) | 16:22 | |
16:24
cognominal left,
_jaldhar left
16:31
cognominal joined
|
|||
pmichaud | good morning, #perl6 | 16:43 | |
16:43
am0c left
|
|||
jnthn | morning, pmichaud o/ | 16:43 | |
TimToady | \o | ||
o/ | 16:44 | ||
\o | |||
o/ | |||
(doing morning stretches) | |||
16:54
cognominal left
|
|||
arnsholt | jnthn: Is the hlllist I have in github.com/perl6/nqp/blob/vmarray-...s.nqp#L260 going to work during the bootstrappy bits of NQP compilation? | 16:57 | |
rindolf | pmichaud: hi. | ||
pmichaud: morning. | |||
pmichaud: though it's close to 19:00 here. | |||
pmichaud | well, it's close to 12:00 here, too, so not-to-be-morning soon here | 16:58 | |
17:01
cognominal joined
|
|||
dalek | ecza: 4f8f894 | larry++ | / (2 files): missing conditionals return (), not Nil |
17:04 | |
jnthn | TimToady: How does Empty differ from an empty parcel? | 17:08 | |
17:08
isBEKaml joined
|
|||
TimToady | doesn't eventually, but I haven't figured out how to hack that in yet :) | 17:09 | |
just starting to detangle the bits of Nil here | |||
niecza's Nil also still returns () in list context, which I'm working toward removing | 17:10 | ||
but the obvious change breaks things very badly | |||
jnthn | arnsholt: That seems a bit of a cheat. It certainly won't work in nqp-mo for example. | ||
TimToady | if someone more knowledgable about niecza wanted to carry that forward a bit further, I wouldn't complain | 17:11 | |
jnthn | arnsholt: This is why things like BOOTArray exists. | ||
arnsholt | Yeah, that'll explain the errors I'm seeing | ||
TimToady | .oO(Someone Of Renowned Expertise And Rigor) |
17:13 | |
oh hey, it's the Ides of March; maybe I should avoid the forum... | 17:20 | ||
17:21
Chillance joined
|
|||
pmichaud | TimToady: if you go to the forum, please don't use the words "Perl" and "7" there. :-) | 17:22 | |
LlamaRider | Is it a feature that both <lower> and <.lower> work ? | 17:24 | |
pmichaud | LlamaRider: the first captures, the second does not | ||
LlamaRider runs for coffee | |||
pmichaud | r: say 'ABcD' ~~ / <lower> /; | ||
p6eval | rakudo 1c9939: OUTPUT«「c」 lower => 「c」» | ||
pmichaud | r: say 'ABcD' ~~ / <.lower> /; | ||
p6eval | rakudo 1c9939: OUTPUT«「c」» | ||
pmichaud | r: say 'abcd' ~~ / <lower>+ /; | 17:25 | |
p6eval | rakudo 1c9939: OUTPUT«「abcd」 lower => 「a」 lower => 「b」 lower => 「c」 lower => 「d」» | ||
LlamaRider | I knew this yesterday. o_O Coffee should help. Thanks! | ||
17:28
toddr_ joined
|
|||
raiph | pmichaud: "the forum"? | 17:29 | |
17:29
toddr_ left
|
|||
TimToady | raiph: yes, it's where the Lakers play basketball in LA | 17:30 | |
I'd be more worried if I had a month named after me, I suppose | 17:31 | ||
skids | TimToady: knowing that that had probably been bought out for brand name recognition I googled -- that's the Staples Center these days. | 17:32 | |
TimToady | well, Julius ended up with a few staples in him, I guess | 17:33 | |
17:33
SmokeMac_ joined
|
|||
skids | same thing happened with "The Garden" and lots of music venues here in MA. | 17:33 | |
not to get too OT. | |||
skids meeting | |||
17:34
toddr_ joined,
SmokeMachine left
|
|||
toddr_ | Hey can I request a channel topic update for today? "Don't forget to submit your perl6 talks for YAPC::NA (Due March 15)" | 17:35 | |
jnthn remembered to submit 2, at least :) | 17:37 | ||
pmichaud | I can always submit one more, if there's room for talks. | ||
toddr_ | Yep you've beat pmichaud out for talk submissions :) | ||
jnthn | I gotta win at something... :) | 17:38 | |
pmichaud | well, I was trying to leave room for others to submit talks :) | ||
toddr_ | Right now you 2 are the only talks | ||
As a rule we've been going for: Everyone gets one talk and then we'll see about more. | |||
TimToady | maybe we can get diakopter++ to come and talk about something or other | 17:39 | |
pmichaud | I'll submit one more so you have it if you want, but I agree with favoring talks from additional speakers | ||
toddr_ | TimToady: What do you want to talk on? | ||
pmichaud: I think the one you submitted is probably an important one. But that's an outsider's opinion. | 17:40 | ||
pmichaud | TimToady: you could submit a talk, and I'll cover it if you can't make it. Or you could list me as a co-presenter. :) | ||
TimToady | well, I can't guarantee my health, but raiph++ is suggesting 3-min cameos in each of the keynotes | ||
pmichaud | toddr_: I meant favoring others for a talk as opposed to giving me a second. I definitely want to give my existing talk submission :) | ||
jnthn looks forward to pmichaud's talk :) | 17:41 | ||
TimToady | I'm not sure anyone would want to be up against me, so it'd have to be a very boring subject | ||
toddr_ | We're also look for a Talk committee so if you're open, email [email@hidden.address] and I'll add you to the list. | ||
pmichaud | have there been any TheDamian+TimToady "Perl 6 update" talks lately? I've missed oscon the last few years. | 17:42 | |
toddr_ | I'd prefer to have some p6 folks on the comittee | ||
Damian can't come this year to Austin. I've been nudging him to do a remote talk or a recorded talk | |||
last I heard he was chewing on the idea. | |||
pmichaud | I ask because we could always do a Perl 6 update talk, although it might not be as well attended if neither TimToady nor TheDamian are presenting it :) | 17:43 | |
(which could also be a good thing :) | |||
Perl 6 update talks are easy to put together if you can read diffs :) | 17:44 | ||
TimToady | if the other talks are about specific things, an overviewish talk would be good | ||
pmichaud | my talk is "Perl 6 on the JVM" | ||
17:44
SunilJoshi left
|
|||
LlamaRider | r: say "a" ~~ /<![b]>/; | 17:45 | |
p6eval | rakudo 1c9939: OUTPUT«「」» | ||
LlamaRider | how do I negate <[b]> ? | 17:46 | |
pmichaud | r: say "a" ~~ / <-[b]> / | 17:47 | |
p6eval | rakudo 1c9939: OUTPUT«「a」» | ||
LlamaRider | thanks | ||
pmichaud | ! is a zero-width match | ||
17:47
araujo left
17:48
araujo joined,
cognominal left
|
|||
jnthn | r: my $x = 0; repeat until $x >= 10 -> $another_x { say $another_x; $x++; } | 17:51 | |
p6eval | rakudo 1c9939: OUTPUT«(Mu)FalseFalseFalseFalseFalseFalseFalseFalseFalse» | ||
jnthn | How in the heck did refactoring multi-dispatch break that... | ||
toddr_ | TimToady: Let's assume you're coming. I can re-work if we need to. What would you like to talk about? | 17:52 | |
TimToady | I can certainly co-host a What's New in Perl 6 talk | 17:53 | |
pmichaud | yeah, I suspect an overviewish talk wouldn't draw too many people away from other talks that aren't interested in p6 at least a bit | ||
toddr_ | Are there other more specific areas that interest you more? | ||
pmichaud | time for lunch here - bbiaw | 17:54 | |
17:54
cognominal joined
|
|||
TimToady | well...I can't afford to get too deeply into any specific area these days, other than language design itself | 17:56 | |
which most people know my opinions on already :) | |||
pmichaud | (back for a bit) we still need a talk giving an overview of parallelism in Perl 6 | 17:57 | |
i.e., the places where it's designed into the language | |||
raiph | what about a review of approaches to future bridging between p5 and p6? | ||
TimToady | most of what I'll be doing this year is the boring bits of writing a book for O'Reilly | ||
jnthn | pmichaud: I was pondering submitting something on that | ||
pmichaud | jnthn: me too | 17:58 | |
jnthn | pmichaud: Thing is, I kinda like to have things to show. | ||
pmichaud | but since TimToady++ is the one who knows where the parallel easter eggs are hidden in the spec.... | ||
jnthn | pmichaud: And while I'm confident I will by YAPC::EU in this area, YAPC::NA is 50/50. Depends how smoothly things go. | ||
pmichaud | jnthn: yeah, I'm thinking that it doesn't need an implementation to have a good talk | 17:59 | |
jnthn | pmichaud: If we have Rakudo basically working on the JVM in April, decent chance I can get something to show off for June. If it takes into May... | ||
pmichaud: Hm, I'm just very wary of Perl 6 talks about what will happen ;) | |||
pmichaud | remember, I ended up giving an impromptu "parallelism in p6" talk at prs last year | ||
TimToady | yes, parallelism is at an interesting intersection of spec and implementation just now | ||
pmichaud | I felt then (and feel now) that the topic needs to be fleshed out into something more formalish, if only so that we have something to refer to when doing implementy type things | 18:00 | |
s/formalish/structured/ | |||
jnthn | Helpfully, one of my $dayjob tasks is writing a parallelism course for .Net land, so I've plenty of reasons to need to ponder this area. :) | ||
Well, concurrency more general, but parallel stuff is in there. | 18:01 | ||
And async, etc. | |||
TimToady | maybe we could tagteam such a talk | ||
jnthn | ooh :) | ||
pmichaud | TimToady: I'd love to do that. | ||
TimToady | or maybe we should all get up and talk in parallel :) | ||
pmichaud | heh | ||
18:01
fgomez left
|
|||
jnthn | Just bring a lock on stage and we can only talk when holding it. Then for STM, we just trying optimistically speaking and hoping others won't at the same time... :) | 18:02 | |
dalek | p: cfdcc70 | jnthn++ | src/QAST/Operations.nqp: Add nqp::resume(...) for resuming an exception. |
||
p: 38a4fd9 | jnthn++ | t/nqp/44-try-catch.t: Update test to use nqp::resume(...). This should make it possible to try and get working in JVM land. |
|||
pmichaud | we could do a fugue | 18:03 | |
TimToady thinks about orchestral scores as a form of parallelism... | 18:05 | ||
pmichaud | so, which one of us submits the talk? | 18:06 | |
LlamaRider | I can negate \w, as in <-[\w]> . Can I somehow negate <alpha> inside a character class <[ ]> ? | ||
pmichaud | LlamaRider: <-alpha> | ||
r: say "abc123def456" ~~ / <-alpha> / | 18:07 | ||
p6eval | rakudo 1c9939: OUTPUT«「1」» | ||
LlamaRider | That's a "no" then :) Since I wanted to say "not (dash or alpha)" | ||
pmichaud | r: <-alpha-[-]> | ||
p6eval | rakudo 1c9939: ( no output ) | ||
LlamaRider | Now that is something I am seeing for the first time. | ||
pmichaud | r: say "abc-def-123" ~ / <-alpha-[-]> / | 18:08 | |
p6eval | rakudo 1c9939: OUTPUT«abc-def-123» | ||
pmichaud | ummmmmm | ||
r: say "abc-def-123" ~ / <-alpha-[\-]> / | |||
p6eval | rakudo 1c9939: OUTPUT«abc-def-123» | ||
pmichaud | oh | ||
r: say "abc-def-123" ~~ / <-alpha-[-]> / | |||
p6eval | rakudo 1c9939: OUTPUT«「1」» | ||
pmichaud | there, was missing a tilde. :-) | ||
LlamaRider | \o/ | 18:09 | |
TimToady | heh | ||
LlamaRider | The <> has great powers unknown to my mortal soul :) Very cool | ||
TimToady | n: say "abc-def-123" ~~ / <-alpha-[-]> / | 18:11 | |
p6eval | niecza v24-34-g4f8f894: OUTPUT«「1」» | ||
TimToady | std: say "abc-def-123" ~~ / <-alpha-[-]> / | ||
pmichaud | LlamaRider: you can do a variety of compositions with + and -... for example, <-alpha+[aeiou]> will negate all alphas except for the lowercase ascii vowels | ||
p6eval | std 86b102f: OUTPUT«ok 00:00 44m» | ||
TimToady | I guess STD doesn't care if - is first inside [] | ||
std: say "abc-def-123" ~~ / <-alpha-[x-y]> / | |||
p6eval | std 86b102f: OUTPUT«===SORRY!===Unsupported use of - as character range; in Perl 6 please use .. (or \- if you mean a literal hyphen) at /tmp/5YMQ0aDXxz line 1:------> say "abc-def-123" ~~ / <-alpha-[x-y⏏]> /Parse failedFAILED 00:00 44m»… | ||
TimToady | std: say "abc-def-123" ~~ / <-alpha-[x-]> / | 18:12 | |
p6eval | std 86b102f: OUTPUT«ok 00:00 44m» | ||
TimToady | or last :) | ||
pmichaud | so, which one of us submits a parallelism talk? If TimToady++ submits, it's very likely to be accepted, if pmichaud/jnthn submits, it may be less likely. | ||
LlamaRider | One more "aha!" moment for me | ||
pmichaud | I'm happy to co-present with anyone. :) | 18:13 | |
and to drive the process of creating the talk :) | |||
okay, I'm going to lunch. When I return, I will draft an abstract and gist it. If anyone wants to submit that abstract, great, if not, I'll submit it. | 18:16 | ||
jnthn | +1 | ||
I already have submitted 2 | |||
So I'm probably the worst person to submit it numbers wise. :) | |||
TimToady can probably figger out how to submit something | 18:17 | ||
do we also want to submit a What's New? | |||
pmichaud | +1 from me | 18:18 | |
bbal | |||
TimToady | though most of what's new is what the other talks are about... | ||
maybe p5 interop can go in the what's new, assuming things continue to develop as they have been | 18:19 | ||
jnthn | +1 | 18:20 | |
(to what's new) | |||
toddr_ | So the other thing I wanted to discuss was this: ideas.yapcna.org/idea/E7A8E3EC-721B...l-s-future | 18:21 | |
Rumor is EU will have a similar panel. | |||
I'm assuming this will be a re-statement of last year's summit in Europe? | |||
TimToady | so ya think it needs moderation? :D | ||
toddr_ | I'm putting someone in the front row with a tazer for out of control audience members :D | 18:22 | |
TimToady | only one? | ||
toddr_ | Probably better to circle the room. I think you're right | ||
isBEKaml | toddr_: you don't tazer them! You show them more perl! :P | 18:23 | |
isBEKaml ducks | |||
TimToady | maybe the panel's chairs could have shockers built in too | ||
diakopter runs windows update for the first time in 22 months; only 2.4GB of 157 updates to run | 18:24 | ||
toddr_ | OR We could do a drinking game out of it. | ||
I'm not sure what the buzz words would be | |||
isBEKaml | diakopter: that's quite a long list of updates with virtually no information about them? :) | 18:25 | |
diakopter | well, I could nopaste a screenshot if you like | 18:26 | |
dalek | p-jvm-prep: 8aefe06 | jnthn++ | / (4 files): Implement nqp::resume(...). |
||
p-jvm-prep: 5b471d9 | jnthn++ | docs/ROADMAP: Remove a couple of completed items. |
|||
isBEKaml | nah, I have to run updates as well | 18:27 | |
toddr_ | Does anyone have nominations for panel members? I know my request is not ideal but I haven't figured a better method to get ideas. | 18:28 | |
mst | toddr_: last year's summit in europe was a long exercise in bringing most of the people up to speed with the fact that it's not dead, we're making progress, and stop being so flipping emo | ||
I think the only people who actually got anything done were the 6ers and me | |||
toddr_ | didn't the perl5->perl6 converter get revived there? | ||
timotimo | perlito? | 18:30 | |
mst thinks we'd be better with a perl5 and a perl6 panel, otherwise you'll waste most of your time on 5 vs. 6 rubbish | |||
which ... gah. so bored of that. | |||
colomon | mst++ | 18:31 | |
18:31
kmwallio joined
|
|||
toddr_ | I'm cool with that. Ok so I assume the perl6 status update can also have a Q&A portion, which covers the "Future of Perl 6" part of things? | 18:32 | |
18:32
kmwallio left
|
|||
TimToady | seems reasonable, if there's sufficient time for both | 18:33 | |
toddr_ | We can do it right before Ghost of X-Mas Future talk. :D | ||
mst | that'd be awesome | 18:34 | |
isBEKaml | toddr_: I just speak for myself - I find saying "Future of X" to be implying a lack of future for X while we talk about it. That's so negative. | ||
mst | that means I can just re-iterate my 'these guys are trying to produce the best of all possible tomorrows' line from SoTV last year | ||
and then spend the rest of this year's SoTV talking about stuff I actually know about ;) | |||
isBEKaml: so far as I can tell, it goes like this | 18:36 | ||
::EU wants a 'future of perl' panel because the lead orga is upset that 'perl7' made him a paraiah so he wants to legitimise his ideas using an audience | |||
::NA has a suggestion for such a thing because somebody decided to copy ::EU | |||
toddr_ hasn't really sold me on there being a point to it at all | |||
I just really don't want a 5 vs. 6 war panel | 18:37 | ||
and will sit on a 5 one if that's what's required to avoid that :) | |||
isBEKaml | mst: I guess we already wasted one ::EU cycle? Why spend more effort? | 18:40 | |
toddr_ | It's the top request at ideas.yapcna.org. I agree with your points. But I also am hesitant to completely ignore the request. | ||
isBEKaml | mst: In any case, 5 vs 6 talk/discussion sounds pretty pointless to me. | 18:41 | |
mst | the PRS was useful ... just not the way it was originally intended to be | ||
in that it got a lot of people onto the same page | |||
18:41
SamuraiJack_ joined
|
|||
isBEKaml | PRS? | 18:42 | |
TimToady | well, I think it went a long way toward changing a bunch of either/or thinking into both/and thinking all around | ||
Perl Reunification Summit | |||
isBEKaml | TimToady: ah, thanks | ||
TimToady | which was held in the town of Perl | 18:43 | |
coincidentally :) | |||
jnthn | r: my $x = 0; repeat until $x >= 10 -> $another_x { say $another_x; $x++; } | ||
p6eval | rakudo 1c9939: OUTPUT«(Mu)FalseFalseFalseFalseFalseFalseFalseFalseFalse» | ||
toddr_ | I'm not convinced the PRS made it outside the PRS group. Is there a chance a report on the PRS would be a good talk? | ||
jnthn | TimToady: In ^^ what are the semantics of the first iteration meant to be? | ||
isBEKaml | TimToady: Yeah, I remember moritz++ blogging about it too. | ||
jnthn | TimToady: In so far as "what is passed as the argument"? | ||
mst | toddr_: last year's SoTV covered the material | ||
toddr_ | SoTV? | 18:44 | |
oh | |||
TimToady | jnthn: isn't that specced? | ||
jnthn | TimToady: sorry, just found it | ||
mst | I'll retread a subset of it this year for ::NA | ||
jnthn | TimToady: Well, it says it'll be "undefined" :) | ||
mst | and then ::EU can have the proper version | ||
jnthn | TimToady: That could be interpreted in a few ways. I mean, "heck knows what value it'll have" is satisfied by what the current code does :) | 18:45 | |
TimToady: I'm guessing "Mu" is sufficient? | |||
dalek | rl6-roast-data: 224f943 | coke++ | / (4 files): today (automated commit) |
||
[Coke] | niecza doubled the # of errors today. | 18:46 | |
TimToady thinks Nil is a better example of "no value" | |||
colomon | [Coke]: :( | ||
TimToady | [Coke]: probably my fault | ||
n: (42 if 0).say | 18:47 | ||
p6eval | niecza v24-34-g4f8f894: OUTPUT«()» | ||
TimToady | r: (42 if 0).say | ||
p6eval | rakudo 1c9939: OUTPUT«Nil» | ||
TimToady | that's the difference | ||
we're trying to move towards Nil being more like a normal 'undef', and not confuse it with the empty list | 18:48 | ||
LlamaRider | I have started a repo for P5-to-P6 porting tips, contributions are welcome: github.com/dginev/perl6-Porting-Pearls . It's targeted to P6 novices with some P5 experience (I'm one). Currently, there is only text in the Regex section, but I will be adding more soonish. | 18:49 | |
TimToady | use of guards on list comprehensions is considered a defined concept, not an undefined concept | ||
and it's defined to be equivalent to () | 18:50 | ||
(when the guard doesn't produce a value) | |||
18:52
SamuraiJack_ left
18:53
kivutar joined
|
|||
toddr_ | So Should I just book a talk for a P6 status update and we'll decide who's doing it later? | 18:56 | |
Mostly I need it in the list ATM. | |||
TimToady | sure, and we'll concentrate on registering the Parallelism talk | ||
thanks | |||
toddr_ | ok 50 mins? | 18:57 | |
or 20? or more? | |||
TimToady | sounds good | ||
(50) | |||
I'm sure we can do 20 of What's New and 30 of Q&A | |||
though they may end up mixed together | 18:58 | ||
18:58
wk_ joined
|
|||
toddr_ | Fair enough. I'll write something up. | 19:00 | |
19:00
raiph left
19:06
PacoAir left
19:07
isBEKaml left,
PacoAir joined
|
|||
arnsholt | jnthn: Right. Second go-round. So I'll have to set up a simple VMArray type for initial stuff (probably in SixModelObject_initialize?), and then make hlllist return that until NQPArray is set up | 19:20 | |
And Serialization{Reader,Writer} needs to handle them | 19:21 | ||
(them == BOOTArrays) | |||
colomon | how did "plan *" get back into roast? | 19:41 | |
rn: use Test; plan *; ok True; | |||
p6eval | niecza v24-34-g4f8f894: OUTPUT«Unhandled exception: Invalid argument to plan at /home/p6eval/niecza/lib/CORE.setting line 1504 (die @ 5)  at /home/p6eval/niecza/lib/Test.pm6 line 70 (Builder.plan @ 15)  at /home/p6eval/niecza/lib/Test.pm6 line 164 (plan @ 4)  at /tmp/_tfgh6MrsC … | 19:42 | |
..rakudo 1c9939: OUTPUT«ok 1 - » | |||
dalek | ast: b7fa842 | (Solomon Foster)++ | S32-num/stringify.t: Remove "plan *", which is definitely not needed and is obsolete to the best of my knowledge. |
19:45 | |
jnthn | arnsholt: BOOTArray gets added to the __6MODEL_CORE__ SC | 19:51 | |
arnsholt: And in NQPJVM I initialize it as a part of the 6model bootstrap | 19:52 | ||
colomon | TimToady: when you get a chance, can you look at the RT #75900 tests in t/spec/S06-signature/unpack-array.t ? I think it's being triggered by one of your Nil changes, and I've no idea whether or not the test is still correct. | 19:53 | |
rn: say ($_ * 2 if $_ ** 2 > 3 for 0 .. 5) | 19:55 | ||
p6eval | niecza v24-34-g4f8f894: OUTPUT«() () 4 6 8 10» | ||
..rakudo 1c9939: OUTPUT«4 6 8 10» | |||
colomon | another example of the same issue, this one in for.t | ||
TimToady: ^^ | 19:56 | ||
arnsholt | jnthn: Right, right. I'll try to do something along those lines | 19:59 | |
pmichaud | back again | 20:00 | |
dalek | p: cfd60cb | jnthn++ | src/QAST/Operations.nqp: Better handling of repeat -> $x { ... } code-gen. Still need a way to let Nil be specified, but at least this doesn't leave it unknown exactly what will be passed in. |
||
kudo/md-nqp: 5c49111 | jnthn++ | src/core/Numeric.pm: Fix a proto. |
|||
20:19
kaare__ left
|
|||
pmichaud | gist.github.com/pmichaud/5172829 # first rough draft of parallelism talk abstract | 20:21 | |
TimToady, jnthn: ^^^ | |||
afk for 15 | 20:23 | ||
timotimo | don't say explicitly, that almost none of those things are implemented anywhere yet :D | ||
implemented as in: actually exploit parallelism and provide full asynchronicity | |||
moritz would much rather see more talks about stuff that's actually implemented | 20:28 | ||
LlamaRider | wouldn't making such a talk be a driver to push a lot of progress on the implementation until the presentation date? | 20:33 | |
timotimo | hehe | ||
20:39
rindolf left
|
|||
jnthn | moritz: Looks like a good abstract. | 20:40 | |
uh, sorry | |||
pmichaud: Looks like a good abstract. | |||
pmichaud | moritz: I'd like to see talks about actually implemented stuff, too. But after PRS last year I felt like there was a need for a talk or article or something that overviewed parallelism in p6. Talks are easier for me than articles. | 20:44 | |
jnthn: thanks. I'll wait to see if TimToady has any comments/changes and then work to get it submitted tonight. | 20:45 | ||
20:48
japhb_ joined
20:53
kivutar left,
skids left
21:17
bluescreen10 left
21:29
SmokeMac_ left
21:33
Rix joined
|
|||
dalek | p: b94f739 | jnthn++ | src/guts/multi_dispatch. (2 files): Make the cache a bit smarter about nameds. |
21:48 | |
21:49
cognominal left
|
|||
TimToady | pmichaud: that looks fabulous | 21:52 | |
dalek | kudo/md-nqp: 495550a | jnthn++ | src/Perl6/Metamodel/BOOTSTRAP.pm: Allow common postcircumfix calls to be cached. Before, they could not be because some candidates accepted named args. Now, the common named-argumentless case can be cached. |
21:53 | |
21:55
cognominal joined
22:04
fgomez joined
22:08
thou left
22:25
raiph joined
|
|||
dalek | kudo/md-nqp: 3b39d8b | jnthn++ | src/Perl6/Metamodel/BOOTSTRAP.pm: Remove an optimization that made things wrong. |
22:27 | |
kudo/md-nqp: f94fb8b | jnthn++ | src/Perl6/Metamodel/BOOTSTRAP.pm: Remove bogus decontainerization. |
|||
22:29
skids joined
|
|||
dalek | ast: e143018 | (Timo Paulssen)++ | S0 (2 files): tests for RT #76884 and #75320 |
22:30 | |
22:41
labster joined
|
|||
dalek | ast: 5a95f71 | (Timo Paulssen)++ | S06-operator-overloading/imported-subs.t: improve test for not importing not exported operators. |
22:49 | |
22:49
LlamaRider left
22:52
spider-mario left
22:58
cognominal left
|
|||
dalek | p: ed35b15 | jnthn++ | src/ops/nqp.ops: Ensure we don't overflow fates buffer. A recent Rakudo change used fates without having a fate array in the first slot. This led to a buffer overflow, which showed up (at least on Win32) as spectest failures. This fixes it not to overflow. |
23:06 | |
23:08
Rix left
23:18
census left
23:24
LlamaRider joined
|
|||
dalek | kudo/md-nqp: 150bdc9 | jnthn++ | src/Perl6/Metamodel/BOOTSTRAP.pm: Don't recalculate candidate lists without need. |
23:29 | |
kudo/md-nqp: 19d9ae0 | jnthn++ | src/Perl6/Metamodel/BOOTSTRAP.pm: Fix logic for finding all possible candidates. |
|||
kudo/md-nqp: c9e3ae1 | jnthn++ | src/ (2 files): Use NQP-based dispatcher for deferral also. |
|||
kudo/md-nqp: c4e8af0 | jnthn++ | src/ (3 files): Rip out most of the C-based multi-dispatcher. Only leftover bits are the compile-time dispatch analysis used by the optimizer, which still needs porting. |
|||
jnthn | Enough for today. 'night, #perl6 | 23:33 | |
timotimo | night jnthn :) | 23:36 |