»ö« 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:08 xilo joined 00:12 cognominal__ left 00:17 xinming left
dalek ecs: 64cfaac | larry++ | S32-setting-library/Containers.pod:
add List.permutations
00:18
00:18 xinming joined, cognominal joined 00:21 pmurias left 00:29 felipe left, xilo left, mattp_ left, alester left, yakshavr left, clkao left, Exodist left, telex left, Khisanth left, ashleyde1 left, sjohnson left, cxreg left, preflex left, bonsaikitten left, fgomez_ joined, fgomez left 00:30 bonsaikitten joined, wtw left, orafu left, orafu joined 00:31 preflex joined, wtw joined 00:39 xilo joined, mattp_ joined, alester joined, yakshavr joined, clkao joined, Exodist joined, telex joined, Khisanth joined, ashleyde1 joined, sjohnson joined, cxreg joined, kshannon joined, telex left 00:40 telex joined 00:45 gdey left, isomorphisms left 01:00 Targen left 01:01 am0c joined 01:02 lustlife joined 01:03 Targen joined 01:05 anuby joined, LlamaRider left 01:10 moca left 01:16 hypolin joined 01:20 cognominal left 01:23 cognominal joined, fgomez_ left 01:24 raiph joined
raiph there's a new reddit channel: www.reddit.com/r/readablecode/ 01:27
01:29 cognominal left, cognominal joined, isomorphisms joined
raiph it would be interesting to see reactions to p6 code 01:31
stuff that is specifically written for readability by non p6 users
and other code that is well written but decidedly idiomatic 01:32
01:33 lichtkind__ is now known as lichtkind
lichtkind is it right that in perl 6 there is no builder clearer predicate and so on methods 01:34
or are they part of the metaobject?
sorear builder, clearer, and what not are Moose things, they don't have any counterpart in perl 6 01:36
maybe someday Moose::Meta::Attribute will be ported 01:37
01:41 fgomez joined 01:43 quester joined
lichtkind thanks sorear, that was my opinion too but since i will give a talk i rather double check 01:43
and predicate too? 01:44
01:45 LlamaRider joined, thou left 01:47 cognominal left
raiph golly. says readablecode is 12 hours old and has 2,770 subscribers already... 01:51
LlamaRider Q: Is there a simple way to turn a string into a regexp object? Or is there even a need for that, or I can just use /$mystring/ as if it were a regexp? 01:52
hm, it seems I can use a $var directly without casting it into a regexp... only wondering if that has any performance drawbacks 01:58
TimToady rosettacode.org/wiki/Universal_Turi...ine#Perl_6 # finally, proof that Perl 6 is Turing Complete! 02:01
well, at least niecza is
obviously rakudo isn't turing complete since it can't even do a goto :) 02:02
r: label: say "foo"; goto label; 02:04
p6eval rakudo 11157e: OUTPUT«===SORRY!===␤Two terms in a row␤at /tmp/MXd0ygaZYm:1␤------> label⏏: say "foo"; goto label;␤ expecting any of:␤ argument list␤ postfix␤ infix or meta-infix␤ infix stopper␤ statement end␤ …
TimToady in fact, can't even parse a label, seems
LlamaRider: if you use a string directly, it's matched literally, as if you'd used \Q$mystring\E in p5 02:06
you need /<$mystring>/ if you want it interpreted as regex 02:07
LlamaRider TimToady: I am just experiencing that and scratching my head.
02:07 raiph left
TimToady this is where you discover that P6 regexen are a language, not just strings (as they are in P5) 02:08
hence we can make the default for $mystring to match literally, becuase it's not done by interpolation into a string
note the same applies to variables like $0, so they are also matched literally
LlamaRider very interesting... thanks! 02:09
TimToady nr: say 'Paris in the the spring.' ~~ /(\w+\s)$0/ 02:10
p6eval rakudo 11157e, niecza v24-31-g7d73dd1: OUTPUT«「the the 」␤ 0 => 「the 」␤␤»
TimToady nr: say 'Paris in the the spring.' ~~ /(\w+\s)<$0>/ 02:11
p6eval niecza v24-31-g7d73dd1: OUTPUT«「the the」␤ 0 => 「the 」␤␤»
..rakudo 11157e: OUTPUT«#<failed match>␤»
TimToady ooh, rakudobug maybe
notice that the literal space no longer matches, since whitespace is ignored by default in regex now 02:12
and the <$0> form treats 'the ' as a regex
so we don't the whitespace after the 2nd 'the'
LlamaRider cool :) 02:13
also a potential gotcha when you're not careful. Oh, does that mean that \0, \1 and so on are no longer used?
TimToady std: /(foo) \1/ 02:14
p6eval std 692eb4f: OUTPUT«===SORRY!===␤Unsupported use of the 1-based special form '\1' as a backreference; in Perl 6 please use the 0-based variable '$0' instead at /tmp/JwpoTm2sUa line 1:␤------> /(foo) \1⏏/␤Check failed␤FAILED 00:00 42m␤»
TimToady yes, those are no longer necessary, since we now match $0 literally 02:15
sorear \0 matches a NUL character. AFAIK it always has
02:15 huf left
sorear (well, since p3 anyway) 02:16
TimToady just one of the many places where P6 has swapped around the defaults to something more sensible than P5
LlamaRider I was writing $1 instead of $0 today, I hope I don't write \0 instead of \1 in P5 tomorrow...
02:16 autark left
TimToady we can't catch that, for the reason sorear++ pointed out 02:16
though we can probably notice when we're one off the end of a Match positional list and suggest an off-by-one error 02:18
(at runtime, presumably)
LlamaRider Hm, my optimization backfired... I had ported regex code that was running 100 regex tests, each with a small acronym. I merged the 100 acronyms into a pretty optimized regex, and now Rakudo takes 10 times as much time for doing a single test. 02:22
I wonder if the process using 2.2 GB of RAM has anything to do with that O_O 02:26
02:27 raiph joined 02:34 rindolf joined 02:36 stevan_ joined 02:38 gdey joined
LlamaRider I wonder if the process using 2.2 GB of RAM has anything to do with that O_O 02:44
ah, sorry for double-posting :/ clumsy window management 02:45
r: my $rex='rex'; say "Rex" ~~ m:i/$rex/; say "Rex" ~~ m:i/<$rex>/; 02:50
p6eval rakudo 11157e: OUTPUT«「Rex」␤␤#<failed match>␤»
LlamaRider n: my $rex='rex'; say "Rex" ~~ m:i/$rex/; say "Rex" ~~ m:i/<$rex>/;
p6eval niecza v24-31-g7d73dd1: OUTPUT«False␤False␤»
02:50 raiph left
LlamaRider now this looks awkward... 02:50
02:56 raiph joined, stevan_ left 02:57 stevan_ joined
LlamaRider r: my $rex=rx:i/rex/; say "Rex" ~~ m:i/$rex/; say "Rex" ~~ m:i/<$rex>/; 03:01
p6eval rakudo 11157e: OUTPUT«「Rex」␤␤「Rex」␤␤»
LlamaRider n: my $rex=rx:i/rex/; say "Rex" ~~ m:i/$rex/; say "Rex" ~~ m:i/<$rex>/;
p6eval niecza v24-31-g7d73dd1: OUTPUT«「Rex」␤␤「Rex」␤␤»
LlamaRider I guess this isn't much of an insight, but it is a usable workaround ... for now.
03:02 raiph left 03:05 raiph joined
LlamaRider and using the rx:i// workaround I sped things up a factor of 10 from the original, while the buggy version was 10 times slower. Nice! 03:07
I guess manipulating rx objects directly would be the way to go for now.
03:10 LlamaRider left 03:12 orafu left, OuLouFu joined, OuLouFu is now known as orafu 03:16 raiph left 03:20 raiph joined 03:24 anuby_ joined, anuby left 03:32 quester left 03:46 sizz joined
dalek blets: 4184d60 | (Herbert Breunung)++ | docs/appendix-a-index.txt:
added also to A
03:50
03:51 raiph left 04:20 mattp_ left 04:26 mattp_ joined 04:40 SamuraiJack joined 04:54 preflex_ joined 04:56 preflex left, preflex_ is now known as preflex 05:08 dayangkun left, awwaiid left 05:32 kaleem joined 05:37 gdey left 05:39 wk left 05:45 felipe joined, jaldhar_ left 05:49 daniel-s left 05:53 rindolf left 05:54 rindolf joined 06:04 arlinius left 06:07 rindolf left, rindolf joined, xilo left 06:10 jaldhar_ joined 06:15 xilo joined 06:17 raiph joined 06:29 rindolf left, rindolf joined
dalek ast: 44024a8 | larry++ | S05-match/positions.t:
Failed match returns Nil
06:33
ecza: 4b68456 | larry++ | lib/CORE.setting:
Failed matches return Nil
06:34
lue Is just me, or is S02/Names and Variables/Twigils identical to S02/Literals/Interpolation Rules/Twigils ? (Also, the link to the second one in the ToC on the HTML version goes to the first) 06:42
06:42 dwoldrich joined
TimToady yes, the tag does not contain the outer headers as part of its identity, which is bogus 06:44
lue my main issue was with the redundancy though. 06:47
TimToady you can say that again 06:49
lue would suggest leaving just the interpolation ¶ in the second Twigil section, and removing the same ¶ from the first Twigil section
06:52 rindolf left, rindolf joined
TimToady well, better would be to fix the tool to include the outer headers in the identity 06:52
lue wonders where the Pod gets transformed to HTML 06:57
TimToady possibly by mu/util/podhtm.pl, but that might also be a fossil 07:01
07:02 salv0 left
diakopter lue: which Pod? 07:03
oh, the Syn? runs on feather; au and agentzh and moritz (and TimToady?) worked on it.. 07:04
lue S02. We have a problem with two sections headed "Twigil" in S02. TimToady suggested changing the tool.
diakopter can't remember the .pl name
lue fears the tool in question is a P5 one
07:04 kaleem left
diakopter your fears are confirmed 07:04
lue
.oO(Maybe if I start working on Pod6 support tomorrow, we can eventually convert all the specs over)
07:06
07:11 FROGGS joined 07:20 wk_ joined 07:25 rindolf left, fhelmberger joined 07:26 rindolf joined, salv0 joined 07:37 rindolf left 07:38 rindolf joined
rindolf Hi all. 07:42
07:42 mberends left
rindolf Hi TimToady , diakopter : what's up? 07:42
diakopter :)
07:48 salv0 left 07:53 isomorphisms left 08:03 salv0 joined
diakopter hmm, Mark Hamill and Carrie Fisher would have to lose 200 and 100 lbs, respectively, to be anything but absurd in this new movie 08:03
because that's just not what happens to athletic heroes 08:04
"oh, and, in addition to your $30 million fee, we'll supply a team of trainers, doctors, and chefs to prepare you for 2 years" not to mention cosmetic surgeons 08:13
08:16 rindolf left 08:17 rindolf joined, awwaiid joined
tadzik so they are playing in those movies? 08:17
labster I just assume that they'll add their faces in afterwards using CG. It will all just be Andy Serkis in a motion-tracking suit.
08:22 awwaiid left
diakopter hee 08:23
labster .oO (When will Perl 6 be movie production ready?) 08:25
08:29 awwaiid joined 08:35 rindolf left 08:36 rindolf joined 08:37 daxim joined 08:39 sqirrel joined
jnthn morning o/ 08:39
diakopter o/
o / 08:40
o /
jnthn stop-motion ascii-art?
felher diakopter: was this an attempt to high-five? 08:42
diakopter someone pulled my arm off 08:43
jnthn Seems you can still type one-handed.
felher sounds painful... 08:44
diakopter moritz: while allison's "no real-world users" might not technically be accurate, the point stands just as strongly because it really is effectively/essentially zero/infinitesimal-in-comparison-to-everything-else 08:47
moritz diakopter: it's not small in comparison to the numbers rakudo had one year earlier 08:48
and I'm kinda allergic to allison spreading her worldview of 2008/2009 about rakudo and selling it as today's reality 08:49
s/of/from/ 08:50
diakopter ok
08:53 kresike joined
kresike hello all you happy and unhappy perl6 people 08:53
s/and/or/ 08:54
sorear "and" works there
it's functioning as a set union, not a logical conjunction
diakopter also, a person can be both happy and unhappy 08:55
08:56 rindolf left, rindolf joined, hoelzro|away is now known as hoelzro
diakopter (or at least cycle back and forth between them extremely quickly) 08:56
kresike need more coffee to boot up logic engine ☺ 08:57
diakopter quickly *and frequently, I mean 08:59
08:59 pmurias joined 09:07 am0c left 09:12 curtispoe left 09:21 kivutar joined 09:28 woolfy joined 09:30 rindolf left, rindolf joined
hoelzro goede morgen #perl6 09:32
FROGGS guten morgen hoelzro
hoelzro so I was looking at the Perl 6 grammar last night, and I noticed a token "openers", which is all of the opening bracket characters 09:37
how are the corresponding closing chars calculated?
and where in the code does that happen? 09:38
diakopter which Perl 6 grammar? one in Rakudo or STD?
moritz somewhere there's a big hash table
FROGGS hoelzro: this? github.com/perl6/nqp/blob/master/s...mmar.pm#L4 09:41
but I believe there are other places too 09:42
09:44 rindolf left, wtw left, woosley left, rindolf joined 09:47 wtw joined
hoelzro diakopter, FROGGS: the Rakudo grammar 09:48
09:48 woosley joined, woosley left 10:00 hypolin left 10:03 rindolf left 10:04 rindolf joined 10:17 huf joined 10:19 rindolf left 10:20 crab2313 joined, sttau joined 10:24 am0c joined 10:25 anuby_ left
dalek kudo-js: 14fcfcd | (Pawel Murias)++ | runtime/serialization.js:
Fix all errors returned gjslint --nojsdoc runtime/serialization.js besides the 80 lines limit.
10:28
kudo-js: 3b01b6c | (Pawel Murias)++ | runtime/serialization.js:
Shorten lines to 80 chars, so that gjslint --strict --nojsdoc runtime/serialization.js passes
FROGGS hoelzro: for one thing: Perl6::Grammar _is_ HLL:Grammar (does STD) 10:29
and then when defining a circumfix:sym<[ ]>, it splits the symbol by the space char, and I think it just uses the char after the space, whatever it is 10:30
10:30 Vlavv_ left
FROGGS that's here github.com/rakudo/rakudo/blob/nom/...r.pm#L3439 10:31
jnthn Or chars, if it's more than one. 10:32
Is this trying to fix the user defined circumfixes? 10:33
FROGGS ohh ya
jnthn I think I saw in the backlog something about them being whitespace-sensitive? 10:34
hoelzro jnthn: I'm trying to improve pygments' perl 6 lexer
jnthn hoelzro: oh!
:)
hoelzro the list of opening/closing brackets is currently wrong
jnthn Then ignore my babbling :)
hoelzro =
=)
I wish Rakudo (esp. the grammar) weren't so dense 10:35
it presents a serious challenge to start helping =/
jnthn Well, the grammar is big 'cus it's parsing a big language. 10:37
I'm not sure what we can do about that...
hoelzro true 10:38
I tried wrapping my head around the part that parses class $name $traits { ... } as well o_O
jnthn Well, much that is in package_def is not about parsing so much as registering the new symbol 10:39
hoelzro yeah
I'm a novice, but it seems to me that most of that work should go into Actions.pm?
jnthn The action methods run after something has been parsed 10:40
By we need symbols to exist from the point they are declared, as it influences the rest of the parse.
*But
hoelzro oh, ok
that makes sense
pmurias jnthn: re "what we can do?", puting things that are explained on irc into comments would be one good thing ;) 10:43
hoelzro pmurias++
10:44 sttau left 10:50 labster left 10:53 kaleem joined 10:54 dwoldrich left 11:02 not_gerd joined
not_gerd o/ 11:02
I just added github.com/rakudo/rakudo/wiki/Real-World-Usage to the github wiki
hoelzro not_gerd++ 11:07
I should add my XMPP bot to there
dalek kudo/md-nqp: 6191f6d | jnthn++ | src/Perl6/Metamodel/BOOTSTRAP.pm:
Start porting multi-dispatcher to NQP.

Some of the complex bits are commented out, and it doesn't quite work yet, but this gets the overall algorithm translated.
11:17
11:30 Khisanth left 11:31 rurban joined 11:33 thundergnat joined
thundergnat r: 1 cmp 2 cmp 3 11:36
p6eval rakudo 11157e: OUTPUT«===SORRY!===␤Operators 'cmp' and 'cmp' are non-associtiave and require parenthesis␤at /tmp/CwHYhIaBx8:1␤------> 1 cmp 2 ⏏cmp 3␤ expecting any of:␤ postfix␤ infix or meta-infix␤ infix stopper␤»…
thundergnat associtiave? 11:37
^^ I would fix but lack rakudo commit bits.
jnthn hm, ain't the message in NQP...
ah, no, it's in Rakudo 11:38
11:39 araujo left
grondilu what do you guys think about J? (I've been reading about it since yesterday, and so far I like it) 11:39
grondilu talks about rosettacode.org/wiki/J 11:40
pmurias is there a perltidy for Perl6? on anyone working on it? 11:43
11:44 araujo joined 11:48 Khisanth joined
dalek kudo-js: 9339e90 | (Pawel Murias)++ | runtime/serialization.js:
Mark comments as JSDoc
11:49
kudo-js: 24359b9 | (Pawel Murias)++ | runtime/bootstrap.js:
gjslint --nojsdoc --strict runtime/bootstrap.js passes.
kudo-js: c661c26 | (Pawel Murias)++ | runtime/hash.js:
gjslint --nojsdoc --strict runtime/hash.js passes.
11:59 thundergnat left 12:04 peco joined 12:06 peco left
jnthn std: q\ \ 12:43
p6eval std 692eb4f: OUTPUT«===SORRY!===␤Undeclared routine:␤ 'q' used at line 1␤Check failed␤FAILED 00:00 41m␤»
jnthn TimToady: I'm struggling to figure out why STD doesn't treat the above as a quoting construct. Any hints? 12:45
moritz unspace? 12:47
moritz has no idea
jnthn r: class A; has $.a syntax error; 12:49
p6eval rakudo 11157e: OUTPUT«===SORRY!===␤Two terms in a row␤at /tmp/kcgYrhN3cP:1␤------> class A; has $.a ⏏syntax error;␤ expecting any of:␤ scoped declarator␤ constraint␤ postfix␤ infix or meta-infix␤ infix stopper␤ …
jnthn std: class A; has $.a syntax error;
p6eval std 692eb4f: OUTPUT«===SORRY!===␤Two terms in a row at /tmp/hqbpNkKZ5P line 1:␤------> class A; has $.a ⏏syntax error;␤ expecting any of:␤ constraint␤ infix or meta-infix␤ infixed function␤ initializer␤ statement modifier loop␤
..trait␤Parse failed␤…
jnthn wfm
jnthn is going through some RT tickets and makring a bunch testneeded :) 12:50
12:51 ggoebel_ left
moritz calendar at $work has interesting defaults: reminder 10 minutes before a meeting, and then offers to snooze 15min :-) 12:52
jnthn :D
tadzik perfect :)
moritz won't be online during the weekend, will be skiing (last time was more than 12 years ago...) 12:54
jnthn ooh, ahve fun :)
*have
12:54 cognominal joined
dalek kudo/md-nqp: 371433d | jnthn++ | src/Perl6/Metamodel/BOOTSTRAP.pm:
Various fixes.

