Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2009-11-23

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:04 dukeleto moritz_: are you doing what i think you are doing?
00:05 dukeleto moritz_: where is the source for hugme?
00:05 dukeleto moritz_: and does it work with identi.ca?
00:09 pointme joined #perl6
00:09 carlin pointme: hugme
00:09 pointme Hugme hugs people! And gives commit access to various repos. It's source is at http://github.com/moritz/hugme/
00:09 moritz_ dukeleto: doesn't work with identi.ca unless Net::Twitter::Simple handles that too
00:10 moritz_ oh, should work too
00:11 moritz_ s/Simple/Lite/
00:12 moritz_ just needs an  identica => 1  in the call to ->new()
00:14 diakopter pointme: pointme
00:14 pointme I have no idea what pointme does
00:14 diakopter how pointed of your
00:14 diakopter you
00:14 moritz_ carlin: see above :-)
00:20 bluescreen joined #perl6
00:31 pointme joined #perl6
00:31 carlin pointme: pointme
00:31 pointme Pointme is a suave, good-looking bot that links to proto projects, provides information about other bots and refers to itself in the third person
00:32 carlin .oO( Self-aware bot )
00:36 Infinoid pointme: dalek
00:36 pointme Dalek announces commits to various repos. It's source is at http://github.com/Infinoid/dalek-plugins
00:37 Infinoid It is fantastic that our array of bots has grown to the point of needing a guide bot to sort them all out.
00:37 diakopter well, its plugin source is there.  its framework source is at www.botnix.org
00:37 Infinoid ... for now.  One day, I would like to replace the bot out from under the plugins.
00:38 carlin pointme: diakopter
00:38 pointme Sorry, I don't know anything about that project
00:38 carlin Aww
00:38 carlin pointme: masak
00:38 pointme masak submits rakudo bugs ;-)
00:43 idemal joined #perl6
00:47 dukeleto moritz_: thanks!
00:51 Exodist joined #perl6
00:59 cognominal_ ng:   say split / /, 'a b'
00:59 p6eval ng 3bdb4c: Null regex not allowed at line 1, near ", 'a b'"␤current instr.: 'perl6;HLL;Grammar;panic' pc 519 (src/stage0/HLL-s0.pir:336)␤
01:04 FarOut joined #perl6
01:19 KyleHa ng: say split / \s /, 'a b';
01:19 p6eval ng 3bdb4c: Could not find non-existent sub &split␤current instr.: '_block14' pc 29 (EVAL_1:0)␤
01:26 dukeleto pointme: dukeleto
01:26 pointme Sorry, I don't know anything about that project
01:36 agentzh joined #perl6
01:48 xinming joined #perl6
01:52 zostay joined #perl6
01:57 hcchien joined #perl6
02:16 diakopter pointme: TimToady
02:16 pointme Sorry, I don't know anything about that project
02:16 diakopter pointme: Perl 6
02:16 pointme Sorry, I don't know anything about that project
02:18 carlin pointme: Alan Parsons
02:18 pointme Sorry, I don't know anything about that project
02:19 orafu joined #perl6
02:23 agentzh joined #perl6
02:32 colomon rakudo: say (1, 2, 3) X (4, 5, 6);
02:32 p6eval rakudo 7347ec: 141516242526343536␤
02:32 colomon rakudo: say ((1, 2, 3) X (4, 5, 6)).perl
02:32 p6eval rakudo 7347ec: [1, 4, 1, 5, 1, 6, 2, 4, 2, 5, 2, 6, 3, 4, 3, 5, 3, 6]␤
02:35 jaldhar joined #perl6
02:39 facsimile rakudo: say perl.perl
02:39 p6eval rakudo 7347ec: Could not find non-existent sub perl␤in Main (file src/gen_setting.pm, line 324)␤
02:40 facsimile lol
02:41 zaphar_ps joined #perl6
02:44 pmichaud_ joined #perl6
02:45 gfldex_ joined #perl6
02:46 alester joined #perl6
02:48 carlin Is there an easy way to turn $/ into a hash of strings?
02:49 petdance joined #perl6
02:52 alester joined #perl6
02:53 alester joined #perl6
03:14 * carlin just discovered that Match objects have a .Hash and .hash which do different things
03:22 facsimile rakudo: say Hash.hash
03:22 p6eval rakudo 7347ec: Hash()␤
03:28 diakopter token comment:sym<#> { '#' {} \N* }  # what does {} mean in a token rule?
03:30 Wolfman2000 back from dinner and company
03:30 eternaleye joined #perl6
03:30 Wolfman2000 don't know how much I'll be able to get done tonight
03:32 diakopter std: my $a-- = 3; say $a;
03:32 p6eval std 29173: ok 00:01 105m␤
03:32 diakopter rakudo: my $a-- = 3; say $a;
03:32 p6eval rakudo 7347ec: -1␤
03:33 diakopter ng: my $a-- = 3; say $a;
03:33 p6eval ng 3bdb4c: Cannot assign to readonly value␤current instr.: '&infix:<=>' pc 7550 (src/builtins/assign.pir:12)␤
03:33 * diakopter golf claps
03:34 envi^office joined #perl6
03:43 petdance joined #perl6
03:49 eternaleye diakopter: nqp doesn't have =, just := iirc
03:49 eternaleye oh wait, that's ng not nqp
03:49 * eternaleye is not at full functionality
03:53 JimmyZ joined #perl6
04:00 LionMade1fLions joined #perl6
04:06 diakopter nqp: my $a := 3; say(--$a); say($a);
04:06 p6eval nqp: ␤2␤
04:07 diakopter nqp: my $a := 3; say($a--); say($a);
04:07 p6eval nqp: 3␤2␤
04:07 BinGOs_ joined #perl6
04:07 diakopter pmichaud_: ^^
04:08 diakopter pmichaud_: same for preincrement
04:08 Wolfman2000 Hmm...unfortunately, I'm unsure about being able to pull off an MD5 or SHA demo for my cryptography project using Perl 6. Oh well: I've already got plenty.
04:10 Wolfman2000 ...as a reminder, what are the Perl shifting operations?
04:19 diakopter ng: say (my $a=4)--.WHAT; # pmichaud_ I don't think this is correct - dotty following postdecrement?
04:19 p6eval ng 3bdb4c: Int()␤
04:19 eternaleye joined #perl6
04:20 quietfanatic I don't think anything's wrong with it.
04:21 quietfanatic Is there any specific reason to disallow dotty after postfix?
04:21 TimToady nope
04:21 TimToady dotty *is* a postfix
04:21 stepnem joined #perl6
04:21 TimToady so if we disallowed that, we've have to disallow $x.foo.bar as well :)
04:21 eternaleye joined #perl6
04:23 quietfanatic In general, I'm in favor of more allowing syntax rather than more restricting syntax.
04:24 LionMadeOfLions joined #perl6
04:24 diakopter rakudo: my $a = 5; say ++($a++); say $a; my $b = 5; say ++$b++; say $b;
04:24 p6eval rakudo 7347ec: 6␤6␤6␤7␤
04:24 diakopter ng: my $a = 5; say ++($a++); say $a; my $b = 5; say ++$b++; say $b;
04:24 p6eval ng 3bdb4c: Cannot assign to readonly value␤current instr.: '&infix:<=>' pc 7550 (src/builtins/assign.pir:12)␤
04:25 Wolfman2000 rakudo: my $a = 1; say $a << 1; # Does this even work?
04:25 p6eval rakudo 7347ec: Confused at line 2, near "<< 1; # Do"␤in Main (file <unknown>, line <unknown>)␤
04:25 * Wolfman2000 better check the synopsis
04:25 quietfanatic Well, Rakudo does get that first wrong, $a should end up 7
04:25 diakopter std: my $a = 1; say $a << 1; # Does this even work?
04:25 p6eval std 29173: [31m===[0mSORRY![31m===[0m␤Obsolete use of << to do left shift; in Perl 6 please use +< or ~< instead at /tmp/6HNHyTV6eu line 1:␤------> [32mmy $a = 1; say $a << [33m⏏[31m1; # Does this even work?[0m␤FAILED 00:01 105m␤
04:26 quietfanatic Wolfman2000: I don't think there's a << operator
04:26 Wolfman2000 if nothing else, thanks for that
04:26 quietfanatic Ah
04:26 diakopter (see the error message above)
04:26 diakopter very much !LTA error message
04:26 Wolfman2000 diakopter++ / quietfanatic: I was debating adding a MD5/SHA program to my cryptography project, but...honestly, I'm out of time right now.
04:26 Wolfman2000 Still, learning how to shift bits should be good.
04:27 Wolfman2000 Just...not when I'm pressured.
04:28 Wolfman2000 ...I do wonder. Does Perl 6 have any official cryptography modules yet, or should they just be remade from the Digest::* series?
04:30 carlin November has  Digest implementation in mostly PIR but other than that I don't think there is anything yet
04:30 Wolfman2000 ...perhaps that will be a good project for me to look at this Thanksgiving.
04:30 Wolfman2000 You guys want more implementations with Perl 6 I assume...I can just add it to my Feather directories.
04:31 diakopter std: sub x3() {}; sub x55() {}; my $a = 55; say $a-x3-x55; # TimToady hilite
04:31 p6eval std 29173: Potential difficulties:␤  Variable $a-x3-x55 is not predeclared at /tmp/dUbnCbTHLS line 1:␤------> [32m sub x55() {}; my $a = 55; say $a-x3-x55[33m⏏[31m; # TimToady hilite[0m␤ok 00:01 106m␤
04:32 Wolfman2000 std: sub x3() {}; sub x55() {}; my $a = 55; say $a - x3() - x55(); # Wonder if this works.
04:32 p6eval std 29173: ok 00:01 106m␤
04:32 Wolfman2000 rakudo: sub x3() {}; sub x55() {}; my $a = 55; say $a - x3() - x55(); # Wonder if this works.
04:32 p6eval rakudo 7347ec: 55␤
04:32 Wolfman2000 diakopter: How do we run std on the command line anyway? It seems to give better error messages than rakudo does
04:34 diakopter yeah, I knew that would work; I guess it's an issue of error messages.  if it finds a non-predeclared variable name and it contains a hyphen, warn about minus symbol being taken as a hypen in a variable name
04:35 quietfanatic If the left part is a predeclared variable?
04:36 diakopter Wolfman2000: in the pugs/src/perl6 dir (after blanking the PERL5LIB as discussed previously), run  ./viv -e 'code to syntax check/compile'
04:36 TimToady or if you don't want the tree, >filename and then ./tryfile filename
04:37 TimToady or >/dev/null your viv
04:37 Wolfman2000 ...sounds like I should just make pugs/src/perl6 part of my path
04:37 TimToady and just let stderr out
04:37 TimToady probably won't work
04:37 diakopter Wolfman2000: no, you need to be in that dir
04:37 TimToady it's not really productized or installable yet
04:37 TimToady and assumes its cache and lib are in .
04:38 TimToady what you can do is make a symlink from elsewhere into that dir; I do that with the t/ directory
04:38 TimToady then tryfile t/spec/foo.t
04:39 Wolfman2000 I'll look into that...tomorrow night. I think I need sleep now...big day tomorrow.
04:39 Wolfman2000 I get to show my class my project with Perl 6 in action.
04:39 Wolfman2000 TimToady: I gave you extra credit on my sources too.
04:39 TimToady :D
04:40 Wolfman2000 Hopefully Feather won't be down...otherwise, it will be slightly embarassing
04:40 Wolfman2000 Just have to survive until 8 PM EST
04:45 envi^home joined #perl6
05:01 TimToady rakudo: say 1,2,3 X 4,5,6
05:01 p6eval rakudo 7347ec: 141516242526343536␤
05:02 TimToady colomon: note lack of parens works ^^
05:06 TimToady rakudo: say ('㊀'..'㊉').pick
05:06 TimToady that's an infinite loop, seemingly
05:06 p6eval rakudo 7347ec:  ( no output )
05:06 TimToady didn't used to be
05:07 hicx174 joined #perl6
05:17 diakopter rakudo: '㊀'..'㊉'.pick
05:17 p6eval rakudo 7347ec: maximum recursion depth exceeded␤in Main (file <unknown>, line <unknown>)␤
05:18 facsimile rakudo: '㊀'..'㊉'.
05:18 facsimile rakudo: '㊀'..'㊉'
05:18 p6eval rakudo 7347ec: Confused at line 2, near "."␤in Main (file <unknown>, line <unknown>)␤
05:18 p6eval rakudo 7347ec:  ( no output )
05:18 diakopter ok...
05:18 facsimile rakudo: say '㊀'..'㊉'
05:18 p6eval rakudo 7347ec:  ( no output )
05:18 facsimile rakudo: say 'a'..'z'
05:19 p6eval rakudo 7347ec: abcdefghijklmnopqrstuvwxyz␤
05:21 meteorjay joined #perl6
05:21 luqui joined #perl6
05:22 jaldhar joined #perl6
05:42 pure1111 joined #perl6
06:02 ashizawa joined #perl6
06:17 pnate2 joined #perl6
06:39 snearch joined #perl6
06:50 ihrd joined #perl6
06:50 ihrd left #perl6
06:53 colomon TimToady: thanks!
06:53 colomon hmmm....
06:54 colomon rakudo: (1..3 X 4..6).say
06:54 p6eval rakudo 7347ec: 141516242526343536␤
06:54 colomon :)
07:04 Jeffreykegler joined #perl6
07:06 TiMBuS joined #perl6
07:11 kaare joined #perl6
07:23 meppl joined #perl6
07:27 envi^home joined #perl6
07:33 eternaleye joined #perl6
08:00 szabgab joined #perl6
08:03 barney joined #perl6
08:15 mathw Morning
08:15 moritz_ good morning
08:15 diakopter mhu
08:16 jaldhar joined #perl6
08:16 moritz_ rho
08:22 moritz_ (Raphael Descamps)++ # "In that sense, Perl 6 stay a postmodern ironic programming language ;)"
08:32 Su-Shee joined #perl6
08:32 Su-Shee good morning.
08:34 moritz_ hi Su-Shee
08:35 sjohnson hello
08:39 mathw moritz_: a postmodern ironic programming language??
08:42 rfordinal joined #perl6
08:47 iblechbot joined #perl6
08:51 rgrau joined #perl6
08:53 moritz_ mathw: read the last comment on http://perlgeek.de/blog-en/perl-6/is-perl-6-really-perl.writeback
08:55 mathw aaah
08:55 mathw yes that seems accurate
08:56 * moritz_ just liked the term
08:58 Su-Shee postmodernism already contains irony as a concept.
08:59 moritz_ so it's doubly ironic :-)
09:00 kaare joined #perl6
09:00 Su-Shee you should add one or two references to foucault at some point. ;)
09:01 * moritz_ only knows the foucault pendulum
09:03 moritz_ such is the ignorance of the natural scientists
09:03 moritz_ (at least of one of them :-)
09:04 Su-Shee michel foucault -> http://en.wikipedia.org/wiki/Michel_Foucault - no postmodernism without the french fellows.. ;)
09:04 moritz_ yeah, found the wiki already :-)
09:05 Su-Shee well, it's easy. start with nietzsche and read from marx over freud to the french brainfuckers and there you have it. ;)
09:06 wollmers joined #perl6
09:07 moritz_ as long as you don't suggest to "just" read Kant... :-)
09:07 wollmers std: say 1;
09:07 p6eval std 29173: ok 00:01 105m␤
09:07 wollmers moritz: Kant is boring because of the complex German language
09:08 moritz_ I don't think he's boring; just hard to read
09:09 flip214 joined #perl6
09:09 wollmers Yea, I read 'Kritik der reinen Vernunft' ~35 years ago.
09:09 flip214 Hello everybody ....
09:09 flip214 it's me again with a few questions.
09:09 flip214 As usual.
09:10 wollmers std: "a" ~~ m/<isL>/
09:10 p6eval std 29173: ok 00:01 105m␤
09:10 mathw flip214: ask away
09:10 * moritz_ wasn't even born ~35 years ago
09:10 wollmers std: "a" ~~ m/<isBidiClass:L>/
09:10 p6eval std 29173: ok 00:01 104m␤
09:11 wollmers rakudo: "a" ~~ m/<isBidiClass:L>/
09:11 p6eval rakudo 7347ec: Confused at line 2, near "/"␤in Main (file <unknown>, line <unknown>)␤
09:11 Su-Shee moritz_: you "just" read Kant, I "just" learn Math. ;)
09:11 flip214 Is there a way to give perl6 some additional directories where to look for libraries? A "-Ilib:~/lib" or something like that.
09:11 flip214 I think that PERL5LIB won't work ;-)
09:11 mathw there's PERL6LIB
09:11 moritz_ flip214: nope, it's PERl6LIB
09:11 moritz_ :-)
09:12 mathw I'm not sure Rakudo accepts a command line option for search path
09:12 moritz_ there's also BEGIN { @*INC.push: 'lib' }  in the code
09:12 Su-Shee doesn't pushing on @*INC work?
09:12 flip214 Is there a -I switch? I didn't find one.
09:12 Su-Shee ah well. :)
09:12 mathw Su-Shee: you have to do it in the BEGIN block, but yes, it does :)
09:12 Su-Shee I thought so, I already used it somewhere. ;)
09:12 mathw (obviously if you do it outside BEGIN, it doesn't happen until after the module search has happened)
09:13 moritz_ which is fine if you only use use in an eval block at run time :-)
09:13 wollmers perl6: "a" ~~ m/<isBidiClass:L>/
09:13 p6eval pugs: Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) {␤    unshift @INC, '/home/p6eval/.cabal/share/Pugs-6.2.13.14/blib6/pugs/perl5/lib';␤    eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;␤}␤'Pugs::Runtime::Match::HsBridge'␤"␤*** '<HANDLE>' trapped by operation mas…
09:13 p6eval ..elf 29173:  ( no output )
09:13 p6eval ..rakudo 7347ec: Confused at line 2, near "/"␤in Main (file <unknown>, line <unknown>)␤
09:13 moritz_ s/block /
09:13 flip214 Ok, I'll use PERL6LIB, until -I has arrived
09:13 moritz_ rakudo: /<a :b>/
09:13 mathw moritz_: let's not go there
09:13 p6eval rakudo 7347ec: Confused at line 2, near "/"␤in Main (file <unknown>, line <unknown>)␤
09:13 moritz_ mathw: ok :-)
09:13 flip214 and another question: I have problems exporting a constant
09:14 flip214 rakudo: say $C; module T; constant $C='aaaa' is export;
09:14 p6eval rakudo 7347ec: Confused at line 2, near "is export;"␤in Main (file <unknown>, line <unknown>)␤
09:14 flip214 there's no "is export" on constants, is there?
09:15 wollmers moritz: The syntax for non-boolean unicode properties seems unspecced. In Perl 5 it is \p{BidiClass:L}.
09:15 moritz_ flip214: not yet
09:17 moritz_ std: /<isBidiClass(:L)>/
09:17 p6eval std 29173: ok 00:01 104m␤
09:17 moritz_ wollmers: that would be my preference
09:18 wollmers moritz: OK, looks nice.
09:18 moritz_ if you write <before foo>, the foo is a regex
09:19 moritz_ so I think that  <isBidiClass:L> or with space <isBidiClass :L> looks misleading
09:19 moritz_ but I could be wrong here
09:19 moritz_ and in the end it's TimToady's calls
09:30 moritz_ dev.perl.org now links to perl6.org
09:37 wollmers std: /<isBidiClass(:L)+isBidiClass(:R)>/
09:37 p6eval std 29173: [31m===[0mSORRY![31m===[0m␤Unable to parse metachar__S_477Lt_Gt; couldn't find final '>' at /tmp/6oMJAVAV6y line 1:␤------> [32m/<isBidiClass(:L)[33m⏏[31m+isBidiClass(:R)>/[0m␤FAILED 00:01 104m␤
09:38 wollmers std: /<isBidiClass(:L) +isBidiClass(:R)>/
09:38 p6eval std 29173: [31m===[0mSORRY![31m===[0m␤Unable to parse metachar__S_477Lt_Gt; couldn't find final '>' at /tmp/n2r3YD8DAv line 1:␤------> [32m/<isBidiClass(:L)[33m⏏[31m +isBidiClass(:R)>/[0m␤FAILED 00:01 103m␤
09:43 wollmers std: /<isLetter +isNumber>/
09:43 p6eval std 29173: [31m===[0mSORRY![31m===[0m␤quantifier quantifies nothing at /tmp/Hknb14RHFJ line 1:␤------> [32m/<isLetter +[33m⏏[31misNumber>/[0m␤    expecting quantmod␤FAILED 00:01 103m␤
09:44 moritz_ std: / <+isLetter +isNumber>/
09:44 p6eval std 29173: ok 00:01 104m␤
09:44 moritz_ std: / <+isLetter(:foo) +isNumber>/
09:44 p6eval std 29173: [31m===[0mSORRY![31m===[0m␤Unable to parse metachar__S_477Lt_Gt; couldn't find final '>' at /tmp/fTXy70FRB3 line 1:␤------> [32m/ <+isLetter[33m⏏[31m(:foo) +isNumber>/[0m␤    expecting any of:␤    character class element␤  normspace␤        sign␤FAILED 00:01 103m␤
09:45 ejs joined #perl6
09:46 wollmers std: m/ <[aeiou]+[tlc]> /
09:46 p6eval std 29173: ok 00:01 104m␤
09:50 wollmers std: m/ <isL+[isN]> /
09:50 p6eval std 29173: [31m===[0mSORRY![31m===[0m␤quantifier quantifies nothing at /tmp/jFAf3V6Dfr line 1:␤------> [32mm/ <isL+[33m⏏[31m[isN]> /[0m␤    expecting quantmod␤FAILED 00:01 106m␤
09:51 wollmers std: m/ <isL+isN> /
09:51 p6eval std 29173: [31m===[0mSORRY![31m===[0m␤quantifier quantifies nothing at /tmp/2VF0zXPnR7 line 1:␤------> [32mm/ <isL+[33m⏏[31misN> /[0m␤    expecting quantmod␤FAILED 00:01 103m␤
09:51 wollmers std: m/ <[abc]+[cde]> /
09:51 p6eval std 29173: ok 00:01 104m␤
09:52 wollmers std: m/ <[abc] +[cde]> /
09:52 p6eval std 29173: ok 00:01 104m␤
09:52 wollmers std: m/ <isL +[cde]> /
09:52 p6eval std 29173: [31m===[0mSORRY![31m===[0m␤quantifier quantifies nothing at /tmp/zUFvMa0R1M line 1:␤------> [32mm/ <isL +[33m⏏[31m[cde]> /[0m␤    expecting quantmod␤FAILED 00:01 103m␤
09:54 mathw moritz_: one of the earlier comments on that article questions the explicitness of TMTOWTDI. I always felt that it was very explicit, and very deliberate. Agree?
09:54 moritz_ agreed.
09:54 ejs1 joined #perl6
09:55 moritz_ for example map and for are synonymous, and that's about as explicit as you can get :-)
09:55 mathw yes
09:55 mathw also $obj.method(arg, arg, arg);
09:55 mathw $obj.method: arg, arg, arg;
09:55 mathw and the is export on most of the builtin methods
09:56 mathw it's highly explicit in Perl 6
09:56 mathw oh and with the new S metaoperator, I believe you can use hyperoperators as various exact synonyms for looping
10:06 clintongormley joined #perl6
10:08 Guest56850 joined #perl6
10:18 wollmers std: m/ <+isL+isN> /
10:18 p6eval std 29173: ok 00:01 104m␤
10:18 beggars joined #perl6
10:19 moritz_ std: <a b c>S>>.uc
10:19 p6eval std 29173: [31m===[0mSORRY![31m===[0m␤Preceding context expects a term, but found infix > instead at /tmp/t2aeMg8lB6 line 1:␤------> [32m<a b c>S>>[33m⏏[31m.uc[0m␤    expecting any of:␤       infix or meta-infix␤      infix stopper␤    standard stopper␤ terminator␤FAILED 00:01 104m␤
10:20 moritz_ mathw: at least STD.pm doesn't like it as postfixish
10:22 mathw moritz_: something in larry's spec update mentioned you could use it with certain forms, but it may be that it only works with infixish hypers
10:24 mathw moritz_:     a S»op« b           single-threaded hyperop
10:25 mathw but apparently not with postfix forms
10:25 mathw which would be nice, but I guess could cause all sorts of mess with the parsing
10:29 spinclad_ diakopter:  re # what does {} do:  aiui, {} is an empty closure that ends the fixed part of the token for LTM purposes.
10:34 mathw how often are the HTML synopses generated?
10:40 jferrero joined #perl6
10:43 rfordinal left #perl6
10:50 diakopter spinclad_: thanks
10:51 diakopter urgh; 'tis late
10:57 diakopter mathw: I think at the top of every hour
11:00 sRc joined #perl6
11:00 sRc left #perl6
11:06 hanekomu joined #perl6
11:07 * diakopter asked http://code.google.com/p/v8/issues/detail?id=523
11:21 flip214 I just read about the "S" metaoperator ...
11:22 flip214 But I don't understand how there can be a "short-circuited XOR junction"
11:23 moritz_ flip214: an xor with more than two arguments is true if exactly one of the arguments is true
11:23 moritz_ flip214: so as soon as two True values are found, it can short-circuit
11:24 flip214 is that so?
11:24 flip214 rakudo: say 1 ^ 1 ^ 1 ^ 0;
11:24 p6eval rakudo 7347ec: one(1, 1, 1, 0)␤
11:24 flip214 rakudo: say 1 ^^ 1 ^^ 1 ^^ 0;
11:24 p6eval rakudo 7347ec: 1␤
11:25 moritz_ rakudo is wrong here
11:25 flip214 I understand XOR as "parity" generation, ie. if an odd number is set
11:25 moritz_ that's the other possible interpretation
11:26 flip214 Hmm, I didn't even *know* that the computer-XOR has more than the one interpretation
11:26 flip214 are we sure that this won't break some assumptions?
11:27 flip214 I can see use cases for "exclusive-OR", too ...
11:28 flip214 How would one get _my_ XOR? parity generation over bit/binary/boolean values?
11:29 moritz_ @list.reduce: &[^^]
11:29 lambdabot Unknown command, try @list
11:30 moritz_ or [^^] @values
11:30 flip214 rakudo: my @list=1,1,1,1,0; say [^^] @values;
11:30 p6eval rakudo 7347ec: say requires an argument at line 2, near " [^^] @val"␤in Main (file src/gen_setting.pm, line 2593)␤
11:31 flip214 rakudo: my @list=1,1,1,1,0; say [^^] @list;;
11:31 p6eval rakudo 7347ec: say requires an argument at line 2, near " [^^] @lis"␤in Main (file src/gen_setting.pm, line 2593)␤
11:31 moritz_ rakudo: say [^^] 1,1,1,1,0
11:31 Gothmog_ moritz_: I don't understand what you said, either. Could you define your interpretation of XOR?
11:31 p6eval rakudo 7347ec: say requires an argument at line 2, near " [^^] 1,1,"␤in Main (file src/gen_setting.pm, line 2593)␤
11:31 flip214 rakudo: my @list=1,1,1,1,0; say @list.».infix:<^^>;
11:31 p6eval rakudo 7347ec: Confused at line 2, near ":<^^>;"␤in Main (file <unknown>, line <unknown>)␤
11:31 moritz_ Gothmog_: XOR = exactly one of the inputs is True
11:32 Gothmog_ Ah.
11:32 Gothmog_ So you're just talking about two different things.
11:32 flip214 I'd like to get some way to get parity generation; either for Booleans, or over some Int values
11:32 flip214 rakudo: say 3 ^^ 4;
11:32 p6eval rakudo 7347ec: ␤
11:32 flip214 rakudo: say 3 ^ 4;
11:32 p6eval rakudo 7347ec: one(3, 4)␤
11:33 flip214 rakudo: say 3 xor 4;
11:33 p6eval rakudo 7347ec: 3␤
11:33 Gothmog_ flip214: moritz talks about xor(a1, a2, a3, ..., an) while you talk about xor(a1, xor(a2, xor(, ..., xor(a(n-1), an))...)
11:33 moritz_ flip214: [?^] for booleans, [+^] for ints
11:33 flip214 rakudo: say 3 +^ 4;
11:33 p6eval rakudo 7347ec: 7␤
11:33 flip214 ah yes, thank  you
11:33 flip214 that's it
11:33 moritz_ rakudo: say [?^] 1, 1, 1, 1, 0
11:33 p6eval rakudo 7347ec: 0␤
11:33 moritz_ rakudo: say [?^] 1, 1, 1, 1, 0, 1
11:33 flip214 rakudo: say [+^] 1,1,1,0;
11:33 p6eval rakudo 7347ec: 1␤
11:34 p6eval rakudo 7347ec: 1␤
11:34 flip214 rakudo: say [+^] 1,1,1,0,3;
11:34 p6eval rakudo 7347ec: 2␤
11:34 moritz_ Gothmog_++ # thata's exactly it, but I was too stupid to explain it
11:34 flip214 fine
11:34 flip214 rakudo: say [~] 1,1,1,0,3;
11:34 p6eval rakudo 7347ec: 11103␤
11:35 flip214 rakudo: say [?^] 1,1,1,0,3;
11:35 p6eval rakudo 7347ec: 1␤
11:35 flip214 so that's wrong?
11:35 SmokeMachine joined #perl6
11:35 flip214 rakudo should return false here?
11:35 flip214 rakudo: say [?^] 1,1;
11:35 p6eval rakudo 7347ec: 0␤
11:35 flip214 rakudo: say [?^] 1,0;
11:35 p6eval rakudo 7347ec: 1␤
11:36 flip214 rakudo: say [?^] 1,0,1,0,1;
11:36 p6eval rakudo 7347ec: 1␤
11:36 flip214 rakudo: say [?^] 1,False,1,0,3;
11:36 p6eval rakudo 7347ec: 1␤
11:37 moritz_ [?^] 1,1,1,0,3 is ((((1 xor 1) xor 1) xor 0) xor 3)
11:37 moritz_ if you want number of true values
11:37 moritz_ grep True, @values
11:37 moritz_ rakudo: say +(grep True, 1,0,1,0,1)
11:38 p6eval rakudo 7347ec: 5␤
11:38 moritz_ nope, wrong
11:38 moritz_ rakudo: say +(grep {$_}, 1,0,1,0,1)
11:38 p6eval rakudo 7347ec: 3␤
11:38 moritz_ rakudo: say +(grep {$_}, 1,0,1,0,1) % 2
11:38 p6eval rakudo 7347ec: 1␤
11:38 moritz_ better
11:43 Su-Shee does rakudo have a -T? (or is getting one?)
11:44 moritz_ not yet
11:45 mathw diakopter: well, SO3 doesn't seem to have been done for a few days, unless there's a cache somewhere in my way
11:47 moritz_ This page was generated at 2009-11-07 16:01:24 GMT.
11:48 mathw quite
11:48 mathw it doesn't have the S metaop in it
11:52 moritz_ the issue is a missing CPAN module on feather
11:55 flip214 sorry, 've been away ...
11:56 flip214 moritz: but that sounds a bit awful, performance-wise ... all I want to know is the even/odd information, and for that a complete list is built again, just to check it's length?
11:57 flip214 I think the [?^] and [+^] will work for me ...
11:57 flip214 If they don't (or I don't think they do, because I'm mistaken again), I'll be back
11:57 flip214 Thank you all the same
11:58 mathw moritz_: Ah good, at least it's relatively solvable
12:01 envi^home joined #perl6
12:05 moritz_ except that I tried to build .deb packages for it, and failed epically
12:05 moritz_ it requires Test::Harness::Straps
12:05 moritz_ dh-make-perl --cpan Test::Harness::Straps   tells me it's a core module
12:05 mathw hmm
12:05 mathw that's odd
12:06 moritz_ but dh-make-perl --cpan Test::TAP::Model  writes a dependency for libtest-harness-straps-perl
12:10 snearch joined #perl6
12:10 moritz_ info: 956 smartlinks found and 54 broken in 730 test files (177 test files had no links).
12:10 moritz_ that's... bad
12:11 moritz_ I had it down to 3 broken links or so a few months ago
12:17 moritz_ S\d\d are now regenerated.
12:17 mathw moritz_++
12:21 rjh I just noticed, nobody here ever uses the negative karma option. My company's IRC is a bit different :)
12:21 moritz_ rjh: that's because destructive contributions are really rare here
12:22 moritz_ I can't remember a single case of vanadlism in the pugs repo, for instance
12:23 mathw the only time I've ever seen it is someone demoting themself
12:24 mathw we use it in my own server's IRC a lot though, usually complaining about various companies and products and politicians :)
12:25 moritz_ and we lambdabot-- occasionally
12:25 moritz_ @karma lambdabot
12:25 lambdabot lambdabot has a karma of -2
12:26 mathw yes well
12:26 mathw that's necessary
12:27 moritz_ and I --'ed somebody for introducing an arbitrary code execution hole in p6eval, as absurd as it sounds :-)
12:29 colomon ok sign(undef) ~~ undef, 'sign(undef) is undef';
12:29 colomon does that make any sense as a test?
12:30 colomon none of the other numeric functions are tested against undef
12:30 * moritz_ wasn't sure, just took what the spec said
12:30 colomon ah yes, you are to blame.  :)
12:31 moritz_ of course I am, that's my job :-)
12:32 colomon dear heavens, that is what the spec says
12:32 colomon freaky
12:32 * moritz_ mentally links to his recent blog post "why I commit crud to the Perl 6 test suite" :-)
12:33 colomon on the other hand, I don't see anything there about sign(Complex) == undef, and you added that, too.
12:38 moritz_ that was based on a discussion in RT and a comment from TimToady
12:38 zamolxes joined #perl6
12:39 moritz_ Complex.Num fail()s for $.im != 0, and sign() notionally just propagates that failure
12:39 colomon why not a 1+0i test too, then?
12:40 * colomon is busy adding tests to sign...
12:40 moritz_ rakudo: say sign(1+0i).perl
12:40 p6eval rakudo 7347ec: undef␤
12:40 moritz_ hm
12:40 moritz_ colomon: I probably didn't do it because it's not really spec yet
12:43 colomon okay, make break spectest for a few minutes here....
12:44 pugs_svn r29174 | colomon++ | [t/spec] Add tests for method form, Rats, and Num.
12:46 Helios joined #perl6
12:46 colomon actually, could someone grab that and test it against master?
12:47 * colomon didn't realize getting the latest master would be so involved...
12:48 colomon sign.t
12:57 * colomon did indeed break spectest
12:58 pmichaud_ good morning, #perl6
12:58 colomon \o/
12:59 pmichaud_ ng:   'abc' ~~ / b { say "matched it, we did!" } /
12:59 p6eval ng 3bdb4c: Symbol '$¢' not predeclared in <anonymous>␤current instr.: 'perl6;PCT;HLLCompiler;panic' pc 137 (src/PCT/HLLCompiler.pir:101)␤
13:00 pmichaud_ hmmmm
13:01 moritz_ does it work locally for you?
13:01 moritz_ and good morning pmichaud_ :-)
13:02 pmichaud_ oh, it probably breaks locally for me as well.  I think I just fail to declare $¢ in regex blocks.
13:03 bluescreen joined #perl6
13:08 takadonet joined #perl6
13:08 takadonet hey all
13:09 * colomon is getting into twisty loops of testing logic.... master spectest passes again locally on his machine, but he knows his implementation is incorrect, therefore the tests must be also incomplete...
13:10 pnate2 joined #perl6
13:13 payload joined #perl6
13:13 dalek rakudo: 1445ba3 | (Solomon Foster)++ | src/setting/ (2 files):
13:13 dalek rakudo: Rough but working versions of Int.sign and Rat.sign.
13:13 dalek rakudo: Actually, these pass the spectest but the Rat.sign one is definitely returning the wrong thing.  Will try to correct both spectest and code shortly.
13:13 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/1445ba3f8b99b65a0040f6bd39ce19188c550d09
13:14 colomon rakudo: say 1 eq 4/4
13:14 p6eval rakudo 7347ec: 1␤
13:15 * moritz_ surprised
13:15 colomon that's why the incorrect tests pass
13:16 colomon it's a quasi-sensible result, but means we're not correctly testing the type returned by sign.
13:16 moritz_ well, numeric tests should generally not rely on is()
13:16 moritz_ they should use is_approx, or ok $a == $b
13:16 moritz_ and then isa_ok for checking the return type
13:17 colomon I guess I don't see what's wrong with using is for results which should be Ints....
13:17 colomon and I will add isa_ok checks in a sec.
13:25 ejs1 joined #perl6
13:26 pmichaud_ ...why shouldn't numeric tests be using is() ?
13:27 pmichaud_ oh, nm.
13:27 pugs_svn r29175 | colomon++ | [t/spec] Add tests that sign returns Int.
13:27 pmichaud_ things that are floats probably shouldn't be using is()
13:27 pmichaud_ but other tests that contain exact values should use is(), I think.
13:29 cognominal_ pmichaud, what is the meaning of the pasttype 'alt'?
13:29 zaslon lolmasakhazblogged! masak++ 'November 23 2009 -- of China(s) and cheese': http://use.perl.org/~masak/journal/39933?from=rss
13:30 ashizawa joined #perl6
13:30 dalek rakudo: a55d864 | (Solomon Foster)++ | src/setting/ (2 files):
13:30 dalek rakudo: Fix Int.sign and Rat.sign so they correctly return Ints.
13:30 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/a55d864e83514b79de45d3904a11f1c0cede67cc
13:32 colomon Okay, now back to my original goal of getting sign working in ng.
13:32 moritz_ :-)
13:32 colomon pmichaud_: any chance of quickly sneaking undef into ng?  We're not going to pass all of the sign.t tests without it....  :)
13:33 ruoso joined #perl6
13:34 moritz_ phenny: tell masak see http://ali.as/top100/index.html for ideas how to score projects
13:34 phenny moritz_: I'll pass that on when masak is around.
13:35 ejs2 joined #perl6
13:36 cognominal_ masak, in your article you forgot to say that our  great (and benevolent) helmsman left for Taiwan's equivalent
13:36 colomon oh wow, master's Num.sign is beautiful.
13:36 camenix joined #perl6
13:43 colomon ng: say NaN ~~ NaN
13:43 p6eval ng 3bdb4c: Method 'ACCEPTS' not found for invocant of class 'Float'␤current instr.: '&infix:<~~>' pc 157427 (src/gen/perl6-actions.pir:0)␤
13:43 colomon ng: say 2 <=> 4
13:43 p6eval ng 3bdb4c: Confused at line 1, near "say 2 <=> "␤current instr.: 'perl6;HLL;Grammar;panic' pc 519 (src/stage0/HLL-s0.pir:336)␤
13:44 colomon Well, that's going to make self ~~ NaN ?? NaN !! self <=> 0 a bit tricky now, isn't it?
13:44 moritz_ well, you can implement it :-)
13:44 colomon ng: say 2 < 4
13:44 p6eval ng 3bdb4c: sh: ./perl6: No such file or directory␤
13:45 colomon all right, now that's just getting silly.
13:45 moritz_ or use <, == and > separately
13:45 colomon ;)
13:46 colomon Seems like the incremental difficulty of implementing <=> over sign is pretty minor... let's give it a go.
13:47 colomon see how much I can get done before I take the boy to the library for storytime.
13:48 colomon ng: say 2 cmp 4
13:48 p6eval ng 3bdb4c: Confused at line 1, near "say 2 cmp "␤current instr.: 'perl6;HLL;Grammar;panic' pc 519 (src/stage0/HLL-s0.pir:336)␤
13:49 colomon Oh, wait.  I suppose ng doesn't have order, either?
13:49 colomon Order, I mean.
13:49 colomon ng: Order
13:49 p6eval ng 3bdb4c: Could not find non-existent sub &Order␤current instr.: '_block14' pc 29 (EVAL_1:0)␤
13:49 moritz_ I think you suppose correctly :-)
13:49 moritz_ rakudo: Order
13:49 p6eval rakudo 7347ec:  ( no output )
13:50 colomon Okay, maybe I'll just whip together an inelegant sign instead.
13:52 ejs2 joined #perl6
13:54 pmichaud_ moritz_: (undef) Sure, we can haz undef.  It would really help if I could nail down what it returns exactly.
13:55 moritz_ pmichaud_: that was colomon... I think by default undef returns the Object type object
13:58 pmichaud_ oh, you're right, that was colomon
13:59 pmichaud_ if undef just returns Object, then it's just
13:59 colomon and considering my luck so far implementing sign, may have been premature.  ;)
13:59 pmichaud_ our sub undef() is export { Object };
13:59 colomon not Object.net?
13:59 colomon Object.new?
13:59 pmichaud_ that wouldn't be the type object
13:59 pmichaud_ and in some sense,  Object.new should be defined.
13:59 pmichaud_ (whereas we obviously want an undefined object :-)
14:00 colomon okay.
14:00 moritz_ pmichaud_: uhm, undef should be parsed as a term, not listop
14:01 pmichaud_ moritz_: sure, but I suspect there's still an &undef function somewhere.
14:01 moritz_ pmichaud_: the function is called undefined()
14:01 pmichaud_ that's a different function
14:01 moritz_ std: undef ~~ 1
14:01 p6eval std 29175: ok 00:01 105m␤
14:01 pmichaud_ undefined()   will undef a variable
14:02 moritz_ std: sub a(); a ~~ 1
14:02 p6eval std 29175: [31m===[0mSORRY![31m===[0m␤Missing block at /tmp/b0JqcBS8CV line 1:␤------> [32msub a()[33m⏏[31m; a ~~ 1[0m␤    expecting any of:␤   block␤  routine_def␤        terminator␤      trait␤   whitespace␤FAILED 00:01 104m␤
14:02 moritz_ std: sub a() { }; a ~~ 1
14:02 p6eval std 29175: [31m===[0mSORRY![31m===[0m␤Preceding context expects a term, but found infix ~~ instead at /tmp/BPEWNQqh4r line 1:␤------> [32msub a() { }; a ~~[33m⏏[31m 1[0m␤FAILED 00:01 106m␤
14:02 moritz_ pmichaud_: STD.pm doesn't know about an undef() function
14:02 moritz_ you can see it doesn't parse as a listup
14:02 pmichaud_ std:  undef()
14:02 colomon Do named arguments work in ng yet?
14:02 p6eval std 29175: Undeclared routine:␤  'undef' used at line 1␤ok 00:01 103m␤
14:02 moritz_ s/up/op/
14:03 pmichaud_ colomon: they should, yes.
14:03 colomon huh.
14:03 pmichaud_ moritz_: I agree that undef is a term, yes.
14:03 pmichaud_ I'm wondering if there's also an &undef function.  I'm fine if there isn't.
14:04 pmichaud_ you're correct that std doesn't recognize one.
14:07 colomon ng: say sign(1.0e0)
14:07 p6eval ng 3bdb4c: Method 'sign' not found for invocant of class 'Num'␤current instr.: '&sign' pc 178053 (src/gen/core.pir:5033)␤
14:08 colomon ieeeeeeee
14:08 colomon ng: say 1.0e0.WHAT
14:08 p6eval ng 3bdb4c: Int()␤
14:08 colomon ng: say 1.1e0.WHAT
14:08 p6eval ng 3bdb4c: Num()␤
14:08 moritz_ uhm.
14:08 * moritz_ calls that a bug
14:15 szabgab joined #perl6
14:16 colomon even spookier:
14:16 colomon ng: say 1.5e1.WHAT
14:16 p6eval ng 3bdb4c: Int()␤
14:16 colomon it's disturbingly smart about it....
14:16 moritz_ ETOOSMART
14:18 pmichaud_ did someone adjust the floating point code?
14:19 pmichaud_ ohhhh, I see.
14:19 colomon Not me.
14:19 colomon ng: say NaN == NaN
14:19 p6eval ng 3bdb4c: 0␤
14:19 pmichaud_ internally the code gets converted to a Parrot float
14:19 pmichaud_ so   1.5e1  ends up in the PIR source as "15"
14:19 pmichaud_ which Parrot treats as an Int
14:20 mathw umm
14:20 mathw that's not good
14:20 moritz_ so you'd have to go through a $N register?
14:21 pmichaud_ no, we can tell the PAST::Val the exact type of object to be created
14:21 moritz_ that sounds better
14:21 * pmichaud_ tries that.
14:23 pmichaud > say 1.5e1.WHAT
14:23 pmichaud Num()
14:23 lambdabot Not in scope: `say'Not in scope: data constructor `WHAT'
14:23 _jaldhar joined #perl6
14:23 moritz_ lambdabot: learn some context, you fool
14:23 pmichaud if anyone has a suggestion for a won't-clash-with-lambdabot prompt, we can change that too.  :)
14:23 * moritz_ suggests to kick lambdabot instead
14:24 moritz_ zaslon: karma
14:24 zaslon Sorry, I don't understand that command
14:24 moritz_ zaslon: karma moritz_
14:24 zaslon Sorry, I don't understand that command
14:24 moritz_ hm, that was mubot
14:24 pmichaud I was thinking about »ö«  as a prompt, but it doesn't quite look right to me in practice.
14:25 moritz_ I'd rather add some karma tracking facilities to hugme and kick lambdabot for good
14:25 pmichaud I also tried »ö«: as a prompt... that's a little better but still didn't quite look right.
14:25 moritz_ it's too symmetric
14:25 moritz_ a prompt is something asymmetric
14:26 mathw just kill lambdabot
14:26 mathw it responds to too many different leading characters
14:26 mathw bad command set
14:29 colomon ng: say NaN eq NaN
14:29 p6eval ng 3bdb4c: 1␤
14:29 colomon ng: say 19 eq NaN
14:29 p6eval ng 3bdb4c: 0␤
14:29 colomon ng: say NaN.WHAT
14:29 p6eval ng 3bdb4c: Num()␤
14:31 colomon btw, in ng plan * seems to generate
14:31 colomon "1..!whatever_dispatch_helper" for the number of tests....
14:31 moritz_ rakudo: say * ~~ Whatever
14:32 p6eval rakudo 7347ec: 1␤
14:32 moritz_ rakudo: say 1 ~~ Whatever
14:32 p6eval rakudo 7347ec: 0␤
14:32 moritz_ I guess we can fix plan()
14:33 ng_feed rakudo-ng: pmichaud++
14:33 ng_feed rakudo-ng: Force 1e0 to build a Num.
14:34 perlygatekeeper joined #perl6
14:34 pugs_svn r29176 | colomon++ | [t/spec] Change 1.5e1 to 1.5e0 to test around current ng bug which makes 1.5e1 an Int.
14:35 colomon Ironic juxtaposition of those last two commits, eh?  :)
14:35 am0c joined #perl6
14:40 pmichaud we fix bugs *and* work around them :)
14:43 ejs joined #perl6
14:45 ng_feed rakudo-ng: colomon++
14:45 ng_feed rakudo-ng: Merge branch 'ng' of git@github.com:rakudo/rakudo into ng
14:45 ng_feed rakudo-ng: colomon++
14:45 ng_feed rakudo-ng: Provide basic implementations of Int.sign, Rat.sign, and Num.sign.
14:45 FullMetalHarlot joined #perl6
14:45 colomon okay, I just pushed what I've got of sign.  The first 33 tests pass, and then the named argument tests blow up.
14:45 iblechbot joined #perl6
14:46 moritz_ is this the multi/proto/named args thing?
14:46 colomon I've got to take the boy to storytime, and should probably do $work after that, so if someone else could take a look at the named argument thing, that would be cool....
14:46 colomon moritz_: yes, though I think we thought that worked in ng.
14:47 moritz_ maybe I'll look into it later
14:50 kolibrie joined #perl6
15:07 PacoLinux joined #perl6
15:11 Psyche^ joined #perl6
15:21 hudnix joined #perl6
15:24 Bzek joined #perl6
15:27 [particle]1 rakudo: use v6; say 'hi';
15:27 p6eval rakudo 7347ec: hi␤
15:29 moritz_ rakudo: #=======␤#=======␤use v6;
15:30 p6eval rakudo 7347ec: Could not find non-existent sub v6␤in Main (file src/gen_setting.pm, line 324)␤
15:30 moritz_ there you go
15:31 moritz_ std: #=======␤#=======␤use v6;
15:31 p6eval std 29176: ok 00:01 104m␤
15:31 payload joined #perl6
15:38 alester joined #perl6
15:39 rfordinal joined #perl6
15:43 ejs joined #perl6
15:44 moritz_ (for the record: bug reported)
15:44 moritz_ I've found a computationally *very* expensive way to calculate a sine function
15:45 Gothmog_ Picking a double by random and checking for correctness?
15:45 moritz_ do a quantum mechanical tight-binding simulation of a wire with spin-orbit coupling
15:45 moritz_ and then look at the spin conductance as a function of the spin-orbit coupling strength
15:46 Gothmog_ bzzt
15:50 pmichaud hmmm.  I don't think term:<undef> can simply return the Object type object
15:50 pmichaud because then   $x ~~ undef    doesn't dtrt
15:51 pmichaud so whatever undef returns, it's likely not a type object.
15:51 pmichaud (or not only a type object)
15:52 moritz_ unless Object.ACCEPTS is special-cased
15:52 pmichaud special-cased how?
15:53 moritz_ if !$.defined && $?CLASS === Object { !.defined } else { normal type check logic }
15:53 moritz_ but I really don't think that's a good answer
15:53 pmichaud surely not $?CLASS
15:53 moritz_ right
15:53 moritz_ self.WHAT
15:57 pmichaud S02:1077
15:57 pmichaud (The C<undef> function merely returns the most
15:57 pmichaud generic C<Failure> object.)
16:00 pmichaud afk for a bit
16:10 cognominal_ joined #perl6
16:10 Woody2143 joined #perl6
16:15 jnthn joined #perl6
16:15 Gothmog_ joined #perl6
16:18 jnthn oh hai
16:18 * jnthn is back from Latvia
16:19 moritz_ oh it's jnthn
16:22 wanradt joined #perl6
16:24 pmichaud jnthn:  wb!
16:25 jnthn pmichaud: Thanks.
16:25 * jnthn spent his plane ride reading a paper on metamodels. :-)
16:25 pmichaud as opposed to a meta description of paper models?
16:26 pmichaud or perhaps it was a ride on paper plane metamodels?
16:27 pmichaud jnthn: you mentioned (I think) about reworking some of the role stuff?
16:29 Wolfman2000 joined #perl6
16:30 jnthn pmichaud: I already did start on that, but I ain't done yet.
16:30 jnthn pmichaud: Well, it's onto the nth evolution since the original. :-)
16:30 Wolfman2000 Morning. There is a slim chance I can pull off MD5/SHA. The big question is...can I write a program within 75 minutes?
16:30 pmichaud jnthn: is it a significant change in terms of how roles are created/used internally?
16:30 moritz_ Wolfman2000: you might want to look in the November source code
16:31 moritz_ Wolfman2000: I think the use parrot's md5/sha1 libraries somewhere in there
16:31 moritz_ s/the/thez/
16:31 Wolfman2000 moritz_: Where is that source code located?
16:31 moritz_ *they*
16:31 jnthn pmichaud: Most of the big changes are already in place.
16:31 moritz_ pointme: november
16:31 pointme viklund's november is at http://github.com/viklund/november/
16:31 pmichaud jnthn: okay
16:31 jnthn pmichaud: That is to say, we construct it through the metamodelish stuff.
16:31 moritz_ Wolfman2000: tehre you go
16:31 pmichaud jnthn: in the current ng branch?
16:31 jnthn pmichaud: Right.
16:31 Wolfman2000 Is everything located at github?
16:31 pmichaud jnthn: okay, excellent.
16:31 moritz_ Wolfman2000: nope
16:31 pmichaud I'm going to take a crack a the Failure role today, I think.
16:31 jnthn pmichaud: There may be more to come.
16:31 moritz_ Wolfman2000: we have on or two gitorious projects, and some are in the pugs repo...
16:32 jnthn pmichaud: Well, there will be because I'm not finished making them work again yet.
16:32 jnthn pmichaud: I meant more, in the future we may need to tweak it further.
16:32 Wolfman2000 ...and why am I not surprised to see PIR in here?
16:33 moritz_ because that's the oldest way to interact with parrot?
16:33 jnthn pmichaud: I'm happy I'm close enough to working out what's needed for now, so I just need to write a bunch of code. :-)
16:34 Wolfman2000 moritz_: Soon as I locate the init and update functions, I can possibly use it. Otherwise, I get to relearn bit operations.
16:34 facsimile joined #perl6
16:37 PerlJam good morning all
16:42 rfordinal joined #perl6
16:43 Wolfman2000 ...okay, I think my connection is back.
16:43 Wolfman2000 ...I need a reminder. How big our Perl 6 ints normally? 32 bit or 64 bit?
16:44 Wolfman2000 How big are*
16:44 pmichaud do you mean "int" or "Int"?
16:44 moritz_ it's the wrong question :-)
16:44 Wolfman2000 pmichaud: Int
16:44 moritz_ Int is meant to be arbitrary precision
16:44 pmichaud ...what moritz++ said
16:44 moritz_ s/precision/size/
16:44 KyleHa joined #perl6
16:44 moritz_ but isn't yet in Rakudo
16:45 moritz_ the actual size is platform dependent
16:45 Wolfman2000 ...what is it on Feather?
16:45 moritz_ again a wrong question :/
16:45 Wolfman2000 I compiled rakudo via normal means. I don't recall passing any command line switches.
16:46 * moritz_ doesn't know
16:46 pmichaud Wolfman2000: "Int" doesn't have a "size"
16:46 Wolfman2000 pmichaud: I'm asking about rakudo at this point.
16:46 pmichaud Wolfman2000: in rakudo, at this point, Int's larger than 32 bits spill over to become Num
16:46 moritz_ Wolfman2000: does t/spec/S03-operators/overflow.t pass on feather?
16:48 Wolfman2000 moritz_: let me find that directory and then run perl...5 or 6 on it?
16:48 moritz_ Wolfman2000: rakudo
16:49 moritz_ make testable
16:49 perigrin joined #perl6
16:49 moritz_ then just ./perl6 t/spec/S03-operators/overflow.t
16:49 Wolfman2000 test 18 is not ok, then it chokes due to floating point exception
16:50 moritz_ then it's probably a 32bit parrot
16:50 Wolfman2000 ...guess I'll have to bide my time as I originally thought
16:51 Wolfman2000 Oh well: I've got plenty for my project anyway. At least you guys will get some credit.
16:51 pmichaud I don't think it matters what sort of parrot one has
16:51 rfordinal left #perl6
16:51 moritz_ hm, overflow.t passes for me
16:52 moritz_ pmichaud: what else could it depend on? availability of gmp?
16:52 pmichaud moritz_: possibly, yes.
16:52 pmichaud moritz_: but rakudo actually explicitly checks for values outside of 32-bit
16:53 moritz_ and then.. does what?
16:53 jnthn Aye, I remember seeing those recently.
16:53 pmichaud if outside of 32-bit, makes it a num
16:53 KyleHa I think overflow.t passes due to bogosity.
16:53 pmichaud http://github.com/rakudo/rakudo/blob/master/src/builtins/op.pir#L19
16:54 KyleHa Its tests are designed for a 32-bit arch.  It always passes for me on amd64.
16:54 pmichaud many of the overflow.t tests came from the p5 test suite, iiuc
16:54 pmichaud (which also tended to look at things at the 32-bit boundary)
16:54 moritz_ KyleHa: they should pass on all platforms
16:54 moritz_ KyleHa: so they're not bogus
16:55 moritz_ KyleHa: just maybe not good enough, in some sense
16:55 KyleHa Yes, that's a much better way to say it.
16:55 mathw afternoon
16:56 Wolfman2000 as a heads up, I don't think rakudo likes my @r[64]; yet. Must be the [64] part.
16:56 jnthn hi mathw :_)
16:56 jnthn Wolfman2000: Aye, sized arrays are nyi.
16:56 * PerlJam reads about the S meta-op which he appears to have missed the arrival of
16:57 mathw PerlJam: That was only the other day
16:58 pmichaud PerlJam: yes, I missed it also.
16:58 PerlJam mathw: forever ago in internet time  :)
16:58 felipe joined #perl6
16:58 moritz_ std: 1 S& 3
16:58 p6eval std 29176: ok 00:01 105m␤
16:58 moritz_ std: 1 S+ 3
16:58 p6eval std 29176: ok 00:01 103m␤
17:00 PerlJam apparently I missed "anon" as well.
17:00 mathw I'm not quite sure what 'anon' is for yet
17:01 mathw I haven't read the full thing
17:02 KyleHa I think it's for declaring a sub that returns a particular type without having to use 'my' or 'our'.
17:02 KyleHa Something like $x = anon Str sub { 'ha ha' };
17:03 pmichaud interesting.  so one could do     $x = anon Str sub xyz { 'ha ha' }   to get a sub named 'xyz' that isn't entered in a symbol table as 'xyz'
17:03 pmichaud I like it.
17:03 moritz_ pmichaud: it isn't entered into the lexpad either, is it?
17:04 PerlJam std: $x = anon Str sub xyz { 'ha ha' }
17:04 p6eval std 29176: [31m===[0mSORRY![31m===[0m␤Two terms in a row at /tmp/9u6vn39hU8 line 1:␤------> [32m$x = anon Str [33m⏏[31msub xyz { 'ha ha' }[0m␤    expecting any of:␤    infix or meta-infix␤      infix stopper␤    standard stopper␤ statement modifier loop␤  terminator␤Other potential
17:04 p6eval ..difficulties:␤  Varia…
17:04 pmichaud moritz_: right
17:04 pmichaud I consider lexpads to be symbol tables also :-)
17:04 TimToady still need to check in 'anon'
17:04 PerlJam at
17:04 PerlJam er, ah
17:04 moritz_ std: sink 1
17:04 p6eval std 29176: Undeclared routine:␤  'sink' used at line 1␤ok 00:01 103m␤
17:04 * jnthn didn't get chance to review all of the changes yet; S looked odd at first glance.
17:04 moritz_ TimToady: sink also :-)
17:05 PerlJam anon still feels like one-too-many scope declarators to me (in the all of 5 minutes that I've known of its existence :)
17:05 Linuturk joined #perl6
17:05 Wolfman2000 ...I think I'm biting off more than I can chew right now. Str "The test" in hex is 5468652074657374. If I understand MD5 right, I should append a 1 bit, then 0 bits until my hex length is 28. Then, I append the length of the unpadded message...8, little endian style. Is it possible to append bit strings to Str?
17:05 Linuturk left #perl6
17:06 moritz_ Buf()s would be better for that, but mostly NYI
17:06 pmichaud bit strings should probably be buf, not str
17:06 Wolfman2000 moritz_: Buf types aren't in yet?
17:07 PerlJam Wolfman2000: patches welcome! :)
17:07 moritz_ Wolfman2000: only very basic stuff is implemented in Buf
17:07 moritz_ like encode/decode
17:07 Wolfman2000 ...alright, I'm out of my league then. PerlJam: can't even try to do this now.
17:08 Wolfman2000 Back to my original plan then: worry about bit shifting and buffing AFTER my presentation.
17:08 moritz_ TimToady: in the backlog, did you see my idea about a Base role or so which builtin types (or things that act like builtins) implement?
17:08 Wolfman2000 To think, Perl 6 is in use before it's out for everyone to use.
17:09 Wolfman2000 If this doesn't get you guys publicity, I don't know what will.
17:09 moritz_ as long as it's good publicity... :-)
17:09 Wolfman2000 moritz_: I plan on it.
17:09 PerlJam I think I have a pessimist hat on today
17:10 Wolfman2000 PerlJam: take it off.
17:10 mathw anybody know what parrot means when it says 'unexpected end'?
17:10 pmichaud mathw: usually that there's a missing '.end' I think
17:10 PerlJam The first thing I thought when I saw "get you guys publicity" was ``what does he mean "you guys"?'' and that worried me some.
17:10 mathw pmichaud: interesting
17:10 mathw pmichaud: this seems to be caused by a bit of inline PIR
17:11 synth joined #perl6
17:12 * mathw experiments
17:13 moritz_ runaway quote maybe?
17:13 * moritz_ guesses
17:13 mathw aaaaaaaaaargh
17:13 jnthn Pain. He experiences it.
17:14 mathw yup
17:14 mathw the cat's come to cheer me up
17:14 jnthn cat++
17:14 mathw fortunately he's not trying to help
17:14 jnthn .oO( Unexpected cheezburger )
17:15 simcop2387 joined #perl6
17:15 moritz_ at file <unknown>, line <unknown>
17:15 cdarroch joined #perl6
17:16 pmichaud S02:565 says that C<Failure> is a non-instantiable role.... is that meant in the same sense that other roles don't have instances except via punning, or is there something deeper there?
17:16 wtgee joined #perl6
17:17 mathw right
17:17 jnthn All roles are non-instantiable without punning.
17:17 mathw it seems that you can't have anything that's not a Q:PIR block inside a function body that has a Q:PIR block in it. Is this expected?
17:18 jnthn mathw: May need a ; after the } but that may be a bug if so.
17:18 pmichaud jnthn: right... I'm just wondering if the statement meant something further
17:18 jnthn pmichaud: I srsly hope not.
17:18 pmichaud mathw: that's not expected, no.
17:18 PerlJam pmichaud: as in, you can't even pun Failure?
17:18 mathw jnthn: I build test case
17:18 pmichaud mathw: one should be able to put Q:PIR anywhere that a value is expected
17:19 pmichaud ng:  say  3 + Q:PIR { %r = box 4 };
17:19 p6eval ng e4113c: 7␤
17:19 jnthn pmichaud: Though if you want to make totally sure it can't be punned, then give the role a method new that throws an exception.
17:19 jnthn (I assume it's got no other constructors...)
17:19 mathw pmichaud: right
17:19 jnthn pmichaud: I really can't imagine anything deeper than that though.
17:19 mathw and my test case passed
17:19 mathw so it's something else
17:19 pmichaud mathw: can you nopaste what you have?
17:19 mathw pmichaud: it's in a huge mess at the moment, I'm trying to rationalise it
17:19 mathw I will do if I get something meaningful
17:20 pmichaud mathw: okay.
17:20 wtgee left #perl6
17:20 desertm4x joined #perl6
17:20 pmichaud so, given that we now have Numeric and Stringy roles... what do we expect prefix:<+> to look like?  (more)
17:21 pmichaud for example, I know that   sub prefix:<+>(Numeric $x) { $x }    is likely correct
17:21 TimToady not without a 'multi' :P
17:21 pmichaud but what if $x doesn't Numeric?  what's our api for converting non-Numerics to numeric?
17:21 pmichaud is it still .Num, or ... ?
17:21 pmichaud (yes, need the multi)
17:22 ejs joined #perl6
17:22 TimToady moritz_: yes, I saw Base, and am also wondering whether it actually works, or will prevent users from, say, doing numeric coercion via +$myobj, and whether or not that's good
17:23 payload joined #perl6
17:24 TimToady the dwimmy thing the user expects of + is to call the coercer for the narrowest non-native type that handles it, or something like that
17:24 TimToady maybe the next thing to do is to call the actual type of the original object to see if it has a Numeric sub defined
17:25 TimToady so sweep the problem under the carpet of Str
17:25 pmichaud okay, I'm afraid I didn't follow much of any of that
17:25 mathw whee
17:26 mathw infinite loop!
17:26 TimToady I meant a method
17:27 pmichaud so,    multi sub prefix:<+>($x) { $x.Numeric }     ?
17:27 TimToady if there's a Str.Numeric method... yeah
17:27 zamolxes joined #perl6
17:27 pmichaud same with   Stringy and  prefix:<~>, then ?
17:28 TimToady presuming symmetry there
17:28 mathw is there ever going to be a time when Rakudo can compile the core/*.pm without having to concat them all together first?
17:28 pmichaud how about  prefix:<?> and Boolean ?
17:28 pmichaud still symmetry there, also ?  (that would be nice)
17:28 TimToady to the extend it makes sense
17:28 TimToady *extent
17:28 TimToady not everything extends to boolean
17:29 KyleHa joined #perl6
17:29 pmichaud well, we still have the outstanding issues regarding the relationship of  .true, .Bool, etc
17:29 pmichaud so I'm wondering if .Boolean might help to clean that up
17:29 TimToady maybe
17:29 TimToady need to be careful with junctions
17:30 pmichaud hmmm.... yes.
17:31 mathw heh
17:31 mathw calling @list.perl.say in ng seems to be causing an infinite loop
17:31 mathw or at least, taking a veeery long time
17:33 pmichaud I also wonder if   @($x)  should be doing $x.Positional    and %($x)  should be $x.Associative, then.
17:34 pmichaud although that's not quite right, because if  $x is a Capture then @($x) should be getting the positional elements out
17:35 moritz_ TimToady: the idea behind Base is that class authors decide themselves if they want to support +$object
17:36 pmichaud moritz_: wouldn't that normally be handled by  .Numeric, though?
17:36 moritz_ pmichaud: yes
17:37 moritz_ pmichaud: my idea was to but methods like Numeric, sin, abs, etc. into a Base role and out of Any
17:37 mathw woo! I wrote Array.push
17:37 moritz_ pmichaud: so that user defined classes don't have 200 methods inherited from Any
17:37 mathw ...although it pushes into the middle, apparently
17:37 dukeleto moritz_: that sounds like it could be a good idea
17:37 dukeleto moritz_: and a performance enhancement as well
17:37 moritz_ pmichaud: unless they explicitly want them, in which case they just 'do Base'
17:38 moritz_ and if they don't, +$obj will fail because $obj doesn't have a Numeric method, unless defined explicitly
17:38 pmichaud moritz_: and so then Int/Num/Str/List/Mapping all "does Base" by default ?
17:38 moritz_ pmichaud: yes
17:39 moritz_ all built-in types except Any, Object, junction and maybe Whatever (not sure about Whatever)
17:39 iblechbot joined #perl6
17:40 TimToady .oO(all your Any are belong to us...)
17:40 moritz_ I was just about to call for Base puns
17:40 pmichaud moritz_: I like that idea, don't see many downsides.  the name is a little "off"
17:40 TimToady does BASIC
17:41 moritz_ pmichaud: yeah, I'm not fixed on the name
17:41 KyleHa does FORTRAN
17:41 dukeleto TimToady: does Math
17:41 moritz_ there are more than Math builtins
17:41 TimToady does Polymath
17:42 dukeleto is Polyglot
17:42 pmichaud moritz_: what common methods wouldn't end up in Base?
17:42 TimToady speaks P6ese
17:42 pmichaud seems like  .grep, .join, etc still go into Any
17:42 TimToady P6ease
17:42 moritz_ pmichaud: maybe the List ones... not sure though
17:43 moritz_ one could make a case for putting them into Base too
17:43 TimToady ohoh, the abstraction is leaking --> sink  :)
17:43 TimToady does KitchenSink
17:43 pmichaud moritz_: well, .join probably doesn't go in Any
17:43 pmichaud because it wants to be able to stringify
17:44 pmichaud .grep still goes into Any, because we want to treat objects as lists of 1 elem
17:44 moritz_ pmichaud: for builtin types, yes
17:44 pmichaud moritz_: oh, I would think for non-builtin types also
17:44 TimToady does DWIM
17:45 pmichaud er,   does WIM
17:45 TimToady but it does do it! :)
17:45 moritz_ pmichaud: not sure... <foo> returns a string, but a quote should alwys return something which does DWIM
17:45 moritz_ pmichaud: so I see why <foo>.grep should work
17:45 pmichaud moritz_: I think of it more along the lines of $x versus @x
17:45 moritz_ pmichaud: but not why $arbitrary_object.grep shoudl work
17:46 pmichaud i.e., $x and @x do different things in list context, even if they are the same object
17:46 mathw so I ran make spectest in ng and everything passed
17:46 moritz_ and by the same token $x.grep and @x.grep should do the same, even if $x !~~ Positional?
17:46 mathw something's fudging, isn't it
17:47 pmichaud moritz_: that's not my point
17:47 pmichaud my point is whether we think of   .grep as being  "treat the invocant as a list, even if it's not already one"
17:48 pmichaud and if that's true for all objects by default, as opposed to just those that "does Base"
17:48 dalek joined #perl6
17:48 pmichaud if we think "for all objects by default", then .grep belongs in Any
17:48 moritz_ right
17:48 pmichaud if we think "this behavior only for builtin types", then .grep belongs in Base
17:49 SmokeMachine joined #perl6
17:49 moritz_ anyway, that's a point I'm happy to negotiate, and maybe to just try out in real-world code
17:50 pmichaud all of these issues fundamentally affect Rakudo-ng, though, so it would be good to nail them down a bit more now
17:50 pmichaud especially the casting into Numeric, Stringy, Boolean, etc.
17:50 pmichaud it's those sorts of issues that are posing questions about how to do Failure
17:51 pmichaud and undef
17:51 moritz_ right
17:51 * dukeleto does Failure
17:51 Nex6 joined #perl6
17:55 pugs_svn r29177 | lwall++ | [CORE,Stash] catch up with recent name changes
17:55 pugs_svn r29177 | [STD] add anon, sink
17:56 ng_feed rakudo-ng: (jnthn)++
17:56 ng_feed rakudo-ng: Start to get some junctional bits back in. Not yet working (but want to continue hacking on my desktop, not on my laptop :-)).
17:56 * pmichaud does lunch, errands
17:56 pmichaud bbiaw
17:57 mathw http://gist.github.com/241235 highly oversimplified implementation of Array.push. I think it should be flattening the arguments maybe?
17:58 payload joined #perl6
17:58 jnthn mathw: I think the slurpy param should enforce list context, and thus do that.
17:58 mathw that would be nice
17:59 mathw I need to figure out how to get it to do push-related spectests
17:59 mathw but it works for simple things
17:59 jnthn mathw: BTW, you can also do all of this with pir::opname form too :-)
17:59 mathw I saw that elsewhere
17:59 mathw but I didn't really understand it
18:00 jnthn Also I wonder if pmichaud was thinking more of doing it in term of a .splice method call on self...
18:00 mathw that's possible
18:00 mathw in fact, that's quite likely
18:00 PerlJam the less Q:PIR the better
18:00 mathw that pir::opname thing requires you to know the name that has the argument type annotations doesn't it
18:01 mathw PerlJam: agreed
18:01 pmichaud + my $elems = self.elems;
18:01 pmichaud probably don't want to do that if we can avoid it
18:01 mathw pmichaud: I know
18:01 mathw Parrot's splice needs a count of where to stick it though
18:01 * moritz_ wonders how push, unshift etc. relate to laziness
18:01 mathw I know this isn't a good implementation, but it's been educational :)
18:02 jnthn mathw: If you're doing e.g. $P0 = parrotop $S0, $I0 then you'd turn it into pir::parrotop__PSI($x, $y) or so.
18:02 pmichaud it's also the case that you need to not push the original elements of @args, but copies
18:02 jnthn "copies" :-)
18:02 pmichaud otherwise if the original elements change, the values in the array change also
18:02 mathw hmm
18:02 mathw point
18:02 mathw very good point
18:02 jnthn It's copies in the assignment sense of the word though.
18:02 pmichaud right
18:03 mathw is that why the one in master does all the wrapping in Perl6Scalar?
18:03 mathw or was tha tjust because it was pure PIR
18:03 pmichaud it's not wrapping, exactly
18:03 pmichaud but yes, that's why
18:03 mathw right
18:03 pmichaud it needs to act like an array of scalars
18:04 pmichaud so my plan was more along the lines of
18:04 pmichaud my @array = @args;
18:04 pmichaud # splice @array into self
18:04 mathw so really your plan for implementing push is
18:04 mathw 1) write splice
18:05 pmichaud where "splice @array into self"  does it based on the internals
18:05 mathw so you're okay using Parrot's splice
18:05 pmichaud i.e., without actually flattening @!values
18:05 pmichaud yes, I'm fine with Parrot's splice
18:05 mathw well maybe I can do something more like that
18:05 pmichaud I just don't want to be forcing flattening of the Array itself
18:05 mathw this is all very interesting
18:05 mathw excuse me
18:05 mathw I need to have some dinner
18:06 pmichaud I think if you can write Array.splice first, the rest become much easier :)
18:06 mathw that's because Array.splice is the hard one :P
18:06 mathw although we could then have push entirely in Perl 6, I suppose
18:06 jnthn Having more stuff in Perl 6 itself is nice. :)
18:06 pmichaud right.
18:07 * jnthn gets latest Parrot and ng branch built so he can do some stuff.
18:07 mathw heh okay
18:07 mathw I'll look at splice later then
18:07 pmichaud otoh, it might not be so easy to do with push with splice because splice wants an offset also
18:08 pmichaud so... I dunno.
18:08 mathw laziness mucks it all up a bit
18:08 pmichaud unshift and shift are easy with splice; push/pop not so easy
18:08 mathw if one does splice, unshift and shift
18:08 jnthn masak and I were pondering this yesterday. Does push onto an infinite list followed by a pop give you the thing you just pushed?
18:08 mathw one can leave push for later
18:08 pmichaud jnthn: that would be nice.  I don't see a barrier to someday implementing it that way.
18:09 pmichaud (nor has the stuff I've written thus far preclude it)
18:09 jnthn I don't expect pop of 1..Inf is going to do much helpful though. :-)
18:09 jnthn Well, unless your task was "fill up memory"
18:09 pmichaud why is that?
18:09 pmichaud I could imagine that pop of an infinite generator can work
18:10 jnthn Wouldn't we have to generate the entire lot to know what it's last element is, in the general case?
18:10 jnthn OK, for a range it's a poor example - we know.
18:10 pmichaud in the general case, like I/O, perhaps
18:10 pmichaud but just because a generator is infinite doesn't mean we can't pop :)
18:10 Tene a generator could feasibly generate at both ends.
18:11 jnthn .oO( if you call .pop on 1..Inf an infinite number of times...oh wait... )
18:11 pmichaud maybe something like   -Inf .. 1   :-)
18:11 mathw depends on the generator
18:11 jnthn Yeah, true. :-)
18:11 jnthn Depends how clever we want to be. :-)
18:11 pmichaud okay, lunch for real now
18:11 pmichaud bbl
18:11 mathw can we not be too clever please
18:11 mathw I don't think we really need to spend too much time letting people do foolish things with infinity
18:11 jnthn mathw: Yes, I have a fear of excessive cleverness too :-)
18:12 pnate joined #perl6
18:12 pmichaud mathw: you forget the Perl motto:  "Perl exists to torment the implementors."
18:12 pmichaud That would be you.
18:12 pmichaud :-)
18:12 mathw bah
18:12 jnthn Yeah, but unfathomable semantics torment users too. :-)
18:12 mathw I'll write the version that doesn't work with infinite lists
18:12 mathw and let you fix it :P
18:12 jnthn Shared tormentation.
18:13 mathw Perl 6 isn't supposed to have unfathomable semantics
18:13 PerlJam mathw: depends on who you are as to how "fathomable" the semantics are.
18:13 mathw PerlJam: they should at least be written down somewhere
18:14 stephenlb joined #perl6
18:14 PerlJam mathw: yes, but most of them are written in Perl 6!  :)
18:15 mathw PerlJam: recursion is... recursive :)
18:15 lithos joined #perl6
18:16 lithos ng: say(0b22);
18:16 p6eval ng e4113c: sh: ./perl6: No such file or directory␤
18:16 lithos nqp: say(0b22);
18:16 p6eval nqp: 6␤
18:17 eternaleye joined #perl6
18:17 lithos nqp: say(0b33);
18:17 p6eval nqp: Method 'panic' not found for invocant of class 'Regex;Match'␤current instr.: 'parrot;HLL;Actions;string_to_int' pc 13934 (gen/hllgrammar-grammar.pir:3334)␤
18:17 moritz_ in rakudo that's a known bug
18:18 lithos hi! for nqp, one cause is a pasto in HLL/Grammar.pm, I think
18:18 mathw lithos: are you the person who posted the summary on perl6-language?
18:18 lithos yes
18:18 mathw lithos: excellent work
18:18 lithos noticed this bug preparing the summary
18:18 mathw thank you very much :)
18:18 lithos thanks
18:19 moritz_ lithos: ah, you mean token binint  { [<[ 0..7 ]>+] ** '_' }
18:19 lithos yes
18:19 * moritz_ fixes and tests
18:20 lithos second thing is in HLL/Actions.pm:24  I think there should be >= in "if digitval > base goto err_base"
18:21 desertm4x_ joined #perl6
18:22 lithos unless one wants to support redundant digits
18:22 dalek nqp-rx: f9d5159 | moritz++ | src/HLL/Grammar.pm:
18:22 dalek nqp-rx: fix binint pasto as noticed by lithos++
18:22 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/f9d5159010b96244d546da1463c87c0400883597
18:23 moritz_ there's no reason to support 8 in base 8, right :-)
18:23 TimToady lithos++
18:23 mathw moritz_: I hope not
18:23 mathw if there is, my understanding of how to write numbers down is much poorer than it should be
18:24 moritz_ lithos++
18:24 PerlJam lithos++  (indeed, that's where I first found out about the S meta-op)
18:24 moritz_ @karma lithos
18:24 lambdabot lithos has a karma of 4
18:25 lithos ok, one more nqp nit: t/nqp/42-cond-loop.t:36 and following claim they are testing "unless" but they actually are not
18:26 PerlJam what happened to PERL6EXE in build/Makefile.in ?
18:27 dalek nqp-rx: 1ec10cc | moritz++ | src/HLL/Actions.pm:
18:27 dalek nqp-rx: fix an off-by-one error in number conversion error checking
18:27 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/1ec10cc6bdeb169a966f6e52b7ba6f1eb3ba046b
18:27 dalek nqp-rx: a89723d | moritz++ | t/nqp/42-cond-loop.t:
18:27 dalek nqp-rx: fix some test descriptions, as reported by lithos++
18:27 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/a89723dc6c543bd097e14235debfd24ee6125b09
18:28 mdxi joined #perl6
18:28 PerlJam oh, I see.  In some places we have PERL6EXE and in others we have PERL6_EXE
18:29 colomon lithos++ indeed!
18:29 jnthn lithos++ # some nice fixes there! :-)
18:29 lithos hm, moritz_, maybe the descriptions where as intended but the tests themselves weren't?
18:29 * lithos blushes
18:29 mdxi joined #perl6
18:33 ng_feed rakudo-ng: (Jonathan Scott Duff)++
18:33 ng_feed rakudo-ng: [makefile] s/PERL6EXE/PERL6_EXE/
18:33 zloyrusskiy joined #perl6
18:33 rgrau joined #perl6
18:36 IllvilJa Is this channel a place where I can find Russ Allbery (who maintains Term::ANSIColor for Perl5).  I asked in #perl but got no answer... (and yes, I have tried to mail Russ using his CPAN mail address)
18:37 Su-Shee joined #perl6
18:38 pure1111 joined #perl6
18:38 ng_feed rakudo-ng: jnthn++
18:38 ng_feed rakudo-ng: Give Junction a decent custom .new, meaning we can now nicely write all of any/all/one/none in the setting, as well as the various operators.
18:41 jnthn std: anon Int $x;
18:41 p6eval std 29177: ok 00:01 106m␤
18:41 jnthn std: anon Int $x; say $x;
18:41 p6eval std 29177: Potential difficulties:␤  Variable $x is not predeclared at /tmp/4CzilF5Wfi line 1:␤------> [32manon Int $x; say $x[33m⏏[31m;[0m␤ok 00:01 104m␤
18:41 jnthn std++
18:41 mathw jnthn: oooh
18:43 * mathw looks at the spec for Array.splice and goes a bit pale
18:43 jnthn Not quite sure of a use for an anonymous variable yet. ;-)
18:44 mathw no
18:44 mathw so this junction thing you just committed
18:44 mathw that looks fun
18:45 jnthn mathw: Well, it just bugged me that the internal what-kinda-junction-is-it ID was gonna leak out if I wanted to write any/all/etc in the setting.
18:45 jnthn So gave it a nicer interface.
18:45 mathw yeah
18:45 * mathw reads thePIR and tries to figure out what that is
18:46 jnthn If we can work out how you introspection a junction's type in some sane way, we can port most of the rest to the setting.
18:46 jnthn Certainly .perl for a start.
18:46 mathw .param pmc any   :named('any') :optional
18:46 mathw .param pmc all   :named('any') :optional
18:46 mathw .param pmc one   :named('any') :optional
18:46 mathw .param pmc none  :named('any') :optional
18:46 mathw umm
18:46 mathw what?
18:46 jnthn oh wtf
18:46 jnthn Yeah, bug.
18:46 mathw pastefail?
18:46 jnthn yeah
18:47 jnthn I didn't test this beyond that it doesn't break the build.
18:47 jnthn :-)
18:47 mathw lol
18:47 jnthn Junctions are kinda useless until I put back auto-threading.
18:47 mathw so it works out as Junction.new(:any, @states)
18:47 jnthn (Which is what I'm doing now)
18:47 mathw \o/
18:48 jnthn I'd blame jet lag but I only did one timezone. :-/
18:49 mathw that's okay
18:49 ng_feed rakudo-ng: jnthn++
18:49 ng_feed rakudo-ng: Fix pasto spotted by mathw++.
18:50 * colomon is disappointed he didn't follow his first thought and report that issue.  He just decided it must be two different anys....
18:51 mathw so, jnthn, is it really as simple as sub all(*@states) { Junction.new(:all, @states); }
18:51 mathw have you really created such a level of awesome?
18:52 jnthn mathw: Yeah.
18:52 mathw woo
18:52 jnthn mathw: I thought I'd already checked that in to the setting?
18:52 jnthn Maybe I messed that up too though :-)
18:52 * jnthn checks!
18:52 mathw hmm you did
18:52 mathw operators.pm
18:52 mathw excellent
18:52 jnthn yay
18:52 jnthn :-)
18:52 jnthn They work too.
18:52 * mathw notes... look first
18:54 mathw I was just looking for something less scary than splice :)
18:55 jnthn I'm a bad person to come to for less scary tasks.
18:55 slavik joined #perl6
18:55 mathw :)
18:55 mathw at least I learned things
18:56 jnthn I suggest open to masak++ and it turned out non-trivial due to lots of other missing stuff :-)
18:56 mathw yes
18:56 jnthn Happily, he did lots of them though, so it was a win. :-)
18:56 mathw one of which was push
18:56 jnthn Yeah!
18:56 mathw which is why I was looking at it
18:56 mathw but push turns out to be significantly more complicated
18:56 jnthn Well
18:56 zloyrusskiy joined #perl6
18:56 mathw unless we ignore laziness for now...
18:56 jnthn Only if you want to do it in terms of a Perl 6 .splice..
18:56 mathw in which case I think the only thing I did badly was not copying
18:57 quietfanatic joined #perl6
18:57 mathw Perl 6 .splice is terrifying
18:57 mathw mostly because of the bit that says it returns a Parcel of deleted elements
18:57 PerlJam mathw: why is that terrifying?
18:57 quietfanatic It's more or less the same as Perl 5's
18:57 quietfanatic except list instead of parcel
18:57 jnthn mathw: My impression was that what you'd got + the copy would work as a first cut.
18:57 mathw Because I think it makes it difficult to implement it in terms of Parrot's splice
18:58 mathw jnthn: I'll try that
18:59 ejs joined #perl6
19:00 jnthn mathw: OTOH, I guess you can work out what elements you'll delete and just take a slice.
19:00 jnthn And then use Parrot's splice.
19:00 jnthn And then return the @deleted you got.
19:01 mathw maybe
19:01 mathw I guess that could work
19:01 jnthn It's the first thing that comes to mind. :-)
19:01 mathw :)
19:02 mathw worth a try
19:03 jnthn The tricky on splice is that you probably need to worry about evaluating any unevaluated parts of the list that your splice touches.
19:03 jnthn I'm not sure how that looks.
19:03 mathw yes that is potentially very very messy
19:03 jnthn It may be handled for you...I didn't look at how the lazy works yet.
19:03 mathw but again, how clever do we want to be right now?
19:09 colomon I dunno, it seems to me the problem with a little bit lazy is that once you've got it, it propagates everywhere.
19:10 colomon Though I suppose I could write Range.Iterator (for example) to create an entire List unlazily and then just return that List's .Iterator.... hmm.
19:11 TimToady makes it kinda hard to iterate 0..*  :)
19:12 colomon TimToady: sure enough, but right now we can't even iterate 1..2 in ng.  :)
19:12 jnthn Should Range.Iterator return a RangeIter
19:12 * jnthn may be behind on the spec...
19:12 TimToady can certain eagerify the short ones; it's even specced that laziness can be batchy
19:12 colomon RangeIterator according to the spec, I think?
19:13 TimToady *certainly
19:13 colomon It does now in ng.
19:13 jnthn std: RangeIterator
19:13 p6eval std 29177: Undeclared name:␤     'RangeIterator' used at line 1␤ok 00:01 105m␤
19:13 jnthn std: RangeIter
19:13 p6eval std 29177: Undeclared name:␤     'RangeIter' used at line 1␤ok 00:01 103m␤
19:13 jnthn meh
19:13 colomon But there's no defined Iterator Role or interface in ng, so poor little RangeIterator doesn't know how to talk to the rest of the ng universe.
19:14 jnthn Oh. :-/
19:14 jnthn That's...a problem.
19:14 colomon all it can do is RangeIteartor.get.
19:14 pugs_svn r29178 | lwall++ | [CORE] add RangeIterator
19:14 colomon which unfortunately isn't what whatever wants iterators wants to get.
19:14 jnthn Sheesh, that was fast. :-)
19:15 colomon ng: my $a = (1..4).Iterator; say $a.get; say $a.get; say $a.get; say $a.get; say $a.get
19:15 p6eval ng 6a652f: sh: ./perl6: No such file or directory␤
19:15 colomon well, that was supposed to be a brilliant demonstration.  :)
19:15 mathw just wait a bit then :)
19:16 colomon ng: say 'hai'
19:16 p6eval ng d3f9a8: hai␤
19:17 colomon ng: my $a = (1..4).Iterator; say $a.get; say $a.get; say $a.get; say $a.get; say $a.get
19:17 p6eval ng d3f9a8: making RangeIterator on 1..4␤in get␤1␤in get␤2␤in get␤3␤in get␤4␤in get␤␤
19:17 pmichaud back
19:17 colomon still some debugging output left in there, I see.  :)
19:19 * mathw stares at simple splice implementation and wonders if it might work
19:19 jnthn Why on earth does Parrot only ever return the top of the function's line number in an error?
19:19 mathw one way to find out...
19:19 pmichaud jnthn: I don't know -- that started happening recently.
19:19 jnthn *sigh*
19:19 jnthn parrot--
19:19 pmichaud well, "recently" ~~ "within the past couple of months"
19:20 pmichaud jnthn: do we have a ready example in ng of attaching a role to a class?
19:20 pmichaud (in PIR, and a builtin class)
19:20 jnthn pmichaud: No, because that bit isn't done yet.
19:21 jnthn pmichaud: That's the bit I've been spending the last while working out how should be structured. :-)
19:21 jnthn Or at least, one bit...
19:21 pmichaud hmmmm
19:22 jnthn pmichaud: I've spent more time on getting classes straightened out so far...
19:22 jnthn Hadn't really got to sorting roles out fully yet.
19:22 pmichaud okay.  So perhaps I should just cheat on Failure for a while, then?
19:22 jnthn Got pieces, but not a completed jigsaw.
19:22 jnthn Yeah.
19:22 pmichaud I was also hoping to start doing   Int does Numeric does Integral     and Str does Stringy  :)
19:22 jnthn I may do a Rakudo Day tomorrow and focus on the roles stuff.
19:23 jnthn I've dealt with enough of the conceptual problems I had now.
19:23 jnthn So am at the "write code" point. :-)
19:23 mathw :)
19:23 pmichaud okay.
19:23 pmichaud I'll cheat on things a while longer.
19:23 jnthn k
19:23 jnthn Not quite sure I've got the branes to hack on that bit tonight.
19:23 pmichaud np
19:23 jnthn So just doing easy bits.
19:24 pmichaud there's plenty of those yet.
19:24 jnthn oh damm
19:25 jnthn I mis-read a stack trace and went off trying to find a bug in the junction threader...that actually is in the code it runs.
19:25 jnthn ...which also needs push!
19:25 jnthn :-)
19:25 jnthn Oh well
19:25 jnthn We seem to have junction auto-threading back.
19:25 mathw jnthn++
19:27 ng_feed rakudo-ng: jnthn++
19:27 ng_feed rakudo-ng: Few fixes that seem to have us doing junction auto-threading properly again.
19:27 ng_feed rakudo-ng: jnthn++
19:27 ng_feed rakudo-ng: Routines should have Any as default parameter type.
19:27 jnthn Just can't run any of the tests on it yet :-(
19:27 mathw aww
19:27 mathw null pmc access in get_string
19:27 pmichaud http://gist.github.com/241310   # version of Array.push, for comment/review by mathw
19:27 * mathw sighs
19:28 mathw pmichaud: neater
19:28 mathw doing the elements call in PIR saves a lot of mucking about with find_lex
19:28 mathw I like that
19:28 pmichaud also handles any necessary "assign to array" flattening.
19:29 jnthn pmichaud: eval fail, I think...
19:29 jnthn pmichaud: Does it pass namespace along / set namespace?
19:29 jnthn oh gah
19:29 jnthn wait
19:29 pmichaud jnthn: where does Actions.pm look for namespace?
19:29 jnthn pmichaud: It's a runtime issue, not a compile time one.
19:29 jnthn pmichaud: But the test is:
19:30 jnthn class A61354_1 { eval q/method x { "OH HAI" }/ }
19:30 jnthn is  (A61354_1.x), 'OH HAI', 'define method with eval in class';
19:30 jnthn Please. No.
19:31 jnthn pmichaud: On eval and namespace though, consider...
19:32 jnthn oh, actually
19:32 jnthn I think eval is fine.
19:32 pmichaud :)
19:32 mathw pmichaud: I think that push looks good
19:32 jnthn I still vote to forbid being able to add methods like that.
19:32 mathw it's definitely better than mine
19:33 pmichaud jnthn: I agree -- that looks too monkey patched.
19:33 jnthn There's so many better ways to do it.
19:33 pmichaud besides, we already have the "augment" verb.
19:33 pmichaud er, declarator.
19:33 jnthn Not to mention $?CLASS.^add_method('x', method { "OH HAI" })
19:34 jnthn If you *really* must patch it in during running the class body.
19:34 pmichaud anyway, I wouldn't worry about that particular test for a while.  It's not needed for Rakudo *, at any rate.
19:34 mathw yeah
19:34 mathw doing it via eval just seems silly
19:34 pmichaud and I'm fine with a note that says "Rakudo doesn't like this, perhaps never will :)"
19:34 jnthn pmichaud: Heh, I'm more inclined to change is to dies_ok ;-)
19:35 pmichaud that's fine with me also :)
19:35 jnthn It kinda worked by accident before anyhow...
19:35 jnthn Granted, we've not had a good way to do this before the metamodel got straightened out.
19:37 jnthn Great. We're one test off passing S12-class/basic.t
19:37 jnthn (checking for re-declaration)
19:37 tarbo2 joined #perl6
19:38 mathw yay
19:39 pugs_svn r29179 | jnthn++ | [t/spec] Change a test - monkey-patching in extra methods at runtime using eval is Not Good, especially when there's so many better ways to do it.
19:44 jnthn OK, I need to pop to the store. :-)
19:44 * jnthn is getting peckish
19:48 KyleHa joined #perl6
19:51 hsb left #perl6
19:54 ng_feed rakudo-ng: pmichaud++
19:54 ng_feed rakudo-ng: Add Array.push and Array.unshift .
19:56 pmichaud ...although, come to think of it, Array.push could really just be    self = (self, @values)
19:57 pmichaud except that self needs to flatten
19:57 mathw yay pmichaud
19:57 pmichaud and Array.unshift is really just     self = (@values, self)
19:57 pmichaud anyway, this mechanism is slightly more efficient :-)
19:57 mathw yes
19:59 slavik joined #perl6
20:13 Exodist joined #perl6
20:16 ng_feed rakudo-ng: KyleHa++
20:16 ng_feed rakudo-ng: Two more test files pass
20:21 * jnthn back
20:22 jnthn pmichaud: (flatten) When it's supported again in ng, I guess those things can be done as method foo(@self: @values) { ... }
20:23 pmichaud jnthn: yes, that would work nicely.
20:23 pmichaud we still might want to use the PIR form as being more efficient, though.
20:23 jnthn Oh, I think we want to not change push, yes.
20:23 jnthn Was just noting it in case it's useful elsewhere. :-)
20:25 pmichaud it undoubtedly will be, yes.  I had not thought of it, so I'm glad you mention it -- that'll be a useful pattern.
20:38 colomon can you do the reverse of that?  for pop, my (self, $popped) = self or something like that?  (shift seems more reasonable, I guess)
20:41 jnthn You'd at least need to make @self is rw in the sig...
20:42 jnthn oh, wait
20:42 jnthn That probably doesn't work, as @self could swallow up all of the elements...
20:42 jnthn ng: my (@x, $y) = 1,2,3; say $y;
20:42 p6eval ng 8c6663: Cannot assign to readonly value␤current instr.: '&infix:<=>' pc 8513 (src/builtins/assign.pir:12)␤
20:42 jnthn ...huh?
20:45 jnthn rakudo: my (@x, $y) = 1,2,3; say $y;
20:45 p6eval rakudo 7347ec: ␤␤
20:45 jnthn ng: my @x; my $y; (@x, $y) = 1,2,3; say $y;
20:45 p6eval ng 8c6663: sh: ./perl6: No such file or directory␤
20:46 jnthn oh wait, maybe just missing list assignment.
20:49 bluescreen joined #perl6
20:52 FCO joined #perl6
20:53 run4flat joined #perl6
20:55 payload joined #perl6
20:58 pmurias joined #perl6
21:00 colomon sorry for disappearing on that one, yes, I expect swallowing up all the elements could be an issue.  But could shift work that way?  ($shifted, @self) = @self  ?
21:00 colomon (assuming list assignment, of course!)
21:00 cognominal joined #perl6
21:03 moritz_ re
21:10 cognominal joined #perl6
21:12 pmurias rakudo: my $a,@b;@b=1,2,3,4;($a,@b) = @b;say @b
21:12 p6eval rakudo 7347ec: Symbol '@b' not predeclared in <anonymous> (/tmp/DK4secnPEW:2)␤in Main (file <unknown>, line <unknown>)␤
21:12 pmurias rakudo: my $a,my @b;@b=1,2,3,4;($a,@b) = @b;say @b;
21:12 p6eval rakudo 7347ec: 234␤
21:12 pmurias rakudo: my $a,my @b;@b=1,2,3,4;($a,@b) = @b;say $a;
21:12 p6eval rakudo 7347ec: 1␤
21:12 pmurias cognominal: seems to work
21:13 pmurias cognominal: i'm not sure it would be the most efficient way of doing it
21:16 cognominal pmurias, I am very happy for you even if I have no clue of what you are ralking about  :)
21:19 jnthn Think pmurias meant colomon :-)
21:26 colomon :)
21:27 run4flat Hello, I have a question that's not specifically related to Perl6 per-se, but my idea might make it into Perl6 some day... maybe...
21:28 run4flat Does anybody know where I can find some Regexp-engine hackers?
21:29 run4flat I have an idea that really works best in PDL, but nobody else who hangs out there is interested in numerical regular expressions
21:31 moritz_ run4flat: pmichaud is one, others have implemented some regex engines here too
21:31 run4flat moritz_: thanks
21:31 colomon numerical regular expressions?
21:31 diakopter run4flat: feel free to voice your idea here
21:32 run4flat diakopter: yeah
21:32 run4flat The name says most of it.  Numerical regular expressions would be a specification for a state machine that would analyze an array of floating point numbers instead of an array of UTF-8 characters
21:33 moritz_ sounds interesting
21:33 run4flat moritz_: That's what I think
21:33 run4flat :)
21:33 diakopter for pattern matching?
21:33 run4flat but whenever I suggest this idea, people say, "What would you use it for?"
21:33 run4flat diakopter: yeah
21:33 run4flat signal processing protoyping
21:34 run4flat for example
21:34 moritz_ run4flat: is there some theoretical foundation for it?
21:34 run4flat no
21:34 run4flat moritz_: I mean, not anything more than string regexp's
21:34 run4flat it was just an idea that occurred to me last summer
21:35 run4flat moritz_: I'm not sure what theoretical foundation you could get for numerical regexp's that goes beyond character regexp's
21:36 cognominal well, as you express it, you have a solution in quest of a problem. May be if you tell why you came with we could understand...
21:36 moritz_ run4flat: i'm mostly intersted in what kind of features you could find in a stream of numeric data
21:36 run4flat let me give a simple example of how I would use this
21:36 moritz_ run4flat: like, can you find a maximum/minimum? what about a maximum in the derivation of the function?
21:36 diakopter run4flat: what would the primitives be?  you would need logical expressions and comparison expressions
21:37 run4flat right, I don't want to get into details of the spec
21:37 run4flat because it's pretty complicated
21:37 run4flat but. basically, you would have numerical 'classes' like character classes
21:37 moritz_ have you written it down somewhere?
21:37 run4flat Yeah, but I've not published it
21:37 run4flat it's still pretty rough
21:38 run4flat example:  -5 <=x < 10 would become [-5, 10)
21:38 run4flat so then, $my_data =~ n/ [5%, 10%) M /
21:39 run4flat would match a local maximum that is preceded by a data pont that is between 5% and 10% of the data's width
21:40 run4flat For my uses, I would take a bunch of data sets with on measurement
21:40 run4flat separated by a really obvious signal between data sets
21:40 run4flat and then use a regexp to separate them
21:40 diakopter run4flat: http://search.cpan.org/~tbone/Array-PatternMatcher-0.04/PatternMatcher.pm
21:40 run4flat diakopter: thanks!
21:40 run4flat that's the first useful feedback I've gotten on this!
21:41 diakopter I don't know whether it can handle moving averages & regression-type lookbacks
21:41 diakopter time series stuff... but certainly static expressions.
21:41 ng_feed rakudo-ng: moritz++
21:41 ng_feed rakudo-ng: enable basic regex tests
21:41 pmichaud iiuc, perl 6's regular expression pattern matching is supposed to be able to more than just character strings
21:41 pmichaud and, of course, one can likely do a lot with nested signatures
21:42 run4flat diakopter: Thanks, I'll look into this
21:43 run4flat pmichaud: yeah, I have not looked into Perl 6's regular expressions too closely yet... know of any good primer for a non-traditional use?
21:43 pmichaud run4flat: there's not much written yet.  Just a small section at the bottom of Synopsis 5
21:44 run4flat pmichaud: I think I read through that once a while back
21:44 run4flat I'll take another look
21:48 run4flat Well, thanks for your feedback.  I'll take another look at Synopsis 5 and I'll look over Array::PatternMatcher
21:48 run4flat If you get any other ideas, you can usually find me on the #pdl channel at irc.perl.org
21:55 * diakopter squints sideways at check_doteq
22:02 ashizawa joined #perl6
22:10 IllvilJa joined #perl6
22:11 colomon Is anyone working on split in ng yet?
22:11 jnthn nqp: my $*X = 42; say("lol answer is $*X")
22:11 p6eval nqp: Assignment ("=") not supported in NQP, use ":=" instead at line 1, near " 42; say(\""␤current instr.: 'parrot;HLL;Grammar;panic' pc 519 (src/cheats/hll-grammar.pir:197)␤
22:11 moritz_ not that I know of
22:11 jnthn nqp: my $*X := 42; say("lol answer is $*X")
22:11 p6eval nqp: lol answer is 42␤
22:11 jnthn colomon: I ain't.
22:12 moritz_ ng: say 'abcab'.match(/a/, :c(1)
22:12 p6eval ng 7912ba: Confused at line 1, near "say 'abcab"␤current instr.: 'perl6;HLL;Grammar;panic' pc 519 (src/stage0/HLL-s0.pir:336)␤
22:12 moritz_ ng: say 'abcab'.match(/a./, :c(1))
22:12 p6eval ng 7912ba: ab␤
22:12 moritz_ ng: say 'abcaX'.match(/a./, :c(1))
22:12 p6eval ng 7912ba: aX␤
22:13 moritz_ colomon: :c($pos) will be very handy for Str.split(Regex)
22:13 colomon moritz_: ?
22:13 moritz_ colomon: it allows you to start a regex match not at the beginning of the string, but somwhere later on
22:14 colomon ah, yes, that sounds useful.  :)
22:14 moritz_ so you don't have to deconstruct the source string
22:14 moritz_ (which also confuses $match.from and .to if the :all flag is passed to split)
22:15 jnthn Whee. If the rest of the tests pass, looks like I've got us S12-class/basic.t back. :-)
22:16 Tene jnthn: any recommendations on where you'd like me to work, if I start working on ng?
22:16 tylerni7 joined #perl6
22:17 colomon oh bother.  we've actually got p6 implementations of split, but they require gather/take.
22:17 Tene Ooo, gather/take.  I wrote the original version of that.
22:17 moritz_ Tene: if you could bring that back to ng that would be great
22:17 Tene Needs to work with generators or whatever in ng, though, right?
22:17 pmichaud I don't mind if gather/take is eager still.
22:17 colomon right
22:18 pmichaud we can lazify it later
22:18 moritz_ colomon: gather/take can easily be emulated with an array and push
22:18 colomon afk dinner
22:18 Tene Oh, if eager is okay, then it's easy.  Yeah, I'll do that tonight.
22:18 jnthn Yay
22:18 moritz_ I just wrote it with gather/take in the expectation that at some point it would magically become lazy if I only used gather/take
22:18 tylerni8 joined #perl6
22:18 moritz_ silly me
22:18 pmichaud moritz_: and it would have/will do that :)
22:19 moritz_ anyway, since we didn't have :c back then it's a less-than-awesome way to do it now
22:19 ng_feed rakudo-ng: jnthn++
22:19 ng_feed rakudo-ng: S12-class/basic.t passes again.
22:19 ng_feed rakudo-ng: jnthn++
22:19 ng_feed rakudo-ng: Start to get name handling filled out a bit more STDishly, meaning we can now have a chance of detecting redeclarations.
22:26 jnthn rakudo: eval('class C { method x { say 42 } }'); eval('C.x');
22:27 p6eval rakudo 7347ec:  ( no output )
22:28 jnthn rakudo: eval('die "oh noes"');
22:28 jnthn ng: eval('die "oh noes"');
22:28 p6eval rakudo 7347ec:  ( no output )
22:28 p6eval ng 7912ba: oh noes␤current instr.: '&die' pc 8620 (src/builtins/control.pir:18)␤
22:28 jnthn eval doesn't catch exceptions? :-)
22:30 snearch_ joined #perl6
22:31 jferrero joined #perl6
22:34 vamped joined #perl6
22:43 jnthn eww!
22:43 jnthn ng: { my $a = 0; sub test() { $a++; } }
22:43 p6eval ng 7912ba:  ( no output )
22:43 jnthn ng: class Foo { }; { my $a = 0; sub test() { $a++; } }
22:43 p6eval ng 7912ba: Symbol '$a' not predeclared in &test␤current instr.: 'perl6;PCT;HLLCompiler;panic' pc 137 (src/PCT/HLLCompiler.pir:101)␤
22:54 zamolxes joined #perl6
23:15 mberends joined #perl6
23:15 diakopter mberends: hi
23:16 mberends hihi, hotel wifi a bit flaky this week
23:19 ng_feed rakudo-ng: jnthn++
23:19 ng_feed rakudo-ng: Start to eliminate is ref in favor of the \ quantifier. Stub in parsing and various bits for the | quantifier too.
23:22 kidd joined #perl6
23:27 ng_feed rakudo-ng: jnthn++
23:27 ng_feed rakudo-ng: Remove ref from signature introspection, in favor of parcel. Also add .capture, so we can introspect for |$foo.
23:27 ng_feed rakudo-ng: jnthn++
23:27 ng_feed rakudo-ng: Rename ref to parcel in the binder.
23:41 ng_feed rakudo-ng: jnthn++
23:41 ng_feed rakudo-ng: ..., ??? and !!!.
23:42 Tene okay, just need to set up this classroom for an exam, and then I can go home.
23:42 explorer__ joined #perl6
23:44 Tene I'll try to remember to do gather/take tonight... I'm feeling kinda sleepy...
23:50 KyleHa ng: sub foo($x) { say 'x' }
23:50 p6eval ng 92410f:  ( no output )
23:51 KyleHa ng: sub foo'($x) { say $x }; say 'alive'
23:51 p6eval ng 92410f: Confused at line 1, near "sub foo'($"␤current instr.: 'perl6;HLL;Grammar;panic' pc 519 (src/stage0/HLL-s0.pir:336)␤
23:52 jnthn std: sub foo'($x) { say $x }; say 'alive'
23:52 p6eval std 29179: [31m===[0mSORRY![31m===[0m␤Malformed block at /tmp/Q6FFGIjoZs line 1:␤------> [32msub foo[33m⏏[31m'($x) { say $x }; say 'alive'[0m␤    expecting any of:␤    block␤  new name to be defined␤     routine_def␤      terminator␤     trait␤    whitespace␤FAILED 00:01 105m␤
23:57 jnthn pmichaud: Any thoughts on this one:
23:57 jnthn my @x; for @x { say "once" }
23:57 jnthn erm
23:57 jnthn ng: my @x; for @x { say "once" }
23:57 p6eval ng 92410f: once␤
23:59 KyleHa S02-names/identifier.t passes now, but some 'eval_dies_ok' tests (like "sub foo'4($x)") are 'ok' with an error I'm not sure is ok.  It complains that $x is an undeclared identifier.
23:59 ng_feed rakudo-ng: jnthn++
23:59 ng_feed rakudo-ng: Various tweaks to .params and .arity to try and be a bit more correct with list handling. Seems another bug blocks things though.
23:59 KyleHa Oh, I have an idea...
23:59 s1n joined #perl6
23:59 jnthn pmichaud: If that can be worked out, we may have a decent chance of passing arity.t.

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

Perl 6 | Reference Documentation | Rakudo