»ö« 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. |
|||
sorear | where I live, it will always be today. | 00:01 | |
flussence | (actually I might be wrong, my NTP's been iffy lately...) | ||
00:03
LlamaRider joined
00:04
Abcxyz joined
|
|||
masak | PerlJam++ # 24th advent post | 00:08 | |
PerlJam: "Niecza" link doesn't work :/ | |||
PerlJam: my $suffix = ' ' x $width - $text.chars - $prefix.chars; # this will not work unless you parenthesize the last three terms | 00:10 | ||
seems I'm wrong. ignore me. | 00:11 | ||
infix:<-> binds tighter than infix:<x>. TIL. | |||
'night, #perl6 | 00:14 | ||
00:15
quester left
00:16
Targen joined
|
|||
LlamaRider | Hi. I just ran into " Smartmatch against False always fails; if you mean to test the topic for truthiness, use :!so or *.not or !* instead " | 01:01 | |
I'm indeed comparing False with False and want a true value out. What would be *the* safe way? | |||
... good old == seems to work so far | 01:03 | ||
let me know if I should be using something different | 01:04 | ||
01:06
hypolin joined
|
|||
flussence | smartmatch only really makes sense to use if one of the other operators doesn't, and for booleans == is fine | 01:07 | |
01:09
anuby joined
|
|||
LlamaRider | I'm happy I used it, since I am trying to learn as much as I can right now. And getting tripped on smart-matching booleans was a valuable experience. | 01:09 | |
though I am sure I don't yet understand the reasoning behind its design. | 01:10 | ||
flussence | I'm confusing myself a bit now... | 01:12 | |
rpn: say False ?^ False | |||
p6eval | rakudo c8de2e, niecza v24-12-g8e50362: OUTPUT«False» | ||
..pugs: OUTPUT«» | |||
01:12
rindolf left
|
|||
flussence | anyone know why that's false but True ?^ True returns Nil? | 01:12 | |
01:17
rindolf joined
01:21
rindolf left
01:24
rindolf joined
01:27
raiph joined
01:29
LlamaRider left
01:31
MayDaniel left
|
|||
Patterner | I just compiled parrot, nqp and rakudo with clang 3.2. all tests passed. (all from git repos) | 01:52 | |
01:59
nebuchadnezzar left
02:00
whiteknight left,
nebuchadnezzar joined
02:04
nebuchadnezzar left
02:10
nebuchad` joined
02:15
bot48 left
02:22
nebuchad` left
02:36
rindolf left
02:43
rindolf joined
|
|||
[Coke] | rpn: say True ?^ True | 02:44 | |
p6eval | rakudo c8de2e: OUTPUT«Nil» | ||
..niecza v24-12-g8e50362: OUTPUT«False» | |||
..pugs: OUTPUT«» | |||
[Coke] | looks like a rakudobug. | ||
02:52
FROGGS left
03:05
FROGGS joined
03:08
orafu left,
OuLouFu joined
03:09
OuLouFu is now known as orafu
03:15
Chillance left
03:22
lolage left
04:53
gootle joined
05:14
gootle left
05:25
telex left
05:36
telex joined,
geekosaur left
05:37
geekosaur joined
06:24
kaleem joined
06:28
colomon left
06:36
rindolf left
06:41
SamuraiJack joined
06:53
skids left
06:58
daniel-s__ joined
07:02
daniel-s_ left
|
|||
moritz | \o | 07:11 | |
07:14
xinming joined
07:17
xinming_ left
07:18
alec joined
|
|||
alec | hello | 07:18 | |
how can i get perl6? | |||
i'm on ubuntu | |||
i couldn't find a package | |||
i did apt-cache search perl | grep 6 | |||
nothing | |||
oh, hi Ayiko | |||
are you the person who did those rosalind.info solutions in perl6? | 07:19 | ||
that's the whole reason i came here | |||
ayiko == 'my darling', does it not? | |||
sorear | alec: try apt-cache search rakudo and apt-cache search niecza | 07:25 | |
alec: if neither comes up, you'll have to build from source | |||
alec | yeah | 07:27 | |
i got rakudo | |||
apt-get installing now | |||
sorear | what version of rakudo? | ||
if it's older than 2012.06 or so you ought to install from source anyway | 07:28 | ||
alec | 2012.04 | 07:29 | |
sorear: what will i miss out on if i don't build from source? | 07:31 | ||
sorear | I think that falls under "or so" | 07:32 | |
bugfixes, feature additions, and performance improvements | 07:33 | ||
it's a gradual process | |||
alec | ok | 07:34 | |
i see what you mean about speed | 07:40 | ||
07:42
geekosaur left
07:43
geekosaur joined
07:50
geekosaur left,
geekosaur joined
07:51
geekosaur left,
geekosaur joined
|
|||
alec | hey, geekosaur | 07:53 | |
07:57
alec left
08:16
cognominal left
08:23
cognominal joined
|
|||
moritz | \o | 08:29 | |
dalek | ar: c2d5e6b | moritz++ | / (3 files): bump some versions in preparation of 2012.12 release |
08:30 | |
ar: c2ee09b | moritz++ | tools/star/Makefile: new download URLs are rakudo.org/downloads |
|||
ar: 01e61d2 | moritz++ | docs/announce/2012.12: 2012.12 star release announcement |
|||
ar: a1b106e | moritz++ | modules/ (8 files): bump module versions |
08:31 | ||
08:36
alec joined
|
|||
alec | what does the ~~ operator do? | 08:36 | |
also, trying to understand how this line works: | 08:37 | ||
for @introns -> $d { $rna ~~ s/$d// } | 08:38 | ||
FROGGS | that is like: for my $d (@introns) { ... } in Perl 5 | ||
alec | i don't know perl5 | 08:39 | |
i'm learning perl6 from scratch | |||
FROGGS | ahh, k | ||
alec | i actually know what the code's doing | ||
FROGGS | it iterates over the elements of @introns | ||
alec | i just need it broken down for me | ||
ok | 08:40 | ||
FROGGS | you get the elements as $d | ||
alec | ok | ||
FROGGS | ~~ is smartmatch, it applies the regular expression (regex) to $rna | ||
alec | ahh, handy | ||
that's very cool | |||
i get it | 08:41 | ||
thank you | |||
ok | |||
08:41
kaare_ joined
|
|||
FROGGS | you are welcome | 08:42 | |
alec | what about %conv<UAA UAG UGA> = '' xx 3; | ||
what is is %conv | |||
? | |||
FROGGS | it's a hash | 08:43 | |
alec | i know what the code is doing, i just don't know how it does it | ||
aaaaaah | |||
i see | |||
FROGGS | %hash<thing> it a pair with key 'thing' | ||
alec | ok | ||
FROGGS | so, UAA, UAG and UGA are keys | ||
alec | yeah | ||
and '' xx 3? | 08:44 | ||
FROGGS | '' xx 3 is repeating the empty string three times, in list mode, so it returns a list with three empty strings | ||
alec | aaah | ||
FROGGS | you you end up with the hash and all its pairs are initialized with empty strings | ||
alec | yeah | 08:45 | |
FROGGS | r: say 'a' xx 3 | ||
p6eval | rakudo c8de2e: OUTPUT«a a a» | ||
alec | aah | ||
r: say '' xx 3 | |||
p6eval | rakudo c8de2e: OUTPUT« » | ||
FROGGS | r: my %conv<UAA UAG UGA> = '' xx 3; say %conv | ||
p6eval | rakudo c8de2e: OUTPUT«===SORRY!===Shaped variable declarations is not yet implemented. Sorry. at /tmp/fhVgWR3z6P:1------> my %conv<UAA UAG UGA>⏏ = '' xx 3; say %conv» | ||
FROGGS | uhh | ||
r: my %conv; %conv<UAA UAG UGA> = '' xx 3; say %conv | 08:46 | ||
p6eval | rakudo c8de2e: OUTPUT«("UAA" => "", "UAG" => "", "UGA" => "").hash» | ||
FROGGS | see | ||
alec | oh wow | ||
that's nifty | |||
so xx makes it a list? | |||
FROGGS | r: my %conv; my $i = 0; %conv<UAA UAG UGA> = $i++ xx 3; say %conv | ||
p6eval | rakudo c8de2e: OUTPUT«("UAA" => 0, "UAG" => 1, "UGA" => 2).hash» | ||
FROGGS | enum style | ||
alec | yeah | ||
FROGGS | right, xx returns a list, x would return a str | 08:47 | |
alec | ok | ||
FROGGS | r: say 'a' x 3 | ||
p6eval | rakudo c8de2e: OUTPUT«aaa» | ||
alec | is there xxx? | ||
FROGGS | dont thing so | ||
think* | |||
r: say 'a' x ^3 | |||
p6eval | rakudo c8de2e: OUTPUT«aaa» | ||
FROGGS | r: say ^3 | 08:48 | |
p6eval | rakudo c8de2e: OUTPUT«0..^3» | ||
FROGGS | ranges -----^ | ||
r: say 'hello' for ^3 | |||
p6eval | rakudo c8de2e: OUTPUT«hellohellohello» | ||
FROGGS | r: say 'hello' for 0..2 # same | ||
p6eval | rakudo c8de2e: OUTPUT«hellohellohello» | ||
08:49
quester joined
|
|||
FROGGS | alec: you already have the perl6 ebook? | 08:49 | |
alec | no | ||
didn't know there was one | |||
i just found some code by Ayiko on rosalind.info | |||
and it looked cool | |||
i never learned perl5 or any other perl | 08:50 | ||
but perl6 looks different... kinda suits my thinking style | |||
so i want to learn it | |||
FROGGS | github.com/downloads/perl6/book/20....23.a4.pdf | ||
alec | ok, sweet, i'll get it now | ||
FROGGS | alec: the cool thing about Perl (whether 5 or 6) is that you can almost write in normal english | 08:51 | |
r: say 'good morning' unless 'it is already late' | |||
p6eval | rakudo c8de2e: ( no output ) | ||
alec | hmm | 08:52 | |
the thing i like about it so far is that it's sorta unixy | |||
FROGGS | but you can turn it around like in other languages: unless $condition { ... } | ||
alec | yeah | ||
FROGGS | unixy? in what way? | ||
Perl 5 is some sort of swiss army knife of unixes, but the language itself isnt unixy (dont know what unixy is exactly) | 08:54 | ||
huf | unixy perl is awk, i feel :) | 08:55 | |
alec | when i look at the way it handles regexes i feel right at home | ||
FROGGS | ahh, yes | ||
alec | i don't like having to import re then re.compile, etc. in python | 08:56 | |
FROGGS | there is some sort of connection | ||
or use preg_match() like in php | |||
alec | yeah, it all just feels stupid | ||
FROGGS | right | ||
alec | regexes should just be there | ||
i think in regexes | |||
huf | then you have twice as many thoughts as thoughts | 08:57 | |
alec | lol | ||
FROGGS | r: given 42 { when /\d/ { say 'yeah!' } | ||
p6eval | rakudo c8de2e: OUTPUT«===SORRY!===Unable to parse expression in block; couldn't find final '}'at /tmp/uixThek0_U:1------> given 42 { when /\d/ { say 'yeah!' }⏏<EOL> expecting any of: postfix infix or meta-infix infix s… | ||
FROGGS | meh | ||
r: given 42 { when /\d/ { say 'yeah!' } } | |||
p6eval | rakudo c8de2e: OUTPUT«yeah!» | ||
alec | nice | ||
huf | you know the adage, one problem, regex, two problems :) | ||
FROGGS | r: given 42 { when /$<number>=(\d)/ { say $<number> } } | 08:58 | |
p6eval | rakudo c8de2e: OUTPUT«「4」» | ||
alec | hmm | ||
alec is falling asleep at the keyboard | 08:59 | ||
night all | |||
FROGGS | gnight | 09:00 | |
09:02
alec left
|
|||
moritz | moritz.faui2k3.org/tmp/rakudo-star-....12.tar.gz # R* release candidate | 09:03 | |
I'll spend most of the day travelling, so plenty of time for you all to test it | 09:04 | ||
FROGGS fetches is right now | 09:08 | ||
09:27
quester left
|
|||
felher | good morning, #perl6 | 09:31 | |
FROGGS | morning felher | ||
09:41
Psyche^ joined
09:44
Patterner left,
Psyche^ is now known as Patterner
|
|||
FROGGS | moritz: this commit isnt included in rakudo star, which produces an obs warning: github.com/jnthn/grammar-debugger/...80c0a16b39 | 09:46 | |
09:46
Kharec joined
09:54
SmokeMachine joined
10:02
hypolin left
10:03
ServerSage left
10:06
anuby left
10:18
GlitchMr joined
10:34
cognominal left,
sftp joined
|
|||
FROGGS | moritz: forget what I said, there are still |$args in the modules... | 10:35 | |
11:00
jaldhar_ joined,
_jaldhar left
|
|||
FROGGS | phenny: tell jnhtn that I believe that the | must go: github.com/jnthn/grammar-debugger/...ger.pm#L40 | 11:17 | |
phenny | FROGGS: I'll pass that on when jnhtn is around. | ||
FROGGS | phenny: tell jnhtn here too: github.com/jnthn/grammar-debugger/...cer.pm#L10 | 11:18 | |
phenny | FROGGS: I'll pass that on when jnhtn is around. | ||
masak | g'day, g'day, #perl6 ;) | 11:30 | |
11:32
geekosaur left
11:34
geekosaur joined
11:35
geekosaur left,
geekosaur joined
|
|||
FROGGS | masak! \o/ | 11:36 | |
:o) | |||
err, hi masak | |||
masak | :D | 11:38 | |
sorear: I... wasn't entirely accurate. it's always today where I live, too. :) | 11:40 | ||
FROGGS | phenny: tell moritz that the rakudo-star RC looks good to me (ubuntu 12.10 amd64) | 11:41 | |
phenny | FROGGS: I'll pass that on when moritz is around. | ||
FROGGS | phenny: I love you | ||
masak | FROGGS++ # explaining stuff in the backlog | 11:42 | |
FROGGS | thanks | 11:43 | |
11:50
SamuraiJack left
11:51
SamuraiJack joined
11:55
SamuraiJack left
12:14
att___ joined
12:17
att__ left,
rindolf joined
|
|||
masak | what's the name of the group { ±1, ±i, ±j, ±k } with quaternion multiplication? | 12:19 | |
heh. I should be able to figure this out :) | 12:20 | ||
it's either Z_8, Z_4 x Z_2, or Z^3_2. | 12:21 | ||
hm, but none of the cycle graphs for those groups seem right. | 12:22 | ||
oh! was looking at abelian groups :) | 12:23 | ||
here it is: en.wikipedia.org/wiki/Quaternion_group | |||
12:28
colomon joined
12:33
MayDaniel joined
12:37
odoacre left
12:38
odoacre joined
12:50
spider-mario joined
12:51
nebuchadnezzar joined
12:53
fgomez joined
12:56
nebuchadnezzar left
12:57
nebuchad` joined,
nebuchad` is now known as nebuchadnezzar
13:01
nebuchadnezzar left
13:20
nebuchadnezzar joined
13:22
att___ left
13:24
att__ joined
13:37
rummik left
13:44
rummik joined
13:49
att__ left
13:51
att__ joined
13:52
PacoAir joined
13:56
PacoAir left
14:00
jaldhar_ left
14:01
PacoAir joined,
Celelibi left
14:02
PacoAir left,
PacoAir joined
14:04
Celelibi joined
|
|||
masak | quiet day today :) | 14:12 | |
hoelzro | everyone's still recovering ;) | ||
masak .oO( you're doing it wrong ) :P | 14:20 | ||
14:24
am0c_ joined
14:25
att__ left
14:26
att__ joined
14:29
kaleem left
14:30
lolage joined
|
|||
masak | this season, I'm thankful we don't have this kind of tone on p6c or p6l: article.gmane.org/gmane.linux.kernel/1414106 | 14:31 | |
14:32
am0c_ left
14:33
am0c_ joined
|
|||
masak | I sure hope this "Linus Torvalds" isn't some influential bigshot in that other community, because then people would perhaps be too intimidated to take him aside and tell him he should try harder not to be abrasive on the list. | 14:33 | |
tadzik | I like how he writes "f*cking", but only sometimes | 14:35 | |
btw, how did you stumble upon that? I wouldn't be surprised if there was /r/LinusGetsAngry ;) | |||
masak | even saw it on twitter the other day. | 14:36 | |
s/even / | |||
even if the guy Linus is responding to did something really stupid -- and he may have, I dunno -- what Linus writes seems over the top and, frankly, mean. | 14:37 | ||
"you didn't understand the rules? well, as project leader, allow me to set you on fire in public." | |||
huf | he's a bit over the top, but a) that's his style... b) he's communicating to every maintainer with this rant, not just the one specific person and c) for better or worse, being a kernel dev is being responsible no matter what | 14:40 | |
but yeah, he's not a nice person :) | |||
masak | can't argue with point (a), only deplore it. points (b) and (c) would stand even for a stern but respectful message. | 14:42 | |
14:43
am0c_ left
|
|||
masak | huf: let me put it this way. TimToady, Guido, and matz seem to be genuinely nice leaders. Linus doesn't. why is that? are kernel developers more tough-skinned than FLOSS language developers? do people enjoy it when Linus is being a jerk? | 14:45 | |
14:46
kaleem joined
|
|||
tadzik | mayhaps people secretly admire it. Or by being kernel devs they can be wearing t-shirts saying "I can stand Linus" or something ;) | 14:47 | |
arnsholt | masak: There's also Theo de Raadt in the kernel camp | 14:49 | |
14:51
kaleem left,
kaleem joined
14:52
kaleem left
|
|||
masak | tadzik: good point. unfortunately, I think the kind of community where testosterone drives communication also silently turns away lots of potential contributors. | 14:52 | |
arnsholt: I know nothing about de Raadt. his Wikipedia article only says that he's "outspoken". | 14:53 | ||
tadzik: it's also quite possible the Linux community "created" the Linus persona, because they needed it. | 14:54 | ||
just as it's quite possible the Perl 5 community "created" the p5p atmosphere because they needed it. | 14:55 | ||
tadzik | it turns away some and possibly attracts others | ||
masak | I don't know how probable that hypothesis is, but it's worth considering, and definitely something the Perl 6 community needs to keep in mind in its attempts to construct alternative models of collaboration. | ||
tadzik | if their results were bad then there was probably a horrible mistake made | 14:56 | |
arnsholt | He doesn't have the swearing turned up to 11, but he rubs people the wrong way in a similar manner I think | ||
masak | tadzik: maybe it's a sign of a large working meritocracy. someone who does good gets commitbits, someone who screws up gets flamed in public. | 14:57 | |
by the way, I don't doubt that this guy will get second and third chances if he can just lick his wounds and try again. it's not about that. | |||
14:57
lolage left
|
|||
masak | also, I don't much mind Linus swearing. it's the context in which he expresses himself strongly that turns me off. | 14:58 | |
arnsholt | Yeah, swearing isn't necessarily a problem. It's how a large part of the message seems to be "you are a failure in every way" | 15:00 | |
masak | right. | 15:01 | |
it's as if benevolent-dictatorship were a scarce, precious resource. | 15:02 | ||
and he chooses to use it like this, and that seems... suboptimal. | |||
huf | hmm, i didnt read his rant as "you are a failure in every way" | 15:03 | |
15:03
LlamaRider joined,
LlamaRider left
|
|||
huf | just as "you made a mistake and then put another one on top of it, now stop and think" but in the most uncivil abrupt manner possible | 15:03 | |
15:03
LlamaRider joined
|
|||
huf | it is what it is *shrug* | 15:03 | |
LlamaRider | o/ #perl6 | 15:04 | |
masak | LlamaRider! | ||
\o/ | |||
tadzik | well, I don't mind it all. I may, or may have not if that had any effect on me at all | ||
masak | I've been shouted at by TimToady. but then it took me being a real PITA first. it was hardly unprovoked. it did make me stop and think. | ||
tadzik | as long as the results are good I'll just sit there and watch with a face expression of a bored camel :) | 15:05 | |
masak | TimToady doesn't swear, except when he's being a linguist ;) | ||
huf | i think in basically any community, someone has to be the ... um.. what's the english word for it | ||
the bogeyman | |||
masak | huf: "bastard"? :) | ||
huf | masak: yeah, kinda. | ||
masak | huf: that's the mst hypothesis. | ||
huf | it's best if the person who plays that role doesnt actually enjoy it too much | ||
masak | right. | ||
huf | and realize they're at least partially playing a role | ||
masak: yeah, mst ;) | |||
masak | it's still being tested around these parts. | ||
huf | i hope this channel manages without this persona, if only to provide variety | 15:06 | |
masak | we have a bastard role here, but not a resident bastard. the role is more like a hat that people can wear. | ||
huf | :) | ||
masak | over the years, I think I've maybe wore that hat ~3 times. | 15:07 | |
it's not very needed around here. | |||
our main line of defense is kindness and trying to get through. if that fails, we go all-caps. | 15:08 | ||
huf | :) | ||
masak | but it doesn't fail all that often, and that's the point. | 15:09 | |
people are much more likely to be defused by a joke and a smile, or a hug, than angry words and scowls. | |||
huf | the honey and the stick :) | 15:10 | |
masak | then again, it's obvious that kindness gets drowned out when a community scales up. | ||
huf | so does constructive bastardness | ||
sadly, destructive bastardness is what scales well :( | |||
masak | right. it's almost like a Maslow pyramid. | ||
the only time I've had trouble keeping up with the newcomers on this channel was after the release of Rakudo Star. | 15:11 | ||
then I could detect a slight decrease in the kindness discipline. but maybe I imagined things. | |||
huf | how frequently do you get newbies who have vague questions but absolutely refuse to read any existing documentation you point them to? | ||
masak | the tough bit is when newbies start to answer questions from newbies. then you get into a "how is babby formed" kind of situation ;) | 15:12 | |
huf | oh yeah, that one | ||
masak | huf: we have people who refuse to read existing documentation sometimes, yes. | ||
especially if we point them to the synopses. | |||
which are admittedly a bit opaque. | |||
huf | yes, that's the word i was looking for | ||
i can glean more and more info each time i go back to them : | 15:13 | ||
:) | |||
probably in part because you guys keep fixing it | |||
masak .oO( synopses are like trolls, they have layers ) | 15:14 | ||
huf | i beg your pardon? | 15:15 | |
masak | just a deliberate Shrek misquotation ;) | ||
huf | oh. i'm not up to date on shreklore :) | 15:16 | |
masak | it's from the first movie. | ||
LlamaRider | maybe this is a good place to sneak in a nano-rant about S05 and grammars. The text there is kind of highly non-linear to read through, especially if you make my mistake of entering from perlcabal.org/syn/S05.html#Grammars | 15:19 | |
-- end-of-rant -- ;-) | |||
15:21
isBEKaml joined
|
|||
isBEKaml | phenny: tell moritz thanks for the [doc] cleanups. I was trying to push something that was obviously not up to the mark. :) | 15:22 | |
phenny | isBEKaml: I'll pass that on when moritz is around. | ||
15:26
Chillance joined
|
|||
masak | LlamaRider: well, you're right, of course. | 15:26 | |
LlamaRider: it's probably better to get an introduction to grammars through some other resource. | |||
S05 is more a reference than anything else. | |||
15:26
skids joined
|
|||
masak | I also don't always like its disposition. | 15:27 | |
LlamaRider | in its defense, it did contain the information I was looking for, though in a very minimal and hinting fashion | ||
I was trying to understand why rules mess up my single-quoted whitespaces. Ended up figuring out things work if I use tokens instead, but not much more than that. | 15:28 | ||
masak | "in a very minimal and hinting fashion" is a good description of most of the spec. a Camel book it is not. | 15:32 | |
moritz | isBEKaml: I'm glad you pushed something at all :-) | 15:36 | |
phenny | moritz: 11:41Z <FROGGS> tell moritz that the rakudo-star RC looks good to me (ubuntu 12.10 amd64) | ||
moritz: 15:22Z <isBEKaml> tell moritz thanks for the [doc] cleanups. I was trying to push something that was obviously not up to the mark. :) | |||
isBEKaml | moritz: :) | ||
masak | moritz! \o/ | ||
isBEKaml | anybody feel that the classes example in p6book is wrong? raw.github.com/perl6/book/master/s...bjects.pod | 15:37 | |
moritz | they could be much more awesome. That's sure :-) | ||
isBEKaml | r:gist.github.com/4380959 | 15:38 | |
masak | isBEKaml: space after the 'r:' | ||
isBEKaml | huh.. ENOP6EVAL? | ||
r: gist.github.com/4380959 | |||
p6eval | rakudo c8de2e: OUTPUT«Nominal type check failed for parameter '@dependencies'; expected Positional but got Array instead in method new at /tmp/YSfEWacEnH:6 in block at /tmp/YSfEWacEnH:27» | ||
masak | o.O | 15:39 | |
isBEKaml | that's what I got. | ||
masak | oh, 'Task *@dependencies'. | ||
isBEKaml | yep | ||
masak | yeah, I don't think that works. | ||
there's even an RT ticket for that somewhere. | |||
isBEKaml | heh, we have code that doesn't work in a book! :D | 15:40 | |
ofcourse, code doesn't work in a book, but it should outside. :P | 15:41 | ||
n: gist.github.com/4380959 | 15:42 | ||
p6eval | niecza v24-12-g8e50362: OUTPUT«Unhandled exception: Unable to resolve method postcircumfix:<( )> in type Any at /tmp/f14vyvZDGm line 17 (Task.perform @ 13)  at /tmp/f14vyvZDGm line 34 (mainline @ 12)  at /home/p6eval/niecza/lib/CORE.setting line 4218 (ANON @ 3)  at /home/p6eval/… | ||
masak | isBEKaml: try to remove the 'Task ' typing of that slurpy, and it should work fine. | 15:44 | |
here's the RT ticket, by the way: rt.perl.org/rt3/Ticket/Display.html?id=113964 | 15:45 | ||
isBEKaml | masak: No luck. It now takes it to be a Parcel and says there's no such method 'Any' on Parcel | 15:46 | |
masak | showmethecode | ||
nevermind, I reproduced it. | 15:47 | ||
it got further. that error is in the .perform method. | |||
isBEKaml | r: gist.github.com/4380996 | 15:48 | |
p6eval | rakudo c8de2e: OUTPUT«No such method 'Any' for invocant of type 'Parcel' in at src/gen/BOOTSTRAP.pm:845 in at src/gen/BOOTSTRAP.pm:839 in any at src/gen/BOOTSTRAP.pm:836 in method perform at /tmp/qPM2jU5sWY:17 in block at /tmp/qPM2jU5sWY:34» | ||
masak | oh! | ||
the &!callback attribute is private, so it won't get initialized properly by .bless | 15:49 | ||
neither will @!dependencies, I guess. | |||
moritz | make them public | ||
masak | on it. | ||
moritz | there's really no reason to keep them hidden | ||
masak | then it works. | ||
isBEKaml | masak: but we are passing by name, no? | ||
masak | yeah, but private attributes can't be initialized that way. | 15:50 | |
sorear doesn't like it. | |||
I can sort of see where he's coming from. | |||
it's more "proper" OO, but it violates people's expectations. | |||
isBEKaml | masak: I don't see the violation here. All I can say is, we init them once and let the object handle it. It's as OO as I see it. | 15:52 | |
15:53
fgomez left,
Abcxyz left
|
|||
masak | isBEKaml: it exposes the names of private attributes to the outside world, and ties those names to consumer code. | 15:54 | |
isBEKaml | masak: in that case, we can have aliasing - but that's more work than needed. | 15:55 | |
masak | if you're an object and the whole outside world is potentially your enemy, by letting consumers initialize your private attributes, you just exposed internal secrets to the enemy. | 15:56 | |
and you wouldn't be able to refactor private attributes without breaking downstream code. | |||
isBEKaml | masak: yeah, I can see that. | ||
masak | OO language design. it's tricky. | 16:00 | |
LlamaRider | Q: can P6 grammars be used for generation? | ||
masak | LlamaRider: theoretically, yes. | ||
LlamaRider: I have a proof-of-concept sitting around in an old project called GGE. | 16:01 | ||
isBEKaml | masak: then we ban bless? doc.perl6.org/routine/bless | ||
masak: though that particular applies to public attributes. | |||
masak | bless is what we've been talking about all along. | ||
it's how you create new objects in Perl 6. | |||
.new is just a common name for a method that wraps .bless | 16:02 | ||
16:05
thou joined
|
|||
isBEKaml | well, do we have any other way to instantiate new objects? | 16:06 | |
arnsholt | masak: For generation, did you have any clever ideas for handling interpolated code (other than throwing up your hands and giving up)? | ||
isBEKaml | arnsholt: giving up is considered clever? I didn't know! :D | 16:07 | |
masak | I did not have any clever ideas. in fact, I can't recall considering that aspect. | ||
it would seem to me that there's only one thing you can do with interpolated code: run it. | |||
but from the flip side, it's not clear to me that every such bit of code would make sense on the generation side of things, if it was originally written for the parsing side. | 16:08 | ||
arnsholt | Yeah, probably. I guess you could try to regenerate until the tests pass =) | ||
masak | so, hm. | ||
arnsholt | But even limited generation would probably be an awesome feature | ||
For things like fuzzers and such it'd be very useful | 16:09 | ||
masak | LlamaRider: here's my proof-of-concept script: gist.github.com/908829 | 16:10 | |
the email where I found that says it's using the 'ng-compat' branch of GGE. but this is old code, so no guarantees it'll work in today's Rakudo. | |||
16:12
rindolf left
|
|||
masak | building something like this into actual Perl 6 grammars shouldn't be impossible -- as long as there's some way to extract and introspect regex ASTs. | 16:12 | |
hm... module idea... :) | |||
16:19
rindolf joined
|
|||
hoelzro | what is ss/.../.../ for as opposed to s/.../.../? | 16:20 | |
flussence | s:samespace | 16:21 | |
hoelzro | ah ha | ||
I'm guessing that's a regex adverb rather than a general Q form one? | 16:22 | ||
masak | "Linus is the scariest boss ever. And he doesn't even pay you. I'm so glad he's at the helm of Linux." -- support of tadzik's hypothesis that some people like it, at www.reddit.com/r/programming/commen...l_changes/ | ||
hoelzro | ugh | 16:23 | |
that latest post from him just gets under my skin. | |||
isBEKaml | hoelzro: I bet you haven't seen his antics on youtube (to NVIDIA) :) | ||
hoelzro | isBEKaml: I've heard of them. | 16:24 | |
isBEKaml | hoelzro: lkml has lots of mails where he routinely drops f-bombs, insults and such. | ||
hoelzro | yeah, he's got a reputation for it | ||
I just don't like how he shits all over people. | 16:25 | ||
isBEKaml | hoelzro: well, kernel folks tend to have thick skins. de Raadt and Linus are just what they are out of that culture. | 16:26 | |
hoelzro | I don't know if that justifies it... | 16:27 | |
masak | hoelzro: I felt that his second reply to Mauro was more in line than the first one. and it made me understand a bit better why Linus was upset. still think the first email was too harsh, though. | ||
hoelzro | masak: I haven't seen the second | 16:28 | |
16:28
colomon left
|
|||
isBEKaml | hoelzro: I tend to think it's an offshoot from how people treated him - he does get to have his way because linux kernel is his brainchild. | 16:29 | |
hoelzro | I don't have a problem with him getting his way | ||
and he *is* really good at what he does, and knowledgable | |||
but I think he could get his point across without being a dick | 16:30 | ||
masak | right. that's basically the big question: could he? | ||
oh, and Joyous Kwanzaa, everyone. | 16:31 | ||
isBEKaml | masak: yeah, Mauro acknowledged what he did. I think his mistake was in talking to kernel devs than pulseaudio folks about why they relied on that particular flag. Thinking out loud on high volume lkml lists is out of the ordinary. | ||
16:33
erkan joined,
erkan left,
erkan joined
|
|||
masak | isBEKaml: seems to me Mauro questioned why a userspace component would care about kernel breaking backwards compat, and that's what set Linus off. | 16:34 | |
(because to Linus, not breaking kernel backwards compat is *the* prime directive) | |||
having a discussion where that is not an assumption makes no sense to him, and he wants to protect kernel development from people who don't get that bit. | 16:35 | ||
isBEKaml | masak: yes, like I said - he could have gained a better picture in talking to pulseaudio folks and then he would have realised that they were breaking backward compatibility, which I believe, he didn't do. | ||
masak | I don't know enough about pulseaudio to have an opinion about that. | 16:36 | |
isBEKaml | masak: I think Mauro was already fully clued in about the fact that breaking backward compatibility on the kernel side is an absolute no-no, when he's the module lead for his kernel component. | 16:37 | |
masak | and yet Linus feels a need to remind him. | 16:39 | |
isBEKaml | masak: yep, reason why it was a genuine mistake on Mauro's part and Linus' overreaction. | 16:40 | |
masak | *nod* | 16:41 | |
16:45
fgomez joined
16:48
alec joined
|
|||
alec | hi | 16:48 | |
can someone explain to me how this line works? | |||
16:48
Kharec left
|
|||
alec | print %conv{ $rna.substr($_, 3) } for 0,3...^$rna.chars-3; | 16:50 | |
i know roughly what it does, i just can't figure out what the operators do | |||
specifically $_ and ...^ | |||
FROGGS | r: my $rna: 'ABABABAB'; 0,3...^$rna.chars-3; | 16:51 | |
p6eval | rakudo c8de2e: OUTPUT«===SORRY!===Confusedat /tmp/tCjBe6hYUk:1------> my $rna:⏏ 'ABABABAB'; 0,3...^$rna.chars-3; expecting any of: colon pair» | ||
FROGGS | r: my $rna: 'ABABABAB'; say $_ for 0,3...^$rna.chars-3; | ||
p6eval | rakudo c8de2e: OUTPUT«===SORRY!===Confusedat /tmp/F7mRRL2ddZ:1------> my $rna:⏏ 'ABABABAB'; say $_ for 0,3...^$rna.cha expecting any of: colon pair» | ||
FROGGS | r: my $rna = 'ABABABAB'; say $_ for 0,3...^$rna.chars-3; | ||
isBEKaml | FROGGS: '=' | ||
flussence | ??? | ||
p6eval | rakudo c8de2e: OUTPUT«(timeout)» | ||
FROGGS | hmmm | ||
timout? | |||
flussence | oh, heh | ||
I thought the first line was p6eval :) | 16:52 | ||
FROGGS | r: my $rna = 'ABABABAB'; say $_ for 0..3; | ||
p6eval | rakudo c8de2e: OUTPUT«0123» | ||
FROGGS | k | ||
r: my $rna = 'ABABABAB'; say $rna.chars | |||
p6eval | rakudo c8de2e: OUTPUT«8» | ||
isBEKaml | r: my $rna = 'ABABABAB'; for 0,3 .. ^ $rna.chars -3 { .say } | ||
masak | alec: $_ means "current element" in a for loop or map. | ||
p6eval | rakudo c8de2e: OUTPUT«0345» | 16:53 | |
alec | ok | ||
FROGGS | okay, the for loop iterates over 0, and 3 to length of rna minus 3 | ||
masak | alec: ...^ means "sequence, but throw away the last element, the one which matches the end condition". | ||
alec | ok | ||
FROGGS | right, $_ is the element in a loop if you dont give it a name via -> | ||
alec | ok | ||
masak | this sequence is a bit risky, because it assumes the $rna string has a multiple-of-three amount of chars. | ||
isBEKaml | r: my $rna = 'ABABABABA'; for 0,3 .. ^ $rna.chars -3 { .say } | 16:54 | |
p6eval | rakudo c8de2e: OUTPUT«03456» | ||
masak | FROGGS: and people tend not to use -> with statement-modifier 'for' loops :) | ||
isBEKaml: original example used three dots. | |||
FROGGS | alec: then it does the print before the for loop, simple subtring | ||
16:54
colomon joined
|
|||
masak | isBEKaml: and no space between '...' and '^'. | 16:54 | |
isBEKaml | r: my $rna = 'ABABABABA'; for 0,3...^ $rna.chars -3 { .say } | ||
p6eval | rakudo c8de2e: OUTPUT«03» | ||
masak | r: say 0, 3 ...^ 33 | ||
p6eval | rakudo c8de2e: OUTPUT«0 3 6 9 12 15 18 21 24 27 30» | ||
isBEKaml | masak: yeah, I was wondering why I got back 4 and 5. :) | 16:55 | |
masak | :) | ||
alec | ahh | ||
i'm starting to see | |||
r: say 0,4...^44 | 16:56 | ||
p6eval | rakudo c8de2e: OUTPUT«0 4 8 12 16 20 24 28 32 36 40» | ||
FROGGS | alec: cool, is it? | ||
alec | yes, FROGGS | ||
FROGGS | (didnt know that too) | ||
alec | r: say 0,4...44 | 16:57 | |
p6eval | rakudo c8de2e: OUTPUT«0 4 8 12 16 20 24 28 32 36 40 44» | ||
masak | right. | 16:58 | |
alec: just be very aware that if you don't hit that end condition... | |||
...you fall off the edge and don't come back. | |||
r: say 0, 2, 4 ... 11 | |||
p6eval | rakudo c8de2e: OUTPUT«(timeout)» | ||
masak | not a bug. by design. | 16:59 | |
alec | ok | ||
r: say 0,4...45 | |||
masak | same deal. | ||
p6eval | rakudo c8de2e: OUTPUT«(timeout)» | ||
masak | r: say 1, 1.1 ... 2 | ||
p6eval | rakudo c8de2e: OUTPUT«1 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2» | ||
alec | r: say 0,4...^45 | 17:00 | |
masak | same deal. | ||
p6eval | rakudo c8de2e: OUTPUT«(timeout)» | ||
masak | the '^' doesn't protect you from falling off the edge. | ||
alec | k | ||
yeah | |||
masak | aleph_0 minus one is still aleph_0 ;) | ||
alec | yeah | ||
looking now at $rna.substr($_, 3) ... does .substr take 2 args always? | 17:02 | ||
FROGGS | I guess not | 17:03 | |
r: say 'ABC'.substr(1) | |||
p6eval | rakudo c8de2e: OUTPUT«BC» | ||
FROGGS | alec: just try | ||
r: say 'ABC'.substr(1, Inf) | |||
p6eval | rakudo c8de2e: OUTPUT«BC» | ||
masak | r: say 'ABC'.substr(1, Inf + 7) | ||
p6eval | rakudo c8de2e: OUTPUT«BC» | ||
FROGGS | thats a bit abstract but it is clear what it does | ||
alec | 'EUEO>P'.substr(4,6) | 17:05 | |
r: say 'EUEO>P'.substr(4,6) | |||
p6eval | rakudo c8de2e: OUTPUT«>P» | ||
alec | ok, yeah | ||
17:05
SamuraiJack joined
|
|||
FROGGS | r: say 'æðŋ¶ħŧħ'.substr(2,1) | 17:06 | |
p6eval | rakudo c8de2e: OUTPUT«ŋ» | ||
FROGGS | unicode safe^^ | ||
alec | r: say 'EUEO>P'.chars-3 | ||
p6eval | rakudo c8de2e: OUTPUT«3» | ||
alec | r: say 'EUEO>P'.substr(4,3) | 17:10 | |
p6eval | rakudo c8de2e: OUTPUT«>P» | ||
alec | r: say 'EUEO>Pe'.substr(4,3) | ||
p6eval | rakudo c8de2e: OUTPUT«>Pe» | ||
alec | r: say 'EUEO>Pepppp'.substr(4,3) | 17:11 | |
p6eval | rakudo c8de2e: OUTPUT«>Pe» | ||
alec | ok | 17:12 | |
so what does the word shift do? | |||
like there's this line: | |||
hoelzro | so I'm nearly "done" with my pygments lexer for Perl6, and I'd like to get people to test it out. What would be the best way of informing the Perl6 community so they could test it out? | ||
e-mail? blog post? | |||
alec | my $rna = shift @introns; | ||
i know what it does, just don't know how it does it | 17:13 | ||
FROGGS | it retrieves the first array element by removing it and returns it to $rna | 17:14 | |
I hope that you mean that by "how" | |||
alec | ok | 17:17 | |
yes | |||
ok, one more thing i can't figure out | |||
how do {} work? | |||
FROGGS | what, a code block? | ||
alec | print %conv{ $rna.substr($_, 3) } for 0,3...^$rna.chars-3; | ||
as in those ones | |||
FROGGS | ahh, %conv is a hash | 17:18 | |
alec | for @introns -> $d { $rna ~~ s/$d// } | ||
and those ones | |||
the {} | |||
curly braces | |||
FROGGS | you can access the elements by keys, like: %hash<key> or %hash{'key'} | ||
alec | ok | ||
FROGGS | the second one allows you to put functions there, the first one automatically quotes the string | ||
alec | ok | 17:19 | |
FROGGS | the for loop you posted is like: for RANGE BLOCK | ||
alec | aren't they both for loops? | ||
FROGGS | and the block is surrounded by { and } | 17:20 | |
ahh, yes | |||
the second for loop I ment | |||
isBEKaml | hoelzro: I don't think we are a big enough community to have preset standards. Why not do both? mail p6u, blog and push it to some of the many news aggregators. :) | ||
alec | ok | ||
hoelzro | isBEKaml: ok =) | ||
isBEKaml | hoelzro++ #pygments | 17:21 | |
FROGGS | for loop syntax a): for RANGE BLOCK, where BLOCK is { STATEMENT;: STATEMENT }, or b) STATEMENT for RANGE; | ||
the b) is called statement modifier syntax | |||
because the statement comes first | 17:22 | ||
alec | gotcha | ||
yes, i could see the syntax differed slightly... | 17:23 | ||
FROGGS | ohh, forget about the : before STATEMENT, thats a typo | ||
alec | ok | ||
FROGGS | statements are devided by ; and grouped by { } | 17:24 | |
alec | ok | ||
FROGGS | like in many other popular languages | ||
Ayiko | hi #perl6 :) | ||
alec | yes | ||
hi Ayiko | |||
are you the same Ayiko as wrote rosalind.info solutions? | |||
Ayiko | I see my Rosalind toying got someone interested in perl6 :) | 17:25 | |
alec | yep | ||
i'm studying the one you wrote for SPLC now | |||
i've pretty much worked out what every line does | |||
i don't know any perl5... perl6 just looks cool though | |||
FROGGS | it does, ya | 17:26 | |
Ayiko | I do warn you, my tries are not officially approved as the recommended way to write perl6 :) | ||
alec | i figured, Ayiko, but works for me... | 17:27 | |
i have this song called ayiko stuck in my head now | |||
Ayiko | there's a song? Oo | ||
alec | yeah. i used to listen to it all the time. lemme see if i can find it | 17:28 | |
FROGGS is dancing to paul simon right now... you can call me al | |||
alec | www.youtube.com/watch?v=gI3ymHyXj8k | 17:30 | |
Ayiko | heh, not too bad :) | 17:32 | |
alec | brings back memories | 17:33 | |
alec sheds a tear | |||
FROGGS | cant see it in germany -.- | ||
alec | i just split up with my wife, she and i used to listen to that when we lived in cyprus | ||
Ayiko | move a bit to the left, in Belgium it works :) | ||
alec | lol | ||
hoelzro | what's the difference between $?ROLE and ::?ROLE? | ||
masak | hoelzro: the latter returns a Str, according to S28. | 17:39 | |
hoelzro | I see | ||
masak | feels a little bit useless to me, actually. | 17:40 | |
since you can get the Str from $?ROLE, I mean. | |||
I move for deletion of '::?ROLE'. | |||
hoelzro | is ::? special? | ||
I'm guessing it's :: for the main namespace + ? for the compiler value? | 17:41 | ||
17:52
pmurias joined
|
|||
hoelzro | ok, time for the ultimate test: rakudo/src/Perl6/Grammar.pm! | 17:55 | |
masak | :) | 18:03 | |
alec: nice music. thank you. | 18:07 | ||
18:07
lolage joined
|
|||
masak | alec: also, it's really nice to see you ask the right questions and get good answers from the channel. keep up the good work. :) | 18:07 | |
alec | great. i'll just keep studying Ayiko's rosalind.info solutions, then | 18:11 | |
they're the whole reason i want to learn perl6 | |||
Ayiko | oh boy, I'll need to get to work on more solutions then :) | ||
alec | lol | ||
how many have you done? | |||
i was looking at one you did about a week ago | |||
dec 20 it was posted | 18:12 | ||
isBEKaml | 'night, folks! | ||
alec | night | ||
masak | 'night, isBEKaml | ||
18:12
isBEKaml left
|
|||
masak | Ayiko++ # dragging people in | 18:12 | |
Ayiko | 34 solved, but 2 without programming, 2 with perl5 due to performance issues :s | ||
alec | ok | ||
i've solved about 7, 2 without programming as well | |||
the first 2 | 18:13 | ||
Ayiko | oh, and 5 were done in python due to them being the python intro :) | ||
r: grammar A { regex TOP { { return say "hi"; }};}; A.parse(''); | 18:19 | ||
p6eval | rakudo c8de2e: OUTPUT«hi» | ||
Ayiko | r: grammar A { regex TOP { { for ^2 { return say "hi"; }}};}; A.parse(''); | ||
p6eval | rakudo c8de2e: ( no output ) | ||
Ayiko | r: grammar B { regex TOP { { for ^2 { return say "hi"; }; say ':('; }};}; B.parse(''); | 18:21 | |
p6eval | rakudo c8de2e: OUTPUT«hiCan not get attribute '$!storage' declared in class 'Parcel' with this object in method reify at src/gen/CORE.setting:5409 in method gimme at src/gen/CORE.setting:5797 in method sink at src/gen/CORE.setting:6073 in regex TOP at /tmp/DigN8MZ9gK:1 in met… | ||
Ayiko | I'm not sure if there are any specs for what to return from a code block or using return to drop out of grammar parsing completely | 18:23 | |
18:24
Tim-Tom left
18:43
SamuraiJack left
18:45
werwerwer joined
|
|||
masak | Ayiko: generally, {}-style code blocks in rules don't return anything. I think the 'return' there is messing things up for you. | 18:47 | |
Ayiko | well, the for loop messes it up, my objective is to stop parsing completely | 18:49 | |
exit works but is a bit too much | |||
I'm guessing <commit> <!> would work, but <commit> is NYI | |||
arnsholt | There's a magic rule to bug out of parsing, IIRC | 18:50 | |
<panic: "Reason"> I think | |||
masak | STD.pm6 actually implements 'panic' as a method. | 18:52 | |
it's at STD:6103. | 18:53 | ||
r: repeat while False { "foo" ~~ / 'f' { say "got here" } 'o' { last } / }; say "after the loop" | 19:00 | ||
p6eval | rakudo c8de2e: OUTPUT«got hereNull PMC access in find_method('sink') in block at /tmp/RCzcgxM5lQ:1» | ||
masak | wohoo! | ||
masak submits rakudobug | |||
how 'bout that :D | |||
Merry Null PMC Christmas, everybody. | 19:01 | ||
19:15
denisboyun_ joined
19:16
GlitchMr left
19:20
erkan left
19:24
erkan joined
|
|||
flussence | .oO( and a .happy given Year.new ) |
19:29 | |
19:29
denisboyun_ left
|
|||
masak | oh, bet no-one has done this since before Christmas ;) | 19:30 | |
r: say Date.new | |||
p6eval | rakudo c8de2e: OUTPUT«2013-12-24» | ||
masak | :D | ||
flussence | lol | 19:34 | |
arnsholt | =D | 19:35 | |
19:35
rummik left
|
|||
flussence | p.s. useful idiom I found the other day: ".method given Thing.new(gigantic param list)" is easier to understand than normal postfix calls, especially when there's several \n's between those ()'s | 19:37 | |
19:37
arkydo joined
|
|||
arnsholt | Ooh, neat | 19:39 | |
19:57
cognominal joined
20:01
GlitchMr joined
20:08
SmokeMachine left
20:12
colomon left
20:13
cognominal left,
colomon joined
20:14
skids left
|
|||
masak | Rich Hickey explains reducers in Clojure. vimeo.com/45561411 -- sort of a part II of Steele's presentation about conc/parallelism. | 20:18 | |
20:19
cognominal joined
|
|||
masak | a couple of parallels with Perl 6. his 'fold' feels like our 'hyper', for example. | 20:19 | |
moritz always thought a "fold" was more like a reduce | 20:22 | ||
masak | he's doing a little bit of a redefinition trick in introducing "fold". | 20:23 | |
GlitchMr | I've seen thedailywtf.com/Articles/Out-of-All...swers.aspx - and I thought "what" | ||
masak | he says "there's 'foldl' and 'foldr' and stuff, but my 'fold' is order-agnostic" | ||
GlitchMr | After that, I've seen github.com/perl6/perl6-examples/bl...5-unobe.pl - and I also thought "what" | ||
I'm going to put my solution. prob005-unobe is way too verbose | 20:24 | ||
dalek | pan style="color: #395be5">perl6-examples: 30bb349 | (Konrad Borowski)++ | euler/prob005-glitchmr.pl: [euler] add solution for problem 5 |
20:26 | |
GlitchMr | Enjoy | ||
20:27
ServerSage joined
|
|||
GlitchMr | perl6: say [lcm] 1..20 | 20:27 | |
p6eval | rakudo c8de2e, niecza v24-12-g8e50362: OUTPUT«232792560» | ||
GlitchMr | Solved. | ||
masak | ;) | 20:28 | |
that's... pretty. | |||
♥ | |||
GlitchMr | Simple mathematic problem. | 20:29 | |
This is what is really short in Perl 6. | |||
masak | at least part of Mr Hickey's idea here seems to be to talk about collections and reducers separately. so collections can have a say on how they are to be reduced. but if they don't want to they don't have to; the reducers will just pick some default strategy. | 20:30 | |
20:31
arkydo left
20:34
arkydo joined
|
|||
GlitchMr | I guess it would be short in Haskell too | 20:35 | |
Prelude> foldl1 lcm [1..20] | 20:36 | ||
232792560 | |||
Close enough | |||
20:38
Kharec joined
20:44
bruges_ joined
20:46
bruges left
|
|||
hoelzro | how *does* one get 1,3...10 to terminate after reaching 10? | 20:58 | |
I want to create an odd-numbered sequence up to a user-supplied value | |||
moritz | r: say 1, 3 ...^ *>10 | ||
p6eval | rakudo c8de2e: OUTPUT«1 3 5 7 9» | ||
hoelzro | oh, I see... | 20:59 | |
that's...really cool. | |||
masak | all the previous solutions turned out to be too special-cased. | 21:02 | |
this one makes sense, as long as people know about the dangers of triggering actual infinities. | 21:03 | ||
21:03
Targen_ joined
21:04
Targen left
21:06
GlitchMr left
|
|||
hoelzro | r: my $divisor = 2; say(* != $divisor && * %% $divisor); | 21:07 | |
p6eval | rakudo c8de2e: OUTPUT«===SORRY!===Error while compiling block : Error while compiling op call: Error while compiling block : Error while compiling op call: Error while compiling op if: if block expects an argument, but there's no immediate block to take it» | ||
hoelzro | I take it that more than one * in an anonymous sub isn't legal? | ||
moritz | it is, in general | 21:08 | |
and I'm sure you shouldn't get an internal error like that | |||
hoelzro | heh | ||
moritz | but I can imagine that && (which thunks) and * get in each other's way | ||
r: say (* + *).(2, 40) | |||
p6eval | rakudo c8de2e: OUTPUT«42» | ||
hoelzro | any advice for a whatever expression that says "anything divisible by, but not equal to, $divisor"? | 21:09 | |
masak | 'night, #perl6 | ||
hoelzro | o/ masak | ||
moritz | hoelzro: does have to be a whatever-expression? | 21:10 | |
just use a block | |||
21:10
pmurias left
|
|||
moritz | { $_ %% $divisor && $_ != $divisor } | 21:10 | |
hoelzro | moritz: I'm just trying different things out | ||
moritz | note that if you use two stars, they are counted as two different arguments | ||
hoelzro | ah ha | ||
moritz | so it won't work for your case anyway | 21:11 | |
Ayiko | r: say ((* < 5 and * > 5)(4,6)) | 21:15 | |
p6eval | rakudo c8de2e: OUTPUT«===SORRY!===Error while compiling block : Error while compiling op call: Error while compiling block : Error while compiling op call: Error while compiling op call: Error while compiling op if: if block expects an argument, but there's no immediate block to take i… | ||
moritz | r: * == 5 // | 21:16 | |
p6eval | rakudo c8de2e: OUTPUT«===SORRY!===Two terms in a rowat /tmp/dNfXbcrAHN:1------> * == 5 //⏏<EOL> expecting any of: postfix infix or meta-infix infix stopper» | ||
moritz | r: * == 5 // True | ||
p6eval | rakudo c8de2e: ( no output ) | ||
moritz | r: * == 5 // * == 8 | ||
p6eval | rakudo c8de2e: ( no output ) | ||
Ayiko | r: say ({* < 5 and $^a > 5}(6)) | ||
p6eval | rakudo c8de2e: OUTPUT«True» | ||
moritz | r: say (* == 5 // * == 8)(5, 8) | 21:17 | |
p6eval | rakudo c8de2e: OUTPUT«Too many positional parameters passed; got 2 but expected 1 in block at /tmp/N582co1YRe:1» | ||
moritz submits rakudobug | |||
colomon | n: say (* == 5 // * == 8)(5, 8) | 21:19 | |
p6eval | niecza v24-12-g8e50362: OUTPUT«True» | ||
21:24
cognominal left
21:25
arkydo left
21:33
REPLeffect left,
REPLeffect joined,
snearch joined
21:44
LlamaRider left
|
|||
flussence | my panda's broke. "No object at index 164", and rebootstrap.pl fails too :( | 21:53 | |
21:54
cognominal joined
|
|||
moritz | rm -rf `perl6 -e 'say %*CUSTOM_LIB<site>`; cd panda; git clean -xdf; # that's basically what I do in such cases | 21:55 | |
flussence | looks like bootstrap.pl is doing something now... thanks | 21:56 | |
21:56
thou left
21:57
erkan left
21:59
thou joined
22:00
snearch left
22:07
skids joined
|
|||
bbkr | I cannot figure out why read on socket returns only 256bytes despite requested length given on 2012.12. it completely breaks LWP::Simple and MongoDB :( | 22:08 | |
flussence | ARGH | 22:10 | |
still broke :( | |||
hoelzro | one can use any delimiter for m/.../ just like q/.../ and rx/.../, right? | ||
22:12
noggle left
|
|||
bbkr | I cannot figure out why read on socket returns only 256bytes despite requested length given on 2012.12. it completely breaks LWP::Simple and MongoDB :( | 22:15 | |
sorry about duplicate above :) | |||
Ayiko | hoelzro: m{} and m// work, other things I tried fail: (), <>, §§, !! | 22:16 | |
hoelzro | Ayiko: as far as () goes, you probably need an extra space | 22:17 | |
tadzik | bbkr: well, should it return _at least_ 256, or _no more than_ 256? | ||
hoelzro | r: $_ = 'foo'; m (o); say $/ | ||
p6eval | rakudo c8de2e: OUTPUT«「o」» | ||
tadzik | I suspect the latter, which will be quite alright | 22:18 | |
but I don't like broken LWP::Simple either ;) | |||
Ayiko | bbkr, that generates test results like: Dubious, test returned 1 (wstat 256, 0x100) when trying to panda install LWP::Simple? | ||
tadzik | yes | ||
bbkr | Ayiko, yes | ||
tadzik: there is $sock.read(2048); in the code and it returns Buf with size of 256 despite more bytes available. $sock.read(4) works fine. it has problem with fetching anything above 256 bytes | 22:20 | ||
Ayiko | aha, just got me tripped up too (HTTP::Client fails too, but that tries to fetch 127.0.0.1:8080/test.txt ) | ||
22:21
kaare_ left
|
|||
sorear | bbkr: you're supposed to keep calling .read until either it returns zero or you have all the bytes | 22:22 | |
bbkr | sorear, what is the point of length argument then? | 22:23 | |
sorear | bbkr: 256 seems a little buggy but in general, packet size limits will prevent you from getting all the data at once, and Berkeley sockets systems will return partial data rather than wait for future packets | ||
bbkr: allows you to set an upper limit on the amount to read | |||
tadzik | C legacy, eh | 22:24 | |
22:25
Chillance left
|
|||
sorear | even without the C legacy an upper limit is sometimes useful | 22:25 | |
tadzik | sure | ||
sorear | like if you have Content-Length data and you want to avoid accidentally reading part of the next headr | ||
tadzik | next header? | 22:26 | |
bbkr | sorear, looks like meaning of this param was misunderstood in few modules. knowing what it does i'll try to bring LWP::Simple to life | ||
sorear | tadzik: pipelining | ||
tadzik | bbkr: I just got to it :) | ||
today I learned about HTTP pipelining :) | 22:27 | ||
flussence | pipelining is turned off by default more often than not :( | ||
sorear | bbkr: i'm telling you what it should do. whether it actually does that is another matter. | 22:30 | |
can you still crash the perl 6 http server by sending a request "BOB / HTTP/1.0\r\n\r\n" ? | 22:31 | ||
I remember it used to spectacularly mishandle the unknown-request-method error | |||
tadzik | it's possible | 22:34 | |
they can be brought down by an nmap scan too | |||
bbkr | BTW: supernovus created refactored 2.0 branch of HTTP::Client. it's not ready yet but looks very promising and worth including in Star once finished. | 22:36 | |
tadzik | where did Devel::Trace go :( | 22:37 | |
oh, it just doesn't work with -M | 22:38 | ||
and the code doesn't hang when I use it. Crap | 22:40 | ||
bbkr | hm, spec for IO::Socket.read says "Reads and returns $bytes bytes from the handle". not "up to $bytes bytes". so LWP::Simple is using it correctly - read(2048) should return 2048 bytes from the handle if available, not just one chunk of 512 bytes | 22:42 | |
flussence | (I've half a mind to give up and start using monthly releases of rakudo; I know there were good reasons for no longer using ~/.perl6/ but it's caused nothing but grief for me since then) | ||
sorear | and it doesn't even support HTTP 0.9 | ||
bbkr: that sounds pretty awful | 22:43 | ||
I wish I had time to rewrite all the specs | |||
bbkr | so is it spec bug (the param means upper limit), or rakudo bug ? | 22:44 | |
hoelzro | damn; I was hoping to be able to push out a "preview" version of my pygments lexer tonight =( | 22:46 | |
Grammar.pm says no | |||
sorear | bbkr: my hubris is telling me the spec is wrong and sockets should always follow a Berkeley-esque interface | 22:48 | |
bbkr | sorear, thanks, i'll fill issue in perl6/specs repo | 22:49 | |
tadzik | bbkr: well, so, uh, how is this HTTP::Client 2.0? :) | 22:50 | |
I tried fixing LWP::Simple and failed | |||
it mostly doesn't hang now, but still fails all the tests | |||
and hangs on t/get-unsized.t | 22:51 | ||
the code never checks if it should maybe stop read() ing if it returned 0 | |||
oh, it went through after a few minutes | 22:52 | ||
bbkr | tadzik: it's labeled as "still incomplete and even more broken" :) | ||
tadzik | :) | 22:53 | |
fair enough | |||
22:53
PacoAir left
22:54
Kharec left
|
|||
tadzik | bbkr: I've made it a bit better (I think) at github.com/tadzik/perl6-lwp-simple/ | 22:55 | |
if you want to go further with it | |||
bbkr | i'll test it. also worth replacing in Star repo so it won't be released with broken version. | 23:02 | |
23:04
Targen_ left
23:09
Targen joined
|
|||
bbkr | sorear, read() issue reported in github.com/perl6/specs/issues/26 | 23:15 | |
flussence | bah, I give up. Rebuilt after deleting my rakudo install directory entirely and I still get the same error in panda as before. | 23:22 | |
tadzik | do you still have ~/.perl6 around? | 23:23 | |
flussence | nope | ||
tadzik | mess in panda directory? | ||
I mean the source from where you bootstrap it | |||
like leftover .pirs | 23:24 | ||
flussence | I've run git clean -dfx in there a few times, and it's up to date | ||
23:30
lorn left
23:33
lorn joined
23:35
japhb_ joined
23:40
spider-mario left
|
|||
flussence | okay, I *think* I've got it to work using r 2012.11 from distro packages now... | 23:55 |