Gets the NQP-based multi-dispatcher working for some basic cases.
12:55
12:58 LlamaRider joined 13:00 not_gerd left 13:09 Khisanth left, Khisanth joined 13:14 jaldhar_ left 13:16 Khisanth left 13:30 Khisanth joined
jnthn r: my %h = a => 1, b => 2; my $x = 'a'; say %h<< b $x >> 13:32
p6eval rakudo 11157e: OUTPUT«(Any) (Any)␤»
jnthn Got that one fixed locally, running spectest while I go for a walk :)
colomon n: my %h = a => 1, b => 2; my $x = 'a'; say %h<< b $x >> 13:54
p6eval niecza v24-32-g4b68456: OUTPUT«Use of uninitialized value in string context␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 1295 (warn @ 5) ␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 266 (Mu.Str @ 15) ␤ at <unknown> line 0 (ExitRunloop @ 0) ␤ at /home/p6eval/niecza/boot/…
colomon :\
[Coke] eyerolls at diakopters weight comments. 13:55
FROGGS i.imgur.com/nAZaLaE.jpg 13:56
^-------- I have twiddled with base64_decode, and for me it looks like it is more than 7% faster 13:57
colomon std: 1 cmp 2 cmp 3
p6eval std 692eb4f: OUTPUT«===SORRY!===␤"cmp" and "cmp" are non-associative and require parens at /tmp/9oTjUHpyJS line 1:␤------> 1 cmp 2 cmp ⏏3␤Check failed␤FAILED 00:00 42m␤»
FROGGS I mean, ./perl6 -e '1' is 7% faster
arnsholt FROGGS: Looks promising. What kind of changes have you done? 13:58
FROGGS well, I used another base64_decode code :o)
arnsholt Probably a good idea. Where did you take it from? 13:59
(And what kind of licence does it have?)
FROGGS I used and translated this:
www.experts-exchange.com/Programmin...ecode.html
masak today's autopun: "'We hate math', say 4 out of 10 Americans -- a majority of Americans"
tadzik FROGGS: awesome 14:00
[Coke] thanks for throwing the US under the bus. :P
jnthn
.oO( Was it a short bus? )
:P
tadzik jnthn: well, longer than average ;) 14:01
jnthn :P
FROGGS: ooh, nice!
[Coke] “Just think of how stupid the average person is, and then realize half of them are even stupider!” -carlin 14:03
FROGGS I will run a benchmark later too, to be sure
arnsholt FROGGS: The post says there's an even faster one in the comments. Did you try that one as well?
FROGGS ohh no, danm
will try that one too then
14:05 FROGGS left
dalek kudo/nom: 4080d67 | jnthn++ | src/Perl6/ (2 files):
Add missing shellwords postcircumfixes.

Resolves oops-hyper parse bug due to them being missing, and as a bonus means we now support them.
14:05
p: 25e2a23 | (Arne Skjærholt)++ | src/6model/reprs/VMArray.c:
Stub serialization and deserialization logic for VMArrays and their REPR data.
14:06
p: 33a40fc | (Arne Skjærholt)++ | src/6model/reprs/VMArray.c:
Implement gc_mark in VMArray.
jnthn I wonder if we have some spectests for %h<< $x abc >> style things.
LlamaRider Hm, I'm refactoring a P5 CPAN module that is both a module and a class... What should I port that to in P6? Just a module? Just a class? A class in a module? 14:10
It has both a procedural and an OO interface, as many P5 utilities do. 14:12
14:13 census joined 14:14 am0c left
pmichaud I like living here in Plano, where 60% of the students are in the top 10%. 14:15
PerlJam LlamaRider: I think it would depend on the specifics of the module/class.
14:17 PacoAir joined
pmurias jnthn: do we have a coding standard for rakudo/nqp? 14:19
jnthn pmurias: Nothing documented. There's various unspoken things I guess (like, use spaces, not tabs, don't camel-case method names, etc). 14:21
14:22 Psyche^ joined 14:25 Patterner left, Psyche^ is now known as Patterner
LlamaRider PerlJam: Can you "use" a class? I guess you could do "is a export" on its methods... 14:28
PerlJam LlamaRider: you use a module. that module may contain a class
LlamaRider PerlJam: S11 seems to claim you can use a class (Dog in that example) 14:29
census pmichaud: Plano, Texas ? 14:31
jnthn LlamaRider: Yes, it's fine if the top-level thing is a class 14:32
LlamaRider jnthn: What if I am in a script with no declarations before the "use" ? Only modules then? 14:33
PerlJam LlamaRider:The file may be called Foo.pm but the class inside could be called Bar. You still say "use Foo"
LlamaRider PerlJam: Wouldn't you (shouldn't you) get an Error if Foo.pm doesn't contain a top-level module/class Foo? 14:34
jnthn No
It's just convention that they match up
EXPORT is actually a lexical package in the UNIT of the thing you're loading, so it's lcoated like that.
Classes are, like in Perl 5, still a kind of package in so far as they have a hash for storing stuff in. 14:35
lizmat LlamaRider: this is actually one of the cases where P6 is the same as P5 14:36
LlamaRider Hm... How about Foo.pm containing module Foo {} and class Foo {} inside itself?
jnthn A class is a kind of module (not inheritance wise in the implementation, but a class can do what a module can plus more things)
Then the class on the inside is actually Foo::Foor.
*Foo
LlamaRider Well, not if it is outside the scope of the module {} block 14:37
lizmat is suddenly reminded of a blue dog called FooFur
14:37 takadonet joined
takadonet hey all 14:37
PerlJam LlamaRider: so ... module Foo { ... } class Foo { ... } ? that wouldn't work. 14:38
LlamaRider PerlJam: Mkay, what is wrong with it? jnthn seems to have convinced me using a class is all I need.
PerlJam LlamaRider: It would give you a "symbol redeclaration" error for Foo.
jnthn r: module Foo { }; class Foo { } 14:39
p6eval rakudo 4080d6: OUTPUT«===SORRY!===␤Redeclaration of symbol Foo␤at /tmp/Mg54Pg8Igg:1␤------> module Foo { }; class Foo ⏏{ }␤ expecting any of:␤ statement list␤ horizontal whitespace␤ postfix␤ infix or meta-infix␤ …
LlamaRider So, two different kinds of objects share one namespace? 14:40
dalek kudo/nom: c4280ee | jnthn++ | src/ (4 files):
Generalize "can we augment this" checking.

Make it an archetype, and then opt classes in. Also tweak the exception type that is used to be more general, and try to make the wording of it general enough for all the cases we could get it, so it won't mislead.
LlamaRider Ok... Then classes do seem to be thought of as modules on some level.
PerlJam because thry are 14:41
jnthn Both result in a type object being instaleld, yes.
*installed
They're both types in some sense, but modules aren't very useful as types.
They're just another kind though. Like roles, enums, subsets, etc.
LlamaRider so I can "use" any type? 14:42
dalek ast: 6e76108 | jnthn++ | S32-exceptions/misc.t:
Update augment exception test and add another one.

