Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2013-03-08

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:08 xilo joined #perl6
00:18 dalek specs: 64cfaac | larry++ | S32-setting-library/Containers.pod:
00:18 dalek specs: add List.permutations
00:18 dalek specs: review: https://github.com/perl6/specs/commit/64cfaac11c
00:18 xinming joined #perl6
00:18 cognominal joined #perl6
00:29 bonsaikitten joined #perl6
00:30 orafu joined #perl6
00:30 fgomez_ joined #perl6
00:30 preflex joined #perl6
00:30 wtw joined #perl6
00:39 xilo joined #perl6
00:39 mattp_ joined #perl6
00:39 alester joined #perl6
00:39 yakshavr joined #perl6
00:39 clkao joined #perl6
00:39 Exodist joined #perl6
00:39 telex joined #perl6
00:39 Khisanth joined #perl6
00:39 ashleyde1 joined #perl6
00:39 sjohnson joined #perl6
00:39 cxreg joined #perl6
00:39 kshannon joined #perl6
00:40 telex joined #perl6
01:01 am0c joined #perl6
01:01 lustlife joined #perl6
01:03 Targen joined #perl6
01:05 anuby joined #perl6
01:16 hypolin joined #perl6
01:23 cognominal joined #perl6
01:24 raiph joined #perl6
01:27 raiph there's a new reddit channel: http://www.reddit.com/r/readablecode/
01:29 cognominal joined #perl6
01:29 isomorphisms joined #perl6
01:31 raiph it would be interesting to see reactions to p6 code
01:31 raiph stuff that is specifically written for readability by non p6 users
01:32 raiph and other code that is well written but decidedly idiomatic
01:34 lichtkind is it right that in perl 6 there is no builder clearer predicate and so on methods
01:34 lichtkind or are they part of the metaobject?
01:36 sorear builder, clearer, and what not are Moose things, they don't have any counterpart in perl 6
01:36 sorear maybe someday Moose::Meta::Attribute will be ported
01:41 fgomez joined #perl6
01:43 quester joined #perl6
01:43 lichtkind thanks sorear, that was my opinion  too but since i will give a talk i rather double check
01:44 lichtkind and predicate too?
01:45 LlamaRider joined #perl6
01:50 raiph golly. says readablecode is 12 hours old and has 2,770 subscribers already...
01:52 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:58 LlamaRider hm, it seems I can use a $var directly without casting it into a regexp... only wondering if that has any performance drawbacks
02:01 TimToady http://rosettacode.org/wiki/Universal_Turing_machine#Perl_6  # finally, proof that Perl 6 is Turing Complete!
02:01 TimToady well, at least niecza is
02:02 TimToady obviously rakudo isn't turing complete since it can't even do a goto :)
02:04 TimToady r: label: say "foo"; goto label;
02:04 p6eval rakudo 11157e: OUTPUT«[31m===[0mSORRY![31m===[0m�Two terms in a row�at /tmp/MXd0ygaZYm:1�------> [32mlabel[33m�[31m: say "foo"; goto label;[0m�    expecting any of:�        argument list�        postfix�        infix or meta-infix�        infix stopper�        statement end�    Ã¢â‚¬Â¦
02:04 TimToady in fact, can't even parse a label, seems
02:06 TimToady LlamaRider: if you use a string directly, it's matched literally, as if you'd used \Q$mystring\E in p5
02:07 TimToady you need /<$mystring>/ if you want it interpreted as regex
02:07 LlamaRider TimToady: I am just experiencing that and scratching my head.
02:08 TimToady this is where you discover that P6 regexen are a language, not just strings (as they are in P5)
02:08 TimToady hence we can make the default for $mystring to match literally, becuase it's not done by interpolation into a string
02:08 TimToady note the same applies to variables like $0, so they are also matched literally
02:09 LlamaRider very interesting... thanks!
02:10 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 」␤␤»
02:11 TimToady nr: say 'Paris in the the spring.' ~~ /(\w+\s)<$0>/
02:11 p6eval niecza v24-31-g7d73dd1: OUTPUT«「the the」␤ 0 => 「the 」␤␤»
02:11 p6eval ..rakudo 11157e: OUTPUT«#<failed match>␤»
02:11 TimToady ooh, rakudobug maybe
02:12 TimToady notice that the literal space no longer matches, since whitespace is ignored by default in regex now
02:12 TimToady and the <$0> form treats 'the ' as a regex
02:12 TimToady so we don't the whitespace after the 2nd 'the'
02:13 LlamaRider cool :)
02:13 LlamaRider also a potential gotcha when you're not careful. Oh, does that mean that \0, \1 and so on are no longer used?
02:14 TimToady std: /(foo) \1/
02:14 p6eval std 692eb4f: OUTPUT«[31m===[0mSORRY![31m===[0m�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:�------> [32m/(foo) \1[33m�[31m/[0m�Check failed�FAILED 00:00 42m�»
02:15 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 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
02:16 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 #perl6
02:16 TimToady we can't catch that, for the reason sorear++ pointed out
02:18 TimToady 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 TimToady (at runtime, presumably)
02:22 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:25 LlamaRider I wonder if the process using 2.2 GB of RAM has anything to do with that O_O
02:27 raiph joined #perl6
02:34 rindolf joined #perl6
02:36 stevan_ joined #perl6
02:37 gdey joined #perl6
02:44 LlamaRider I wonder if the process using 2.2 GB of RAM has anything to do with that O_O
02:45 LlamaRider ah, sorry for double-posting :/ clumsy window management
02:50 LlamaRider r:  my $rex='rex'; say "Rex" ~~ m:i/$rex/; say "Rex" ~~ m:i/<$rex>/;
02:50 p6eval rakudo 11157e: OUTPUT«「Rex」␤␤#<failed match>␤»
02:50 LlamaRider n:  my $rex='rex'; say "Rex" ~~ m:i/$rex/; say "Rex" ~~ m:i/<$rex>/;
02:50 p6eval niecza v24-31-g7d73dd1: OUTPUT«False␤False␤»
02:50 LlamaRider now this looks awkward...
02:56 raiph joined #perl6
02:57 stevan_ joined #perl6
03:01 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」␤␤»
03:01 LlamaRider n:  my $rex=rx:i/rex/; say "Rex" ~~ m:i/$rex/; say "Rex" ~~ m:i/<$rex>/;
03:01 p6eval niecza v24-31-g7d73dd1: OUTPUT«「Rex」␤␤「Rex」␤␤»
03:01 LlamaRider I guess this isn't much of an insight, but it is a usable workaround ... for now.
03:05 raiph joined #perl6
03:07 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 LlamaRider I guess manipulating rx objects directly would be the way to go for now.
03:12 OuLouFu joined #perl6
03:20 raiph joined #perl6
03:24 anuby_ joined #perl6
03:32 quester left #perl6
03:46 sizz joined #perl6
03:50 dalek tablets: 4184d60 | (Herbert Breunung)++ | docs/appendix-a-index.txt:
03:50 dalek tablets: added also to A
03:50 dalek tablets: review: https://github.com/perl6/tablets/commit/4184d601a4
04:26 mattp_ joined #perl6
04:40 SamuraiJack joined #perl6
04:54 preflex_ joined #perl6
05:32 kaleem joined #perl6
05:45 felipe joined #perl6
05:54 rindolf joined #perl6
06:07 rindolf joined #perl6
06:10 jaldhar_ joined #perl6
06:15 xilo joined #perl6
06:17 raiph joined #perl6
06:29 rindolf joined #perl6
06:33 dalek roast: 44024a8 | larry++ | S05-match/positions.t:
06:33 dalek roast: Failed match returns Nil
06:33 dalek roast: review: https://github.com/perl6/roast/commit/44024a8f1c
06:34 dalek niecza: 4b68456 | larry++ | lib/CORE.setting:
06:34 dalek niecza: Failed matches return Nil
06:34 dalek niecza: review: https://github.com/sorear/niecza/commit/4b68456fc0
06:42 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 dwoldrich joined #perl6
06:44 TimToady yes, the tag does not contain the outer headers as part of its identity, which is bogus
06:47 lue my main issue was with the redundancy though.
06:49 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 joined #perl6
06:52 TimToady well, better would be to fix the tool to include the outer headers in the identity
06:57 * lue wonders where the Pod gets transformed to HTML
07:01 TimToady possibly by mu/util/podhtm.pl, but that might also be a fossil
07:03 diakopter lue: which Pod?
07:03 diakopter 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.
07:04 diakopter can't remember the .pl name
07:04 * lue fears the tool in question is a P5 one
07:04 diakopter your fears are confirmed
07:05 lue .oO(Maybe if I start working on Pod6 support tomorrow, we can eventually convert all the specs over)
07:11 FROGGS joined #perl6
07:20 wk_ joined #perl6
07:25 fhelmberger joined #perl6
07:25 rindolf joined #perl6
07:26 salv0 joined #perl6
07:38 rindolf joined #perl6
07:42 rindolf Hi all.
07:42 rindolf Hi TimToady , diakopter : what's up?
07:42 diakopter :)
08:03 salv0 joined #perl6
08:03 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:04 diakopter because that's just not what happens to athletic heroes
08:13 diakopter "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:16 rindolf joined #perl6
08:17 awwaiid joined #perl6
08:17 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:23 diakopter hee
08:25 labster .oO (When will Perl 6 be movie production ready?)
08:29 awwaiid joined #perl6
08:35 rindolf joined #perl6
08:37 daxim joined #perl6
08:39 sqirrel joined #perl6
08:39 jnthn morning o/
08:39 diakopter o/
08:39 diakopter o /
08:39 diakopter o  /
08:40 jnthn stop-motion ascii-art?
08:42 felher diakopter: was this an attempt to high-five?
08:43 diakopter someone pulled my arm off
08:43 jnthn Seems you can still type one-handed.
08:44 felher sounds painful...
08:47 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:48 moritz diakopter: it's not small in comparison to the numbers rakudo had one year earlier
08:49 moritz and I'm kinda allergic to allison spreading her worldview of 2008/2009 about rakudo and selling it as today's reality
08:49 moritz s/of/from/
08:50 diakopter ok
08:53 kresike joined #perl6
08:53 kresike hello all you happy and unhappy perl6 people
08:54 kresike s/and/or/
08:54 sorear "and" works there
08:54 sorear it's functioning as a set union, not a logical conjunction
08:55 diakopter also, a person can be both happy and unhappy
08:56 rindolf joined #perl6
08:56 diakopter (or at least cycle back and forth between them extremely quickly)
08:57 kresike need more coffee to boot up logic engine ☺
08:59 diakopter quickly *and frequently, I mean
08:59 pmurias joined #perl6
09:21 kivutar joined #perl6
09:28 woolfy joined #perl6
09:30 rindolf joined #perl6
09:32 hoelzro goede morgen #perl6
09:32 FROGGS guten morgen hoelzro
09:37 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 hoelzro how are the corresponding closing chars calculated?
09:38 hoelzro and where in the code does that happen?
09:38 diakopter which Perl 6 grammar? one in Rakudo or STD?
09:38 moritz somewhere there's a big hash table
09:41 FROGGS hoelzro: this? https://github.com/perl6/nqp/blob/master/src/HLL/Grammar.pm#L4
09:42 FROGGS but I believe there are other places too
09:44 woosley left #perl6
09:44 rindolf joined #perl6
09:46 wtw joined #perl6
09:48 hoelzro diakopter, FROGGS: the Rakudo grammar
09:48 woosley joined #perl6
09:48 woosley left #perl6
10:04 rindolf joined #perl6
10:17 huf joined #perl6
10:20 crab2313 joined #perl6
10:20 sttau joined #perl6
10:24 am0c joined #perl6
10:27 dalek rakudo-js: 14fcfcd | (Pawel Murias)++ | runtime/serialization.js:
10:27 dalek rakudo-js: Fix all errors returned gjslint --nojsdoc runtime/serialization.js besides the 80 lines limit.
10:27 dalek rakudo-js: review: https://github.com/pmurias/rakudo-js/commit/14fcfcdf7f
10:27 dalek rakudo-js: 3b01b6c | (Pawel Murias)++ | runtime/serialization.js:
10:27 dalek rakudo-js: Shorten lines to 80 chars, so that  gjslint --strict --nojsdoc runtime/serialization.js passes
10:27 dalek rakudo-js: review: https://github.com/pmurias/rakudo-js/commit/3b01b6c1ae
10:29 FROGGS hoelzro: for one thing: Perl6::Grammar _is_ HLL:Grammar (does STD)
10:30 FROGGS 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:31 FROGGS that's here https://github.com/rakudo/rakudo/blob/nom/src/Perl6/Grammar.pm#L3439
10:32 jnthn Or chars, if it's more than one.
10:33 jnthn Is this trying to fix the user defined circumfixes?
10:33 FROGGS ohh ya
10:34 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
10:34 jnthn hoelzro: oh!
10:34 jnthn :)
10:34 hoelzro the list of opening/closing brackets is currently wrong
10:34 jnthn Then ignore my babbling :)
10:34 hoelzro =
10:34 hoelzro =)
10:34 hoelzro I wish Rakudo (esp. the grammar) weren't so dense
10:35 hoelzro it presents a serious challenge to start helping =/
10:37 jnthn Well, the grammar is big 'cus it's parsing a big language.
10:37 jnthn I'm not sure what we can do about that...
10:37 hoelzro true
10:38 hoelzro I tried wrapping my head around the part that parses class $name $traits { ... } as well o_O
10:39 jnthn Well, much that is in package_def is not about parsing so much as registering the new symbol
10:39 hoelzro yeah
10:39 hoelzro I'm a novice, but it seems to me that most of that work should go into Actions.pm?
10:40 jnthn The action methods run after something has been parsed
10:40 jnthn By we need symbols to exist from the point they are declared, as it influences the rest of the parse.
10:40 jnthn *But
10:40 hoelzro oh, ok
10:40 hoelzro that makes sense
10:43 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:53 kaleem joined #perl6
11:02 not_gerd joined #perl6
11:02 not_gerd o/
11:02 not_gerd I just added https://github.com/rakudo/rakudo/wiki/Real-World-Usage to the github wiki
11:07 hoelzro not_gerd++
11:07 hoelzro I should add my XMPP bot to there
11:17 dalek rakudo/md-nqp: 6191f6d | jnthn++ | src/Perl6/Metamodel/BOOTSTRAP.pm:
11:17 dalek rakudo/md-nqp: Start porting multi-dispatcher to NQP.
11:17 dalek rakudo/md-nqp:
11:17 dalek rakudo/md-nqp: Some of the complex bits are commented out, and it doesn't quite work
11:17 dalek rakudo/md-nqp: yet, but this gets the overall algorithm translated.
11:17 dalek rakudo/md-nqp: review: https://github.com/rakudo/rakudo/commit/6191f6d65c
11:31 rurban joined #perl6
11:33 thundergnat joined #perl6
11:36 thundergnat r: 1 cmp 2 cmp 3
11:36 p6eval rakudo 11157e: OUTPUT«[31m===[0mSORRY![31m===[0m�Operators 'cmp' and 'cmp' are non-associtiave and require parenthesis�at /tmp/CwHYhIaBx8:1�------> [32m1 cmp 2 [33m�[31mcmp 3[0m�    expecting any of:�        postfix�        infix or meta-infix�        infix stopper�»…
11:36 thundergnat associtiave?
11:37 thundergnat ^^ I would fix but lack rakudo commit bits.
11:37 jnthn hm, ain't the message in NQP...
11:38 jnthn ah, no, it's in Rakudo
11:39 grondilu what do you guys think about J?  (I've been reading about it since yesterday, and so far I like it)
11:40 * grondilu talks about rosettacode.org/wiki/J
11:43 pmurias is there a perltidy for Perl6? on anyone working on it?
11:44 araujo joined #perl6
11:44 araujo joined #perl6
11:48 Khisanth joined #perl6
11:49 dalek rakudo-js: 9339e90 | (Pawel Murias)++ | runtime/serialization.js:
11:49 dalek rakudo-js: Mark comments as JSDoc
11:49 dalek rakudo-js: review: https://github.com/pmurias/rakudo-js/commit/9339e90a8c
11:49 dalek rakudo-js: 24359b9 | (Pawel Murias)++ | runtime/bootstrap.js:
11:49 dalek rakudo-js: gjslint --nojsdoc --strict runtime/bootstrap.js passes.
11:49 dalek rakudo-js: review: https://github.com/pmurias/rakudo-js/commit/24359b9f15
11:49 dalek rakudo-js: c661c26 | (Pawel Murias)++ | runtime/hash.js:
11:49 dalek rakudo-js: gjslint --nojsdoc --strict runtime/hash.js passes.
11:49 dalek rakudo-js: review: https://github.com/pmurias/rakudo-js/commit/c661c263a8
12:04 peco joined #perl6
12:43 jnthn std: q\ \
12:43 p6eval std 692eb4f: OUTPUT«[31m===[0mSORRY![31m===[0m�Undeclared routine:� 'q' used at line 1�Check failed�FAILED 00:00 41m�»
12:45 jnthn TimToady: I'm struggling to figure out why STD doesn't treat the above as a quoting construct. Any hints?
12:47 moritz unspace?
12:47 * moritz has no idea
12:49 jnthn r: class A; has $.a syntax error;
12:49 p6eval rakudo 11157e: OUTPUT«[31m===[0mSORRY![31m===[0m�Two terms in a row�at /tmp/kcgYrhN3cP:1�------> [32mclass A; has $.a [33m�[31msyntax error;[0m�    expecting any of:�        scoped declarator�        constraint�        postfix�        infix or meta-infix�        infix stopper�  Ã¢â‚¬Â¦
12:49 jnthn std: class A; has $.a syntax error;
12:49 p6eval std 692eb4f: OUTPUT«[31m===[0mSORRY![31m===[0m�Two terms in a row at /tmp/hqbpNkKZ5P line 1:�------> [32mclass A; has $.a [33m�[31msyntax error;[0m�    expecting any of:�      constraint�     infix or meta-infix�    infixed function�       initializer�    statement modifier loop�
12:49 p6eval ..trait␤Parse failed␤…
12:49 jnthn wfm
12:50 * jnthn is going through some RT tickets and makring a bunch testneeded :)
12:52 moritz calendar at $work has interesting defaults: reminder 10 minutes before a meeting, and then offers to snooze 15min :-)
12:52 jnthn :D
12:52 tadzik perfect :)
12:54 * 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 :)
12:54 jnthn *have
12:54 cognominal joined #perl6
12:55 dalek rakudo/md-nqp: 371433d | jnthn++ | src/Perl6/Metamodel/BOOTSTRAP.pm:
12:55 dalek rakudo/md-nqp: Various fixes.
12:55 dalek rakudo/md-nqp:
12:55 dalek rakudo/md-nqp: Gets the NQP-based multi-dispatcher working for some basic cases.
12:55 dalek rakudo/md-nqp: review: https://github.com/rakudo/rakudo/commit/371433db9d
12:58 LlamaRider joined #perl6
13:09 Khisanth joined #perl6
13:30 Khisanth joined #perl6
13:32 jnthn r: my %h = a => 1, b => 2; my $x = 'a'; say %h<< b $x >>
13:32 p6eval rakudo 11157e: OUTPUT«(Any) (Any)␤»
13:32 jnthn Got that one fixed locally, running spectest while I go for a walk :)
13:53 colomon n: my %h = a => 1, b => 2; my $x = 'a'; say %h<< b $x >>
13:53 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/…
13:54 colomon :\
13:55 * [Coke] eyerolls at diakopters weight comments.
13:56 FROGGS http://i.imgur.com/nAZaLaE.jpg
13:57 FROGGS ^-------- 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
13:57 p6eval std 692eb4f: OUTPUT«[31m===[0mSORRY![31m===[0m�"cmp" and "cmp" are non-associative and require parens at /tmp/9oTjUHpyJS line 1:�------> [32m1 cmp 2 cmp [33m�[31m3[0m�Check failed�FAILED 00:00 42m�»
13:57 FROGGS I mean, ./perl6 -e '1' is 7% faster
13:57 arnsholt FROGGS: Looks promising. What kind of changes have you done?
13:58 FROGGS well, I used another base64_decode code :o)
13:58 arnsholt Probably a good idea. Where did you take it from?
13:59 arnsholt (And what kind of licence does it have?)
13:59 FROGGS I used and translated this:
13:59 FROGGS http://www.experts-exchange.com/Programming/System/Windows__Programming/A_3216-Fast-Base64-Encode-and-Decode.html
13:59 masak today's autopun: "'We hate math', say 4 out of 10 Americans -- a majority of Americans"
13:59 tadzik FROGGS: awesome
14:00 [Coke] thanks for throwing the US under the bus. :P
14:00 jnthn .oO( Was it a short bus? )
14:00 jnthn :P
14:01 tadzik jnthn: well, longer than average ;)
14:01 jnthn :P
14:01 jnthn FROGGS: ooh, nice!
14:03 [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
14:03 arnsholt FROGGS: The post says there's an even faster one in the comments. Did you try that one as well?
14:03 FROGGS ohh no, danm
14:03 FROGGS will try that one too then
14:05 dalek rakudo/nom: 4080d67 | jnthn++ | src/Perl6/ (2 files):
14:05 dalek rakudo/nom: Add missing shellwords postcircumfixes.
14:05 dalek rakudo/nom:
14:05 dalek rakudo/nom: Resolves oops-hyper parse bug due to them being missing, and as a bonus
14:05 dalek rakudo/nom: means we now support them.
14:05 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/4080d679ca
14:06 dalek nqp: 25e2a23 | (Arne Skjærholt)++ | src/6model/reprs/VMArray.c:
14:06 dalek nqp: Stub serialization and deserialization logic for VMArrays and their REPR data.
14:06 dalek nqp: review: https://github.com/perl6/nqp/commit/25e2a23b41
14:06 dalek nqp: 33a40fc | (Arne Skjærholt)++ | src/6model/reprs/VMArray.c:
14:06 dalek nqp: Implement gc_mark in VMArray.
14:06 dalek nqp: review: https://github.com/perl6/nqp/commit/33a40fcb01
14:06 jnthn I wonder if we have some spectests for %h<< $x abc >> style things.
14:10 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:12 LlamaRider It has both a procedural and an OO interface, as many P5 utilities do.
14:13 census joined #perl6
14:14 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 #perl6
14:19 pmurias jnthn: do we have a coding standard for rakudo/nqp?
14:21 jnthn pmurias: Nothing documented. There's various unspoken things I guess (like, use spaces, not tabs, don't camel-case method names, etc).
14:22 Psyche^ joined #perl6
14:27 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
14:29 LlamaRider PerlJam: S11 seems to claim you can use a class (Dog in that example)
14:31 census pmichaud: Plano, Texas ?
14:32 jnthn LlamaRider: Yes, it's fine if the top-level thing is a class
14:33 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"
14:34 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
14:34 jnthn It's just convention that they match up
14:34 jnthn EXPORT is actually a lexical package in the UNIT of the thing you're loading, so it's lcoated like that.
14:35 jnthn 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:35 LlamaRider Hm... How about Foo.pm containing module Foo {} and class Foo {} inside itself?
14:36 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)
14:36 jnthn Then the class on the inside is actually Foo::Foor.
14:36 jnthn *Foo
14:37 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 #perl6
14:37 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.
14:38 PerlJam LlamaRider: It would give you a "symbol redeclaration" error for Foo.
14:39 jnthn r: module Foo { }; class Foo { }
14:39 p6eval rakudo 4080d6: OUTPUT«[31m===[0mSORRY![31m===[0m�Redeclaration of symbol Foo�at /tmp/Mg54Pg8Igg:1�------> [32mmodule Foo { }; class Foo [33m�[31m{ }[0m�    expecting any of:�        statement list�        horizontal whitespace�        postfix�        infix or meta-infix�        Ã¢â‚¬Â¦
14:40 LlamaRider So, two different kinds of objects share one namespace?
14:40 dalek rakudo/nom: c4280ee | jnthn++ | src/ (4 files):
14:40 dalek rakudo/nom: Generalize "can we augment this" checking.
14:40 dalek rakudo/nom:
14:40 dalek rakudo/nom: Make it an archetype, and then opt classes in. Also tweak the exception
14:40 dalek rakudo/nom: type that is used to be more general, and try to make the wording of it
14:40 dalek rakudo/nom: general enough for all the cases we could get it, so it won't mislead.
14:40 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c4280ee3eb
14:40 LlamaRider Ok... Then classes do seem to be thought of as modules on some level.
14:41 PerlJam because thry are
14:41 jnthn Both result in a type object being instaleld, yes.
14:41 jnthn *installed
14:41 jnthn They're both types in some sense, but modules aren't very useful as types.
14:41 jnthn They're just another kind though. Like roles, enums, subsets, etc.
14:42 LlamaRider so I can "use" any type?
14:43 dalek roast: 6e76108 | jnthn++ | S32-exceptions/misc.t:
14:43 dalek roast: Update augment exception test and add another one.
14:43 dalek roast:
14:43 dalek roast: New test covers RT#112956.
14:43 dalek roast: review: https://github.com/perl6/roast/commit/6e76108a7c
14:43 jnthn LlamaRider: Well, yes, but the "use" is really mapping to a filename.
14:44 jnthn 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)
14:45 PerlJam 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
14:45 p6eval std 692eb4f: OUTPUT«ok 00:01 50m␤»
14:46 takadonet LlamaRider: I written a few cpan p5 to p6 modules with both OO and procedural interface
14:47 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:48 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 crab2313 joined #perl6
14:49 takadonet it was a very straight port where it was a mix of OO and procedural in the same class
14:49 takadonet https://github.com/Takadonet/Algorithm--Diff/
14:49 takadonet just started to fix the bit rot on it this week
14:50 takadonet 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 #perl6
14:50 LlamaRider Also jnthn++ and PerlJam++ thanks for the Perl6 OO vs modules lesson.
14:52 rjbs joined #perl6
14:58 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
14:58 takadonet I am in the processing of fixing the procedural way first then the OO
15:02 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:04 takadonet no idea.
15:04 mtk joined #perl6
15:04 JimmyZ joined #perl6
15:07 mtk joined #perl6
15:11 sftp joined #perl6
15:15 PacoAir joined #perl6
15:15 mtk joined #perl6
15:15 TimToady n: say 'foo' ~~ /bar/
15:15 p6eval niecza v24-32-g4b68456: OUTPUT«Nil␤»
15:15 TimToady \o/
15:16 TimToady 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…
15:17 FROGGS arnsholt: the post only says something about a faster encoder, not decoder
15:20 JimmyZ r: say 'foo' ~~ /bar/
15:20 p6eval rakudo c4280e: OUTPUT«#<failed match>␤»
15:20 JimmyZ r: say ('foo' ~~ /bar/).chars
15:20 p6eval rakudo c4280e: OUTPUT«0␤»
15:21 kresike bye folks
15:21 JimmyZ n: say ('foo' ~~ /bar/).chars
15:21 p6eval niecza v24-32-g4b68456: OUTPUT«Nil␤»
15:22 am0c joined #perl6
15:24 TimToady jnthn: yes, ws calls .unsp, so you can't have whitespace after the \ if you want it to work
15:24 TimToady std: q\ \
15:24 p6eval std 692eb4f: OUTPUT«[31m===[0mSORRY![31m===[0m�Undeclared routine:� 'q' used at line 1�Check failed�FAILED 00:00 41m�»
15:24 TimToady std: q\x\
15:24 p6eval std 692eb4f: OUTPUT«ok 00:00 41m␤»
15:27 TimToady but I think that's a very small WAT compared to the DWIM of unspace + choose-your-own-adventure :)
15:29 xilo joined #perl6
15:31 skids joined #perl6
15:31 donaldh joined #perl6
15:33 TimToady n: say Nil.foo.bar.baz
15:33 p6eval niecza v24-32-g4b68456: OUTPUT«Nil␤»
15:35 bluescreen10 joined #perl6
15:48 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:49 TimToady And it's really quite unlikely that those two are the same person...
15:53 * TimToady spent far too long trying to figure out who user 'danm' is after reading http://irclog.perlgeek.de/perl6/2013-03-08#i_6564795
15:54 huf :)
15:54 huf his other name is darn
15:55 kaare__ joined #perl6
15:59 gdey joined #perl6
16:02 FROGGS TimToady: :o)
16:02 TimToady darn: I ran out of backlog--you guys need to frontlog s'more...
16:05 ggoebel_ joined #perl6
16:07 * jnthn back
16:07 isomorphisms joined #perl6
16:09 jnthn TimToady: Hm, I wonder why we don't treat it as unspace correctly then...
16:09 jnthn Will have a dig.
16:10 jnthn Been taking a look at circumfix parsing too
16:12 spider-mario joined #perl6
16:12 jnthn Somehow, when I changed it to parse semilist rather than EXPR, it then parse fails
16:13 TimToady doesn't eat ws maybe
16:13 jnthn Well, not liking ws is what I'm trying to fix :)
16:14 jnthn I think it gets ws right
16:14 jnthn it then things the terminator is a second term...
16:14 jnthn ooh...
16:14 TimToady STD has a '' in semilist to eat whitespace due to the new ws semantics
16:14 jnthn ((local \$::GOAL = $stopper
16:15 jnthn Does that affect the parse?
16:15 TimToady sure, there are several assertions that test $*GOAL
16:18 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
16:19 TimToady you're thinking of the begin/end problem?
16:19 TimToady or something else?
16:19 jnthn Yeah, the being end one
16:19 jnthn *begin
16:19 jnthn Oh
16:19 jnthn It sets stopper too
16:20 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...
16:20 jnthn I don't think it's an LTM issue
16:20 jnthn I think it's that I'm not setting the "end" as a stopper
16:20 jnthn I somehow missed the fact that what's in CursorBase does that.
16:21 jnthn 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
16:21 TimToady iirc the error looked like it was trying to parse as a listop
16:21 TimToady *cause
16:21 jnthn Oh, sorry for the confusion...
16:22 jnthn The *initial* problem was that it didn't spot the whitespace
16:22 jnthn That's 'cus we called EXPR instead of calling semilist like STD does
16:22 jnthn Fixing semilist gets it further but it does a ttiar when it hits thet terminator.
16:22 jnthn I'd read the regex bit of CursorBase then missed the lines that set goal and stopper
16:23 TimToady k
16:25 * jnthn tries some changes
16:28 Chillance joined #perl6
16:30 isBEKaml joined #perl6
16:30 isBEKaml OHHAI, #perl6!
16:32 takadonet isBEKaml: hey
16:33 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 isBEKaml takadonet: hey
16:33 jnthn isBEKaml: Yeah, I got a patch here that may cut it, apart from I did a silly typo...
16:34 isBEKaml jnthn: cool, looking forward to that :)
16:37 zby_home joined #perl6
16:43 dalek rakudo-js: 2179c68 | (Pawel Murias)++ | runtime/reprs.js:
16:43 dalek rakudo-js: gjslint --nojsdoc --strict runtime/reprs.js passes.
16:43 dalek rakudo-js: review: https://github.com/pmurias/rakudo-js/commit/2179c68642
16:43 dalek rakudo-js: 91a5029 | (Pawel Murias)++ | runtime/sixmodel.js:
16:43 dalek rakudo-js: gjslint --nojsdoc --strict runtime/sixmodel.js passes.
16:43 dalek rakudo-js: review: https://github.com/pmurias/rakudo-js/commit/91a50295ec
16:43 dalek rakudo-js: 22ba87c | (Pawel Murias)++ | Makefile:
16:43 dalek rakudo-js: Add a lint target to the Makefile.
16:43 dalek rakudo-js: review: https://github.com/pmurias/rakudo-js/commit/22ba87c772
16:43 dalek rakudo-js: 4eb5925 | (Pawel Murias)++ | / (2 files):
16:43 dalek rakudo-js: gjslint --nojsdoc --strict runtime.js passes.
16:43 dalek rakudo-js: review: https://github.com/pmurias/rakudo-js/commit/4eb5925416
16:43 dalek rakudo-js: 8649ded | (Pawel Murias)++ | runtime/bootstrap.js:
16:43 dalek rakudo-js: Fix bug.
16:51 SunilJoshi joined #perl6
16:56 ElDiabolo joined #perl6
16:58 ElDiabolo masak, Hi. hinking about implementing LINQ has been stalled for some time. Laptop got stolen.
17:03 dalek rakudo/nom: 085f746 | jnthn++ | src/Perl6/Grammar.pm:
17:03 dalek rakudo/nom: Align user-defined circumfix parsing with STD.
17:03 dalek rakudo/nom:
17:03 dalek rakudo/nom: Means that we now use semilist (thus getting whitespace righter) and
17:03 dalek rakudo/nom: set a stopper appropriately.
17:03 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/085f74691e
17:04 dalek roast: 0f3284c | jnthn++ | S06-operator-overloading/sub.t:
17:04 dalek roast: Tests for spaces inside user-defined circumfixes.
17:04 dalek roast: review: https://github.com/perl6/roast/commit/0f3284cd22
17:05 jnthn std: sub postfix:< >($a) { [*] 1..$a; }; say (* )(5);
17:05 p6eval std 692eb4f: OUTPUT«[31m===[0mSORRY![31m===[0m�Null operator is not allowed at /tmp/OjiZ9A1y8d line 1:�------> [32msub postfix:< >[33m�[31m($a) { [*] 1..$a; }; say (* )(5);[0m�Parse failed�FAILED 00:00 41m�»
17:07 SunilJoshi joined #perl6
17:12 wk joined #perl6
17:13 jnthn std: sub postfix:<>($a) { [*] 1..$a; }; say (* )(5);
17:13 p6eval std 692eb4f: OUTPUT«[31m===[0mSORRY![31m===[0m�Null operator is not allowed at /tmp/DThjTfCgpC line 1:�------> [32msub postfix:<>[33m�[31m($a) { [*] 1..$a; }; say (* )(5);[0m�Other potential difficulties:�  Pair with <> really means a Nil value, not null string; use :('') to rep…
17:34 sizz joined #perl6
17:35 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…
17:36 p6eval ..rakudo 085f74: OUTPUT«1 1 2 6 24 120 720 5040 40320 362880␤»
17:36 TimToady rakudo++
17:36 jnthn ooh, that's a cute way to define it
17:42 masak p6 u so terse
17:43 gdey joined #perl6
17:43 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:44 PerlJam When does it not produce a list?
17:44 PerlJam or should the "pretty much" language be tweaked?
17:45 dvj rn: say 1 xx *
17:45 p6eval niecza v24-32-g4b68456: OUTPUT«(timeout)»
17:45 p6eval ..rakudo 085f74: OUTPUT«1 1 1 1 ...␤»
17:45 dvj rakudo++ :P
17:46 masak https://docs.google.com/document/d/1bMwCey-gmqZVTpRax-ESeVuZGmjwbocYs1iHplK-cjo/pub # Go 1.1 function calls, interesting reading about how Go functions are stored
17:46 masak I hadn't realized Russ Cox was on the Go team.
17:48 dalek nqp-jvm-prep: 4ed22aa | jnthn++ | lib/QAST/JASTCompiler.nqp:
17:48 dalek nqp-jvm-prep: Fix serialize op return type.
17:48 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/4ed22aaa8e
17:48 dalek nqp-jvm-prep: a77bcfb | jnthn++ | src/org/perl6/nqp/ (2 files):
17:48 dalek nqp-jvm-prep: Port a few of the basic serialization primitives.
17:48 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/a77bcfb3f8
17:48 nwc10 what is it with timing? I was only just looking, after about 24 hours away
17:48 masak lichtkind: I think the clearer on attributes was included in Moose for rather arbitrary reasons. like, someone used it in a project.
17:51 TimToady http://rosettacode.org/wiki/Permutations/Derangements#Perl_6
17:54 skids .oO(and when TimToady++ finishes all of Rosettacode he will move on to generating every sequence on oeis.org)
17:55 masak or solving all the problems in TAoCP using Perl 6.
18:02 colomon TAoCP++
18:02 colomon ooo, more nqp-jvm commits!  \o/
18:05 jnthn r: :a<>
18:05 p6eval rakudo 085f74: OUTPUT«[31m===[0mSORRY![31m===[0m�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�------> [32m:a<[33m�[31m>[0m�»
18:05 jnthn std: :a<>
18:05 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:�------> [32m:a<>[33m�[31m<EOL>[0m�ok 00:00 40m�»
18:05 jnthn hm, so our test that it dies is rong.
18:06 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 ()
18:06 jnthn std: <>
18:06 p6eval std 692eb4f: OUTPUT«[31m===[0mSORRY![31m===[0m�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:�------> [32m<[33m�[31m>[0m�Parse failed�FAILED 00:00 40m�»
18:07 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
18:08 masak only if "average" means "median" :)
18:08 dalek rakudo/nom: f27a139 | jnthn++ | src/ (2 files):
18:08 dalek rakudo/nom: Forbid null operators.
18:08 dalek rakudo/nom:
18:08 dalek rakudo/nom: Adds a typed exception for them also.
18:08 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f27a13985b
18:08 dalek rakudo/nom: 4e84ff7 | jnthn++ | src/Perl6/ (3 files):
18:08 dalek rakudo/nom: Add coloncircumfix.
18:08 dalek rakudo/nom:
18:08 dalek rakudo/nom: Brings us further in line with STD's approach, and gets rid of a
18:08 dalek rakudo/nom: misleading message.
18:08 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/4e84ff715d
18:09 dalek std: 86b102f | larry++ | STD.pm6:
18:09 dalek std: Don't use Nil to mean () in error messages anymore
18:09 dalek std: review: https://github.com/perl6/std/commit/86b102f40c
18:09 dalek roast: 0e6e3de | jnthn++ | S32-exceptions/misc.t:
18:09 dalek roast: Correct test for obsolete use of <>.
18:09 dalek roast:
18:09 dalek roast: Per STD, :a<> should not die in that way.
18:09 dalek roast: review: https://github.com/perl6/roast/commit/0e6e3ded8f
18:09 masak oh, TimToady++ already pointed out the "median" thing.
18:10 * 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...
18:11 TimToady 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>?
18:11 TimToady that one really does mean Nil, I think
18:11 FROGGS yay, jnthn did something for nom again \o/
18:11 FROGGS jnthn++
18:11 FROGGS :o)
18:12 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 masak *grin*
18:12 TimToady please define "the system"...
18:12 masak it includes the tester...
18:13 TimToady how 'bout cosmic rays?
18:13 * masak read that as "cosmetic rays", twice
18:13 jnthn std: undef
18:13 p6eval std 692eb4f: OUTPUT«[31m===[0mSORRY![31m===[0m�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
18:13 p6eval ..…
18:14 TimToady that's specifically where someone was trying to say "undef", which is not () in p5
18:14 TimToady so I think Nil is more accurate there
18:14 TimToady (assuming the new semantics)
18:14 TimToady ((which I haven't managed to hack into niecza yet becuase the regex engine somehow depends on Nil.list returning ()
18:15 TimToady ))
18:15 jnthn TimToady: Rakudo's behind with the latest STD message there, it turns out...so false alarm.
18:17 jnthn 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:18 jnthn 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 lichtkind_ joined #perl6
18:19 [Coke] AHAHAHAHAHAHA. I AM THE 1,024TH PERSON TO LIKE LARRY WALL ON FACEBOOK! MUAHAHAHAH
18:19 [Coke] I definitely should get an internet point for that.
18:20 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")␤»
18:20 TimToady jnthn: how is that spelled in rakudo?
18:21 jnthn TimToady: In Rakudo, it's available through .^add_fallback
18:21 TimToady what does that add it to?
18:22 jnthn Which exists to implement handles...
18:22 jnthn It adds it to a list of method dispatch failovers.
18:22 jnthn If a normal MRO-based name search fails (which actually means a cache miss, typically), it searches through a list of failovers.
18:22 jnthn A failover consists of two closures: the first one determines if this failover applies, the second actually does the work.
18:23 TimToady r: class Fool { my method FALLBACK (|stuff) { say stuff }; Fool.^add_failover({True},&FALLBACK }; Fool.of_a_Took('Peregrine')
18:23 p6eval rakudo 085f74: OUTPUT«[31m===[0mSORRY![31m===[0m�Unable to parse expression in argument list; couldn't find final ')'�at /tmp/FPoVd_gKJi:1�------> [32m }; Fool.^add_failover({True},&FALLBACK [33m�[31m}; Fool.of_a_Took('Peregrine')[0m�    expecting any of:�        postfix�       …
18:23 jnthn Example usage in src/core/Failure.pm
18:23 TimToady something like that?
18:24 TimToady 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␤␤»
18:24 TimToady r: class Fool { my method FALLBACK (|stuff) { say stuff }; Fool.^add_fallback({True},&FALLBACK) }; Fool.of_a_Took('Peregrine')
18:24 p6eval rakudo 085f74: OUTPUT«Too many positional parameters passed; got 2 but expected between 0 and 1␤  in block  at /tmp/LkhA2uJppG:1␤␤»
18:24 jnthn Yes, put the first closure gets 2 args, object and name
18:25 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…
18:25 TimToady huh, doesn't derive from Any?
18:25 jnthn You got an NQP string.
18:26 TimToady ooh, leaky! :)
18:27 TimToady wondering if we should spec FALLBACK as a method, and do that fancy stuff if we happen to see one, like niecza does
18:28 TimToady 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…
18:28 jnthn r: class Fool { my method FALLBACK (|stuff) { say stuff }; Fool.^add_fallback(-> $, $ {True}, -> $, $name { &FALLBACK }) }; Fool.of_a_Took('Peregrine')
18:28 p6eval rakudo 085f74: OUTPUT«Peregrine␤»
18:29 TimToady o_O
18:30 jnthn or
18:30 jnthn r:
18:30 jnthn oops
18:30 jnthn 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')
18:30 p6eval rakudo 085f74: OUTPUT«of_a_Took Peregrine␤»
18:30 jnthn Anyway, this mechanism wasn't exactly designed with this purpose in mind.
18:30 jnthn It was added when I was implementing the various handles failovers.
18:31 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.
18:31 jnthn We could.
18:31 jnthn No objections if you want to spec something like that.
18:31 TimToady though I wonder if it wouldn't be better spelled 'method *'
18:31 TimToady (would take special parsing though)
18:31 TimToady maybe FALLBACK is better huffman
18:32 jnthn But also plesae spec its pecking order in relation to handles wildcarding :)
18:32 jnthn My guess is "comes after any of those"
18:32 TimToady oh, definitely after, I'd think
18:32 jnthn Because there's not a way for FALLBACK to say "no, I can't handle it"
18:32 jnthn Of course, any handles * will hide it 'cus that can handle anything
18:33 TimToady well, can it nextsame?
18:33 jnthn Hmm.
18:33 TimToady well, but handles * only looks for existing methods?
18:33 jnthn Where would it nextsame to?
18:33 jnthn Oh...that's a good point.
18:33 TimToady a FALLBACK in a parent class?
18:33 jnthn ah, yes
18:34 jnthn That would work once you end up in FALLBACK itself I guess.
18:34 TimToady that's why I can't easily do http://rosettacode.org/wiki/Respond_to_an_unknown_method_call yet
18:34 TimToady 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
18:35 TimToady I just meant it doesn't actually work if the method doesn't exist
18:35 jnthn handles some-thingy-here just smartmatches the name against the thing.
18:35 jnthn oh
18:36 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
18:36 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␤␤»
18:36 TimToady (unless that object does a fallback
18:36 TimToady )
18:36 jnthn Here it did $!x.Foo because 'new' ~~ *
18:36 jnthn Is that in line with what you're saying? :)
18:36 TimToady sure, but I'd like *that* to be able to failover to my own FALLBACK
18:37 TimToady if the delegation fails
18:37 jnthn But in that case it's not the current dispatch that failed...
18:38 jnthn The way I currently have it, it's already committed to do the $!x.Foo
18:38 jnthn It hands back something that does the delegation as soon as it seeks it matches the pattern.
18:38 jnthn It's not immediately obvious to me how to change it to do what you're after.
18:39 jnthn s/seeks/sees/
18:40 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.
18:40 lue Hello world o/
18:40 jnthn Yes, that bit I can do without much trouble.
18:40 TimToady will .can notice a FALLBACK in the delegate?
18:41 jnthn I suspect I can make that one go either way
18:41 jnthn If it does then an object will a callback will always respond true to .can
18:42 jnthn uh, fallback
18:42 jnthn Since it's invoked unconditionally.
18:42 Vlavv_ joined #perl6
18:42 jnthn oh, wait though...
18:42 jnthn Actually, .^can today is much more simplistic
18:43 jnthn 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
18:43 jnthn So with today's factoring, no, it won't count the fallback or failovers into the answer to can.
18:43 TimToady then you can write a FALLBACK here that invokes the delegate's FALLBACK explicitly
18:43 TimToady if you want it
18:44 masak +1
18:44 TimToady hmm, does that mean that handles * can't point to something that handles *?
18:44 jnthn So a "handles *" or "handles Foo" today will not contribute anything to the results of can.
18:44 jnthn Yes, because the actual dispatch itself goes through .^find_method
18:44 jnthn Which does consider the fallbacks.
18:45 TimToady oh, my FALLBACK can just invoke the method in that case, instead of invoking the Other's FALLBACK
18:45 TimToady and it will still get the other guy's 'handles *'
18:45 jnthn Right, that'll work.
18:45 TimToady doesn't have to be easy, but it's nice if it's possible
18:46 TimToady so I guess I'll spec FALLBACK as a magical method
18:46 TimToady unless someone has a better name for it
18:46 TimToady std: method * (|) {...}
18:46 p6eval std 86b102f: OUTPUT«[31m===[0mSORRY![31m===[0m�Malformed block at /tmp/WIZfgoCzjn line 1:�------> [32mmethod [33m�[31m* (|) {...}[0m�    expecting any of:�     block�  subscript signature�Parse failed�FAILED 00:00 40m�»
18:46 TimToady didn't think so...
18:46 TimToady std: method:: (|) {...}
18:46 p6eval std 86b102f: OUTPUT«[31m===[0mSORRY![31m===[0m�Prefix requires an argument at /tmp/YcBpe2B2OO line 1:�------> [32mmethod:: (|[33m�[31m) {...}[0m�Parse failed�FAILED 00:00 42m�»
18:46 TimToady std: method :: (|) {...}
18:46 p6eval std 86b102f: OUTPUT«Potential difficulties:�  'method' declaration outside of class at /tmp/IMDM_pzk_W line 1:�------> [32mmethod :: (|) [33m�[31m{...}[0m�ok 00:00 43m�»
18:47 jnthn Did we decide either way if "has $!x handles *" should actually verify if $!x.^can('foo') ?
18:47 TimToady still think I like the shouting better
18:47 TimToady yes, I think it should
18:47 [Coke] has six handles?
18:47 TimToady you are so lysdexic!
18:48 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?
18:48 jnthn TimToady: That is, for such a "blind" delegation, you'd pretty much have to write a FALLBACK?
18:49 TimToady .oO(handles **)  </ducks>
18:49 masak [Coke]: "If Perl 6 were a cup, it would have six handles."
18:49 jnthn Well, I could implement that one too :P
18:49 TimToady .oO(handles *, 'FALLBACK')
18:49 [Coke] masak: ... that's probably not a good motto. ;)
18:50 colomon "There's more than one way to drink it!"
18:50 TimToady well, ** is just the current semantics, right? :)
18:50 * lue just imagined six handles flying off a broken coffee mug
18:50 jnthn TimToady: Yes, that's why I know I can implement it :D
18:50 TimToady so mote it be then
18:51 masak [Coke]: for a number of reasons :)
18:51 TimToady good thing I haven't had breakfast yet
18:52 jnthn oh yeah....food
18:52 * jnthn should probably dinner :)
18:52 rindolf joined #perl6
18:53 dalek rakudo/nom: 8c0f875 | jnthn++ | src/Perl6/Grammar.pm:
18:53 dalek rakudo/nom: Sync some errors with STD.
18:53 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/8c0f8753a8
18:53 rindolf Hi all. Happy International Woman's Day. Embrace your inner femininity (even if you're a guy).
18:54 rindolf 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 rindolf Bastard imagine that.
18:54 masak rindolf: please don't come in here complaining about other channels. it's not classy.
18:54 rindolf I used much more derogatory words elsewhere on Freenode without arm.
18:54 rindolf masak: sorry. :-(.
18:54 rindolf masak: just venting.
18:55 jnthn Yes, but did you use them without x64?
18:55 masak rindolf: I can tell. still not good/constructive.
18:55 * jnthn really goes to the shop :)
18:55 rindolf masak: “A problem of many, half a consultation"
18:55 rindolf jnthn: enjoy.
18:55 rindolf masak: yes.
18:55 rindolf masak: sorry, again.
18:55 rindolf masak: what's up?
18:55 * masak hugs rindolf
18:56 masak rindolf: some sort of train roof.
18:56 rindolf masak: thanks.
18:56 * rindolf grumbles.
18:56 masak :P
18:56 masak oh! oh!
18:56 masak my luggage. it's right above me, on a rack.
18:57 masak sorry :P
18:57 rindolf masak: http://www.shlomifish.org/humour/fortunes/show.cgi?id=shlomif-fact-chuck-35
18:57 rindolf masak: BTW, my inner Sarah Michelle Gellar can do that too. ;-)
18:57 huf masak: you torture the luggage?
18:57 huf and it doesnt trample you with its many many feets?
18:58 rindolf huf: heh.
18:58 rindolf huf: let's have some Rincewind facts marathon.
18:58 masak huf: sorry, didn't mean "on a rack"; meant "on Iraq".
18:59 huf :)
18:59 masak rindolf: that's the second time you've been sending me the "club you senseless" link ;)
18:59 masak proportionally, there have been very few Chuck Norris clubbings, though.
18:59 huf incidentally, where is the top of iraq?
19:00 fgomez joined #perl6
19:00 rindolf masak: heh, I will send it to you again and again and again.
19:00 rindolf masak: I have short memory.
19:00 masak huf: seems it's poking into the bottom of Turkey :P
19:00 rindolf masak: well, short-term memory.
19:01 masak rindolf: you can say that again!
19:01 rindolf masak: yes, people like me tend to repeat stuff to the same person.
19:01 rindolf masak: it's http://en.wikipedia.org/wiki/Hyperthymic_temperament .
19:02 masak "hyperthymic" sounds like "[spiced with] too much thyme".
19:02 rindolf masak: heh.
19:02 lue I'm guessing any Pod6 rendering issues for, say, the synopses would occur in both Pod::To::HTML and Rakudo's parser, correct?
19:02 rindolf masak: no such thing as too much  thyme. ;-)
19:02 rindolf masak: well, no such thing as too much Za'atar.
19:02 rindolf 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.
19:03 rindolf masak: did you see my twitter recently - https://twitter.com/shlomif
19:03 masak I did not.
19:03 rindolf masak: I've been thinking of creating a screenplay about ##programming .
19:04 rindolf masak: but maybe it will make unreal like me even less.
19:04 rindolf masak: anyway, what are you working on now?
19:05 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 xilo joined #perl6
19:05 masak rindolf: also gearing up to do the p6cc/t2 blog post.
19:08 masak also planning to dig into https://github.com/perl6/production-readiness in the weekend.
19:09 dalek specs: 2249907 | larry++ | S12-objects.pod:
19:09 dalek specs: FALLBACK methods, handles **, semantics thereof
19:09 dalek specs: review: https://github.com/perl6/specs/commit/2249907004
19:15 [Coke] masak++ # I'd never seen html5please.
19:17 masak [Coke]: things you learn by teaching HTML5 courses ;)
19:18 [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
19:19 TimToady assuming there's a default DESTROY somewhere
19:20 fgomez joined #perl6
19:21 masak [Coke]: nono, not taking an HTML5 class. teaching it. :)
19:23 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>;
19:23 p6eval niecza v24-32-g4b68456: OUTPUT«Damn the torpedoes, full speed ahead!␤Hoist the the Jolly Roger mateys, full speed ahead!␤»
19:24 lichtkind looks like there also no required attributes in perl 6?
19:25 Khisanth joined #perl6
19:26 tadzik r: class A { has $.a = die "$a is required" } ; A.new
19:26 p6eval rakudo 8c0f87: OUTPUT«[31m===[0mSORRY![31m===[0m�Variable '$a' is not declared�at /tmp/MLCVGGRoVq:1�------> [32mclass A { has $.a = die "$a[33m�[31m is required" } ; A.new[0m�    expecting any of:�        postfix�»
19:26 tadzik pff
19:26 tadzik r: class A { has $.a = die "$.a is required" } ; A.new
19:26 p6eval rakudo 8c0f87: OUTPUT«[31m===[0mSORRY![31m===[0m�Virtual call $.a may not be used on partially constructed objects�at /tmp/zMCgNh3Pkd:1�------> [32mclass A { has $.a = die "$.a[33m�[31m is required" } ; A.new[0m�    expecting any of:�        argument list�        prefix or term�…
19:26 tadzik uh, wait
19:27 tadzik 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␤␤»…
19:27 tadzik there you go
19:29 lue Wait, where does rakudo parse Pod6? I think I'm not searching for the correct terms...
19:30 dalek roast: 9a2f20d | jnthn++ | S32-exceptions/misc.t:
19:30 dalek roast: Test for null operators.
19:30 dalek roast: review: https://github.com/perl6/roast/commit/9a2f20d9f0
19:31 TimToady http://rosettacode.org/wiki/Respond_to_an_unknown_method_call#Perl_6  # we are now tied with Ada
19:31 tadzik lue: in Grammar.pm
19:31 tadzik mostly
19:31 labster joined #perl6
19:32 matlads joined #perl6
19:39 lichtkind thanks tadzik
19:41 lichtkind tadzik++
19:46 dalek tablets: d39ed47 | (Herbert Breunung)++ | docs/appendix-a-index.txt:
19:46 dalek tablets: added required to A tadzik++
19:46 dalek tablets: review: https://github.com/perl6/tablets/commit/d39ed475b7
19:48 PerlJam wait ... what?
19:51 PerlJam lichtkind: there is no "is required"
19:52 tadzik nope
19:56 lichtkind tadzik: there is really no way to make a required attribute?
19:58 Khisanth joined #perl6
20:00 PerlJam lichtkind: tadzik showed a way.
20:01 takadonet left #perl6
20:01 PerlJam An advantage a "required" trait would have over that would be consistent error messages.
20:02 PerlJam 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
20:02 lichtkind ok
20:03 lichtkind thanks
20:03 colomon PerlJam: you could probably write one...
20:03 lichtkind colomon: but none is specced?
20:03 PerlJam colomon: yeah, seems like it would be easyish
20:03 lichtkind specced
20:04 colomon lichtkind: I don't know.  but writing new traits is pretty easy.
20:05 lichtkind they dont have to be specced?
20:05 colomon lichtkind: nope
20:05 tadzik lichtkind: none that I know of
20:05 PerlJam lichtkind: user-provided traits are perfectly fine
20:06 TimToady tadzik: are you the right person to add a Perl 6 entry to http://rosettacode.org/wiki/Documentation ?
20:07 fgomez joined #perl6
20:07 colomon multi sub trait_mod:<is>( .... hmmm, you want this to be on an attribute, I guess?
20:12 colomon lichtkind: look at t/spec/S14-traits/attributes.t
20:12 lichtkind thank you colomon
20:20 diakopter eval: od
20:20 diakopter p5eval: od
20:20 p5eval diakopter: od
20:21 [Coke] masak: (getting vs. receiving training) yes, I got that.
20:24 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.
20:24 diakopter p5eval: od(od)
20:24 p5eval diakopter: ERROR: Undefined subroutine &main::od called at (eval 7) line 1.
20:32 tadzik TimToady: I might be
20:34 tadzik TimToady: I'll do that tomorrows
20:35 nwc10 jnthn: works on "my" machine (at a77bcfb3f88cc08d2860fb85bac81b8f4a8ca5d9, in case the goalposts move)
20:35 nwc10 er, "works", given the ICU needing test
20:36 jnthn nwc10: nice
20:36 jnthn nwc10: Had a busy work week, but getting back into things again today :)
20:43 masak "getting vs receiving"? :P
20:43 masak I'm not really sure you got it! :)
20:44 jnthn ...what?
20:44 * jnthn doesn't get it at all :P
20:45 lizmat TimToady: wrt to  http://rosettacode.org/wiki/Respond_to_an_unknown_method_call#Perl_6 , is the "the the" in "Hoist the the Jolly Roger mateys, full speed ahead!" intentional?
20:45 lizmat if so, why?
20:46 masak hehe, 'is the "the the"' :)
20:46 lizmat it's hard to stutter on IRC, but I was getting close to it
20:47 diakopter mmm Jolly Ranchers
20:47 masak rn: say "st-" x 10, "stutter"
20:47 p6eval rakudo 8c0f87, niecza v24-32-g4b68456: OUTPUT«st-st-st-st-st-st-st-st-st-st-stutter␤»
20:48 masak not so hard :)
20:49 * lizmat is thinking of a way of doing that without having to specify "st-"
20:54 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␤»
20:55 rindolf jnthn: hi! Welcome back! How was the store?
20:55 rindolf TimToady: meow! What's up?
20:55 rindolf lichtkind: hi.
20:55 rindolf masak: what's down? ;-)
20:56 masak magma.
20:56 masak a big hot ball of iron.
20:56 masak four apartments.
20:56 lizmat masak: as in french vulcan opera group?
20:56 masak for all I know, they're down there too ;)
20:58 * lizmat hears some "ZEBEHN STRAIN DE GEUSTAAH WORTSIS, DA REUS STOAH" in the background
21:00 lizmat 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.
21:00 masak lizmat: if there is, it's slipped my mind.
21:00 masak S05 doesn't contain the substring 'vowel'.
21:00 jnthn rindolf: It had the usual selection of stuff :)
21:01 lizmat masak: ack
21:01 rindolf jnthn: OK.
21:01 arnsholt lizmat: What is a vowel is locale-dependent in the general case I think
21:01 TimToady lizmat++: fixed, thanks
21:01 rindolf jnthn: what did you buy?
21:01 rindolf masak: nice stuf in what's down.
21:01 rindolf masak: what's East? What's West? Will they ever meet?
21:01 lizmat TimToady: you're welcome
21:01 TimToady rindolf: Ceiling Cat is up, meow!
21:02 arnsholt Also, not graphemes in abjad and abuguida systems
21:02 * jnthn is not aware of a Unicode char prop for vowels
21:02 rindolf TimToady: ceiling cat - double meow.
21:02 TimToady you can't have properties for fuzzy sets
21:02 rindolf TimToady: all hail ceiling cat.
21:02 arnsholt Yeah, what TimToady said
21:02 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.
21:03 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
21:03 jnthn *too
21:03 masak prediction: the 21st century will be just as much about North and South hemispheres as about East and West, if not more.
21:03 arnsholt jnthn: NQP doesn't support parametric types, right?
21:03 jnthn heh, one of the masak code contest problems was syllabification, I guess :)
21:03 TimToady Psst! There's an English word where 's' functions as a vowel!
21:03 rindolf jnthn: sounds good though.
21:03 rindolf masak: heh.
21:03 masak jnthn: yeah, that's the next one.
21:04 lizmat arnsholt: I was just wondering why masak was using something as ascii-centric as [aeiou] for vowels
21:04 colomon TimToady++
21:04 masak TimToady: that's gotta count as a semi-vowel though, no?
21:04 rindolf masak: Chuck Norris can make East and West meet 100 km apart.
21:04 jnthn arnsholt: It does have parametric roles, just. :)
21:04 TimToady masak: most vowels are semivowels, even [i] and [u]
21:04 masak TimToady: it's like the 'm' in Slovene "čmrlj"
21:05 masak TimToady: troo
21:05 arnsholt lizmat: Right, right. Lack of scrollback context on my part (I just reconnected)
21:05 TimToady and we have voiceless vowels in English, but we don't distinguish them phonemically
21:05 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]
21:06 TimToady well, "vowel" is a phonemic concept, so I should call them vocoids instead
21:06 arnsholt Oh, right. That makes sense, I guess
21:07 * 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:09 TimToady we have now officially passed Ada, are now in 9th place
21:10 colomon TimToady: do we have a handy list of tasks to tackle around somewhere?
21:12 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 jnthn *if
21:14 japhb_ joined #perl6
21:18 masak jnthn++ # fixing bugs
21:18 TimToady colomon: you mean like http://rosettacode.org/wiki/Reports:Tasks_not_implemented_in_Perl_6 ?
21:18 colomon TimToady++
21:18 colomon I should really get around to the Bezier curve stuff.
21:20 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
21:20 masak jnthn: oh, RT ticket emails are long since directed to a folder. still very nice :)
21:23 [Coke] masak: *sigh*. my brain got it. my fingers will catch up eventually.
21:23 masak [Coke]: 's ok :)
21:23 masak [Coke]: my brain is very tired. somehow I managed to teach while developing a course in the past two days.
21:24 masak I don't want to do that again in the near future.
21:30 labster good *, #perl6
21:33 dalek perl6-roast-data: 08b72a3 | coke++ | / (4 files):
21:33 dalek perl6-roast-data: today (automated commit)
21:33 dalek perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/08b72a3370
21:33 rindolf labster: good localtime().
21:33 rindolf labster: what time is it there?
21:33 [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";
21:33 labster oka prelego
21:34 labster it's 1:34 PM here
21:34 arnsholt Oh, neat. Was easier to as masak++ than dig around on CPAN though =)
21:34 masak labster: cool.
21:35 labster Well, I don't actually know any esperanto.  I just implemented the rule based number formatting from Unicode.
21:35 xinming joined #perl6
21:35 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 masak but no, arnsholt said "lecture", not "lesson".
21:36 [Coke] colomon: last few tests may require me to set some environment variables to pass them.
21:36 LlamaRider joined #perl6
21:36 masak labster: the "-a" in "oka" usually denotes adjectives. but Esperanto uses the strange consistency noun:adj::numeral:ordinal.
21:36 masak sort of.
21:37 [Coke] rakudo failures listed here: https://github.com/coke/perl6-roast-data/blob/master/rakudo_summary.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.
21:37 jnthn My brain keeps parsing prelego as peligro :P
21:37 [Coke] colomon: https://github.com/coke/perl6-roast-data/blob/master/niecza_summary.out#L5682
21:37 [Coke] jnthn: DANGER.
21:38 masak Danger, danger, Jonathan Worthington.
21:38 [Coke] colomon: looks like rx test might have run out of memory or time.
21:38 labster For most lectures, the real danger is falling asleep.
21:40 jnthn It's a risk when porting this serialization code too...
21:41 * 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:43 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:44 labster It's still in worse shape than my original version of the module was for 3 languages... but now it supports 60.
21:45 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␤»
21:45 masak swarley: there you go :)
21:45 swarley wat
21:45 * masak bows
21:46 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 swarley using the characters in the string
21:46 masak er, no.
21:46 masak guess we're working with different problem defitions here... :)
21:46 swarley haha
21:50 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 #perl6
21:56 xinming joined #perl6
22:01 [Coke] colomon: one of those screams "needs env var.
22:01 [Coke] the other is probably a timeout.
22:03 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:05 dalek perl6-roast-data: 6ae1a03 | coke++ | bin/niecza.sh:
22:05 dalek perl6-roast-data: Try to recover one niecza test.
22:05 dalek perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/6ae1a03f8f
22:05 [Coke] ok, that fixes dash-e.t - not sure about rx.t
22:06 sorear LlamaRider: look into NativeCall/zavolaj
22:06 sorear (two names, same thing)
22:09 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:10 jnthn You can install it through panda
22:11 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?
22:12 colomon [Coke]: rebootstrap.pl
22:12 [Coke] colomon: does that work if parrot got upgraded along the way?
22:12 colomon [Coke]: probably not
22:12 [Coke] (panda and modules get installed in a parrot specific lib dir)
22:22 LlamaRider_ joined #perl6
22:24 skids joined #perl6
22:33 bluescreen10 joined #perl6
22:46 masak 'night, #perl6
22:47 cognominal joined #perl6
22:47 lue [Coke]: Every rakudo upgrade I have to reinstall rakudo and change my ~/.perl6/bin|lib symlinks. :/
22:54 dalek nqp-jvm-prep: 6aabda5 | jnthn++ | src/org/perl6/nqp/sixmodel/SerializationWriter.java:
22:54 dalek nqp-jvm-prep: Port more of the lower-level serializations.
22:54 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/6aabda59a8
22:54 dalek nqp-jvm-prep: 2a77c20 | jnthn++ | src/org/perl6/nqp/sixmodel/ (2 files):
22:54 dalek nqp-jvm-prep: Get serialization loop and assembly mostly ported.
22:54 dalek nqp-jvm-prep:
22:54 dalek nqp-jvm-prep: With this, it's probably not so far from producing output; misses base
22:54 dalek nqp-jvm-prep: 64 and any object knowing how to serialize itself.
22:54 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/2a77c202a0
22:54 colomon \o/
23:01 colomon wait, is Rakudo's is-prime still broken on Windows?
23:02 jnthn > 1..100 ==> grep *.is-prime ==> say
23:02 jnthn 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
23:02 jnthn Looks working here
23:02 colomon I mean, OS X?
23:02 colomon sigh.
23:02 jnthn Oh, that I can't tell you :P
23:02 colomon brain flailing today.
23:03 jnthn I think mine is about done for the day :)
23:07 census Hi!  Does anybody know java?
23:07 census 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.
23:08 diakopter why in perl?
23:09 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 #perl6
23:10 census what do you mean?
23:16 colomon n: say 10 lcm 17
23:16 p6eval niecza v24-32-g4b68456: OUTPUT«170␤»
23:25 jnthn sleep &
23:39 Inglorious` joined #perl6
23:45 woolfy left #perl6

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo