Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2010-05-19

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:00 kolibrie joined #perl6
00:07 pugssvn r30690 | colomon++ | [t/spec] Tests for Real.succ, Real.pred, and .match :g modifier.
00:10 [Coke] any tests for 'say' ?
00:12 colomon S16-io/say.t
00:12 colomon S16-io/bare-say.t
00:12 colomon S16-filehandles/io.t
00:13 rgrau joined #perl6
00:18 pnate joined #perl6
00:21 yinyin joined #perl6
00:25 [Coke] rakudo; use Test; is ([+] (1..999).grep( { $_ % 3 == 0 || $_ % 5 == 0 } ), 234)
00:25 [Coke] rakudo: use Test; is ([+] (1..999).grep( { $_ % 3 == 0 || $_ % 5 == 0 } ), 234)
00:25 p6eval rakudo 980e03: OUTPUT«No applicable candidates found to dispatch to for 'is'. Available candidates are:␤:(Mu $got, Mu $expected, Any $desc)␤:(Mu $got, Mu $expected)␤␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
00:25 lue The spec says nothing about what subjects of math it can handle. :/
00:25 snarkyboojum term
00:25 [Coke] why is that?
00:26 [Coke] be nice if that error told me what I /had/ not what was available. =-)
00:26 [Coke] er, s/not/and/
00:29 [Coke] rakudo: my $a =  ([+] (1..999).grep( { $_ % 3 == 0 || $_ % 5 == 0 } ); say $a.WHAT
00:29 p6eval rakudo 980e03: OUTPUT«Confused at line 11, near "my $a =  ("␤current instr.: 'perl6;HLL;Grammar;panic' pc 501 (ext/nqp-rx/src/stage0/HLL-s0.pir:327)␤»
00:30 lue Apparently, the possible candiates are what it $expected :)
00:31 rgrau joined #perl6
00:32 colomon rakudo: my $a =  [+] (1..999).grep( { $_ % 3 == 0 || $_ % 5 == 0 } ); say $a.WHAT
00:32 p6eval rakudo 980e03: OUTPUT«Int()␤»
00:33 colomon [Coke]: shouldn't Mu match anything anyway?
00:34 sorear yay!  completely backlogged
00:34 sorear on a Tuesday, even
00:34 colomon [Coke]: oh, the first arg eats what you think is the second arg
00:34 colomon rakudo: use Test; is(([+] (1..999).grep( { $_ % 3 == 0 || $_ % 5 == 0 } )), 234)
00:35 p6eval rakudo 980e03:  ( no output )
00:35 colomon > use Test; is(([+] (1..999).grep( { $_ % 3 == 0 || $_ % 5 == 0 } )), 234);
00:35 colomon not ok 1 -
00:35 colomon #      got: 233168
00:35 colomon # expected: 234
00:36 colomon I think it just takes too long on p6eval.
00:36 ashleydev joined #perl6
00:37 colomon (not that I disagree that listing what you have for args as well as what it wants would be a good thing.)
00:37 snarkyboojum should the parrot version be bumped  to 46711 to correspond with the 2.4.0 parrot release (for testing purposes)?
00:37 colomon snarkyboojum: absolutely.
00:37 colomon are you volunteering?  ;)
00:38 colomon (at least, assuming 46711 is the right number, I didn't check.)
00:38 snarkyboojum colomon: hehe - a patch hardly seems worth it :P, but yes, that's the right rev number
00:38 snarkyboojum colomon: though it's worth checking :)
00:38 colomon snarkyboojum: ah, do you not have a rakudo commit bit?
00:38 plobsing joined #perl6
00:39 snarkyboojum colomon: nope - just a tinkerer
00:39 colomon Ah.  Well, it definitely needs to be done and committed.  Let me know how it goes for you.  :)
00:39 snarkyboojum colomon: will do :)
00:39 colomon (and if it works, I'll get it in git.)
00:42 snarkyboojum builds fine with r46711 on my box, just running a spectest
00:43 lue I got thinking all of a sudden about math in perl 6. Any idea as to what subjects it covers? It's not obvious where this would be in the spec.
00:43 colomon lue: S32 Numerics
00:43 lue (I wouldn't mind writing a math module or two for R* possibly :P)
00:43 lue colomon: dankon
00:44 colomon (though be warned that I'm planning on a few changes to the Numeric section in the next few days. ;)
00:44 BrowserUk joined #perl6
00:44 BrowserUk left #perl6
00:45 rgrau joined #perl6
00:45 lue It looks like it could do nothing _but_ be changed. :)
00:47 snarkyboojum and FWIW, I typo'ed the rev number - it's 46771 not 46711 (but had updated my PARROT_REVISION correctly) :)
00:51 lue I still think a dependency-tree like system would be worth considering.
00:51 lue i.e. Complex needs Real and Imaginary
00:51 [Coke] do we have any tests that cover .fmt on a hash?
00:51 [Coke] (because the random key ordering sucks for testing. =)
00:52 lue *cough* pseudo-random. It's good enough! :)
00:52 lue [unless you build for linux-quantumbit computers. Then that sucks]
00:53 colomon [Coke]: maybe in S02-names_and_variables/fmt.t
00:54 [Coke] colomon: no "my %" in that file.
00:54 snarkyboojum lue: what type of maths modules did you have in mind (just out of interest)?
00:54 colomon [Coke]: it has $hash.fmt
00:54 [Coke] sneaky. danke.
00:54 colomon dunno what $hash is, but it seems likely to be a hash.  :)
00:54 lue Just based on what I'm learning. Logarithms right now :)
00:55 lue $hash is a compiling contradiction! :)
00:55 sorear lue is just now learning about logarithms?  wow we recruit early these days
00:56 lue It took way too long to get to something I didn't already know. I'm happy.
00:57 snarkyboojum lue: sounds good :) read colomon's latest blogging on log implementation in rakudo?
00:57 eternaleye moritz_: re commandline parser, I can see at least one case where the shell and P6 will fight. -n='spacey value' vs -n=val1,'val 2',etc -- if 'val 2' contains a comma, we're screwed since the shell will eat the quotes.
00:57 eternaleye Ditto for if 'spacey value' contains a comma, and ditto for the long forms
00:57 lue no. I has yet to get everyone's blogs situated. Good thing to do whilst compiling blender :)
00:58 snarkyboojum lue: http://justrakudoit.wordpress.c​om/2010/05/07/sins-of-a-logger/ and friends
00:58 sorear Who else thinks that planet's filtering is broken?
00:58 eternaleye TimToady: Thoughts on ^^^ (commandline ambiguity)
00:59 sorear I might start having to use a real aggregater
01:02 lue Did you know that you can use a logs to find the # of digits in a number? (guaranteed only for nonnegative integers)
01:02 TimToady In general, I prefer forms that send in multiple arguments as multiple words, without comma separators.
01:02 ruoso joined #perl6
01:03 TimToady especially since comma is my history character instead of !  :)
01:04 [Coke] sorear: what problems are you having with planetsix?
01:05 [Coke] last time someone complained it turned out that our blogger hadn't been tagging his posts.
01:07 * [Coke] tries to come up with a permute one liner.
01:08 sorear [Coke]: That's the problem this time.  By "broken" I mean "broken by design"
01:08 sorear See also "I might have to start using a real aggregator"
01:08 sorear colomon didn't tag sins of a logger
01:10 lue Well, I like that system. It means one does not need two blogs. People just need to remember to tag their posts :)
01:14 * ruoso backlogs
01:14 phenny ruoso: 18 May 22:50Z <BrowserUk> tell ruoso My first reaction is that it is better dealt with using something like: my @a = async{ map{...}, grep, <== $*IN }.join;  As everything that comes out of the grep is going to end up passing through the map and end up in memory in @a anyway.
01:14 phenny ruoso: 18 May 22:54Z <BrowserUk> tell ruoso the use-case I'm envisaging is a filtering a small subset of a large input. You save memory by filtering the input lazily, but after that--depending upon how lists are implemented-- you don't save much more cos it's all going to end up in @a anyway.
01:14 phenny ruoso: 18 May 22:58Z <BrowserUk> tell ruoso If @a was assigned a placeholder promise, you can get on with other stuff while it runs, and only block when you access @a at some point later if it hasn't completed.
01:14 phenny ruoso: 18 May 23:07Z <BrowserUk> tell ruoso And if IO primitives are set up as coroutines dispatched in the IO/Events thread, that allocate sharable buffers and post thread-chimeric handles to those buffers through queues,  then the whole chain runs as quickly as the data can be read without sleeps, locks or polling.
01:17 colomon sorear: sorry, I keep forgetting tags on the blog.
01:18 colomon however, I think all of my posts go up on planetsix anyway.
01:19 colomon they just have the unhelpful label: "Solomon Foster: colomon" instead of an actual subject.
01:19 eternaleye rakudo: sub powerset( *@foo ) { my $max = 2 ** @foo.elems(); gather { for 0..$max -> $iteration { my @subset; for (+@foo)...0 -> $place { @subset.unshift( @foo[$place] ) if $iteration +& ( 1 +<< $place ) }; take( @subset ); }; }; }; .say for powerset( 1, 2, 3, 4 );
01:19 p6eval rakudo 980e03: OUTPUT«Unable to parse blockoid, couldn't find final '}' at line 11␤current instr.: 'perl6;Regex;Cursor;FAILGOAL' pc 1696 (ext/nqp-rx/src/stage0/Regex-s0.pir:932)␤»
01:21 ruoso tell BrowserUK the problem happens in: "my @a <== map { cpu_bound_calculation($_) } <== grep { other_cpu_bound_calculation($_) } <== map { yet_another_cpu_bound_calculation($_) } <== $*IN" having all these in a single IO event threads is just going to make it clog
01:21 eternaleye std: sub powerset( *@foo ) { my $max = 2 ** @foo.elems(); gather { for 0..$max -> $iteration { my @subset; for (+@foo)...0 -> $place { @subset.unshift( @foo[$place] ) if $iteration +& ( 1 +<< $place ) }; take( @subset ); }; }; }; .say for powerset( 1, 2, 3, 4 );
01:21 p6eval std 30690: OUTPUT«[31m===[0mSORRY![31m===[0m␤Unable to parse quote words at /tmp/Iz18OzBuew line 1:␤------> [32m @foo[$place] ) if $iteration +& ( 1 +<<[33m⏏[31m $place ) }; take( @subset ); }; }; }; .[0m␤Couldn't find final '>'; gave up at /tmp/Iz18OzBuew line 1 (EOF):␤------> [32m; }; };
01:21 p6eval ..…
01:22 ruoso phenny, tell BrowserUK http://irclog.perlgeek.de/​perl6/2010-05-19#i_2344712
01:22 phenny ruoso: I'll pass that on when BrowserUK is around.
01:22 eternaleye rakudo: sub powerset( *@foo ) { my $max = 2 ** @foo.elems(); gather { for 0..$max -> $iteration { my @subset; for (+@foo)...0 -> $place { @subset.unshift( @foo[$place] ) if $iteration +& ( 1 +< $place ) }; take( @subset ); }; }; }; .say for powerset( 1, 2, 3, 4 );
01:22 p6eval rakudo 980e03: OUTPUT«No applicable candidates found to dispatch to for 'postcircumfix:<[ ]>'. Available candidates are:␤:(Mu : Int $i;; *%_)␤:(Mu : Block $b;; *%_)␤:(Mu : !whatever_dispatch_helper ;; *%_)␤␤current instr.: '!postcircumfix:<[ ]>' pc 11329 (src/builtins/Role.pir:26)␤»
01:22 eternaleye std: sub powerset( *@foo ) { my $max = 2 ** @foo.elems(); gather { for 0..$max -> $iteration { my @subset; for (+@foo)...0 -> $place { @subset.unshift( @foo[$place] ) if $iteration +& ( 1 +< $place ) }; take( @subset ); }; }; }; .say for powerset( 1, 2, 3, 4 );
01:22 p6eval std 30690: OUTPUT«ok 00:01 114m␤»
01:23 ruoso but maybe we accept a hint from the user...
01:23 eternaleye rakudo: sub powerset( *@foo ) { my $max = 2 ** @foo.elems(); gather { for 0..$max -> $iteration { my @subset; for ((+@foo).Int)...0 -> $place { @subset.unshift( @foo[$place] ) if $iteration +& ( 1 +< $place ) }; take( @subset ); }; }; }; .say for powerset( 1, 2, 3, 4 );
01:23 p6eval rakudo 980e03: OUTPUT«␤1␤2␤12␤3␤13␤23␤123␤4␤​14␤24␤124␤34␤134␤234␤1234␤␤»
01:23 eternaleye \o/
01:23 lue .oO( 1 out of every 2 symbols on #perl6 is not alphanumeric. )
01:23 ruoso "use concurrency :optimize<IO>" vs "use concurrency :optimize<CPU>"
01:24 eternaleye rakudo: sub powerset( *@foo ) { my $max = 2 ** @foo.elems(); gather { for 0..$max -> $iteration { my @subset; for ((+@foo).Int)...0 -> $place { @subset.unshift( @foo[$place] ) if $iteration +& ( 1 +< $place ) }; take( @subset ); }; }; }; .Str.say for powerset( 1, 2, 3, 4 );
01:24 p6eval rakudo 980e03: OUTPUT«␤1␤2␤1 2␤3␤1 3␤2 3␤1 2 3␤4␤1 4␤2 4␤1 2 4␤3 4␤1 3 4␤2 3 4␤1 2 3 4␤␤»
01:24 snarkyboojum colomon: spectest passed for parrot at rev 46771. Got my usual 9 failures in t/spec/S05-mass/properties-derived.t due to platform dependent unicode weirdness, but that's it.
01:25 colomon snarkyboojum++
01:25 ruoso TimToady, what do you think about the idea of pragmas giving hints to the interpreter on what type of concurrency should be used for that code?
01:25 [mark] joined #perl6
01:26 TiMBuS joined #perl6
01:28 colomon snarkyboojum: you're sure that's the right rev?
01:29 snarkyboojum colomon: yes 2.4.0 -> r46771
01:29 colomon thanks
01:29 colomon working on it now....
01:34 [Coke] sorear: ... i fail to see the breakage. we're just not aggregating the feeds you want.
01:36 * [Coke] gives up on day 2 for now.
01:37 pugssvn r30691 | coke++ | Add tests for advent 2009
01:37 TimToady ruoso: pragmas are a little bit of a design smell, like adverbs on operators
01:37 colomon lue: I actually have four blogs, plus am co-blogger on three others.  ;)
01:38 ruoso TimToady, hmmm... so how would you tell the interpreter it's better to do a simple event loop vs openning several kernel threads?
01:40 lue colomon:  :(                                  )
01:40 ruoso (where doing an event loop means no locking at all, and different kernel threads would turn some variables into lock-aware shared values)
01:40 lue [jawdrop]
01:40 colomon advent2009-day01.t ++
01:41 lue would the advent calendar ideally be provided with Rakudo?
01:41 colomon lue:  I don't know, but I'm highly in favor of the advent calendar code making it into the spectests.
01:44 isBEKaml colomon: I could help. For example. some of the code in advent calendar doesn't even work at all.
01:44 colomon I'll be happy to help.
01:45 lue And if not a spectest (for whatever reason), then a neat little [src]/examples folder :)
01:45 colomon at least for a little bit, hoping to get a blog post out and then head to bed.  :)
01:45 isBEKaml colomon: Ok, I will work on that this evening
01:46 isBEKaml lue: we already have an examples folder in pugs repo ( lots of cruft from old code). Perhaps, you could try cleaning them up? ;)
01:47 [Coke] Let me check in all my placeholders. hang on. =)
01:49 pugssvn r30692 | coke++ | Add placeholders (with urls to the problems.)
01:50 isBEKaml lue: I was actually trying to get hangman.pl in examples/games/ to work with Rakudo. I have given up on that for now :)
01:50 lue I could try and help with the examples :) . Right now I'm trying to compile Blender 2.5, so after that headache passes, I'd be happy to help.
01:52 pugssvn r30693 | coke++ | Add works in progress for days 2 & 3.
01:53 [Coke] there. day 1 is done. 2 & 3 are partially done. 4-24 are just placeholders (with the URL to to the page.) I will not mind if anyone works on them in the meantime.
01:54 [Coke] zzz
01:55 isBEKaml gotta get to work. have a good one, #perl6! :)
01:55 lue goodnight, [Coke] o/
01:55 isBEKaml goodnight, [Coke]
01:57 ashleydev joined #perl6
01:57 JimmyZ joined #perl6
01:59 snarkyboojum joined #perl6
02:09 dalek rakudo: 248ae36 | (Solomon Foster)++ | build/PARROT_REVISION:
02:09 dalek rakudo: Bump parrot to 2.4.0. snarkyboojum++
02:09 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/2​48ae36adf3a1a5f9107c943d0aa8458807e79ea
02:17 colomon loliblogged: http://justrakudoit.wordpress.com/​2010/05/19/pred-to-sin-some-more/
02:18 snarkyboojum colomon++ (always fun reading the core dev's blog posts)
02:38 lue It was just "a bit of code" :)
02:38 zorgnax joined #perl6
02:53 gfx joined #perl6
03:01 snarkyboojum rakudo: my @a = 2, 4, 6, 8; say @a»++;
03:01 p6eval rakudo 248ae3: OUTPUT«2468␤»
03:01 snarkyboojum rakudo: my @a = 2, 4, 6, 8; @a»++; say @a.perl
03:01 p6eval rakudo 248ae3: OUTPUT«[3, 5, 7, 9]␤»
03:10 zorgnax joined #perl6
03:15 molaf joined #perl6
03:17 snarkyboojum had a bash at writing tests for integration/advent2009-day05.t (http://gist.github.com/405908) - I'm sure I'm breaking rules for good test writing in here, so advice/mentoring appreciated :)
03:18 eternaleye rakudo: my @a = 2, 4, 6, 8; say ++«@a;
03:18 p6eval rakudo 248ae3: OUTPUT«3579␤»
03:21 dalek csmeta: r273 | diakopter++ | trunk/Sprixel:
03:21 dalek csmeta: [perlesque] ignore *.user (*.csproj.user) files in the solution root
03:21 dalek csmeta: review: http://code.google.com/p/c​smeta/source/detail?r=273
03:22 lue bash? Is that used in some form I'm unaware of, or did you just inadvertantly create a malamanteau?
03:23 snarkyboojum lue: could be an australianism (not sure)
03:23 snarkyboojum lue: "have a bash" = "have a go" :)
03:24 lue if only it were a portmanteau! It sounds like a malpropism and neologism (to me at least)
03:24 snarkyboojum it's not a portmanteau :P
03:25 agentzh joined #perl6
03:25 snarkyboojum who here has worn a Perl 6 tshirt in public :)
03:27 * lue ~~ False
03:27 * PerlJam doesn't own a Perl 6 t-shrut
03:28 PerlJam er, t-shirt
03:30 snarkyboojum I don't either - thinking of buying one online somewhere though :)
03:30 PerlJam Do some exist?
03:31 lue yes, I think at cafepress.
03:31 * PerlJam looks
03:31 lue (we need more designs though, IMO)
03:31 * TimToady has worn a pugs shirt that sez Perl 6 on it
03:32 diakopter http://www.shutterfly.com/photo-gif​ts/apparel-and-accessories/t-shirts
03:33 diakopter disclaimer: I may have owned shares at the time of that url paste
03:33 PerlJam A nice solid color shirt with a small Camelia where a pocket would normally go would be nice.
03:33 TimToady http://rakudo.spreadshirt.com/shop/designs
03:34 diakopter har
03:34 * PerlJam still boggles that someone thought Camelia was a bee
03:35 snarkyboojum I like the "I'm a Second System" one
03:36 diakopter "I'm a Second System. So are you."
03:36 PerlJam I do too except for the negative connotations.
03:39 pugssvn r30694 | snarkyboojum++ | [t/spec/integration/advent2009-day05.t] Added inital tests for Perl 6 Advent Calendar Day 5: Metaoperators
03:39 snarkyboojum typos are annoying
03:39 TimToady http://www.cafepress.com/rakudo
03:39 lue I never got that. Either there's a perception filter or I'm just thick :)
03:40 lue [the second system thing]
03:40 TimToady http://www.zazzle.com/rakudo
03:40 TimToady first systems are catepillars
03:41 lue Oh! Duh! :D
03:41 snarkyboojum lol
03:42 TimToady and people think 2nd systems are ugly :)
03:42 TimToady s/cate/cater/
03:42 lue Last I remember, there was just the 楽土 and second system shirt.
03:43 snarkyboojum are we going to turn on these advent integration tests in spectest.data or wait for a while?
03:43 PerlJam TimToady: they *are* ... at least Fred Brooks' version anyway.   Maybe we can get him to "bless" Perl 6  ;)
03:44 * lue has received the urge to design P6 tshirts like it was no thing.
03:44 TimToady our slogan is "Second system syndrome done right!"
03:44 lue PerlJam: thanks for the shirt idea :)
03:44 PerlJam lue: mix the rakudo japanese motif with camelia too :)
03:45 snarkyboojum wow a rakudo tie - mind boggling :)
03:46 TimToady seems to me there were some that just had camelia on the pocket-ish, but I don't see 'em now
03:46 lue .oO( Support Perl 6 — Promote Japanese ! )
03:46 PerlJam A long time ago the CS club at university made a t-shirt that had something like the front page to their website as the front of the shirt and the HTML code as the back of the shirt.  I wonder if we could do something similar with Perl 6 ...  Camelia on the front and excerpts of STD on the back
03:47 snarkyboojum PerlJam: I like that idea :)
03:47 lue me too.
03:47 _sri perl6 rsa dolphin anyone?
03:48 snarkyboojum bbl&
03:48 k23z__ sorry, this may sound as a stupid question
03:48 * _sri loves his dolphin and camel shirts
03:48 k23z__ but related to this http://www.perlmonks.org/?node_id=663393
03:48 k23z__ "
03:48 k23z__ Perl Cannot Be Parsed: A Formal Proof
03:48 k23z__ by Jeffrey Kegler (Friar) "
03:48 * lue considers a dummy P6 module About::Perl6 to function like Firefox's about:mozilla address
03:48 k23z__ can Perl6 be parsed ?
03:48 PerlJam k23z__: heh.  Mostly  :)
03:49 k23z__ PerlJam, you mean the parts that haven't been implemented can't be parsed yet right ?
03:49 sorear There;s a reference grammar for Perl6
03:49 sorear it parses lots of stuff that hasn't been implemented
03:49 TimToady we can parse pretty close to all of it, if you don't get too fancy with macros
03:50 PerlJam I mean that we have proof that some of it can be parsed, but the parts that are vaguely imaginary still I have a hard time believing in their parsability.
03:50 sorear Actually right now Rakudo parses 99% of Perl 6
03:50 sorear the code generator and support libraries need to catch up
03:51 TimToady in the sense that Jeffrey Kegler says it can't be parsed, it's not yet true of the STD grammar, because it can't evaluate code on the fly
03:51 TimToady but we plan to make it formally unparseable in the future :)
03:52 lue I thought rakudo was good at parsing tests (oh sorry, we don't use that kind of accent here ;) )
03:54 PerlJam lue++ subtle :)
03:54 TimToady std: sub circumfix:<☃ ☄> ($x) {...}; say ☃ 42 ☄;
03:54 p6eval std 30693: OUTPUT«ok 00:01 118m␤»
03:54 TimToady see, STD can even to snowman/comet quoting now :)
03:54 TimToady *do
03:54 lue .intenseoO(SNOWMAN COMET!)
03:55 TimToady well, it's not quoting, they are treated like parens
03:55 JimmyZ rakudo: sub circumfix:<☃ ☄> ($x) {...}; say ☃ 42 ☄;
03:55 p6eval rakudo 248ae3: OUTPUT«error:imcc:syntax error, unexpected '\n'␤  in file 'EVAL_1' line 57␤syntax error ... somewhere␤current instr.: 'perl6;PCT;HLLCompiler;evalpmc' pc 987 (compilers/pct/src/PCT/HLLCompiler.pir:542)␤»
03:56 lue Perl 6: We take bugs and make them into butterflies
03:57 TimToady .oO(butterflies with attitude)
03:57 skangas joined #perl6
03:57 PerlJam lue: excellent sentiment, though the wording seems a little much.  How about "Perl 6: We turn bugs into butterflies"?
03:57 PerlJam lue: that would make a good tag line for perl6.org too
03:58 snarkyboojum joined #perl6
03:58 TimToady you really, really don't want to cross Camelia, or she will suck all your nectar.
03:59 * PerlJam wonders if O'Reilly would have a fit if we made an animation of a camel morphing into camelia
03:59 TimToady she has a 3 meter wingspan, and she's still young
03:59 lue PerlJam: The Copyright Infringement War Machine wouldn't be happy.
03:59 lue TimToady: _only_ 3m !?
04:00 TimToady I wouldn't touch a ten-foot butterfly with a ten-foot pole...
04:00 PerlJam and apparently hiding a large, sharp proboscus behind that nice smile
04:01 PerlJam modulo my poor spelling :)
04:02 lue .oO(It has bio-GPS-ence, which is why the Rakudo Death Star knows where she is!)
04:02 snarkyboojum we have a wedge-tail camelia for all intents and purposes
04:04 lue I want to put the P5 camel on a tshirt, but I guess that would go towards infringment :/ [for a know your japanese/P6 tshirt]
04:05 lue .oO(bless() you)
04:07 sorear TimToady: what's the snowman comet thing a reference to?
04:08 TimToady a rakudo bug that used to treat them as the same character when used in a quote
04:09 TimToady rakudo: say q☃hi☄;
04:09 p6eval rakudo 248ae3: OUTPUT«Confused at line 11, near "say q\u2603hi\u2604;"␤current instr.: 'perl6;HLL;Grammar;panic' pc 501 (ext/nqp-rx/src/stage0/HLL-s0.pir:327)␤»
04:09 TimToady I guess they fixed it :)
04:09 lue It was a day of mourning :(
04:09 TimToady alpha: say q☃hi☄;
04:09 p6eval alpha 30e0ed: OUTPUT«Confused at line 10, near "\u2603hi\u2604;"␤in Main (file <unknown>, line <unknown>)␤»
04:09 TimToady ah well
04:10 TimToady something on the order of only looking at the first byte of the utf8
04:11 lue I want to see back in some module, when R* comes out.
04:11 lue see *it* back
04:12 k23z__ how many prolog programmers does it take to change a lightbulb ?
04:12 k23z__ no.
04:15 diakopter std: how many perl 6 programmers does it take to change a lightbulb ?
04:15 p6eval std 30694: OUTPUT«[31m===[0mSORRY![31m===[0m␤Confused at /tmp/W5gJJ7lfnS line 1:␤------> [32mhow many perl 6 [33m⏏[31mprogrammers does it take to change a lig[0m␤    expecting any of:␤ bracketed infix␤  infix or meta-infix␤      statement modifier loop␤Undeclared routines:␤       'how' used
04:15 p6eval ..at line 1␤     '…
04:15 TimToady k23z__: are the prolog programmers allowed to use their LIPs?
04:16 justatheory joined #perl6
04:17 k23z__ Logical Inferences Per Second ? :)
04:17 TimToady they'd probably try to cut the old one...
04:18 TimToady not sure whether prolog knows how to unify the socket and the light bulb though
04:18 lue Use a ruby-tipped knife for that :)
04:18 eternaleye rakudo: sub infix:<ö> ( $lhs, $rhs ) { say "$lhs, $rhs, I can't decide!" }; 'operators', 'pollen' »ö« 'twigils', 'nectar'
04:18 p6eval rakudo 248ae3: OUTPUT«Could not find sub &infix:<ö>␤current instr.: '' pc -1 ((unknown file):-1)␤»
04:19 TimToady aw
04:19 eternaleye Drat
04:19 TimToady though hypers aren't list infixes
04:19 TimToady so you'd need parens there
04:20 eternaleye rakudo: sub infix:<ö>( $lhs, $rhs ) { say "$lhs, $rhs, I can't decide!" }; ('operators', 'pollen') »ö« ('twigils', 'nectar')
04:20 p6eval rakudo 248ae3: OUTPUT«Could not find sub &infix:<ö>␤current instr.: '' pc -1 ((unknown file):-1)␤»
04:20 * eternaleye is sad
04:20 TimToady still doesn't work with user-defineds, I guess
04:21 eternaleye rakudo: sub infix:<foo>( $lhs, $rhs ) { ... }; 1 foo 2;
04:21 p6eval rakudo 248ae3:  ( no output )
04:21 eternaleye Just unicode, maybe
04:21 TimToady rakudo: sub postfix:<!> ($n) { [*] 1..$n }; say (1..10)>>!
04:21 eternaleye ISTR a similar bug in alpha way back when
04:21 p6eval rakudo 248ae3: OUTPUT«Could not find sub &postfix:<!>␤current instr.: '' pc -1 ((unknown file):-1)␤»
04:21 lue .oO(the quest to create »ö«!)
04:21 TimToady seems to be a general problem with metaops
04:21 eternaleye Ah, hypers on user-defined ops
04:21 eternaleye ESLOWTYPIST
04:21 TimToady std: sub postfix:<!> ($n) { [*] 1..$n }; say (1..10)>>!
04:22 p6eval std 30694: OUTPUT«ok 00:01 116m␤»
04:22 TimToady std: sub infix:<ö>( $lhs, $rhs ) { say "$lhs, $rhs, I can't decide!" }; ('operators', 'pollen') »ö« ('twigils', 'nectar')
04:22 p6eval std 30694: OUTPUT«ok 00:01 115m␤»
04:22 TimToady STD is fine with it
04:22 lue Funny. I can type an integral (∫), but not an o with an umlaut :/
04:22 TimToady ö really?
04:22 TimToady do you have a compose key?
04:23 TimToady here it's COMPOSE+o+"
04:23 lue I think I ditched that for apple's third level.
04:23 TimToady oh, well, *apple*...
04:23 lue Funny, I can type a circumflex with the third level, but not an umlaut :/
04:23 lue I'm running out of spare keys on my keyboard though! :)
04:24 lue compose+third level+3 button mouse emulation = ENOTENOUGHKEYS
04:25 TimToady under gnome CTRL+SHIFT+u f6 works
04:25 pencilk joined #perl6
04:26 lue You and gnome! [snooty upturned nose here] hmph!
04:26 lue :)
04:26 TimToady gnome's ain't pretty, but they're functional :)
04:26 TimToady s/'//
04:26 ashleydev joined #perl6
04:27 lue I have my Apple key for mouse button emulation, Ctrl+Space for japanese input, a spare keypad enter key for apple third level.
04:27 lue Despite their physical location, both alt's and ctrl's are considered L_ALT (and so on) unless I hold shift first.
04:28 TimToady compose keys are quite useful at times, especially when you want to say something like 42°
04:28 lue [I need more keyboard keys. Halp!]
04:28 TimToady I just wish I could reprogram my compose key with the vim digraphs
04:29 lue With a bit of patience and bravery, YOU TOO can delve into the X11 keymap system!
04:29 lue I had to a couple times just to get this hodge-podge setup going.
04:29 TimToady as soon as I added the compose key, I backed away carefully
04:29 * lue is now wondering where to add a compose key to all this...
04:30 eternaleye lue: Caps lock. Its only use is annoying people normally.
04:31 lue I did that. But then it didn't work like it should. I would have to turn off the caps lock before next use :(
04:31 lue I think I'd have to get into Ctrl-Alt-Shift type setups at this point :P ...
04:31 eternaleye Huh. What OS & DE are you using? In KDE, using the convenient dialog in the keyboard settings works perfectly
04:32 eternaleye Scroll lock is a good option too, nobody ever uses it
04:32 lue I use a Mac laptop running Fedora/KDE.
04:32 TimToady he's got one of those Steve Jobs specials
04:32 lue I don't have a scroll lock :(
04:33 lue The dedicated keypad enter key right by space was lucky for me :)
04:33 TimToady bet it didn't come with any extra mouse buttons either
04:33 lue that's where the Apple key is gone (and fn+Apple)
04:33 lue [Meta for me is option]
04:34 TimToady if your'e running KDE I'm sure you can find some keyboard setting that'll get you a compose key
04:34 TimToady might have to give up Q though :)
04:35 lue maybe fn+Enter for the compose key... [evil smile]
04:35 lue [look of fear, realizing the need to go back into the X11 keymap system]
04:35 lue TimToady: I have spent more time at that excuse for a keyboard setup dialog than you would believe :)
04:35 TimToady but think how easy it will become to type « and »
04:36 lue I can do that already with third-level! enter+\ and shift+enter+|
04:36 TimToady undoubtedly you have to edit a file somewhere
04:36 lue That endeavor was not fun. I shudder at the thought of going back.
04:36 TimToady that's very...mnemonicn't.
04:36 lue Just like Visual BASIC :D
04:37 TimToady and ¢ is just COMPOSE c/
04:37 TimToady I use that one all the time in STD
04:37 lue The third level lets me type cedilles, circumflexes, graves, accents, tildes (ñ) and other diacritic marks.
04:38 lue Just not an umlaut (grrr)
04:38 TimToady what does " give you?
04:38 lue Æ
04:38 lue [shift+third-level+"]
04:38 TimToady how..useful
04:39 lue I know. I cycled through my whole keyboard several times.
04:39 lue The first time, I thought for sure the " would give me an umlaut.
04:40 TimToady interesting, I can get an umlaut all by itself by typing COMPOSE ""
04:40 lue I got to go into the keyboard echo thing, and see if there's a difference between Apple, Shift+Apple, and fn+Apple
04:40 TimToady have the appropriate amount of -Ofun
04:41 * TimToady wanders off &
04:41 ashleydev joined #perl6
04:41 * lue -Ofun -j$MAX -sarcasm="high"
04:44 eternaleye lue: zsh tabcompletes keysyms for xmodmap
04:45 lue never heard of that. Just past that direct into my shell?
04:45 lue *paste
04:48 Tene TimToady: you can just use a .XCompose file.
04:48 eternaleye lue: zsh is a shell
04:48 Tene TimToady: http://github.com/kragen/xcompose is an example.
04:49 eternaleye running zsh, I can go 'xmodmap keysym Cap<TAB> = Multi_key'
04:49 eternaleye And it'll map capslock
04:49 eternaleye To compose
04:49 eternaleye Then again, you can type out Caps_lock
04:49 lue Ah.
04:50 lue I'm too lazy to change shells though :P I'm not even sure I _have_ zsh.
04:53 eternaleye lue: MacPorts is your friend!
04:54 eternaleye lue: xmodmap isn't a zsh thing, though, Just the tab completion
04:55 dalek csmeta: r274 | diakopter++ | trunk/Sprixel/src/Grammar/Grammar.cs:
04:55 dalek csmeta: [perlesque] lots o' progress on classes/methods
04:55 dalek csmeta: review: http://code.google.com/p/c​smeta/source/detail?r=274
04:55 * lue wonders if MacPorts is for linux; again, never heard of it :)
04:56 sorear if you have OS X, you have zsh
04:56 sorear it's the default shell
04:56 kfo joined #perl6
04:56 sorear however, zsh and xmodmap have nothing to do with each other
04:57 eternaleye sorear: Huh, I thought bash was the default. Anyway, he's running fedora on mach hardware
04:57 eternaleye *mac
04:57 snarkyboojum default shell on os x is bash
04:57 snarkyboojum but yes, zsh is installed by default (at least on my 10.6 install)
04:57 lue It's a gnu 21-century way of bash-ing things :)
04:58 eternaleye lue: Anyway, in KDE it's under keyboard layout/language -> advanced tab -> scroll down to 'compose key position' -> first checkbox
04:58 eternaleye Sets caps lock to compose, no side effects here
04:59 sorear snarkyboojum: was it always that way?  Back when I used 10.2, ISTR zsh being default
05:00 lue For some reason for me, however, it seemed like I had to turn off caps lock before using the compose function again. I have to check again though.
05:00 snarkyboojum sorear: I think since 10.3
05:01 lue (btw, the Xorg wiki is awful, at least for keyboard stuff)
05:01 eternaleye lue: What version of libxklavier is installed? I seem to remember that those options don't work when you have >=5.0 unless you're running KDE from SVN
05:02 eternaleye (that was a fun bug to figure out for myself)
05:02 lue I'll have to check [just a second]
05:08 lue version 4
05:10 eternaleye Hm, should work then
05:10 lue I'll have to check later. Thanks anyway!
05:14 yinyin joined #perl6
05:19 dalek csmeta: r275 | diakopter++ | trunk/Sprixel/ (4 files):
05:19 dalek csmeta: [perlesque] more classes/methods progress
05:19 dalek csmeta: review: http://code.google.com/p/c​smeta/source/detail?r=275
05:21 kaare joined #perl6
05:22 ejs joined #perl6
05:46 uniejo joined #perl6
05:51 snarkyboojum rakudo: say ((0, pi/4, pi/2, 2*pi)>>.sin).perl
05:51 p6eval rakudo 248ae3: OUTPUT«(0, 0.707106781186547, 1, -2.44929359829471e-16)␤»
05:51 snarkyboojum rakudo: use Test; is ((0, pi/4, pi/2, 2*pi)>>.sin), [0, 0.707106781186547, 1, 1.22464679914735e-16, -2.44929359829471e-16], 'Hyperoperator used to call .sin on each list element';
05:51 p6eval rakudo 248ae3: OUTPUT«No applicable candidates found to dispatch to for 'infix:<div>'. Available candidates are:␤:(Int $a, Int $b)␤␤current instr.: 'perl6;Rat;new' pc 488403 (src/gen/core.pir:69988)␤»
05:52 moritz_ good morning
05:52 snarkyboojum I can't work out why that test is failing
05:52 snarkyboojum moritz_: o/
05:52 moritz_ rakudo: say -2.44929359829471e-16
05:52 p6eval rakudo 248ae3: OUTPUT«-2.44929359829471e-16␤»
05:52 moritz_ rakudo: say 0.707106781186547
05:52 p6eval rakudo 248ae3: OUTPUT«No applicable candidates found to dispatch to for 'infix:<div>'. Available candidates are:␤:(Int $a, Int $b)␤␤current instr.: 'perl6;Rat;new' pc 488403 (src/gen/core.pir:69988)␤»
05:52 moritz_ rakudo: say 0.707106781186547e0
05:52 p6eval rakudo 248ae3: OUTPUT«0.707106781186547␤»
05:52 snarkyboojum oh
05:53 diakopter whee.
05:53 snarkyboojum moritz_: why is that?
05:53 diakopter classes/methods working
05:55 moritz_ snarkyboojum: because decimal fractions are stored as Rat objects internally, and that conversion fails when the numerator or denominator get too large
05:55 moritz_ snarkyboojum: and rakudo doesn't support bigints yet
05:55 snarkyboojum moritz_: ok - thanks
05:56 snarkyboojum an attempt at writing tests for t/spec/integration/advent2009-day06.t (http://gist.github.com/406003)
05:57 snarkyboojum probably making the same mistakes as I made in t/spec/integration/advent2009-day05.t
05:57 snarkyboojum so fire away :)
05:58 moritz_ snarkyboojum: looks good... except that you really shouldn't compare floating point numbers for equality
05:58 snarkyboojum moritz_: right - how to do that test then?
05:58 moritz_ snarkyboojum: rather assign the result to an array, and use is_approx @a[0], 0
05:59 snarkyboojum moritz_: ah ok - will have a play
05:59 moritz_ is_approx @a[1], sqrt(2);
06:03 patrickas hello perlsixers
06:03 moritz_ oh hai
06:03 moritz_ patrickas: I'm currrently spectesting your patch
06:05 patrickas moritz_ great thx, I have never been so excited about three lines of code :-)
06:06 moritz_ :-)
06:09 Tene patrickas: which three lines are these?
06:09 moritz_ snarkyboojum: also   is ([<=] @a), True,  is better written as  ok ([<=] @a)
06:10 snarkyboojum moritz_: cheers :)
06:10 moritz_ and  is ..., False   better written as  nok ...
06:10 snarkyboojum ok
06:10 snarkyboojum moritz_: thanks v. much
06:10 moritz_ (but these are really only minor points; snarkyboojum++ for attacking the whole thing in the first place)
06:11 snarkyboojum I was hoping I'd learn the finer points of crafting tests, so moritz_++ :)
06:12 patrickas Tene: method list() {return self.pairs;}
06:12 patrickas and is( (map { .WHAT } , {"a"=> 1 , "b"=>2}).join(' ') , 'Pair() Pair()' , 'Hashes become pairs in list context');
06:12 patrickas :-)
06:17 dalek csmeta: r276 | diakopter++ | trunk/Sprixel/ (6 files):
06:17 dalek csmeta: [perlesque] classes, attributes, methods working.  class predeclaration is NYI
06:17 dalek csmeta: (for cyclical dependencies) but is a TMOP - trivial matter of ...
06:17 dalek csmeta: review: http://code.google.com/p/c​smeta/source/detail?r=276
06:17 moritz_ patrickas: is that already in a test file somewhere?
06:19 diakopter perlesque: class Foo { has int $a; method Bar (--> int) { say('in Bar ' ~ (self.a)); return self.a } }; my $blue = Foo.new(); say($blue.Bar()); say($blue.a); $blue.a = 5; say($blue.Bar()); say($blue.a)
06:19 p6eval perlesque: OUTPUT«in Bar 0␤0␤0␤in Bar 5␤5␤5␤»
06:19 diakopter perlesquel: .
06:19 p6eval perlesquel: OUTPUT«in Bar 0␤0␤0␤in Bar 5␤5␤5␤real 0.04␤user 0.04␤sys 0.01␤»
06:19 diakopter whee.
06:20 diakopter phenny: tell pmurias sorry for the delay. classes, attributes, methods working now.
06:20 phenny diakopter: I'll pass that on when pmurias is around.
06:20 dalek rakudo: c4de1a7 | (Patrick Abi Salloum)++ | src/core/Hash.pm:
06:20 dalek rakudo: Hash in list context behaves like a list of pairs
06:20 dalek rakudo: Signed-off-by: Moritz Lenz <moritz@faui2k3.org>
06:20 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/c​4de1a766c69694acd47de5f0ac05806ebf7577d
06:21 patrickas moritz_: I don't think so .... that's why I sent the patch and the test .... I don't have commit bit to the test repos to add it
06:21 moritz_ patrickas: time to change that...
06:21 diakopter he
06:21 diakopter h
06:21 sorear hugme: add patrickas to pugs
06:21 hugme sorear: sorry, you don't have permissions to change 'pugs'
06:21 sorear I thought all pugs committers could add committers?
06:22 moritz_ sorear: yes, but not via hugme
06:22 sorear or does hugme just not know that?
06:22 moritz_ sorear: http://commitbit.pugscode.or​g/admin/project/Pugs/people
06:22 moritz_ hugme: add patrickas,patrick.abisalloum@gmail.com to pugs
06:22 * hugme hugs patrickas. If all goes well you'll get an email soon
06:22 moritz_ patrickas: there you go :-)
06:22 patrickas thx :-)
06:27 patrickas got the mail but we might need to fix the link, for some reason it is pointing to port 6666 instead of port 80 ...
06:27 moritz_ huh.
06:28 moritz_ patrickas: anyway, welcome to pugs. Please add yourself to AUTHORS in the first commit, as is custom
06:32 snarkyboojum moritz_: do I have the is_approx() usage wrong here? fwiw, is() works - http://gist.github.com/406003
06:33 snarkyboojum doh - I need to lose the parens
06:33 snarkyboojum moritz_: updated the gist - does that approach look better?
06:38 pugssvn r30695 | jimmy++ | add myself to AUTHORS
06:38 Su-Shee joined #perl6
06:40 pugssvn r30696 | snarkyboojum++ | [t/spec/integration/advent2009-day05.t] Updated tests with feedback from moritz_++
06:43 sorear patrickas: you are "jimmy"?
06:43 patrickas no ... I am ... having problems :-)
06:44 JimmyZ :)
06:45 pugssvn r30697 | snarkyboojum++ | [t/spec/integration/advent2009-day06.t] Initial tests for Perl 6 Advent Calendar Day 6: Going Into Hyperspace
06:46 patrickas for some reason TortoiseSVN is giving me: Server sent unexpected return value (400 Bad Request) in response to MKACTIVITY
06:47 moritz_ patrickas: which svn url do you use?
06:47 moritz_ http://svn.pugscode.org/pugs should work
06:47 patrickas http://svn.pugscode.org/pugs/
06:47 moritz_ "huh"
06:48 moritz_ patrickas: are you behind a firewall or proxy?
06:48 patrickas I was able to check out ... but not commit
06:48 patrickas moritz_: yes ... and a nasty one
06:48 moritz_ :(
06:48 moritz_ that might be the cause
06:48 patrickas i't ok
06:48 patrickas I'll do it form work ...
06:49 moritz_ because svn is really just http, and it uses other commands than GET and POST
06:49 moritz_ which many firewalls block
06:49 patrickas or I'll setup a tunnel later (I'm kind of used to this crap from my provider)
06:49 moritz_ 32224 passing tests, btw
06:50 snarkyboojum moritz_: add a few more when we add the advent tests to spectest.data :)
06:50 patrickas moritz_: whoa! someone should really be updating rakudo.de !
06:51 moritz_ patrickas: it is automatically updated as soon as docs/spectest-progress.csv is updated
06:52 patrickas moritz_: whoa! someone should really be updating docs/spectest-progress.csv ! :-)
06:52 snarkyboojum and docs/spectest-progress.csv (at least the checked in version) is almost a month out of date :)
06:52 moritz_ :-)
06:53 Bzek joined #perl6
06:53 snarkyboojum patrickas: pmichaud was generating them on his laptop last I heard (read)
06:55 pugssvn r30698 | patrickas++ | First traditional commit to AUTHORS
06:58 pugssvn r30699 | moritz++ | [t/spec] another test for :nth, :x and :overlap on .match
06:59 dalek rakudo: d4bb7b2 | moritz++ | docs/ChangeLog:
06:59 dalek rakudo: [docs] add some entries to ChangeLog
06:59 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/d​4bb7b2498d6d8b16efa11f0cbece1f793918f7c
07:00 ashleydev joined #perl6
07:00 sorear according to p6c, snarkyboojum just committed tests for RT#6
07:01 snarkyboojum sorear: yeah - what's that all about?
07:01 snarkyboojum have I mucked something up? :|
07:01 moritz_ snarkyboojum: not you, the mailing script
07:02 snarkyboojum I hope so :)
07:04 moritz_ rakudo: say {foo => 1, bar => 2}.fmt
07:04 p6eval rakudo c4de1a: OUTPUT«bar        2␤foo     1␤»
07:05 pugssvn r30700 | patrickas++ | test for: Hashes become pairs in list context
07:05 patrickas ok I commited! I think I'll celebrate by going to work ;-)
07:06 patrickas thx moritz_
07:08 moritz_ patrickas++
07:08 viklund joined #perl6
07:09 pugssvn r30701 | moritz++ | [t/spec] advent day 2: add plan, handle random hash order
07:09 iblechbot joined #perl6
07:11 snarkyboojum phenny, tell [Coke] - followed your example and added some tests for the Perl 6 Advent stuff (days 5 and 6)
07:11 phenny snarkyboojum: I'll pass that on when [Coke] is around.
07:12 moritz_ phenny: tell [Coke] that it's fine to add failing, unfudged tests to the pugs repo as long as they are in new files - rakudo whitelists which of them are run
07:12 phenny moritz_: I'll pass that on when [Coke] is around.
07:17 pugssvn r30702 | moritz++ | [t/spec] fix up advent-03 tests
07:20 pugssvn r30703 | moritz++ | [t/spec] day 4 advent calendar tests
07:23 moritz_ and [Coke]++ for the tests and stubs in the first place :-)
07:24 dalek rakudo: 643442b | moritz++ | t/spectest.data:
07:24 dalek rakudo: run a few of the new advent calendar integration tests
07:24 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/6​43442b2f30899b6eac2f74be07d12d5b7a8e8da
07:24 bbkr joined #perl6
07:25 plobsing_ joined #perl6
07:29 PZt joined #perl6
07:32 rgrau joined #perl6
07:33 meppl joined #perl6
07:34 ejs joined #perl6
07:39 ejs joined #perl6
07:39 IllvilJa joined #perl6
07:42 cosimo joined #perl6
07:55 lisppaste3 moritz_ pasted "week 3 challenge previes - feedback welcome" at http://paste.lisp.org/display/99446
07:55 moritz_ *preview
08:01 snarkyboojum I'm getting up to 3 different perl6 processes spawned during a spectest run now - using all cpus pretty nicely
08:02 moritz_ you can control that with the TEST_JOBS environment variable
08:02 snarkyboojum moritz_: thanks - didn't know that
08:03 snarkyboojum also t/spec/integration/advent2009-day02.t is failing
08:03 mathw moritz_: that looks... entertaining :)
08:03 moritz_ mathw: is that good or bad?
08:03 mathw Probably good
08:03 mathw It looks like the kind of thing I could either do, or get very frustrated by :)
08:04 moritz_ mathw: if you start to get frustrated, you can always ask here
08:07 mathw Of course
08:07 mathw I'll think about it
08:07 mathw I'm very busy this week though, so someone else might have already done it
08:07 pugssvn r30704 | snarkyboojum++ | [t/spec/integration/advent2009-day02.t] Fixed missed end quote
08:13 pugssvn r30705 | snarkyboojum++ | [t/spec/integration/advent2009-day05.t] Added done_testing and cleanup
08:15 moritz_ snarkyboojum: no need for done_testing if you have planned with a defined number of tests in the first place
08:15 snarkyboojum oops
08:15 snarkyboojum there's another one coming :|
08:15 moritz_ snarkyboojum: that's only needed when plan *; was used
08:15 moritz_ more karma for you :-)
08:15 snarkyboojum moritz_: ok - apologies for the commit spam then :P
08:15 * moritz_ 's first commit to the test suite screwed up some plans too
08:15 moritz_ snarkyboojum: no problem
08:16 pugssvn r30706 | snarkyboojum++ | [t/spec/integration/advent2009-day06.t] Added done_testing
08:17 sorear you aren't really a committer until you've broken the build at least once
08:17 moritz_ :-)
08:18 sorear agh.  *gently curses TimToady for depriving me of a perfectly good inductive base case*
08:18 sorear you can't have a regex with 0 tokens
08:37 moritz_ rakudo: say pir::gcd__iii(15, 25)
08:37 p6eval rakudo c4de1a: OUTPUT«5␤»
08:38 Gothmog_ sorear: Just prove what you want to for the legal regexes, PLUS the regex with 0 tokens; you've then showed it for a more general case, and it's especially valid for the legal regexes.
08:40 snarkyboojum gcd pir op! :O
08:40 moritz_ snarkyboojum: aye, just found that by idling on #parrot
08:41 snarkyboojum ah, yes :)
08:41 moritz_ I'm spectesting now with the Perl 6 implementation replaced by the PIR opcode
08:41 moritz_ and will compare times
08:42 meteorjay joined #perl6
08:43 snarkyboojum there's also lcm, factorial, coversine, exsecant... - obscure.ops :)
08:43 snarkyboojum interesting :)
08:44 moritz_ lcm?
08:44 snarkyboojum lowest common multiple
08:44 moritz_ ah
08:45 snarkyboojum having a look at http://trac.parrot.org/parrot/brows​er/trunk/src/dynoplibs/obscure.ops
09:18 dalek rakudo: 5ec28d3 | moritz++ | src/core/Rat.pm:
09:18 dalek rakudo: replace hand-rolled gcd function by PIR gcd opcode
09:18 dalek rakudo: This speeds up the spectest run by about 2.4%.
09:18 dalek rakudo: After the release (and bumping the parrot revision) this will require
09:18 dalek rakudo: .loadlib  'obscure_ops'
09:18 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/5​ec28d3a78f1e47bde4ebaa9ff5c8089fa8a7e06
09:25 pencilk joined #perl6
09:38 jnthn dexito/
09:39 jnthn er, o/
09:39 jnthn :-)
09:40 k23z__ joined #perl6
09:40 cognominal \o
09:41 ejs joined #perl6
09:41 dakkar joined #perl6
09:43 moritz_ good morning
09:43 moritz_ http://perlgeek.de/blog-en/perl​-6/contribute-now-main-sub.html
09:45 clintongormley joined #perl6
09:53 colomon o/
09:55 colomon gcd opcode?!?
09:56 colomon moritz_++
09:58 * jnthn thought that had been removed from Parrot loooong ago!
09:58 pencilk joined #perl6
10:13 jaldhar_ joined #perl6
10:14 simcop2387 joined #perl6
10:15 yahooooo joined #perl6
10:17 BrowserUk joined #perl6
10:17 BrowserUk ?
10:17 phenny BrowserUk: 01:22Z <ruoso> tell BrowserUk http://irclog.perlgeek.de/​perl6/2010-05-19#i_2344712
10:20 BrowserUk ruoso: If you have two cpu bound calculations to run on each input, there is no point in threading the IO.
10:22 BrowserUk ruoso: And in your example, the two cpu-bound calculations have to be performed serially upon each input (or surviving filtration thereof), so there's no scope for concurrency there either.
10:24 pugssvn r30707 | colomon++ | [t/spec] Remove unneeded fudging and cruft.
10:26 BrowserUk So, a simple (with apologies for lack of familiarity with P6 syntax) my @a; for my $in =$*IN {  if( my $filtered = cpuBound1( $in ) ) { push @a = cpuBound2( $filtered ) } } is as good as it gets.
10:27 BrowserUk ruoso: There no point trying to cater for concurrency in scenarios where there's no benefit to be had.
10:28 BrowserUk ruoso: (*and apologies for the typos also :) )
10:38 BrowserUk ruoso: I think that it is time to ask for and write down as many concurrency use-cases as we can get and try to categorise them. And then work through the requirements/implications.
10:55 BrowserUk ruoso: But then again :), there *is* some scope for overlapping cpuBound2( input_N ), with cpuBound1( input_N+1 ). Especially if cpuBound1( ) is quicker than cpuBound2() but filters its inputs. Eg. cpuBound1() might process 10 or 100 of it's inputs for each output, that cpuBound2() spends much longer processing. Hm.
10:56 jferrero joined #perl6
11:05 mikehh joined #perl6
11:18 dakkar joined #perl6
11:20 colomon joined #perl6
11:20 colomon moritz_++'s contribution for the week is so much better than my suggestion....
11:21 * colomon is pleased with all the workarounds in Complex.roots that he can eliminate now.
11:22 moritz_ rakudo: class A { has $.foo }; say A.^methods(:local)».name
11:22 p6eval rakudo 5ec28d: OUTPUT«accessor_helper_ro␤»
11:23 * moritz_ submits rakudobug
11:23 rv2733 joined #perl6
11:23 moritz_ rakudo: class A { has $.foo is rw }; say A.^methods(:local)».name
11:23 p6eval rakudo 5ec28d: OUTPUT«accessor_helper_rw␤»
11:24 masonkramer joined #perl6
11:25 colomon 32299 passing tests
11:25 moritz_ rakudo: class A { }; A.add_method(A, 'foo', sub bar($self) { say $self });  A.new.bar
11:25 p6eval rakudo 5ec28d: OUTPUT«Method 'add_method' not found for invocant of class ''␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
11:25 moritz_ rakudo: class A { }; A.^add_method('foo', sub bar($self) { say $self });  A.new.bar
11:25 p6eval rakudo 5ec28d: OUTPUT«Method 'bar' not found for invocant of class 'A'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
11:25 moritz_ rakudo: class A { }; A.^add_method('foo', sub bar($self) { say $self });  A.new.foo
11:25 p6eval rakudo 5ec28d: OUTPUT«A()<0x41bd690>␤»
11:26 pugssvn r30708 | colomon++ | [t/spec] Test Rat.root and Num.root.
11:26 moritz_ npq: sub A { }; say &A.WHAT
11:27 moritz_ nqp: sub A { }; say(&A.WHAT)
11:27 p6eval nqp: OUTPUT«Routine declaration requires a signature at line 1, near "{ }; say(&"␤current instr.: 'parrot;HLL;Grammar;panic' pc 501 (src/cheats/hll-grammar.pir:196)␤»
11:27 moritz_ nqp: sub A() { }; say(&A.WHAT)
11:27 p6eval nqp: OUTPUT«Symbol '&A' not predeclared in <anonymous>␤current instr.: 'parrot;PCT;HLLCompiler;panic' pc 152 (compilers/pct/src/PCT/HLLCompiler.pir:108)␤»
11:27 moritz_ nqp: sub A() { }; say(A.WHAT)
11:27 p6eval nqp: OUTPUT«Method 'WHAT' not found for invocant of class 'Sub'␤current instr.: '_block11' pc 0 (EVAL_1:8202660)␤»
11:29 dalek rakudo: 77c58c2 | (Solomon Foster)++ | src/core/Complex.pm:
11:29 dalek rakudo: Rework Complex.roots a bit, restoring its original elegance.  (It had been
11:29 dalek rakudo: hacked to pieces to get it to work under ng.)
11:29 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/7​7c58c271fab3ac5ff22b476ef35172950d4e714
11:29 dalek rakudo: 3a694dd | (Solomon Foster)++ | src/core/ (4 files):
11:29 dalek rakudo: Change Complex.roots to take an Int as spec'd, and make it a normal method
11:29 dalek rakudo: instead of a multi.  Add Real.roots.  Add Real.Complex and eliminate now
11:29 dalek rakudo: unneeded Int.Complex and Num.Complex.  Clean up Real.unpolar now that cheats are
11:29 dalek rakudo: unneeded.
11:29 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/3​a694ddce5d5bba3c77f58f54c5e04474fb105fd
11:30 envi^home joined #perl6
11:37 moritz_ nqp: my $x := sub f() { }; say($x)
11:37 p6eval nqp: OUTPUT«f␤»
11:38 moritz_ nqp: my $x := sub f() { }; pir::set_string_native__vPs($x, 'bar'); say($x)
11:38 p6eval nqp: OUTPUT«error:imcc:syntax error, unexpected PREG, expecting '(' ('$P20')␤    in file 'EVAL_1' line 15␤syntax error ... somewhere␤current instr.: 'parrot;PCT;HLLCompiler;evalpmc' pc 987 (compilers/pct/src/PCT/HLLCompiler.pir:542)␤»
11:39 moritz_ nqp: my $x := sub f() { }; Q:PIR { $P0 = find_lex 'f'␤$S0 = 'bar'␤$P0 = $S0}; say($x)
11:39 p6eval nqp: OUTPUT«bar␤»
11:41 moritz_ nqp: my $x := sub f() { }; pir::set_ps($x, 'foo'); say($x)
11:41 p6eval nqp: OUTPUT«error:imcc:syntax error, unexpected PREG, expecting '(' ('$P20')␤    in file 'EVAL_1' line 17␤syntax error ... somewhere␤current instr.: 'parrot;PCT;HLLCompiler;evalpmc' pc 987 (compilers/pct/src/PCT/HLLCompiler.pir:542)␤»
11:42 moritz_ 13:41 <@moritz_> nqp: my $x := sub f() { }; pir::set__ps($x, 'foo'); say($x)
11:42 quester_ joined #perl6
11:42 moritz_ nqp: my $x := sub f() { }; pir::set__ps($x, 'foo'); say($x)
11:42 p6eval nqp: OUTPUT«The opcode 'set_p_s_sc' (set<3>) was not found. Check the type and number of the arguments␤current instr.: 'parrot;PCT;HLLCompiler;evalpmc' pc 987 (compilers/pct/src/PCT/HLLCompiler.pir:542)␤»
11:48 quester_ rakudo: sub infix:<ö>( $lhs, $rhs ) { say "$lhs, $rhs, I can't decide!" }; ('operators', 'pollen') »ö« ('twigils', 'nectar')
11:48 p6eval rakudo 5ec28d: OUTPUT«Could not find sub &infix:<ö>␤current instr.: '' pc -1 ((unknown file):-1)␤»
11:48 quester_ rakudo: our sub infix:<ö>( $lhs, $rhs ) { say "$lhs, $rhs, I can't decide!" }; ('operators', 'pollen') »ö« ('twigils', 'nectar')
11:48 p6eval rakudo 5ec28d: OUTPUT«operators, twigils, I can't decide!␤pollen, nectar, I can't decide!␤»
11:52 snarkyboojum rakudo: say "Perl 6 Advent".comb(/<alpha>/);
11:52 p6eval rakudo 5ec28d: OUTPUT«Cannot take substr outside string␤current instr.: 'perl6;Regex;Cursor;alpha' pc 1506 (ext/nqp-rx/src/stage0/Regex-s0.pir:872)␤»
11:52 snarkyboojum alpha: say "Perl 6 Advent".comb(/<alpha>/);
11:52 p6eval alpha 30e0ed: OUTPUT«PerlAdvent␤»
11:52 quester_ phenny:  tell eternaleye The only problem with your definition of the Camellia metaop »ö« is that you have to declare "our sub infix:<ö>" and not just "sub infix:<ö>".
11:52 phenny quester_: I'll pass that on when eternaleye is around.
11:53 snarkyboojum is that a known bug?
11:54 snarkyboojum I should have a look shouldn't I :)
11:54 quester_ snarkyboojum:  I'm not sure if it's a bug or if there is some reason that metaops have to be global.
11:55 snarkyboojum quester_: sorry - was referring to the comb error above
11:55 quester_ snarkyboojum:  Oops!  Sorry...!
11:55 bacek nqp: my $x := sub f() { }; pir::set__vps($x, 'foo'); say($x)
11:55 p6eval nqp: OUTPUT«foo␤»
11:56 bacek moritz_, see
12:01 moritz_ ah!
12:04 PZt joined #perl6
12:06 pugssvn r30709 | moritz++ | [t/spec] integration tests for day 11 advent
12:08 pugssvn r30710 | moritz++ | [t/spec] add a marker for RT #75180
12:14 dalek rakudo: 603c64c | moritz++ |  (2 files):
12:14 dalek rakudo: fix RT #75180, accessors appear under wrong name in introspection
12:14 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/6​03c64c70d2354297b792a31bdc4a42e2be6f061
12:15 * [Coke] backscrolls and guesses he's going to need to buy a tshirt before yapc.
12:15 phenny [Coke]: 07:11Z <snarkyboojum> tell [Coke] - followed your example and added some tests for the Perl 6 Advent stuff (days 5 and 6)
12:15 phenny [Coke]: 07:11Z <snarkyboojum> tell [Coke] - followed your example and added some tests for the Perl 6 Advent stuff (days 5 and 6)
12:15 phenny [Coke]: 07:12Z <moritz_> tell [Coke] that it's fine to add failing, unfudged tests to the pugs repo as long as they are in new files - rakudo whitelists which of them are run
12:17 colomon [Coke]: what's that about a t-shirt?
12:17 colomon (and do you mean yapc:na?)
12:20 ruoso joined #perl6
12:21 [Coke] http://dev.pugscode.org/wiki/ seems to be dead. (linked to from perlcabal.org)
12:23 ruoso BrowserUk, but if there are two CPU bound operations that could be paralellized and the IO produces faster then the CPU bound operations process, then threading would be the best choice
12:23 quester_ left #perl6
12:24 ruoso i.e.: @a <== map { expensive_operation_1($_) } <== map { expensive_operation_2($_) } <== $*IN
12:25 * ruoso meant "kernel therading would be the best choice" -- considering a multicore system
12:26 * [Coke] finds that he can fix the web site. fixing...
12:28 * ruoso quite convinced that we could have some sort of hint so the interpreter can know which is the best strategy for a given code...
12:30 takadonet joined #perl6
12:30 takadonet morning all
12:32 iblechbot joined #perl6
12:34 pugssvn r30711 | coke++ | fix HTML validation errorswq
12:40 [Coke] /usr/local/bin/perl6 on feather blows up, missing a libparrot.
12:44 sahadev joined #perl6
12:46 pugssvn r30712 | coke++ | Add links to rakudo, perl6, and the pugs svn browser.
12:47 nimiezko joined #perl6
12:48 nimiezko joined #perl6
12:48 nimiezko joined #perl6
12:48 nimiezko joined #perl6
12:51 M_o_C joined #perl6
13:02 moritz_ jnthn: if you look at 603c64c, I wonder if that was actually the right fix
13:03 moritz_ jnthn: or if .add_method should do the cloning + name assigning
13:03 moritz_ jnthn: or if the introspection should look at the names with which the methods were added to the method table, not the internal names stored in the Sub
13:03 [Coke] phenny: tell Su-Shee about http://search.cpan.org/perldoc?Moose::Cookbook
13:03 phenny [Coke]: I'll pass that on when Su-Shee is around.
13:09 colomon rakudo: -4.roots.perl.say
13:09 p6eval rakudo 5ec28d: OUTPUT«No applicable candidates found to dispatch to for 'roots'. Available candidates are:␤:(Mu : Any $n;; *%_)␤␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
13:09 sahadev rakudo: my @r = (1, 2, 3); @r>>++; @r.perl.say
13:09 colomon rakudo: -4.roots(2).perl.say
13:09 p6eval rakudo 5ec28d: OUTPUT«[2, 3, 4]␤»
13:09 p6eval rakudo 5ec28d: OUTPUT«(Complex.new(2, 0), Complex.new(-2, -5.82864638634609e-11))␤»
13:09 sahadev rakudo: my @r = (1, 2, 3); try { @r>>++ }; @r.perl.say
13:09 p6eval rakudo 5ec28d: OUTPUT«[2, 3, 4]␤»
13:10 colomon alpha:  -4.roots(2).perl.say
13:10 p6eval alpha 30e0ed: OUTPUT«[Complex.new(2, 0), Complex.new(-2, 2.44929359829471e-16)]␤»
13:10 Su-Shee [Coke]: I'm not that stupid, thank you. ;)
13:10 phenny Su-Shee: 13:03Z <[Coke]> tell Su-Shee about http://search.cpan.org/perldoc?Moose::Cookbook
13:11 colomon quite the bug in roots there....
13:11 [Coke] Su-Shee: I was reading your blog post and saw moose-related pain. just trying to help.
13:11 moritz_ colomon: you call -(4.roots...)
13:12 colomon you can't apply - to a list, can you?
13:12 [Coke] (also, a lot of that work was done under a TPF grant, so I want to make sure people know about it). No offense intended.
13:12 colomon rakudo: say -(1, 2)
13:12 moritz_ colomon: sure you can, just as you can +
13:12 p6eval rakudo 5ec28d: OUTPUT«-2␤»
13:12 moritz_ it returns the number of elements
13:13 Su-Shee [Coke]: I'm seriously lost for words.
13:13 colomon rakudo: (-4).roots(2).perl.say
13:13 p6eval rakudo 5ec28d: OUTPUT«(Complex.new(1.22464679914735e-16, 2), Complex.new(5.82854532203613e-11, -2))␤»
13:13 bluescreen joined #perl6
13:14 * colomon is utterly mystified....
13:14 colomon rakudo: (-4).roots(4).perl.say
13:14 p6eval rakudo 5ec28d: OUTPUT«(Complex.new(1, 1), Complex.new(-1.00000000001457, 0.999999999985429), Complex.new(-0.999999999970857, -1.00000000002914), Complex.new(1.00000000004372, -0.999999999956285))␤»
13:14 moritz_ colomon: what's wrong?
13:14 colomon oh, I see.
13:15 colomon -4.roots(2).perl.say is -(4.roots(2).perl.say)
13:15 colomon oy vey
13:15 moritz_ yes
13:15 colomon rakudo: say (1 + 1i) ** 4
13:15 moritz_ and say() actually returns a Bool
13:15 p6eval rakudo 5ec28d: OUTPUT«-4 + 4.89858719658941e-16i␤»
13:17 colomon rakudo: say -3.14 ** .25
13:17 p6eval rakudo 5ec28d: OUTPUT«-1.33116659914037␤»
13:17 hejki rakudo: say Pi ** 1/4
13:17 p6eval rakudo 5ec28d: OUTPUT«Method 'Num' not found for invocant of class 'Block'␤current instr.: 'perl6;Mu;' pc -1 ((unknown file):-1)␤»
13:17 moritz_ rakudo: say pi ** (1/4)
13:17 p6eval rakudo 5ec28d: OUTPUT«1.33133536380039␤»
13:17 hejki ahh
13:17 hejki rakudo: say pi/4
13:17 p6eval rakudo 5ec28d: OUTPUT«0.785398163397448␤»
13:17 moritz_ rakudo: say Pi.WHAT
13:17 p6eval rakudo 5ec28d: OUTPUT«Could not find sub &Pi␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
13:18 moritz_ wher did the "class 'Block'" come from the in the error message above?
13:18 colomon rakudo: say (-3.14) ** .25
13:18 p6eval rakudo 5ec28d: OUTPUT«NaN␤»
13:18 colomon one day I will learn....
13:18 moritz_ about precedence? :-)
13:18 colomon rakudo: say -3.14.Complex ** .25
13:18 p6eval rakudo 5ec28d: OUTPUT«Method 'Complex' not found for invocant of class 'Rat'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
13:19 snarkyboojum alpha: say "5065726C36".comb(/<xdigit>**2/).map: { chr '0x' ~ $_ } ;
13:19 p6eval alpha 30e0ed: OUTPUT«Perl6␤»
13:19 * [Coke] briefly tries to puzzle out what he did wrong there and fails miserably.
13:19 colomon my latest patch hasn't reached p6eval yet, I see
13:19 moritz_ rakudo: say "5065726C36".comb(/<xdigit>**2/).map: { :16($_) }
13:19 p6eval rakudo 5ec28d: OUTPUT«8010111410854␤»
13:19 moritz_ rakudo: say "5065726C36".comb(/<xdigit>**2/).map: { chr :16($_) }
13:19 p6eval rakudo 5ec28d: OUTPUT«Perl6␤»
13:20 moritz_ rakudo: say "5065726C2036".comb(/<xdigit>**2/).map: { chr :16($_) }
13:20 p6eval rakudo 5ec28d: OUTPUT«Perl 6␤»
13:20 moritz_ rakudo: say "5065726C2036".comb(/<xdigit>**2/).map: {:16($_).char }
13:20 p6eval rakudo 5ec28d: OUTPUT«Method 'char' not found for invocant of class 'Num'␤current instr.: '_block58' pc 625 (EVAL_1:22821520)␤»
13:20 moritz_ rakudo: say "5065726C2036".comb(/<xdigit>**2/).map: {:16($_).chr }
13:20 p6eval rakudo 5ec28d: OUTPUT«Perl 6␤»
13:21 snarkyboojum should I be changing that example from day 8 then or leaving it as a fail
13:22 moritz_ snarkyboojum: what fails?
13:22 snarkyboojum rakudo: say "5065726C36".comb(/<xdigit>**2/).map: { chr '0x' ~ $_ } ;
13:22 p6eval rakudo 5ec28d: OUTPUT«Perl6␤»
13:22 snarkyboojum oh
13:22 snarkyboojum :)
13:23 snarkyboojum well this one does
13:23 snarkyboojum rakudo: say "5065726C36".comb(/<xdigit>**2/)».fmt("0x%s")».chr
13:23 p6eval rakudo 5ec28d: OUTPUT«
13:24 jnthn moritz_: add_method shouldn't clone
13:24 snarkyboojum and these ones using <alpha> in comb
13:24 jnthn moritz_: And it changing the name of the blob of code it's been given feels wrong too.
13:24 snarkyboojum rakudo: say "Perl 6 Advent".comb(/<alpha>/).join('|')
13:24 p6eval rakudo 5ec28d: OUTPUT«Cannot take substr outside string␤current instr.: 'perl6;Regex;Cursor;alpha' pc 1506 (ext/nqp-rx/src/stage0/Regex-s0.pir:872)␤»
13:24 moritz_ jnthn: right, it would only do that if it clones... which it doesn't
13:25 jnthn moritz_: Well, it probably shouldn't do it even if it does.
13:25 jnthn $foo.^add_method('blah', anon method foo() { ... }) # otherwise someone complains introspection doesn't return foo later... :-)
13:26 jnthn It _is_ evil though. :-)
13:26 jnthn Anyway, +1 on the fix you did.
13:27 moritz_ ok
13:27 meteorjay joined #perl6
13:29 moritz_ btw fun Perl 5 question: http://www.perlmonks.org/?node_id=840692  - I love it how Perl 6 has explicit (and a bit more verbose) syntax for symbolic references
13:31 colomon moritz_: just got burned by the ** precedence thing again locally.  :\
13:32 pugssvn r30713 | colomon++ | [t/spec] Add bridge test for Real.roots.
13:32 colomon that should put us over 32,300 passing tests.  ;)
13:33 gbacon_ joined #perl6
13:34 takadonet !!
13:34 snarkyboojum moritz_: if I have a test file which mostly blows up on current master for day 8, should I commit anyway (http://gist.github.com/406306)?
13:35 jnthn snarkyboojum: Which bit explodes, ooi?
13:36 snarkyboojum colomon: at how many passing tests were you going to break out the beer - 32k?
13:36 jnthn Does the first two pass?
13:36 snarkyboojum jnthn: yes
13:36 jnthn OK, I was gonna be worried if they didn't
13:36 colomon snarkyboojum: well, that was one mark
13:36 snarkyboojum jnthn: signatures are solid :)
13:36 colomon full celebration should be 33k, I reckon.
13:36 snarkyboojum colomon: excellent :)
13:37 jnthn colomon: Beer celebration every 1k extra tests. ;-)
13:37 colomon I'd prefer cider or single malt.
13:37 colomon ;)
13:37 jnthn s/Beer/Tasty beverage/
13:37 jnthn :-)
13:37 masonkramer joined #perl6
13:38 fengshaun joined #perl6
13:38 colomon I celebrated with strawberry quik the other day.... (when the Habs beat the Penguins)
13:38 [Coke] ISTR moritz said new tests that fail are OK, since rakudo isn't running them by default.
13:38 moritz_ right
13:38 moritz_ snarkyboojum: so go ahead
13:38 [Coke] I am glad to see folks hacking on the tests.
13:39 moritz_ aye, [Coke]++ did a good kick-start
13:39 jnthn [Coke]++, snarkyboojum++, moritz_++ :-)
13:39 colomon ditto
13:40 snarkyboojum moritz_++ for helping and [Coke]++ for starting and creating the stubs :)
13:41 [Coke] ETOOMUCHKARMA.
13:41 moritz_ [Coke]-- # just to prevent karma overflow :-)
13:42 [Coke] whgew.
13:42 jnthn Any sense of how bad we're doing the tests so far?
13:42 jnthn *doing on
13:42 moritz_ 'handles' test throws
13:42 jnthn (In terms of Rakudo's ability to run/pass them...)
13:42 jnthn handles NYRI
13:42 jnthn I've been meaning to get onto that for a while.
13:44 snarkyboojum moritz_: rightio
13:44 moritz_ jnthn: another test barfs on Whatever currying
13:45 moritz_ infix:Z with more than two args is also NYI
13:46 snarkyboojum grammars (day 21) aren't going to work either are they
13:46 moritz_ haven't really looked at them... most gramamr stuff works, just match objects don't
13:47 snarkyboojum moritz_: I haven't had any lucky with simple grammars on rakudo really - fine with alpha
13:47 snarkyboojum luck
13:48 sahadev rakudo: @r = (1,2,3,4) >>+>> (1,2); @r.perl.say
13:48 p6eval rakudo 5ec28d: OUTPUT«Symbol '@r' not predeclared in <anonymous>␤current instr.: 'perl6;PCT;HLLCompiler;panic' pc 152 (compilers/pct/src/PCT/HLLCompiler.pir:108)␤»
13:48 sahadev rakudo: my @r = (1,2,3,4) >>+>> (1,2); @r.perl.say
13:48 p6eval rakudo 5ec28d: OUTPUT«[2, 4, 5, 6]␤»
13:50 sahadev can someone confirm if the "upgrade" of the RHS is correct? the test (t/spec/S03-metaops/hyper.t) says expected output is [2, 4, 3, 4]
13:50 colomon the test is wrong for sure, I think.
13:51 colomon but I'm not sure the "upgrade" is properly spec'd.
13:51 moritz_ well
13:51 zostay joined #perl6
13:51 colomon I think TimToady  indicated to me a while back it was only supposed to upgrade full dimensions.
13:51 moritz_ upgrading is only specced in the context of "upgrading to more dimensions"
13:51 moritz_ right
13:51 jnthn I thought it just repeated the last element.
13:51 snarkyboojum that's what is currently does
13:51 moritz_ that was my previous understanding
13:51 jnthn Thus why @as-long-as-you-like >>+>> 1 works.
13:52 jnthn I thought that was spec too.
13:52 snarkyboojum it did today when I was doing the tests for day 6 - hypers :)
13:53 colomon jnthn: no, that works (in theory) because you are upgrading the dimension from 0 to 1
13:53 colomon by repeating.
13:53 jnthn Ah.
13:53 colomon in practice, it works by repeating the last element, because that's how I thought it worked when I implemented it.
13:53 colomon and I think that's how alpha has it, too.
13:53 jnthn Heh. That's how I did it in...right. :-)
13:54 snarkyboojum those tests are marked with #?rakudo todo - does that skip them?
13:54 jnthn Or put differently, it doesn't know the difference between a list of one element and a single element.
13:54 jnthn (because iirc we listify)
13:54 colomon todo means "run the test, but we know the answer is wrong -- allow that as okay"
13:54 colomon skip means "don't run the test"
13:54 snarkyboojum colomon: cheers
13:55 snarkyboojum knew skip, wasn't sure about todo
13:55 colomon basically, if it is going to crash, we skip.  otherwise we todo.  :)
13:55 jnthn todo is nicer
13:55 jnthn If there's teh chice
13:56 jnthn grrr, I forgot how to type
13:56 jnthn *the choice
13:56 jnthn Since then if we fix it, we get told it's a passing todo.
13:56 pugssvn r30714 | snarkyboojum++ | [t/spec] Added initial tests for Perl 6 Advent Calendar Day 8: .comb your constraints
13:57 snarkyboojum 3 of those test break on rakudo currently fwiw
13:57 snarkyboojum tests
13:58 colomon rakudo: "Perl 6 Advent".comb(/<alpha>/).join('|').say
13:58 p6eval rakudo 5ec28d: OUTPUT«Cannot take substr outside string␤current instr.: 'perl6;Regex;Cursor;alpha' pc 1506 (ext/nqp-rx/src/stage0/Regex-s0.pir:872)␤»
13:58 colomon ouch.
13:59 moritz_ bug in comb? or in the regex engine?
13:59 moritz_ rakudo: "Perl 6 Advent".comb(/<alpha>/).join('|')
13:59 p6eval rakudo 5ec28d: OUTPUT«Cannot take substr outside string␤current instr.: 'perl6;Regex;Cursor;alpha' pc 1506 (ext/nqp-rx/src/stage0/Regex-s0.pir:872)␤»
13:59 moritz_ rakudo: eager "Perl 6 Advent".comb(/<alpha>/)
13:59 p6eval rakudo 5ec28d: OUTPUT«Cannot take substr outside string␤current instr.: 'perl6;Regex;Cursor;alpha' pc 1506 (ext/nqp-rx/src/stage0/Regex-s0.pir:872)␤»
13:59 ruoso joined #perl6
14:00 ejs joined #perl6
14:02 snarkyboojum rakudo: "Perl 6 Advent".comb(/<[A..z]>/).join('|').say # this doesn't help, but it works :)
14:02 p6eval rakudo 5ec28d: OUTPUT«P|e|r|l|A|d|v|e|n|t␤»
14:06 khasselbacher joined #perl6
14:07 mjk joined #perl6
14:07 khasselbacher I've changed the test reporter so that it requires TWO digits to trigger an email now.  No more messages to bug number 6 about the Perl 6 Advent Calendar work.
14:07 moritz_ khasselbacher++
14:07 khasselbacher *bow*
14:08 moritz_ khasselbacher: have you also committed the script? I think it's still somewhere in the pugs repo
14:08 KyleHa No commit.  I didn't think it was in there.
14:08 KyleHa Let me look.
14:08 KyleHa Ah, indeed it is.
14:09 moritz_ misc/commit-mails/test-reporter.pl
14:09 KyleHa I'll review my changes and commit later-ish.
14:10 moritz_ KyleHa++ # now the karma goes to the right nick
14:10 KyleHa Nyuck nyuck nyuck.
14:11 mjk joined #perl6
14:13 snarkyboojum ok - now I know what's causing it I'll stop using Perl 6 in the commit message :|
14:13 snarkyboojum lol
14:14 moritz_ snarkyboojum: no need, it's already fixed
14:14 snarkyboojum well, another email just came through, so I guess I just missed the fix
14:14 moritz_ it just took a time for the email to perculate
14:15 snarkyboojum I have to admit, this writing tests business for the advent calendar is a lot of fun :)
14:15 colomon snarkyboojum++
14:16 colomon it's even more addictive when you start getting the tests working.... ;)
14:16 Jedai joined #perl6
14:16 moritz_ aye
14:16 snarkyboojum colomon: I can only imagine :)
14:16 moritz_ although I spent half an hour for that accessor name introspection fix
14:17 moritz_ it was pretty easy to find the culprint; the fix just required some parrot-Fu that I mostly lacked
14:24 plobsing joined #perl6
14:31 SmokeMachine joined #perl6
14:34 [Coke] if it's just writing PIR, I can usually help with that.
14:38 sahadev reading back the comments made about "upgrading", am I right to assume that the current behavior of repeating the last element (as it is implemented now) is the correct behavior?
14:38 sahadev if so, any objections if I fixed the tests?
14:38 moritz_ sahadev: none of us knows what the correct/expected behaviour is
14:39 colomon sahadev: unfortunately, it's unclear if that's the correct behavior.  I think I'd mark the tests "vague" and move on.
14:39 colomon "spec is vague", I mean.
14:39 sahadev ok
14:47 pugssvn r30715 | kyle++ | [misc] Trigger bug test emails only when there are 2+ digits (no more triggers for "Perl 6 Advent Calendar" tests).
14:48 moritz_ actually the old open perl6 tickets are all 5 digits
14:49 moritz_ and the new ones too
14:49 moritz_ takes a few masakyears to bump it up to 6 digits :-)
14:52 patspam joined #perl6
14:57 isBEKaml joined #perl6
14:57 bubaflub joined #perl6
14:58 xomas_ joined #perl6
15:04 diakopter [Coke]: what's teh name of the hash-with-inheritance thingy in parrot
15:05 diakopter or jnthn or moritz_ or whoever
15:05 diakopter pmichaud: ^^ ?
15:06 [Coke] diakopter: ... Hash ?
15:06 diakopter maybe I'm dreaming, but I thought I read there was an object that acted like a js prototype object
15:06 colomon Assoctional?  (speeelling?)
15:07 colomon that's a role.
15:07 colomon (if spelled correctly.)
15:07 diakopter in parrot I mean
15:08 [Coke] diakopter: sorry. I don't understand the question, i guess.
15:08 diakopter I thought there was a built-in PMC or some other Object in parrot that acts like a js prototype object, where it has keys & values, and also a parent (or prototype)
15:09 diakopter if not, I musta dreamt it up
15:10 [Coke] unless you mean something special by "parent", you can just subclass the existing Hash. (which itself doesn't have a parent.)
15:10 jnthn diakopter: No, not afaik.
15:11 diakopter ok
15:11 [Coke] but I think you're meaning something special with the prototype there.
15:11 jnthn diakopter: There's been discussion about having a Prototype PMC in the future.
15:11 diakopter ah
15:11 jnthn Not sure how much, just remember noting in on a mailing list thread.
15:11 orafu joined #perl6
15:11 diakopter ok; noted my dreamt-it-up-ness in my blogpost
15:17 ejs joined #perl6
15:18 am0c joined #perl6
15:18 jnthn It would be nice to have something like it, but I suspect what Rakudo wants may be too specific for Parrot.
15:20 diakopter I bloggeth'd 'gain: http://diakopter.blogspot.com/2010/05/pe​rlesque-obtained-class-declarations.html
15:22 diakopter probably I should note the lack of ! on attributes
15:23 diakopter oh, blogspot ate my < > after PrototypeChain.  boo.
15:24 diakopter LOL; it transformed it to PrototypeChain<tkey, tvalue="">
15:24 diakopter stupid rich text editor
15:24 diakopter fixed
15:25 k23z__ joined #perl6
15:30 ashleydev joined #perl6
15:30 justatheory joined #perl6
15:35 diakopter planetsixes being slow
15:40 burmas joined #perl6
15:42 colomon_ joined #perl6
15:42 colomon oh noes!  I broke Ra!
15:42 colomon Rat!
15:43 iblechbot joined #perl6
15:43 colomon Num.Rat!
15:44 jnthn Oh noes HALP!
15:45 moritz_ git reset --hard HEAD # it helps, for some value of HALP
15:47 isBEKaml if it's just one file, git checkout <filename> helps too. (btw, Hi! )
15:47 moritz_ if it's all files: git checkout .
15:47 isBEKaml ^^what moritz_++ said
15:47 moritz_ oh, I forgot.. the *real* cleaning is  git reset --hard origin/master; git clean -xdf
15:48 moritz_ this also throws local commits away and files that are not under version control
15:51 moritz_ it took me quite some time to understand that 'svn revert' and 'git revert' have nothing in common, and that 'svn revert' is typically achieved in git with 'git checkout'
15:52 isBEKaml git revert is post commit, it seems. Btw, I don't normally do resets (don't know why, painful memories, perhaps ;) )and I usually end up with checkouts.
15:52 isBEKaml while svn revert is pre-commit.
15:53 moritz_ right; git revert creates another commit that nihilates the actions of a previous commit
15:54 * isBEKaml finally got hangman to compile (no output :D ). Will rewrite the whole thing in some time...
15:56 dalek rakudo: c6ecc98 | (Solomon Foster)++ | src/core/ (4 files):
15:56 dalek rakudo: Try to clean up and make consistent Real.Int, Real.Rat, and Real.Num.
15:56 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/c​6ecc980d7597c77deb9dc5872c5590b3c47ea39
15:57 colomon no worries, fixed up in that patch.
15:58 pugssvn r30716 | lwall++ | [advent2009-day02.t] remove parsefail
16:01 * [Coke] wonders how often perlcabal.org is updated.
16:01 [Coke] longer than the 15m that it says.
16:03 diakopter [Coke]: actually that one's not updated I think
16:03 diakopter for years
16:04 [Coke] the source seemed pretty close to docs/feather/index.html
16:04 colomon http://perlcabal.org/syn/S32/Numeric.html#Numeric
16:04 colomon "This page was generated at 2010-05-19 02:01:49 GMT."
16:04 diakopter colomon: I think [Coke] was referring to perlcabal.org/ ?
16:05 [Coke] http://perlcabal.org/
16:05 diakopter yes.
16:05 diakopter I don't think that's been updated in years
16:05 diakopter it's an svn checkout in audreyt's homedir, I think.
16:05 [Coke] diakopter: you mean in svn, or from svn?
16:06 [Coke] ah.
16:06 [Coke] well, I just updated the svn today. I'll leave it to someone else to figure out how to get the updates working.
16:06 diakopter commute-ish&
16:12 skangas joined #perl6
16:13 isBEKaml S12 -> "Perl 6 supports multiple inheritance, anonymous classes, and autoboxing.". Multiple Inheritance?
16:13 PerlJam isBEKaml: aye.  class Foo is Bar is Baz { ... }
16:13 jnthn class Snakebite is Beer is Cider { ... }
16:15 isBEKaml class Foo is Bar is Baz { ... } Does this mean Foo is both a Bar and a Baz or just that a Bar is a Baz and it inherits both of them in one fell swoop?
16:15 jnthn For is a Bar and a Baz
16:15 PerlJam isBEKaml: the former
16:15 isBEKaml expanding on the second case: a Foo is just a Bar that (Bar) had inherited Baz
16:17 PerlJam isBEKaml: I guess your second one could be a way to implement it but I'm not sure what the utility of all the anonymous classes would be.
16:18 k23z__ hey I don't understand this
16:18 k23z__ splitOn :: Eq a => [a] -> [a] -> [[a]]
16:19 k23z__ does this mean that spliton takes as parameter an (equation that takes as parameter a and returns a function ...
16:19 k23z__ what the hell is that ?
16:19 k23z__ I don't get it
16:20 k23z__ crap this is not #haskell sorry
16:20 bubaflub hahaha
16:20 phenny bubaflub: 13 May 08:23Z <moritz_> tell bubaflub sure, would be great to have some kind of systematic test for all of them - see http://perlcabal.org/syn/S02.html#line_1849 for the complete list; if you have troubles using one of them, feel free too ask
16:21 bubaflub k23z__: i don't understand it either!
16:21 k23z__ bubaflub, but you know haskell ?
16:21 bubaflub nope!
16:21 k23z__ I think it takes two parameters Eq and a
16:21 k23z__ and it returns some sort of thing
16:22 bubaflub you might be able to find a haskell person around here, but i'm not very familiar with it
16:22 cognominal k23z__, I do, sort of, I have not practized in a year.
16:22 ashleydev_ joined #perl6
16:23 cognominal I will probably warm up back to it because I will do a presnetation that compares multimethod diispatch and haskell pattern mathcing.
16:23 PerlJam k23z__: I don't remember the ":: Eq a" part right off but [a] is a list of something.
16:24 isBEKaml PerlJam: The way I see it, anonymous classes are simply a convenience. For example, you have a class that you want to instantiate with variables to set or define method callbacks, this would be the way to go. I don't know how they are done in perl6 though :(
16:24 ashleydev__ joined #perl6
16:24 PerlJam k23z__: so the function takes 2 lists of something and return a list of lists of something
16:24 PerlJam k23z__: or that's one way to look at it.
16:25 cognominal the => Eq a means splitOn depends the Eq class, like a Perl6 role
16:25 PerlJam k23z__: oh,  :: Eq a ... what cognominal  just said
16:25 jnthn isBEKaml: Anonymous classes are either class { ... } (that is, don't give it a name) or anon class Foo { ... }
16:25 jnthn isBEKaml: Of course, you should assign the result to something so you can actually use the anonymous class. :-)
16:26 cognominal the haskell class has many similarities with a Perl 6 role.
16:26 isBEKaml jnthn: Not too different from references? :-)
16:26 cognominal s/the/an/
16:26 jnthn isBEKaml: Well, what you get back is just the type object.
16:26 jnthn The same thing that gets installed in the namespace if you were not declaring an anonymous class.
16:27 isBEKaml jnthn: In this case Mu or Any, since we don't see any type assigned to them?
16:27 jnthn No, it's its own type.
16:27 jnthn Maybe doesn't know its name though.
16:27 jnthn rakudo: my $c = class { method m() { say "lol 42" } }; $c.new.m
16:27 p6eval rakudo 603c64: OUTPUT«lol 42␤»
16:27 isBEKaml jnthn: If I were to say my $fooclass = class {.. }
16:28 jnthn rakudo: my $c = class { method m() { say "lol 42" } }; say $c.WHAT
16:28 p6eval rakudo 603c64: OUTPUT«()␤»
16:28 jnthn No name
16:28 jnthn but
16:28 jnthn rakudo: my $c = anon class Wabulator { method m() { say "lol 42" } }; say $c.WHAT
16:28 p6eval rakudo 603c64: OUTPUT«Wabulator()␤»
16:28 isBEKaml then that would be base type, right? I thought of Mu or Any since all objects are derived from this..
16:28 isBEKaml ESLOWTYPIST :(
16:28 jnthn Well, yes, all things derive from that
16:29 jnthn A class - anonymous or otherwise - inherits from Any by default.
16:29 isBEKaml so why didn't we see Any() in my $c = class { blah } ?
16:30 jnthn rakudo: my $c = anon class Wabulator { }; say $c ~~ Any;
16:30 p6eval rakudo 603c64: OUTPUT«1␤»
16:30 jnthn rakudo: my $c = anon class Wabulator { }; say $c ~~ Mu;
16:30 p6eval rakudo 603c64: OUTPUT«1␤»
16:31 isBEKaml rakudo: my $c = class { method foomethod { say "foo!" } }; say $c.new.WHAT; say $c.WHAT;
16:31 p6eval rakudo 603c64: OUTPUT«()␤()␤»
16:31 isBEKaml rakudo: my $c = class { method foomethod { say "foo!" } }; say $c ~~ Any; say $c ~~ Mu;
16:31 p6eval rakudo 603c64: OUTPUT«1␤1␤»
16:32 jnthn Maybe we should make it say like <anon>() or something.
16:32 isBEKaml yes, that would be better. I was pretty confused when I first encountered .WHAT, thinking it to be pointing to a callable ;)
16:33 cdarroch joined #perl6
16:33 cdarroch joined #perl6
16:34 [Coke] rakudo: my $a = 3/7;
16:34 p6eval rakudo 603c64:  ( no output )
16:34 [Coke] rakudo: my $a = 3/7; # what is this failing with div, no applicable candidates for me locally. wtff.
16:34 p6eval rakudo 603c64:  ( no output )
16:35 * [Coke] updates.
16:39 isBEKaml rakudo: my $c = anon class { method foomethod { say "foo!" } }; $c.new.foomethod.perl.say;
16:39 p6eval rakudo 603c64: OUTPUT«foo!␤Bool::True␤»
16:39 isBEKaml rakudo: my $c = anon class { method foomethod { say "foo!" } }; say $c.new.foomethod;
16:39 p6eval rakudo 603c64: OUTPUT«foo!␤1␤»
16:40 isBEKaml why does it return a Bool::True when calling on anon objects?
16:40 isBEKaml rakudo: my $c = anon class { method foomethod { say "foo!" } }; say $c.foomethod;
16:40 p6eval rakudo 603c64: OUTPUT«foo!␤1␤»
16:41 isBEKaml rakudo: my $c = anon class { method foomethod { "foo!" } }; say $c.new.foomethod; say $c.foomethod;
16:41 p6eval rakudo 603c64: OUTPUT«foo!␤foo!␤»
16:41 isBEKaml D'oh! :(
16:42 isBEKaml rakudo: say say "something";
16:42 p6eval rakudo 603c64: OUTPUT«something␤1␤»
16:42 jnthn :-)
16:42 isBEKaml rakudo: say say "something".perl.say;
16:43 p6eval rakudo 603c64: OUTPUT«"something"␤1␤1␤»
16:43 isBEKaml this is not valid behaviour, right? shouldn't it throw an error or something?
16:44 jnthn isBEKaml: It's fine.
16:44 jnthn say returns True (provided the say is successful)
16:44 jnthn It's just a function.
16:45 isBEKaml jnthn: I was thinking of say as an handle to the output stream, then calling this handle to another handle on the output stream can't be right...
16:46 pyrimidine joined #perl6
16:46 isBEKaml jnthn: since it outputs something, wouldn't it be right to say that it should return a void type?
16:46 jnthn No
16:46 jnthn What if the output fails?
16:46 isBEKaml go to error?
16:47 isBEKaml again output an error (void type here)
16:47 jnthn In that case it returns a Failure object.
16:47 jnthn (or, under "use fatal", blows up immediately)
16:49 isBEKaml I see...
16:50 isBEKaml The Failure object here is implicit in most perl programs running in anonymous namespace, yes? or do we have to use ... or die $! ?
16:50 Tene isBEKaml: the 'say' function just calls the 'say' method on the $*OUT contextual variable.
16:51 Tene isBEKaml: You can say 'use fatal;' to die whenever a failure occurs.  If you don't, then the failures aggregate in $!, and on every scope exit, $! is checked to determine whether all of the failures have been handled or not.  If they haven't, they actually fail at that point.
16:51 bubaflub moritz_: ping
16:51 TimToady Tene: thanks for the .XCompose pointer; unfortunately both gnome and ibus appear to be blissfully hardwired to ignore it
16:52 justatheory joined #perl6
16:52 Tene Hmm.  There was something more I seem to remember doing to get X to notice it under gnome...
16:52 Tene I know that it can be done, but I don't remember how.
16:52 TimToady switching to XIM maybe?
16:52 Tene Could be.
16:52 moritz_ bubaflub: pong
16:53 Tene Are you sufficiently interested that you'd like me to go dig through IRC logs?
16:54 TimToady I just hesitate to switch back to something that the distribution folks consider to be two evolutionary steps more primitive. :)
16:54 bubaflub moritz_: sorry i was slow in getting that patch in for the S02-literals/pairs.t spec, i just finished finals
16:54 isBEKaml Tene: Thanks for the $! check on every scope exit - I was looking for that :)
16:54 bubaflub s/was/am/
16:54 justatheory joined #perl6
16:54 bubaflub moritz_: i'm a bit confused on how to test for the positional twigil
16:55 moritz_ bubaflub: you mean $^a?
16:55 bubaflub moritz_: yes
16:55 bubaflub moritz_: for context, this is part of the patch i have to test pairs and twigils
16:55 bubaflub http://gist.github.com/397483
16:56 moritz_ that .perl in there is wrong
16:56 moritz_ { $^a * 2 }  is short for   sub ($a) { $a * 2 }
16:56 moritz_ so you can write someething like
16:56 bubaflub moritz_: sorry, old gist, lemme update it
16:56 moritz_ my $pair_gen = { :$^a };
16:57 moritz_ $pair_gen(3); # should return a => 3
16:57 justatheory joined #perl6
16:57 bubaflub moritz_: updated
16:57 justatheory_ joined #perl6
16:57 moritz_ rakudo: my $a = 3; say :$a eqv a => 3
16:57 pugssvn r30717 | coke++ | [t/spec] add tests for day 14; rakudo skip'd 2, todo'd 1.
16:57 p6eval rakudo c6ecc9: OUTPUT«1␤»
16:58 [Coke] colomon - the two skip's are Num() related, if you want them.
16:58 moritz_ bubaflub: looks good... but please call them classes differently (Foo1 vs. Foo2 or so)
16:58 bubaflub moritz_: ok
16:58 [Coke] moritz_: file should be safe to whitelist.
16:59 bubaflub moritz_: ah, yes, when the skip block is gone they'll conflict
16:59 TimToady rakudo: my $a = 3; say :$a eqv "a" => 3
16:59 p6eval rakudo c6ecc9: OUTPUT«0  3␤»
16:59 TimToady note the difficulty
16:59 moritz_ they are actually named args to the operator, no?
16:59 TimToady rakudo: my $a = 3; say :$a eqv ("a" => 3)
16:59 p6eval rakudo c6ecc9: OUTPUT«1␤»
16:59 TimToady precedence problem
17:00 moritz_ oh
17:00 TimToady which ident => hides by being a single term
17:00 TimToady but => is of item assignment precedence otherwise
17:01 moritz_ [Coke]: two nit-picks: 1) testing for the exact form of .perl is a bad idea, since it's not specced as canonical
17:01 moritz_ [Coke]: 2) comparing floats should be done with is_approx
17:02 moritz_ (with the exception of Rat.perl being specced)
17:02 moritz_ but for ecample $rat.nude.perl could be made of less spaces, or List.new(3, 7) or so
17:04 moritz_ will push a fix soon
17:05 Su-Shee joined #perl6
17:05 isBEKaml moritz_: $rats are running nude? ewww...
17:05 Tene isBEKaml: My girlfriend has rats, and I've actually never seen them clothed.
17:06 isBEKaml Tene: atleast they are covered in fur, no?
17:06 Tene Well, yes.
17:06 isBEKaml that's not nude!
17:06 Tene A friend I had back in Utah kept hairless rats.  They were kinda creepy.
17:07 moritz_ rakudo: use Test; my $a = 1/60000 + 1/60000; is_approx $a, 3.33333333333333e-05;
17:07 TimToady http://en.wikipedia.org/wiki/Naked_mole_rat
17:07 p6eval rakudo c6ecc9: OUTPUT«ok 1 - ␤»
17:07 isBEKaml yes, very creepy. Imagine hairless rodents wrecking havoc in your place. ;)
17:08 TimToady if they wreck the havoc, then there will be no more havoc
17:09 * isBEKaml bites tongue. TimToady++
17:09 * moritz_ stupid
17:09 TimToady I assume you are not a native speaker, and you probably learned the mis-usage from a native speaker, so I don't blame you. :)
17:09 isBEKaml s/wreck/wreak/
17:10 pugssvn r30718 | moritz++ | [t/spec] make advent2009-day14.t a bit more robust
17:10 isBEKaml No, I'm not
17:11 isBEKaml the naked mole rat would surely win spots in the world's ugliest creatures contest. :)
17:11 TimToady well, the beetles might vote us the ugliest ape rat...
17:12 TimToady if it's one vote per species, though, I suppose bacteria will decide
17:12 isBEKaml lol, for a moment I read them as /beatles/
17:12 cognominal the naked ape does not even have a decent fur
17:12 TimToady except those with neandertal ancestry :)
17:14 dalek rakudo: 8816781 | moritz++ | t/spectest.data:
17:14 dalek rakudo: run another advent calendar integration test
17:14 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/8​8167814bc9acb4b80054f6a8ce12e6ee341369f
17:16 skangas joined #perl6
17:17 ash_ joined #perl6
17:19 pmurias joined #perl6
17:19 pmurias diakopter: hi
17:19 phenny pmurias: 06:20Z <diakopter> tell pmurias sorry for the delay. classes, attributes, methods working now.
17:20 pmurias diakopter: one bug that i just found is that if i omit an return in a method the program loops
17:21 dalek csmeta: r277 | pawelmurias++ | trunk/Sprixel/t/class.t:
17:21 dalek csmeta: expand t/class.t
17:21 dalek csmeta: review: http://code.google.com/p/c​smeta/source/detail?r=277
17:21 molaf joined #perl6
17:29 cognominal TimToady S12:463  -> "Normally a space is required after the colon to disambiguate what follows from from a pair that extends the previous name." ~~ s/from from/from/
17:30 PerlJam he was doubling for emphasis  ;)
17:32 takadonet rakudo: say 'hello all'
17:32 p6eval rakudo c6ecc9: OUTPUT«hello all␤»
17:33 hercynium joined #perl6
17:33 [Coke] moritz_: I note you also changed a .WHAT to a ~~ : - while that's arguably a better test, it's not what's in the advent page.
17:33 [Coke] moritz++ for the approx updates.
17:33 cognominal I am never too sure if  I should attribute such things to my poor english understanding or TimToady overcuteness
17:34 diakopter pmurias: yes, a return statement is required; not a bug
17:36 PerlJam cognominal: word doubling is usually a mistake  ... there's even a chapter in the Perl 6 book that gives some Perl 6 code for fixing it.
17:37 diakopter pmurias: well, maybe the failure to detect lack of return statement is a bug
17:38 jnthn PerlJam: That's very very often the case, yes. :-)
17:38 cognominal so S04 is so so?
17:39 TimToady nod nod
17:39 cognominal hum, apparently the current form is so-so, so that does not count as a doubling.
17:39 TimToady quite quite
17:39 cognominal s/current/correct/
17:40 k23z__ http://upload.wikimedia.org/wikipedia/commons/b/b​5/John_Bull_-_World_War_I_recruiting_poster.jpeg
17:40 TimToady anyway, I don't know of prepositional doubling forms, except for possibly, "Up, up, and away".  :)
17:42 sorear though m:s/(\w+) $0/ can still be valid, if the contexts differ
17:42 sorear that that is a common case
17:42 sorear when one that is a pronoun and the other that is a connective
17:42 sorear that that works, works
17:44 arnsholt Ah, the joys of NLP =)
17:45 cognominal natural language is so illogic,  double negative can still be negative  like "I don't take no shit" and a double positive is not even always a positive : "yea, right"
17:46 isBEKaml like "I don't know nothing" ~~ "I know everything" ? ;)
17:46 arnsholt cognominal: That last one probably falls under the heading "sarcasm", but yeah. There are a lot of interesting stuff going on
17:48 cognominal meaning, that language is ambiguous or downright meaningless without context.
17:48 arnsholt How to interpret a doubled negative is interesting as well. IIRC it's language-dependent. In some languages it reinforces the negation (Russian), while in others it reverses it (Latin and Sanskrit do this)
17:48 arnsholt Yeah, context is very important
17:49 cognominal And some are against context in computer language. Like crockford who is against the "with" construct in PostScript (not even for performance reason).
17:50 cognominal The wikipedia as a whole article on the subject :  http://en.wikipedia.org/wiki/Double_negative
17:52 justatheory joined #perl6
17:53 justatheory joined #perl6
17:54 justatheory_ joined #perl6
17:57 justatheory_ joined #perl6
18:01 TimToady "All music is folk music--ain't never heard no horse sing no song." --Louis Armstrong
18:02 [particle] louie didn't know mr. ed.
18:03 PerlJam He was just a little too anthropocentric.
18:03 cognominal "We don't need no education We don't need no thought control" -- Pink Floyd
18:03 TimToady I don't recall Mr. Ed singing, but it's possible I put it out of my memory :)
18:04 stephenlb joined #perl6
18:06 diakopter "with" in js makes for way too much runtime ambiguity
18:06 [particle] you don't remember "mr. ed's blues"?
18:10 justatheory_ joined #perl6
18:10 justatheory joined #perl6
18:10 justatheory_ joined #perl6
18:11 justatheory_ joined #perl6
18:11 justatheory joined #perl6
18:12 justatheory joined #perl6
18:13 justatheory_ joined #perl6
18:13 justatheory_ joined #perl6
18:13 cognominal rakudo:   class Tutu { token a { a }  }  # is the grammar keyword equivalent to the class keyword and just a hint about its intended purpose?
18:13 p6eval rakudo c6ecc9:  ( no output )
18:14 cognominal or has it some special semantic that escapes my attention?
18:15 [Coke] diakopter: but it does make for some very concise code.
18:15 justatheory joined #perl6
18:15 justatheory joined #perl6
18:16 justatheory joined #perl6
18:16 justatheory_ joined #perl6
18:16 justatheory__ joined #perl6
18:17 justatheory joined #perl6
18:17 diakopter theory: you flap
18:18 justatheory joined #perl6
18:21 kst joined #perl6
18:30 justatheory_ joined #perl6
18:36 Guest78801 joined #perl6
18:39 yahooooo joined #perl6
18:41 M_o_C joined #perl6
18:49 colomon joined #perl6
18:49 colomon whoops
18:49 colomon colomon--
18:49 jnthn colomon: Aww...'sup?
18:49 colomon pretty sure I broke the build...
18:50 colomon wardrove around the outlet mall until I could find someplace with wifi
18:50 colomon has anyone noticed and fixed it yet?
18:50 jnthn cognominal: No, it implies a different metaclass. But actually all the metaclass does different is change the default parent.
18:51 colomon (basically I didn't have all my local changes committed when I pushed before getting in the car for the epic trip home.)
18:51 jnthn cognominal: So grammar means you default parent is not Any, but (something that derived from Cursor)
18:52 jnthn colomon: I didn't notice, and I didn't notice anybody else noticing.
18:52 colomon huh.
18:53 colomon definitely looks like it should be broke.
18:53 colomon let me see if I can push the fix.
18:53 [Coke] NO ULL BREAK IT
18:53 colomon I mean, it shouldn't even compile at the moment...
18:54 k23z__ left #perl6
18:54 colomon I just pushed a not-spec-tested change as well, but I think it should be safe.
18:54 dalek rakudo: f6374ad | (Solomon Foster)++ | src/core/Real.pm:
18:54 dalek rakudo: Real.Int is now just sugar for Real.truncate.
18:54 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/f​6374adbe7d1dfc91389966d6aae9cb74defecb4
18:54 dalek rakudo: ad8556c | (Solomon Foster)++ | src/core/Num.pm:
18:54 dalek rakudo: modf is now a local function instead of a private function; call it accordingly.
18:54 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/a​d8556c438cc962b12eb4da4d66d25636f1884af
18:54 colomon If not, revert f6374ad
18:54 [Coke] will that modf fix fix day 14?
18:55 colomon [Coke]: doubt it.
18:55 colomon what's wrong with day 14?
18:55 [Coke] k
18:55 colomon I need to be going soon, but I can take another minute or two....
18:55 TimToady I just did realclean, pull, reconfig, and it built
18:55 [Coke] rakudo:  3.14.Rat.perl
18:55 p6eval rakudo 881678:  ( no output )
18:55 colomon TimToady: what is your highest patch?
18:56 [Coke] rakudo:  say 3.14.Rat.perl
18:56 p6eval rakudo 881678: OUTPUT«157/50␤»
18:56 [Coke] ... that looks like you fixed it, yah. =-)
18:56 diakopter pmurias: how goes it
18:56 TimToady colomon: how do I find htat out?
18:56 colomon git log
18:56 colomon TimToady: git log
18:56 colomon the first line should be commit <huge hex number>
18:57 colomon and the huge hex is what I'm looking for.
18:57 SmokeMachine joined #perl6
18:57 TimToady 88167814bc9acb4b80054f6a8ce12e6ee341369f
18:57 colomon huh.
18:57 colomon well, I guess I didn't break the build, then.
18:57 colomon but darned if I understand how.
18:57 colomon (how I didn't)
18:57 colomon well, hopefully the latest two patches don't break it either.  :)
18:58 TimToady trying
18:58 colomon gotta run.  will check back in when we reach home (we're an hour away plus at least two more shopping stops)....
18:58 colomon ooo, I can wait a sec for TimToady++
18:59 TimToady (just a remake)
18:59 TimToady fortunately this T61 is pretty fast, obra++
19:00 j1n3l0 joined #perl6
19:00 TimToady worked
19:00 TimToady colomon++ for sweating at least
19:00 M_o_C joined #perl6
19:00 colomon \o/
19:00 TimToady go in peace
19:00 colomon all right, catch y'all later!
19:02 jnthn colomon++
19:02 pugssvn r30719 | coke++ | remove fudge, latest rakudo passes these.
19:02 [Coke] day14 all unfudged, whee.
19:04 jnthn \o/
19:11 jnthn master builds for me.
19:11 jnthn :-)
19:11 pugssvn r30720 | coke++ | fix urls for days 19&20
19:22 * [Coke] peers at http://perl6advent.wordpress.com/200​9/12/19/day-19-whatever/#comment-212
19:23 sorear that's not a bug as such
19:24 sorear Whatever currying is NYI
19:24 sorear except in the special cases of * + *, * + N, and * - N
19:24 sorear alpha: (* * *).(2,3).say
19:24 p6eval alpha 30e0ed: OUTPUT«too many positional arguments: 2 passed, 1 expected␤in Main (file <unknown>, line <unknown>)␤»
19:29 arnsholt Are the semantics of multiple Whatevers in an expression hammered out yet?
19:29 sorear yes
19:29 sorear they turn into separate arguments
19:29 arnsholt 'k
19:29 sorear *+* is basically the same as &infix:<+>
19:30 sorear rakudo: (1, 1, *+* ... *).batch(20).eager.perl.say
19:30 p6eval rakudo 881678: OUTPUT«(1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765)␤»
19:30 sorear rakudo: (1, 1, &[-] ... *).batch(20).eager.perl.say
19:30 p6eval rakudo 881678: OUTPUT«get_attr_str() not implemented in class 'Perl6MultiSub'␤current instr.: 'perl6;Code;signature' pc 14018 (src/builtins/Str.pir:28)␤»
19:30 arnsholt Yeah. But at some point it was (I think) a bit uncertain if multiple Whatevers should be independent or be one argument
19:32 PerlJam arnsholt: indeed.
19:33 circuitbreaker joined #perl6
19:36 sorear TimToady: Can you explain to me how the _xact mechanism works?
19:38 arnsholt An expression with multiple Whatevers in it should be the same as sub($arg1, arg2, ...) { $the-expression } right?
19:41 TimToady sorear: it's really just dynamic context pointers up to the root, but threaded through all the cursor "continuations"
19:41 TimToady each xact has a transaction type, a valid flag, and a pointer upward
19:41 TimToady the funny -1 -2 trick was so I could have optional fields after the type, but haven't used them
19:42 TimToady any backtracking control merely needs to run up its chain of pointers and invalidate all the operations that are being "cut"
19:43 TimToady and all choice points that care will check the validity of their xact before proceeding to another alternative
19:43 TimToady this could be done with real dynamic variables if we had them, and if we had real continuations
19:44 fengshaun is perl6 ready for day to day use?
19:44 TimToady still depends on what you want to use it for
19:44 fengshaun I'm not picky, as long as it doesn't crash too often
19:45 TimToady "too often" is also negotiable :)
19:45 sorear crashes are extremely rare
19:45 fengshaun lol!
19:45 PerlJam fengshaun: The only way for you to find out is to try it. :)
19:45 TimToady but it's a lot more stable than it used to be
19:45 sorear more often, what you'll get is a NYI error
19:45 fengshaun PerlJam: true
19:45 [Coke] fwiw, another rakudo release is due out tomorrow.
19:45 fengshaun sorear: that's enough for me, as long as it's not "often"
19:45 [Coke] (you can always try out the version in git.)
19:45 PerlJam fengshaun: http://rakudo.org/how-to-get-rakudo   too
19:46 fengshaun but perl5 libraries won't work, right?
19:46 TimToady the two major irritations right now are probably lack of speed, and strange error messages that don't help you as much as they could.
19:46 sorear TimToady: so basically, xact is used to implement non-local cuts
19:46 TimToady yes
19:46 fengshaun PerlJam: we have it in AUR in Archlinux
19:46 fengshaun how's the library support?  lacking a lot of them?
19:47 fengshaun WWW, Net, Curses
19:47 PerlJam Hmm.
19:48 jnthn fengshaun: There is a project called Blizkost, which goes some way to making Perl 5 libraries usable from Rakudo.
19:48 bubaflub i know parrot just got some LWP and some Archive ZIP and Tar support
19:48 PerlJam Perl 6 doesn't quite yet have a CPAN
19:48 fengshaun jnthn: thanks, I will check that out.
19:48 jnthn http://github.com/jnthn/blizkost
19:48 fengshaun PerlJam, bubaflub: thanks!
19:48 sorear > use CGI:from<perl5>; say CGI.new.header
19:48 sorear Content-Type: text/html; charset=ISO-8859-1
19:49 PerlJam fengshaun: There's a Rakudo distribution due out in June called "Rakudo Star" or "Rakudo *"  It should have many of the things you're asking about.
19:49 ShaneC joined #perl6
19:49 sorear right now, you normally have to compile a custom perl 5 to use blizkost
19:49 sorear I'm hoping to fix that soon
19:49 PerlJam seen pmichaud
19:50 ShaneC left #perl6
19:50 PerlJam Is there a seen bot here?
19:50 fengshaun if I can get blizkost to work properly...only if...!
19:50 jnthn buubot: seen pmichaud
19:50 buubot jnthn: I last saw pmichaud saying "spack IEEE" at Sat Aug 29 03:18:43 2009 Z.
19:50 PerlJam ah. buubot
19:50 jnthn ...er...
19:50 bubaflub fengshaun: what are you looking to accomplish?
19:50 PerlJam but, buubot is wrong.
19:50 jnthn Very.
19:50 fengshaun bubaflub: nothing specific, to be honest!  Just searching for information :)
19:51 fengshaun information on the state of things on perl6
19:51 cognominal sorear: for info,  I compiled  blizkost successfully with perl 5.12 but it crashes when the perl5 interpreter starts
19:51 PerlJam So ...  I just wanted a little empirical evidence that pmichaud hasn't been around much the last few days so that I could infer that he is happily, busily make Rakudo better  :)
19:51 sorear cognominal: I'm running it on 5.12
19:52 cognominal ho
19:52 sorear cognominal: can you nopaste the output of perl -V and your blizkost version?
19:52 PerlJam s/make/making/
19:52 cognominal sorear++ :yes!
19:53 cognominal getting the last blizkost before
19:56 lisppaste3 cognominal pasted "perl " at http://paste.lisp.org/display/99480
19:56 sorear cognominal: What did I do to get the ++?
19:56 cls_bsd joined #perl6
19:56 sorear oh, -DDEBUGGING
19:56 sorear I haven't tested that
19:56 * sorear makes note
19:56 cognominal the @INC and PERL5LIB are scary
19:57 cognominal so much stuff there
19:58 cognominal sorear, I will compile without -DDEBUGGING and keep you posted.
19:58 sorear also experiment with -Duseshrplib
19:58 sorear Parrot extensions need to be dynamically linked
19:59 sorear your Perl is not built as a dynamic library
19:59 cognominal I am not sure how to do that...
19:59 sorear on Linux, this causes significant performance loss; I don't know if it could explain crashes on Mach
19:59 sorear ./Configure -des -Duseshrplib -Duseithreads
20:00 TimToady phone
20:00 cls_bsd joined #perl6
20:05 cls_bsd joined #perl6
20:10 cls_bsd joined #perl6
20:15 M_o_C joined #perl6
20:15 cls_bsd joined #perl6
20:18 pmichaud no phone today?
20:18 pmichaud or am I just too late?
20:19 hercynium joined #perl6
20:21 cls_bsd joined #perl6
20:22 [Coke] we finished up quick.
20:22 [Coke] Just email report?
20:24 molaf joined #perl6
20:26 cls_bsd joined #perl6
20:27 vinanna joined #perl6
20:28 molaf joined #perl6
20:31 cls_bsd joined #perl6
20:31 cognominal sorear++ # it works!
20:36 cls_bsd joined #perl6
20:40 pmichaud yes, will email report
20:41 cls_bsd joined #perl6
20:48 ajs joined #perl6
21:10 diakopter [Coke]: the planetsixes aren't getting my latest post
21:10 diakopter [Coke]: nm; yes it is
21:10 diakopter [Coke]: oh, I see, it does't adjust the timestamps for timezone.
21:10 diakopter :)
21:11 [Coke] diakopter: ... np!
21:11 [Coke] ;)
21:28 pmurias diakopter: how do i specify that a subroutine doesn't return nothing in perlesque?
21:32 Intensity joined #perl6
21:40 pmurias diakopter: other thing shouldn'attribute declarations be written as has int $.foo in perlesque?
21:40 lue OHi there
21:40 sahadev left #perl6
21:55 lue hello? [hello...ello...llo]
21:57 jogla joined #perl6
22:03 diakopter phenny: tell pmurias re: has int $.foo , yeah, I should change that I guess. I don't see the point of the extra . though
22:03 phenny diakopter: I'll pass that on when pmurias is around.
22:04 diakopter phenny: tell pmurias re: subroutine not returning, I don't know...
22:04 phenny diakopter: I'll pass that on when pmurias is around.
22:04 diakopter TimToady: may I spec the &:(--> int) thing for strongly-typed closures? it'd be much preferable to requiring the Callable[] to fake it
22:11 jogla joined #perl6
22:14 [Coke] so /that's/ what jnthn looks like.
22:15 jnthn [Coke]: ... :-)
22:19 lue .oO(Oh! People! Quick, Alt-Tab to the chat window!)
22:20 dvjennings joined #perl6
22:27 dvjennings ido/j #svn-dev
22:43 ejs joined #perl6
22:47 diakopter constructors are tricky
22:49 Exodist joined #perl6
22:50 PacoLinux joined #perl6
22:51 lisppaste3 joined #perl6
22:51 TimToady diakopter: sure, you can spec it; I'll even reissue your commit bit if you want to do it aboveboard this time. :)
22:52 diakopter heh
22:53 TimToady does your veradox address still work?
22:56 sorear aboveboard?
22:56 sorear TimToady: Is there any deep magic in LazyMap?
22:57 TimToady you mean, other than that I had to whack on it for several days to get it right?
22:57 diakopter yes
22:57 TimToady shall I reissue the bit then?
22:57 diakopter no plz
22:58 diakopter I mean, no thx
22:58 sorear TimToady: I mean, it'd like to just abstract it as "This is a lazy list"
22:58 sorear in my mind
22:58 Psyche^ joined #perl6
22:59 sorear if this were in Perl 6, could LazyMap be replaced with native lazy lists?
22:59 TimToady the tricky bit semantically is that it is *never* lazy on the first element
22:59 [circuitbreaker] joined #perl6
22:59 TimToady or we couldn't guarantee to have ->[0] be a Cursor
23:00 TimToady I think it could be replaced by real lazy lists
23:01 TimToady as long as they are flattened appropriately to get a list of Cursors, and not have Parcels popping out
23:01 TimToady they'd be a good stress test for a lazy list implementation, in fact.  :)
23:02 jogla left #perl6
23:03 sorear Why would Parcels pop out?
23:03 TimToady if you did .getarg
23:03 TimToady and if there were any embedded parcels
23:03 * sorear doesn't grok parcel/slicel/etc and is looking at this using his Haskell model kit
23:03 sorear (yet)
23:04 TimToady parcels don't know how they will be bound yet, so provisionally keep inner parcel boundaries intact
23:04 TimToady a slicel is just a parcel that knows it has been ; separated, I suspect
23:04 TimToady so we can distinguish a subscript .[1,2,3] from .[1;2;3]
23:05 TimToady so it should expect one level more level of indirection on its subslices
23:05 sorear Under what circumstances is the difference between (1,2,3) and (1,(2,3)) significant?
23:06 TimToady that is, whatever handles .[1,2,3] can be called by .[1,2,3;4,5,6] to handle the first dimension
23:06 TimToady when you call foo(1,2,3) vs foo(1,(2,3))
23:06 TimToady and you have multi ($,$,$) vs ($,$)
23:06 sorear Does the parameter get bound to the parcel?
23:07 TimToady in the second case, the (2,3) would get bound as the second arg
23:07 TimToady hence "getarg"
23:07 TimToady vs bare "get", which flattens
23:07 sorear Why is this superior to requiring (1,[2,3])?
23:08 TimToady (2,3) is immutable?
23:09 TimToady and (2,3) knows to flatten if it gets into list context
23:09 TimToady whereas [2,3] never does
23:09 TimToady every return of a list returns a (2,3), basically
23:10 TimToady so each take, each map subcall, returns a (), which flattens in list context, as a p5 programmer expects
23:10 TimToady but you can still get the structure if you want it by binding it via ** instead of *
23:12 sorear mm
23:12 sorear I'm getting closer.
23:12 * sorear wonders if he is leading himself astray by thinking of LazyMap as the List monad
23:14 TimToady well, LazyMap knows nothing about parcels, so in some sense it is more similar to a monad than a P6 list is; but it's really more like a lazy Perl 5 list, if there were such a thing.... :)
23:15 TimToady certainly LazyMap can have side effects outside the "monad"  :)
23:16 TimToady plus Lazymap really does have the map semantics at every level
23:16 sorear "map" semantics?
23:16 TimToady one of the tricky bits is to call each map closure only once on a bit of data
23:17 TimToady it's making map {...}, @list  lazy, specifically
23:17 TimToady well, omit the , in p5
23:18 TimToady but all of the laziness is implemented with map-like closures, basically
23:19 sorear are the one-letter field names an optimization?
23:19 TimToady yes
23:19 TimToady sorry :)
23:20 TimToady block, called, lazies
23:21 sorear transact
23:22 TimToady the transaction bits of it are fairly newish
23:24 TimToady when I realized throwing exceptions to do cuts doesn't work when some of your dynamic state context is off of the real stack.
23:24 sorear and I guess Scope::Guard is too heavyweight
23:24 TimToady and as far as I know, p5 doesn't support cactus stacks yet
23:24 * sorear looks up cactus stacks
23:25 TimToady stacks with "alternate universes" basically :)
23:25 sorear the wikipedia article is pretty clear, for once
23:25 TimToady where many universes share the base of the stack
23:26 * sorear is very familiar with the concept but not the name
23:26 TimToady it might not be the modern term  :)
23:26 TimToady but it's quite descriptive...
23:27 TimToady assuming you're thinking of the prototypical cactus from Arizona...
23:33 sorear what is 'N'?
23:39 sorear oh
23:39 TimToady number of real values we've returned, so that we can guarantee that the first one is reified, so that the ratchet code can just subscript the first element (if any) and assume it's a real result
23:40 sorear Do we ever return fake values?
23:41 TimToady only where we know they will be run through another lazymap call to make sure there's at least one real one
23:41 pugssvn r30721 | diakopter++ | [S06] specify syntax for strongly-typed closure variables
23:42 TimToady of course, it's also perfectly legal to return 0 values, which is how failure is returned
23:42 sorear Can you parse return $candidate unless $xact->[-2] and $n; for me?
23:42 TimToady xact->[-2] says whether this list has been "cut"
23:43 TimToady $n is how many real values we've returned
23:43 TimToady the cut only applies to the 2nd and subsequent value, in other words
23:44 TimToady because the first value in the list is, in essence, the "current" hypothesis
23:44 pugssvn r30722 | diakopter++ | [S06] specify syntax for strongly-typed closure variables (reprise)
23:44 TimToady which is cutting away the rest of them.
23:46 TimToady otherwise the current hypothesis ends up commiting suicide, which is not desirable  :)
23:47 TimToady or to look at it another way, there's a pedigree of hypotheses in our dynamic context, and some of them may have been
23:48 TimToady already pulled from their lazymap, and some not
23:48 TimToady we have to handle it either way.
23:49 rgrau_ joined #perl6
23:49 felipe joined #perl6
23:50 TimToady it's quite possible there's a more elegant way to do that, but it might also be beyond p5's capabilities
23:50 BrowserUk left #perl6
23:51 eternaleye moritz_: (backlogging) re "Where did class 'Block' come from" - you capitalized pi, so it looked for a sub instead of the (lowercase) constant
23:51 phenny eternaleye: 11:52Z <quester_> tell eternaleye The only problem with your definition of the Camellia metaop »ö« is that you have to declare "our sub infix:<ö>" and not just "sub infix:<ö>".
23:51 eternaleye erm, colomon capitalized it, and you realized. nvm
23:52 TimToady well, you have to declare it 'our' in rakudo, but that's a bug really
23:52 TimToady multi dispatch isn't supposed to have to look in packages
23:53 eternaleye TimToady: I use ibus, and compose works. Just put "xmodmap 'keysym Caps_lock = Multi_key'" somewhere it'll run on starting X, like bashrc or an autostart script
23:57 TimToady ibus under gnome?  or kde?
23:58 Tene eternaleye: the issue was reading the .XCompose file, I thought.
23:59 justatheory joined #perl6

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

Perl 6 | Reference Documentation | Rakudo