New test covers RT#112956.
14:43
jnthn LlamaRider: Well, yes, but the "use" is really mapping to a filename.
LlamaRider: You could, if you really wanted (don't particularly encourage it though) have a module that doesn't contain any module/class/whatever declaration, and just exports some subs. 14:44
PerlJam LlamaRider:See the synopses on "need" and "import" (sorry I don't have a reference right off)
LlamaRider: "use" is basically a combination of "need" and "import" and I get the feeling you're looking for "need" 14:45
jnthn std: sub circumfix:<begin end>($contents) { say "$contents!" }; begin "OH HAI" end
p6eval std 692eb4f: OUTPUT«ok 00:01 50m␤»
takadonet LlamaRider: I written a few cpan p5 to p6 modules with both OO and procedural interface 14:46
14:47 crab2313 left
LlamaRider So when would want to use a module but definitely not a class? When there is no need whatsoever to have objects? But you could have static classes as well I suppose... Or when you want multiple classes in the same module namespace? 14:47
jnthn If you just have a bunch of subs and don't want to provide any OO interface at all, then there's no need for a class 14:48
14:48 crab2313 joined
takadonet it was a very straight port where it was a mix of OO and procedural in the same class 14:49
github.com/Takadonet/Algorithm--Diff/
just started to fix the bit rot on it this week
the procedural where just our scoped sub 14:50
LlamaRider takadonet++ thanks for that reference! So you just used a class and all worked out? Cool.
14:50 FROGGS joined
LlamaRider Also jnthn++ and PerlJam++ thanks for the Perl6 OO vs modules lesson. 14:51
14:51 cognominal left 14:52 rjbs left, rjbs joined
takadonet LlamaRider: Mostly, it worked before the bit rot . Probably not the best solution but it was 100% same interface as the p5 one 14:58
jnthn away fora bit
takadonet I am in the processing of fixing the procedural way first then the OO
15:01 mtk left 15:02 salv0 left
LlamaRider takadonet: now that you mention code rotting... is there some standard way of specifying the version of Rakudo the module/class was developed with/for? 15:02
takadonet no idea. 15:04
15:04 mtk joined, sftp left, JimmyZ joined 15:05 wk_ left 15:06 mtk left 15:07 fhelmberger left, mtk joined 15:10 xilo left 15:11 sftp joined, mtk left 15:14 PacoAir left 15:15 PacoAir joined, mtk joined
TimToady n: say 'foo' ~~ /bar/ 15:15
p6eval niecza v24-32-g4b68456: OUTPUT«Nil␤»
TimToady \o/
n: say +Nil 15:16
p6eval niecza v24-32-g4b68456: OUTPUT«Use of Nil as a number␤ at /home/p6eval/niecza/lib/CORE.setting line 1342 (warn @ 5) ␤ at /home/p6eval/niecza/lib/CORE.setting line 455 (Nil.Numeric @ 4) ␤ at <unknown> line 0 (ExitRunloop @ 0) ␤ at /tmp/EAw7Hyr3XF line 1 (mainline @ 3) ␤ at /home/p6e…
FROGGS arnsholt: the post only says something about a faster encoder, not decoder 15:17
JimmyZ r: say 'foo' ~~ /bar/ 15:20
p6eval rakudo c4280e: OUTPUT«#<failed match>␤»
JimmyZ r: say ('foo' ~~ /bar/).chars 15:21
p6eval rakudo c4280e: OUTPUT«0␤»
kresike bye folks
15:21 kresike left
JimmyZ n: say ('foo' ~~ /bar/).chars 15:21
p6eval niecza v24-32-g4b68456: OUTPUT«Nil␤»
15:22 am0c joined
TimToady jnthn: yes, ws calls .unsp, so you can't have whitespace after the \ if you want it to work 15:24
std: q\ \
p6eval std 692eb4f: OUTPUT«===SORRY!===␤Undeclared routine:␤ 'q' used at line 1␤Check failed␤FAILED 00:00 41m␤»
TimToady std: q\x\
p6eval std 692eb4f: OUTPUT«ok 00:00 41m␤»
TimToady but I think that's a very small WAT compared to the DWIM of unspace + choose-your-own-adventure :) 15:27
15:27 JimmyZ left 15:29 xilo joined 15:31 skids joined, donaldh joined
TimToady n: say Nil.foo.bar.baz 15:34
p6eval niecza v24-32-g4b68456: OUTPUT«Nil␤»
15:35 bluescreen10 joined 15:44 LlamaRider left
TimToady Actually, it's not strictly true that half the people are stupider than the average person; rather, half of them are stupider than the *median* person. 15:48
And it's really quite unlikely that those two are the same person... 15:49
TimToady spent far too long trying to figure out who user 'danm' is after reading irclog.perlgeek.de/perl6/2013-03-08#i_6564795 15:53
huf :) 15:54
his other name is darn
15:55 kaare__ joined, kaleem left 15:59 gdey joined
FROGGS TimToady: :o) 16:02
TimToady darn: I ran out of backlog--you guys need to frontlog s'more...
16:05 ggoebel_ joined
jnthn back 16:07
16:07 isomorphisms joined
jnthn TimToady: Hm, I wonder why we don't treat it as unspace correctly then... 16:09
Will have a dig. 16:10
Been taking a look at circumfix parsing too
16:12 spider-mario joined
jnthn Somehow, when I changed it to parse semilist rather than EXPR, it then parse fails 16:12
TimToady doesn't eat ws maybe 16:13
jnthn Well, not liking ws is what I'm trying to fix :) 16:14
I think it gets ws right
it then things the terminator is a second term...
ooh...
TimToady STD has a '' in semilist to eat whitespace due to the new ws semantics
jnthn ((local \$::GOAL = $stopper
Does that affect the parse? 16:15
TimToady sure, there are several assertions that test $*GOAL 16:16
jnthn Yes, I'm struggling to see exactly which one would cause semilist to parse no more 16:18
TimToady but it looked to me like term:identifier was just getting tiebroke before the literal 'begin' for some reason
you're thinking of the begin/end problem? 16:19
or something else?
jnthn Yeah, the being end one
*begin
Oh
It sets stopper too
TimToady I don't think changing the insides will help if the problem is LTM ordering 16:20
jnthn If I'm reading cursorbase.pmc right anyway...
I don't think it's an LTM issue
I think it's that I'm not setting the "end" as a stopper
I somehow missed the fact that what's in CursorBase does that.
Provided that's what \$C->unbalanced($stopper))[-1] is doing... :) 16:21
TimToady yes, that could definitely case it to fail, but...surely we'll have committed to the circumfix by then
iirc the error looked like it was trying to parse as a listop
*cause
jnthn Oh, sorry for the confusion...
The *initial* problem was that it didn't spot the whitespace 16:22
That's 'cus we called EXPR instead of calling semilist like STD does
Fixing semilist gets it further but it does a ttiar when it hits thet terminator.
I'd read the regex bit of CursorBase then missed the lines that set goal and stopper
TimToady k 16:23
jnthn tries some changes 16:25
16:28 Chillance joined 16:30 isBEKaml joined
isBEKaml OHHAI, #perl6! 16:30
takadonet isBEKaml: hey 16:32
isBEKaml jnthn: oooh, I was also looking at begin-end thingy and thought maybe I should ditch EXPR for semilist (well, that was the last thought last night, anyway :) 16:33
takadonet: hey
jnthn isBEKaml: Yeah, I got a patch here that may cut it, apart from I did a silly typo...
isBEKaml jnthn: cool, looking forward to that :) 16:34
16:37 zby_home joined
dalek kudo-js: 2179c68 | (Pawel Murias)++ | runtime/reprs.js:
gjslint --nojsdoc --strict runtime/reprs.js passes.
16:42
kudo-js: 91a5029 | (Pawel Murias)++ | runtime/sixmodel.js:
gjslint --nojsdoc --strict runtime/sixmodel.js passes.
kudo-js: 22ba87c | (Pawel Murias)++ | Makefile:
Add a lint target to the Makefile.
kudo-js: 4eb5925 | (Pawel Murias)++ | / (2 files):
gjslint --nojsdoc --strict runtime.js passes.
rakudo-js: 8649ded | (Pawel Murias)++ | runtime/bootstrap.js:
rakudo-js: Fix bug.
16:47 gdey left 16:51 SunilJoshi joined 16:56 ElDiabolo joined
ElDiabolo masak, Hi. hinking about implementing LINQ has been stalled for some time. Laptop got stolen. 16:58
17:00 SunilJoshi left
dalek kudo/nom: 085f746 | jnthn++ | src/Perl6/Grammar.pm:
Align user-defined circumfix parsing with STD.

Means that we now use semilist (thus getting whitespace righter) and set a stopper appropriately.
17:03
ast: 0f3284c | jnthn++ | S06-operator-overloading/sub.t:
Tests for spaces inside user-defined circumfixes.
17:04
jnthn std: sub postfix:< >($a) { [*] 1..$a; }; say (* )(5); 17:05
p6eval std 692eb4f: OUTPUT«===SORRY!===␤Null operator is not allowed at /tmp/OjiZ9A1y8d line 1:␤------> sub postfix:< >⏏($a) { [*] 1..$a; }; say (* )(5);␤Parse failed␤FAILED 00:00 41m␤»
17:07 hoelzro is now known as hoelzro|away, SunilJoshi joined 17:12 wk joined
jnthn std: sub postfix:<>($a) { [*] 1..$a; }; say (* )(5); 17:13
p6eval std 692eb4f: OUTPUT«===SORRY!===␤Null operator is not allowed at /tmp/DThjTfCgpC line 1:␤------> sub postfix:<>⏏($a) { [*] 1..$a; }; say (* )(5);␤Other potential difficulties:␤ Pair with <> really means a Nil value, not null string; use :('') to rep…
17:14 am0c left 17:19 pmurias left 17:21 crab2313 left 17:24 ElDiabolo left 17:28 spider-mario left 17:30 daxim left 17:33 sizz left 17:34 sizz joined
TimToady nr: constant factorial = 1, 1, [\*] 2...*; say factorial[^10] 17:36
p6eval niecza v24-32-g4b68456: OUTPUT«Unhandled exception: System.NullReferenceException: Object reference not set to an instance of an object␤ at Builtins.InvokeSub (Niecza.P6any obj, Niecza.Variable[] pos) [0x00000] in <filename unknown>:0 ␤ at Niecza.Kernel.ToComposable (Niecza.STable arg…
..rakudo 085f74: OUTPUT«1 1 2 6 24 120 720 5040 40320 362880␤»
TimToady rakudo++
jnthn ooh, that's a cute way to define it
masak p6 u so terse 17:43
17:43 gdey joined
PerlJam S03 says "A variant of the reduction metaoperator is pretty much guaranteed to produce a list; to lazily generate all intermediate results along with the final result, you can backslash the operator:" 17:43
When does it not produce a list? 17:44
or should the "pretty much" language be tweaked?
dvj rn: say 1 xx * 17:45
p6eval niecza v24-32-g4b68456: OUTPUT«(timeout)»
..rakudo 085f74: OUTPUT«1 1 1 1 ...␤»
dvj rakudo++ :P
masak docs.google.com/document/d/1bMwCey...lK-cjo/pub # Go 1.1 function calls, interesting reading about how Go functions are stored 17:46
I hadn't realized Russ Cox was on the Go team.
dalek p-jvm-prep: 4ed22aa | jnthn++ | lib/QAST/JASTCompiler.nqp:
Fix serialize op return type.
17:48
p-jvm-prep: a77bcfb | jnthn++ | src/org/perl6/nqp/ (2 files):
Port a few of the basic serialization primitives.
nwc10 what is it with timing? I was only just looking, after about 24 hours away
masak lichtkind: I think the clearer on attributes was included in Moose for rather arbitrary reasons. like, someone used it in a project. 17:49
TimToady rosettacode.org/wiki/Permutations/D...nts#Perl_6 17:51
17:51 fgomez left, isBEKaml left
skids
.oO(and when TimToady++ finishes all of Rosettacode he will move on to generating every sequence on oeis.org)
17:54
masak or solving all the problems in TAoCP using Perl 6. 17:55
colomon TAoCP++ 18:02
ooo, more nqp-jvm commits! \o/
jnthn r: :a<> 18:05
p6eval rakudo 085f74: OUTPUT«===SORRY!===␤Unsupported use of <>; in Perl 6 please use lines() to read input, ('') to represent a null string or () to represent an empty list␤at /tmp/EEbA5PK_hD:1␤------> :a<⏏>␤»
jnthn std: :a<>
p6eval std 692eb4f: OUTPUT«Potential difficulties:␤ Pair with <> really means a Nil value, not null string; use :a('') to represent the null string,␤ or :a() to represent Nil more accurately at /tmp/H5iY_tFCOx line 1:␤------> :a<>⏏<EOL>␤ok 00:00 40m␤»
jnthn hm, so our test that it dies is rong.
masak why is every p6eval reply filled with Unicode mis-decodings in the log at irclog.perlgeek.de ? 18:06
TimToady well, the STD message is wrongish too now that Nil isn't ()
jnthn std: <>
p6eval std 692eb4f: OUTPUT«===SORRY!===␤Unsupported use of <>; in Perl 6 please use lines() to read input,␤ or ('') to represent the null string,␤ or () to represent Nil at /tmp/QaK7IzrHBx line 1:␤------> <⏏>␤Parse failed␤FAILED 00:00 40m␤»
jnthn TimToady: Well, that's just typical timing, now I've got that aspect of Rakudo sync'd with STD :P 18:07
masak [Coke] “Just think of how stupid the average person is, and then realize half of them are even stupider!” -carlin
only if "average" means "median" :) 18:08
dalek kudo/nom: f27a139 | jnthn++ | src/ (2 files):
Forbid null operators.

Adds a typed exception for them also.
kudo/nom: 4e84ff7 | jnthn++ | src/Perl6/ (3 files):
Add coloncircumfix.

Brings us further in line with STD's approach, and gets rid of a misleading message.
d: 86b102f | larry++ | STD.pm6:
Don't use Nil to mean () in error messages anymore
18:09
ast: 0e6e3de | jnthn++ | S32-exceptions/misc.t:
Correct test for obsolete use of <>.

Per STD, :a<> should not die in that way.
masak oh, TimToady++ already pointed out the "median" thing.
colomon seems to recall pointing that out somewhere a week or two ago too, probably not here. 18:10
TimToady masak: now we just need to figure out which of us is the median and which is the average...
I think I want to be the median, but you can have it if you like... 18:11
jnthn TimToady: One more in term:sym<undef>?
TimToady that one really does mean Nil, I think
FROGGS yay, jnthn did something for nom again \o/
jnthn++
:o)
masak masak's comforting law of structural bug recursion: If the actual doesn't match the expected for the system, there's a bug in one of its components. 18:12
*grin*
TimToady please define "the system"...
masak it includes the tester...
TimToady how 'bout cosmic rays? 18:13
masak read that as "cosmetic rays", twice
jnthn std: undef
p6eval std 692eb4f: OUTPUT«===SORRY!===␤Unsupported use of undef as a value; in Perl 6 please use something more specific:␤ Mu (the "most undefined" type object),␤ an undefined type object such as Int,␤ :!defined as a matcher,␤ Any:U as a type constraint,␤ Nil as the absense
..…
TimToady that's specifically where someone was trying to say "undef", which is not () in p5 18:14
so I think Nil is more accurate there
(assuming the new semantics)
((which I haven't managed to hack into niecza yet becuase the regex engine somehow depends on Nil.list returning () 18:15
))
jnthn TimToady: Rakudo's behind with the latest STD message there, it turns out...so false alarm.
FROGGS: Well, got a port of multi-dispatch to NQP underway in a branch also. Mostly for portability reasons, but will take care of a bug or two along the way there. :) 18:17
Also gonna re-work various aspects of container handling in the not too distant future. Partly to improve portability, but I'll deal with the native types / rw issue along the way. 18:18
18:19 lichtkind_ joined
[Coke] AHAHAHAHAHAHA. I AM THE 1,024TH PERSON TO LIKE LARRY WALL ON FACEBOOK! MUAHAHAHAH 18:19
I definitely should get an internet point for that.
TimToady n: class Fool { method FALLBACK (|stuff) { say stuff } }; Fool.of_a_Took('Peregrine') 18:20
p6eval niecza v24-32-g4b68456: OUTPUT«\("of_a_Took", "Peregrine")␤»
TimToady jnthn: how is that spelled in rakudo?
18:21 lichtkind left
jnthn TimToady: In Rakudo, it's available through .^add_fallback 18:21
TimToady what does that add it to?
jnthn Which exists to implement handles... 18:22
It adds it to a list of method dispatch failovers.
If a normal MRO-based name search fails (which actually means a cache miss, typically), it searches through a list of failovers.
A failover consists of two closures: the first one determines if this failover applies, the second actually does the work.
TimToady r: class Fool { my method FALLBACK (|stuff) { say stuff }; Fool.^add_failover({True},&FALLBACK }; Fool.of_a_Took('Peregrine') 18:23
jnthn Example usage in src/core/Failure.pm
p6eval rakudo 085f74: OUTPUT«===SORRY!===␤Unable to parse expression in argument list; couldn't find final ')'␤at /tmp/FPoVd_gKJi:1␤------> }; Fool.^add_failover({True},&FALLBACK ⏏}; Fool.of_a_Took('Peregrine')␤ expecting any of:␤ postfix␤ …
TimToady something like that?
r: class Fool { my method FALLBACK (|stuff) { say stuff }; Fool.^add_failover({True},&FALLBACK) }; Fool.of_a_Took('Peregrine') 18:24
p6eval rakudo 085f74: OUTPUT«No such method 'add_failover' for invocant of type 'Perl6::Metamodel::ClassHOW'␤ in block at /tmp/OrwzYPfZum:1␤␤»
TimToady r: class Fool { my method FALLBACK (|stuff) { say stuff }; Fool.^add_fallback({True},&FALLBACK) }; Fool.of_a_Took('Peregrine')
p6eval rakudo 085f74: OUTPUT«Too many positional parameters passed; got 2 but expected between 0 and 1␤ in block at /tmp/LkhA2uJppG:1␤␤»
jnthn Yes, put the first closure gets 2 args, object and name
TimToady r: class Fool { my method FALLBACK (|stuff) { say stuff }; Fool.^add_fallback(-> $, $ {True},&FALLBACK) }; Fool.of_a_Took('Peregrine') 18:25
p6eval rakudo 085f74: OUTPUT«No such method 'gist' for invocant of type 'String'␤ in method gist at src/gen/CORE.setting:5023␤ in sub say at src/gen/CORE.setting:7592␤ in method FALLBACK at /tmp/D_erOun50e:1␤ in at src/gen/Metamodel.pm:2493␤ in any find_method_fallback at src/gen/Metamod…
TimToady huh, doesn't derive from Any?
jnthn You got an NQP string. 18:26
TimToady ooh, leaky! :)
wondering if we should spec FALLBACK as a method, and do that fancy stuff if we happen to see one, like niecza does 18:27
r: class Fool { my method FALLBACK (*@stuff) { say @stuff }; Fool.^add_fallback(-> $, $ {True},&FALLBACK) }; Fool.of_a_Took('Peregrine') 18:28
p6eval rakudo 085f74: OUTPUT«Cannot assign a non-Perl 6 value to a Perl 6 container␤ in method REIFY at src/gen/CORE.setting:6370␤ in method reify at src/gen/CORE.setting:5505␤ in method reify at src/gen/CORE.setting:5492␤ in method gimme at src/gen/CORE.setting:5882␤ in method eager at s…
jnthn r: class Fool { my method FALLBACK (|stuff) { say stuff }; Fool.^add_fallback(-> $, $ {True}, -> $, $name { &FALLBACK }) }; Fool.of_a_Took('Peregrine')
p6eval rakudo 085f74: OUTPUT«Peregrine␤»
TimToady o_O 18:29
jnthn or 18:30
r:
oops
r: class Fool { my method FALLBACK (|stuff) { say stuff }; Fool.^add_fallback(-> $, $ {True}, -> $obj, $name { -> $, |c { $obj.FALLBACK($name, |c) } }) }; Fool.of_a_Took('Peregrine')
p6eval rakudo 085f74: OUTPUT«of_a_Took Peregrine␤»
18:30 lichtkind_ is now known as lichtkind
jnthn Anyway, this mechanism wasn't exactly designed with this purpose in mind. 18:30
It was added when I was implementing the various handles failovers.
TimToady but we could implement a niecza-esque method FALLBACK in terms of it 18:31
jnthn Where you do need to know whether or not one will work.
We could.
No objections if you want to spec something like that.
TimToady though I wonder if it wouldn't be better spelled 'method *'
(would take special parsing though)
maybe FALLBACK is better huffman 18:32
jnthn But also plesae spec its pecking order in relation to handles wildcarding :)
My guess is "comes after any of those"
TimToady oh, definitely after, I'd think
jnthn Because there's not a way for FALLBACK to say "no, I can't handle it"
Of course, any handles * will hide it 'cus that can handle anything
TimToady well, can it nextsame? 18:33
jnthn Hmm.
TimToady well, but handles * only looks for existing methods?
jnthn Where would it nextsame to?
Oh...that's a good point.
TimToady a FALLBACK in a parent class?
jnthn ah, yes 18:34
That would work once you end up in FALLBACK itself I guess.
TimToady that's why I can't easily do rosettacode.org/wiki/Respond_to_an_...ethod_call yet
at least, not portably between n and r 18:35
jnthn TimToady: Actually, it's not so smart in handles * to chck if a method exists
TimToady I just meant it doesn't actually work if the method doesn't exist
jnthn handles some-thingy-here just smartmatches the name against the thing.
oh
TimToady I mean the method will fail the delegation if it can't find it in the handler object 18:36
jnthn r: class Foo { has $!x handles * }; Foo.new.test
p6eval rakudo 085f74: OUTPUT«No such method 'test' for invocant of type 'Any'␤ in block at src/gen/CORE.setting:313␤ in block at /tmp/4HuGUQBDTu:1␤␤»
TimToady (unless that object does a fallback
)
jnthn Here it did $!x.Foo because 'new' ~~ *
Is that in line with what you're saying? :)
TimToady sure, but I'd like *that* to be able to failover to my own FALLBACK
if the delegation fails 18:37
jnthn But in that case it's not the current dispatch that failed...
The way I currently have it, it's already committed to do the $!x.Foo 18:38
It hands back something that does the delegation as soon as it seeks it matches the pattern.
It's not immediately obvious to me how to change it to do what you're after.
s/seeks/sees/ 18:39
TimToady well, something to think about; implementing a FALLBACK noticer is orthogonal to that 18:40
jnthn I guess I can make * do a .can to find out if there's an applicable method.
lue Hello world o/
jnthn Yes, that bit I can do without much trouble.
TimToady will .can notice a FALLBACK in the delegate?
jnthn I suspect I can make that one go either way 18:41
If it does then an object will a callback will always respond true to .can 18:42
uh, fallback
Since it's invoked unconditionally.
18:42 Vlavv_ joined
jnthn oh, wait though... 18:42
Actually, .^can today is much more simplistic
It returns a Parcel of all possible methods with that name but only those that are actually in the method table. 18:43
TimToady is thinking that maybe we *don't* want to include the foreign fallback anyway
jnthn So with today's factoring, no, it won't count the fallback or failovers into the answer to can.
TimToady then you can write a FALLBACK here that invokes the delegate's FALLBACK explicitly
if you want it
masak +1 18:44
TimToady hmm, does that mean that handles * can't point to something that handles *?
jnthn So a "handles *" or "handles Foo" today will not contribute anything to the results of can.
Yes, because the actual dispatch itself goes through .^find_method
Which does consider the fallbacks.
TimToady oh, my FALLBACK can just invoke the method in that case, instead of invoking the Other's FALLBACK 18:45
and it will still get the other guy's 'handles *'
jnthn Right, that'll work.
TimToady doesn't have to be easy, but it's nice if it's possible
so I guess I'll spec FALLBACK as a magical method 18:46
unless someone has a better name for it
std: method * (|) {...}
p6eval std 86b102f: OUTPUT«===SORRY!===␤Malformed block at /tmp/WIZfgoCzjn line 1:␤------> method ⏏* (|) {...}␤ expecting any of:␤ block␤ subscript signature␤Parse failed␤FAILED 00:00 40m␤»
TimToady didn't think so...
std: method:: (|) {...}
p6eval std 86b102f: OUTPUT«===SORRY!===␤Prefix requires an argument at /tmp/YcBpe2B2OO line 1:␤------> method:: (|⏏) {...}␤Parse failed␤FAILED 00:00 42m␤»
TimToady std: method :: (|) {...} 18:47
p6eval std 86b102f: OUTPUT«Potential difficulties:␤ 'method' declaration outside of class at /tmp/IMDM_pzk_W line 1:␤------> method :: (|) ⏏{...}␤ok 00:00 43m␤»
jnthn Did we decide either way if "has $!x handles *" should actually verify if $!x.^can('foo') ?
TimToady still think I like the shouting better
yes, I think it should
[Coke] has six handles?
TimToady you are so lysdexic!
masak you are so lexotic! 18:48
jnthn TimToady: If it's that way, then if the target object only has the method as a fallback, we won't end up doing the dispatch. Is that OK too?
TimToady: That is, for such a "blind" delegation, you'd pretty much have to write a FALLBACK?
TimToady
.oO(handles **) </ducks>
18:49
masak [Coke]: "If Perl 6 were a cup, it would have six handles."
jnthn Well, I could implement that one too :P
TimToady
.oO(handles *, 'FALLBACK')
[Coke] masak: ... that's probably not a good motto. ;)
colomon "There's more than one way to drink it!" 18:50
TimToady well, ** is just the current semantics, right? :)
lue just imagined six handles flying off a broken coffee mug
jnthn TimToady: Yes, that's why I know I can implement it :D
TimToady so mote it be then 18:51
masak [Coke]: for a number of reasons :)
TimToady good thing I haven't had breakfast yet
jnthn oh yeah....food 18:52
jnthn should probably dinner :)
18:52 rindolf joined
dalek kudo/nom: 8c0f875 | jnthn++ | src/Perl6/Grammar.pm:
Sync some errors with STD.
18:53
rindolf Hi all. Happy International Woman's Day. Embrace your inner femininity (even if you're a guy).
Those bitches (of both sexes) on #ubuntu-women told me I wasn't welcome because I said "/me is a bastard straight guy". 18:54
Bastard imagine that.
masak rindolf: please don't come in here complaining about other channels. it's not classy.
rindolf I used much more derogatory words elsewhere on Freenode without arm.
masak: sorry. :-(.
masak: just venting.
jnthn Yes, but did you use them without x64? 18:55
masak rindolf: I can tell. still not good/constructive.
jnthn really goes to the shop :)
rindolf masak: 􏿽x93A problem of many, half a consultation"
18:55 SamuraiJack left
rindolf jnthn: enjoy. 18:55
masak: yes.
masak: sorry, again.
masak: what's up? 18:56
masak hugs rindolf
rindolf: some sort of train roof.
rindolf masak: thanks.
rindolf grumbles.
masak :P
oh! oh!
my luggage. it's right above me, on a rack.
sorry :P 18:57
rindolf masak: www.shlomifish.org/humour/fortunes/...t-chuck-35
masak: BTW, my inner Sarah Michelle Gellar can do that too. ;-)
huf masak: you torture the luggage?
and it doesnt trample you with its many many feets? 18:58
rindolf huf: heh.
huf: let's have some Rincewind facts marathon.
masak huf: sorry, didn't mean "on a rack"; meant "on Iraq".
huf :) 18:59
masak rindolf: that's the second time you've been sending me the "club you senseless" link ;)
proportionally, there have been very few Chuck Norris clubbings, though.
huf incidentally, where is the top of iraq? 19:00
19:00 fgomez joined
rindolf masak: heh, I will send it to you again and again and again. 19:00
masak: I have short memory.
masak huf: seems it's poking into the bottom of Turkey :P
rindolf masak: well, short-term memory.
masak rindolf: you can say that again! 19:01
rindolf masak: yes, people like me tend to repeat stuff to the same person.
masak: it's en.wikipedia.org/wiki/Hyperthymic_temperament .
masak "hyperthymic" sounds like "[spiced with] too much thyme". 19:02
rindolf masak: heh.
lue I'm guessing any Pod6 rendering issues for, say, the synopses would occur in both Pod::To::HTML and Rakudo's parser, correct?
rindolf masak: no such thing as too much thyme. ;-)
masak: well, no such thing as too much Za'atar.
masak: too much salt is not good. 19:03
masak rindolf: well, our ritual now consists of three set steps: "what's up?" -- <literal reply> -- "Chuck Norris clubbing". if we keep this up, in a few years, we'll have an Abbott and Costello routine.
rindolf masak: did you see my twitter recently - twitter.com/shlomif
masak I did not.
19:03 xilo left
rindolf masak: I've been thinking of creating a screenplay about ##programming . 19:04
masak: but maybe it will make unreal like me even less.
19:04 fgomez left
rindolf masak: anyway, what are you working on now? 19:04
19:05 Khisanth left
masak rindolf: I'm sort of between projects. I'm still thinking about Rakudo's macros, though. when I have more time I'll dig back into those. 19:05
19:05 xilo joined
masak rindolf: also gearing up to do the p6cc/t2 blog post. 19:05
also planning to dig into github.com/perl6/production-readiness in the weekend. 19:08
dalek ecs: 2249907 | larry++ | S12-objects.pod:
FALLBACK methods, handles **, semantics thereof
19:09
[Coke] masak++ # I'd never seen html5please. 19:16
masak [Coke]: things you learn by teaching HTML5 courses ;) 19:17
[Coke] Training? pshaw. I must merely deliver results. :P 19:18
TimToady notes with pleasure that our FALLBACK semantics will not force classes to define a dummy DESTROY method, unlike p5's AUTOLOAD
assuming there's a default DESTROY somewhere 19:19
19:20 fgomez joined 19:21 SunilJoshi left
masak [Coke]: nono, not taking an HTML5 class. teaching it. :) 19:21
PerlJam masak: what do you teach in an HTML5 course exactly? 19:23
TimToady n: class Farragut { method FALLBACK ($name, *@rest) { say "$name.tc() the @rest[], full speed ahead!" } }; Farragut.new.damn: 'torpedoes'; Farragut.new.hoist: <the Jolly Roger mateys>;
p6eval niecza v24-32-g4b68456: OUTPUT«Damn the torpedoes, full speed ahead!␤Hoist the the Jolly Roger mateys, full speed ahead!␤»
lichtkind looks like there also no required attributes in perl 6? 19:24
19:25 Khisanth joined
tadzik r: class A { has $.a = die "$a is required" } ; A.new 19:26
p6eval rakudo 8c0f87: OUTPUT«===SORRY!===␤Variable '$a' is not declared␤at /tmp/MLCVGGRoVq:1␤------> class A { has $.a = die "$a⏏ is required" } ; A.new␤ expecting any of:␤ postfix␤»
tadzik pff
r: class A { has $.a = die "$.a is required" } ; A.new
p6eval rakudo 8c0f87: OUTPUT«===SORRY!===␤Virtual call $.a may not be used on partially constructed objects␤at /tmp/zMCgNh3Pkd:1␤------> class A { has $.a = die "$.a⏏ is required" } ; A.new␤ expecting any of:␤ argument list␤ prefix or term␤…
tadzik uh, wait
r: class A { has $.a = die "a is required" } ; A.new 19:27
p6eval rakudo 8c0f87: OUTPUT«a is required␤ in method at /tmp/8OrfovU8HV:1␤ in block at src/gen/CORE.setting:798␤ in method BUILDALL at src/gen/CORE.setting:753␤ in method bless at src/gen/CORE.setting:743␤ in method new at src/gen/CORE.setting:728␤ in block at /tmp/8OrfovU8HV:1␤␤»…
tadzik there you go
lue Wait, where does rakudo parse Pod6? I think I'm not searching for the correct terms... 19:29
dalek ast: 9a2f20d | jnthn++ | S32-exceptions/misc.t:
Test for null operators.
19:30
TimToady rosettacode.org/wiki/Respond_to_an_...all#Perl_6 # we are now tied with Ada 19:31
tadzik lue: in Grammar.pm
mostly
19:31 labster joined 19:32 matlads joined 19:34 Khisanth left
lichtkind thanks tadzik 19:39
tadzik++ 19:41
dalek blets: d39ed47 | (Herbert Breunung)++ | docs/appendix-a-index.txt:
added required to A tadzik++
19:46
PerlJam wait ... what? 19:48
lichtkind: there is no "is required" 19:51
tadzik nope 19:52
19:54 kivutar left 19:55 fgomez left
lichtkind tadzik: there is really no way to make a required attribute? 19:56
19:58 Khisanth joined
PerlJam lichtkind: tadzik showed a way. 20:00
20:01 takadonet left
PerlJam An advantage a "required" trait would have over that would be consistent error messages. 20:01
But, AFAIK, there is no "required" trait. 20:02
lichtkind PerlJam: wait a minute now i just realize required was inside the string so its not there sorry im really confused
ok 20:03
thanks
colomon PerlJam: you could probably write one...
lichtkind colomon: but none is specced?
PerlJam colomon: yeah, seems like it would be easyish
lichtkind specced
colomon lichtkind: I don't know. but writing new traits is pretty easy. 20:04
lichtkind they dont have to be specced? 20:05
colomon lichtkind: nope
tadzik lichtkind: none that I know of
PerlJam lichtkind: user-provided traits are perfectly fine 20:06
TimToady tadzik: are you the right person to add a Perl 6 entry to rosettacode.org/wiki/Documentation ?
20:07 fgomez joined
colomon multi sub trait_mod:<is>( .... hmmm, you want this to be on an attribute, I guess? 20:08
lichtkind: look at t/spec/S14-traits/attributes.t 20:12
lichtkind thank you colomon 20:13
20:16 p5eval_ is now known as p5eval
diakopter eval: od 20:20
p5eval: od
p5eval diakopter: od
[Coke] masak: (getting vs. receiving training) yes, I got that. 20:21
diakopter p5eval: od od 20:24
p5eval diakopter: ERROR: Can't locate object method "od" via package "od" (perhaps you forgot to load "od"?) at (eval 7) line 1.
diakopter p5eval: od(od)
p5eval diakopter: ERROR: Undefined subroutine &main::od called at (eval 7) line 1.
tadzik TimToady: I might be 20:32
TimToady: I'll do that tomorrows 20:34
nwc10 jnthn: works on "my" machine (at a77bcfb3f88cc08d2860fb85bac81b8f4a8ca5d9, in case the goalposts move) 20:35
20:35 skids left
nwc10 er, "works", given the ICU needing test 20:35
jnthn nwc10: nice 20:36
nwc10: Had a busy work week, but getting back into things again today :)
masak "getting vs receiving"? :P 20:43
I'm not really sure you got it! :)
jnthn ...what? 20:44
jnthn doesn't get it at all :P
lizmat TimToady: wrt to rosettacode.org/wiki/Respond_to_an_...all#Perl_6 , is the "the the" in "Hoist the the Jolly Roger mateys, full speed ahead!" intentional? 20:45
if so, why?
masak hehe, 'is the "the the"' :) 20:46
lizmat it's hard to stutter on IRC, but I was getting close to it
diakopter mmm Jolly Ranchers 20:47
masak rn: say "st-" x 10, "stutter"
p6eval rakudo 8c0f87, niecza v24-32-g4b68456: OUTPUT«st-st-st-st-st-st-st-st-st-st-stutter␤»
masak not so hard :) 20:48
lizmat is thinking of a way of doing that without having to specify "st-" 20:49
masak r: sub stutter($word) { $word ~~ /.*? <?before <[aeiou]>>/; say (~$/ ~ "-") x 10, $word }; stutter "stutter" 20:54
p6eval rakudo 8c0f87: OUTPUT«st-st-st-st-st-st-st-st-st-st-stutter␤»
rindolf jnthn: hi! Welcome back! How was the store? 20:55
TimToady: meow! What's up?
lichtkind: hi.
masak: what's down? ;-)
masak magma. 20:56
a big hot ball of iron.
four apartments.
lizmat masak: as in french vulcan opera group?
masak for all I know, they're down there too ;) 20:57
lizmat hears some "ZEBEHN STRAIN DE GEUSTAAH WORTSIS, DA REUS STOAH" in the background 20:58
masak: with regards to stutter, isn't there some way specced to select all (unicode) vowels? 21:00
masak PerlJam: lessee, I taught some new elements, quite a bit of CSS3, some JavaScript, and a bunch of minor standards such as form elements, CORS, localStorage, and Web Sockets.
lizmat: if there is, it's slipped my mind.
S05 doesn't contain the substring 'vowel'.
jnthn rindolf: It had the usual selection of stuff :) 21:01
lizmat masak: ack
rindolf jnthn: OK.
arnsholt lizmat: What is a vowel is locale-dependent in the general case I think
TimToady lizmat++: fixed, thanks
rindolf jnthn: what did you buy?
masak: nice stuf in what's down.
masak: what's East? What's West? Will they ever meet? 21:02
lizmat TimToady: you're welcome
TimToady rindolf: Ceiling Cat is up, meow!
arnsholt Also, not graphemes in abjad and abuguida systems
jnthn is not aware of a Unicode char prop for vowels
rindolf TimToady: ceiling cat - double meow.
TimToady you can't have properties for fuzzy sets
rindolf TimToady: all hail ceiling cat.
arnsholt Yeah, what TimToady said
masak rindolf: I think it's kinda funny that we make such a big deal of East and West -- even talking about them as hemispheres -- when in fact they *do* meet, if you travel far enough.
jnthn rindolf: Salad, pasta, fruit juice...nothing to exciting :) 21:03
arnsholt Syllabification (which I suspect is what lizmat may want) is a tricky problem
jnthn *too
masak prediction: the 21st century will be just as much about North and South hemispheres as about East and West, if not more.
jnthn heh, one of the masak code contest problems was syllabification, I guess :)
arnsholt jnthn: NQP doesn't support parametric types, right?
TimToady Psst! There's an English word where 's' functions as a vowel!
rindolf jnthn: sounds good though.
masak: heh. 21:04
masak jnthn: yeah, that's the next one.
lizmat arnsholt: I was just wondering why masak was using something as ascii-centric as [aeiou] for vowels
colomon TimToady++
masak TimToady: that's gotta count as a semi-vowel though, no?
rindolf masak: Chuck Norris can make East and West meet 100 km apart.
jnthn arnsholt: It does have parametric roles, just. :)
TimToady masak: most vowels are semivowels, even [i] and [u]
masak TimToady: it's like the 'm' in Slovene "čmrlj" 21:05
TimToady: troo
arnsholt lizmat: Right, right. Lack of scrollback context on my part (I just reconnected)
TimToady and we have voiceless vowels in English, but we don't distinguish them phonemically
arnsholt What's an example of voiceless vowels? 21:06
TimToady the 'h' on the front of 'he' is a voiceless [i], while the one on the front of 'who' is a voiceless [u]
well, "vowel" is a phonemic concept, so I should call them vocoids instead
arnsholt Oh, right. That makes sense, I guess
lizmat afk for a while 21:07
arnsholt jnthn: Hmm, that's interesting. Pondering how to best expose VMArrays of native types to NQP code. Any preferences? 21:08
jnthn arnsholt: Been pondering that too... :)
21:08 sqirrel left
TimToady we have now officially passed Ada, are now in 9th place 21:09
colomon TimToady: do we have a handy list of tasks to tackle around somewhere? 21:10
jnthn arnsholt: Have been wondering a bit of arrays have to be a different kind (e.g. meta-object) at the NqP level 21:12
*if
21:14 japhb_ joined 21:17 kaare__ left
masak jnthn++ # fixing bugs 21:18
TimToady colomon: you mean like rosettacode.org/wiki/Reports:Tasks_..._in_Perl_6 ?
colomon TimToady++
I should really get around to the Bezier curve stuff.
jnthn masak: lol did I your whole inbox? :D 21:20
arnsholt jnthn: Yeah, I've stubbed (very stubby) that for Rakudo in the vmarray branch, to get proper compose
masak jnthn: oh, RT ticket emails are long since directed to a folder. still very nice :) 21:21
[Coke] masak: *sigh*. my brain got it. my fingers will catch up eventually. 21:23
masak [Coke]: 's ok :)
[Coke]: my brain is very tired. somehow I managed to teach while developing a course in the past two days. 21:24
I don't want to do that again in the near future.
labster good *, #perl6 21:30
dalek rl6-roast-data: 08b72a3 | coke++ | / (4 files):
today (automated commit)
21:33
rindolf labster: good localtime().
labster: what time is it there?
21:33 xinming left
[Coke] rakudo failed 8 tests, niecza 9. 21:33
labster masak: Saw the esperanto in the backlog. use Lingua::Number; say ordinal(8, 'eo'), " prelego";
oka prelego
it's 1:34 PM here 21:34
arnsholt Oh, neat. Was easier to as masak++ than dig around on CPAN though =)
masak labster: cool.
labster Well, I don't actually know any esperanto. I just implemented the rule based number formatting from Unicode. 21:35
21:35 xinming joined
masak labster: it's worth noting that the only thing I hesitated around was the word choice "prelego". was wondering whether "leciono" would've been better. 21:35
but no, arnsholt said "lecture", not "lesson".
[Coke] colomon: last few tests may require me to set some environment variables to pass them. 21:36
21:36 LlamaRider joined
masak labster: the "-a" in "oka" usually denotes adjectives. but Esperanto uses the strange consistency noun:adj::numeral:ordinal. 21:36
sort of.
21:37 rindolf left
[Coke] rakudo failures listed here: github.com/coke/perl6-roast-data/b....out#L2241 21:37
colomon [Coke]: I'm rerunning now, I had a clean spectest earlier but TimToady patched Niecza again since then. I wouldn't be surprised if he broke some (now presumably incorrect) spectests.
jnthn My brain keeps parsing prelego as peligro :P
[Coke] colomon: github.com/coke/perl6-roast-data/b....out#L5682
jnthn: DANGER.
masak Danger, danger, Jonathan Worthington. 21:38
[Coke] colomon: looks like rx test might have run out of memory or time.
labster For most lectures, the real danger is falling asleep.
jnthn It's a risk when porting this serialization code too... 21:40
jnthn hopes all these offsets work out right when he finally runs the thing... 21:41
swarley as is waiting for this anagram solver to work.. Sure wish I could have come up with a better solution that didn't involve using ruby 21:42
21:43 zby_home left
labster If anyone wants to write tests for Lingua::Number in languages other than English or Spanish, that would be much appreciated. lue++'s tests helped out a lot in debugging the new code. 21:43
It's still in worse shape than my original version of the module was for 3 languages... but now it supports 60. 21:44
masak r: sub anagram($l, $r) { sub canon { $^s.comb.sort }; canon($l) eqv canon($r) }; say anagram 'societas iesu', 'uitiosa seces' 21:45
p6eval rakudo 8c0f87: OUTPUT«True␤»
masak swarley: there you go :)
swarley wat
masak bows
swarley Can it descramble anagram([3,5,5,6,5,2,2,5],"ybpsylyrcytyrglhlymtyprpsyyssysty") (8 words of the lengths defined in the array) 21:46
using the characters in the string
masak er, no.
guess we're working with different problem defitions here... :)
swarley haha
21:49 broquaint left
swarley well, at least I have jruby running it.. 21:50
colomon [Coke]: hmm, actually I still get all pass. hurmph
21:51 broquaint joined 21:55 xinming left 21:56 xinming joined
[Coke] colomon: one of those screams "needs env var. 22:01
the other is probably a timeout.
LlamaRider Some of the most wanted P6 modules end up being (or containing) wrappers around external libraries. I was thinking of porting LibXML which is entirely a wrapper. Dare I ask what the new way of doing XS is in P6? 22:03
22:04 lustlife left
dalek rl6-roast-data: 6ae1a03 | coke++ | bin/niecza.sh:
Try to recover one niecza test.
22:05
[Coke] ok, that fixes dash-e.t - not sure about rx.t 22:06
sorear LlamaRider: look into NativeCall/zavolaj
(two names, same thing)
LlamaRider sorear: I need to install zvaolaj additionally? Does panda handle that? I read a very instructive advent calendar post and am looking at some examples of existing modules. 22:09
jnthn You can install it through panda 22:10
LlamaRider curious it isn't a core feature. Ok, I'm off to play around with it, thanks! 22:11
[Coke] There is no upgrade path for panda if you upgrade rakudo in place, aye?
colomon [Coke]: rebootstrap.pl 22:12
[Coke] colomon: does that work if parrot got upgraded along the way?
colomon [Coke]: probably not
[Coke] (panda and modules get installed in a parrot specific lib dir) 22:13
22:22 LlamaRider_ joined 22:25 skids joined, LlamaRider left, LlamaRider_ left 22:33 bluescreen10 left, bluescreen10 joined 22:36 grondilu left
masak 'night, #perl6 22:46
22:47 cognominal joined
lue [Coke]: Every rakudo upgrade I have to reinstall rakudo and change my ~/.perl6/bin|lib symlinks. :/ 22:47
dalek p-jvm-prep: 6aabda5 | jnthn++ | src/org/perl6/nqp/sixmodel/SerializationWriter.java:
Port more of the lower-level serializations.
22:54
p-jvm-prep: 2a77c20 | jnthn++ | src/org/perl6/nqp/sixmodel/ (2 files):
Get serialization loop and assembly mostly ported.

With this, it's probably not so far from producing output; misses base 64 and any object knowing how to serialize itself.
colomon \o/ 22:55
22:57 alester left
colomon wait, is Rakudo's is-prime still broken on Windows? 23:01
jnthn > 1..100 ==> grep *.is-prime ==> say 23:02
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
Looks working here
colomon I mean, OS X?
sigh.
jnthn Oh, that I can't tell you :P
colomon brain flailing today.
jnthn I think mine is about done for the day :) 23:03
census Hi! Does anybody know java? 23:07
I have some javacode that I'd like to run instead in perl. Or at least understand what it is doing in terms of perl.
diakopter why in perl? 23:08
census well i just don't understand any java. i understand some perl at least. or matlab. or other languages 23:09
diakopter this is a generic java help request
23:09 am0c joined
census what do you mean? 23:10
colomon n: say 10 lcm 17 23:17
p6eval niecza v24-32-g4b68456: OUTPUT«170␤»
jnthn sleep & 23:25
23:25 bluescreen10 left 23:39 Inglorious` joined, cognominal left 23:45 woolfy left