Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2010-02-09

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:03 ash_ joined #perl6
00:04 nihiliad joined #perl6
00:31 k23z__ joined #perl6
00:42 lichtkind joined #perl6
00:44 lichtkind moritz_: machst du was diesjahr beim perl workshop?
01:12 astoria` joined #perl6
01:19 am0c joined #perl6
01:26 eternaleye joined #perl6
01:36 lue joined #perl6
01:37 lue hello there.
01:38 solarion joined #perl6
01:54 colomon o/
01:58 lue ...yes?
01:59 lue ng: loop(my $i=0; $i<=3; $i++){say $i;}
01:59 p6eval ng 8faeb9: OUTPUT«Whitespace required after 'loop' at line 1, near "(my $i=0; "␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (src/stage0/HLL-s0.pir:328)␤»
01:59 lue ng: loop (my $i=0; $i<=3; $i++){say $i;}
01:59 p6eval ng 8faeb9: OUTPUT«0␤1␤2␤3␤»
02:00 colomon o/ is smiley-ish for waving hand, ie hello.
02:00 colomon or \o
02:00 colomon \o/ is great excitement, like jnthn fixing file I/O.
02:00 lue ah, that's what that is. I say yes? because nothing much is going on.
02:01 lue \O/ is when your mouth is surgically torn bigger. And it hurts.
02:02 Limbic_Region joined #perl6
02:09 eternaleye and /o\ is covering your head, like after one makes a bad pun
02:10 lue |o| is your hands straight in the air.
02:11 colomon I sometimes thing |o| should be "touchdown!"
02:13 eternaleye I thought it looked more like a field goal...
02:16 lue or a tight-knit game of ping pong.
02:16 colomon \o\  /o/  \o\  /o/
02:17 lue the wave?
02:18 colomon I was thinking more some sort of happy dance.
02:18 colomon .o.   .o.   |O|   .o.  strikes me as a bit more wave-like.
02:21 lue I wonder, do the symbols ≤ and ≥ work like they should in perl 6?
02:21 lue or are they treated as brackets?
02:22 eternaleye \o/ /`o'\ /o_ /o\
02:22 lue YMCA
02:22 lue rakudo: say "hello w/ quotes"; say <hello w/ angle brackets>; say ≤hello test≥;
02:22 p6eval rakudo 1d4928: OUTPUT«say requires an argument at line 10, near " \u2264hello te"␤in Main (file src/gen_setting.pm, line 2593)␤»
02:23 eternaleye rakudo: say 1 ≤ 2
02:23 p6eval rakudo 1d4928: OUTPUT«Confused at line 10, near "\u2264 2"␤in Main (file <unknown>, line <unknown>)␤»
02:23 lue rakudo: say 1<=0; say 1≤ 0;
02:23 p6eval rakudo 1d4928: OUTPUT«Confused at line 10, near "\u2264 0;"␤in Main (file <unknown>, line <unknown>)␤»
02:23 lue wonder if those symbols would be legal perl6?
02:23 colomon rakudo: sub infix:<≤>($a, $b) { $a <= $b; } say 1 ≤ 2
02:23 p6eval rakudo 1d4928: OUTPUT«Confused at line 10, near "say 1 \u2264 2"␤in Main (file <unknown>, line <unknown>)␤»
02:24 colomon They should be legal perl 6, wonder why it's not working there?
02:24 lue pugs: say 1 ≤ 2;
02:24 p6eval pugs: OUTPUT«*** ␤    Unexpected "\8804"␤    expecting operator, ":" or ","␤    at /tmp/6e3pm2rgNl line 1, column 7␤»
02:24 eternaleye rakudo: multi sub infix:<≤>( $left, $right ) { $left <= $right; }; say 1 ≤ 2
02:24 p6eval rakudo 1d4928: OUTPUT«1␤»
02:24 colomon rakudo: sub infix:<≤>($a, $b) { $a <= $b; }; say 1 ≤ 2
02:24 p6eval rakudo 1d4928: OUTPUT«1␤»
02:25 colomon ah, it didn't work because I left off the (needed for one-liner) semicolon after the sub declaration.
02:25 colomon rakudo: sub infix:<≤>($a, $b) { $a <= $b; }; say 11 ≤ 2
02:25 p6eval rakudo 1d4928: OUTPUT«0␤»
02:25 colomon rakudo: sub infix:<≤>($a, $b) { $a <= $b; }; say 2 ≤ 2
02:25 p6eval rakudo 1d4928: OUTPUT«1␤»
02:25 lue it should be. After all, you can use «» brackets, something I've almost never seen before perl6 :)
02:26 lue Thanks to perl 6, I have the urge to find the most obscure brackets to use, just because I can.
02:26 eternaleye lue: ≤ isn't in the unicode bracket set
02:26 eternaleye Only things marked as brackets in unicode (with one exception I can't remember) can be used as such
02:27 eternaleye I think.
02:27 eternaleye If I'm wrong, someone please correct me
02:28 lue Makes sense. Logically, they aren't brackets.
02:28 lue I'm talking about brackets the typical englishman might not see (japanese quotes, for one)
02:33 eternaleye rakudo: multi sub infix:「≤」( $left, $right ) { $left <= $right; }; say 1 ≤ 2
02:33 p6eval rakudo 1d4928: OUTPUT«Malformed routine definition at line 10, near "infix:\u300c\u2264\u300d("␤in Main (file <unknown>, line <unknown>)␤»
02:33 eternaleye nope, apparrently not yet
02:34 lue I remember reading in the official specification, if the unicode says they're brackets, they are to work. (S01, i think...)
02:34 eternaleye Yeah, probably just NYI
02:35 lue rakudo: say "hello"; say <hello>;
02:35 p6eval rakudo 1d4928: OUTPUT«hello␤hello␤»
02:35 lue rakudo: say "hello"; say <hello>; say “hello”;
02:35 p6eval rakudo 1d4928: OUTPUT«say requires an argument at line 10, near " \u201chello\u201d;"␤in Main (file src/gen_setting.pm, line 2593)␤»
02:35 lue fun with brackets and symbols :D
02:35 eternaleye But when you use them as _delimiters_ in a quoting construct, it does balance them properly
02:35 eternaleye rakudo: say q「foo」
02:35 p6eval rakudo 1d4928: OUTPUT«foo␤»
02:36 eternaleye (I study Japanese, so I have an input method that can produce those brackets conveniently.)
02:37 lue same reason (kinda) I can type ≤≥ quickly.
02:43 lue I wonder if ≤ ≥ and ≠ are legal perl6 operators?
02:50 lue if they aren't, then they should be.
02:55 woe joined #perl6
03:00 * lue ECHO EcHo echo...
03:04 eternaleye lue: They are legal, they just aren't defined. You can use the 'multi sub infix:<your_op_here>( $foo, $bar ) { ... }' syntax to define them
03:08 lue hooray! Now for inequality TIMTOWTDI
03:10 drbean joined #perl6
03:14 lue So, putting them in the ng code is perfectly OK?
03:15 colomon No, ng isn't set up to allow user-defined operators yet.
03:16 colomon they work fine in master, however.
03:16 lue I mean, as part of the official spec type thing (putting in operators.pm, for example)
03:16 colomon oh, sure.  you have to add them to the grammar.
03:17 cl58 joined #perl6
03:17 cl58 moritz_: ping
03:18 cl58 left #perl6
03:20 lue I'll add them in later if no one beats me to it. I have to go do stuff.
03:22 colomon lue: I don't think there's any particular reason to add them...
03:22 colomon might be a good exercise just to see how it is done, on the other hand.
03:23 Chillance joined #perl6
03:41 agentzh joined #perl6
03:53 eternaleye lue: When I said 'legal, but not defined' I didn't mean 'in the spec, but NYI' - I meant 'are legal Perl 6 if you define an operator with that name'
03:53 eternaleye I don't know if they are in the spec
03:54 colomon I'm pretty sure they're not, see http://perlcabal.org/syn/S03.html#Operator_precedence
03:54 eternaleye Thought so
03:55 eternaleye lue: ^^^ Thus, they shouldn't go in operators.pm.
04:06 lue Too bad. They sure would be fun to have though. (we're -Ofun remember?)
04:06 eternaleye Hm, http://perlcabal.org/syn/S03.html#Comparison_semantics talks about how cmp is basically eqv that checks ordering rather than just equivalence, but while it says === checks .WHICH, it doesn't give any clues on how a type may impose an ordering on its values using methods. Is overriding cmp the canonical Way To Do It, or is there a method I'm not seeing which fits the mapping of { ++ => '.succ', === => '.WHAT' } et al?
04:07 colomon eternaleye: I don't think there is a canonical way to do it yet.
04:08 lue ...the synopsis can change... right?
04:08 eternaleye err, s/.WHAT/.WHICH/
04:08 * lue Who, me? I'm not acting suspicious, youre acting suspicious!
04:08 eternaleye lue: Yes, that's the main reason I asked the question
04:08 colomon Right now, for instance, before and after are implemented in terms of cmp.  But when I did that, pmichaud suggested it might make sense to do it the other way around.
04:09 eternaleye colomon: But before and after are still operators, rather than methods. Does that mean that there should be .before and .after methods?
04:10 colomon no, you'd just use multi operators to define it for different types.
04:15 colomon overriding cmp, or overriding after/before, whichever turns out to be correct in the final analysis.
05:06 mberends joined #perl6
05:13 autark joined #perl6
05:13 petdance joined #perl6
05:16 k23z__ joined #perl6
05:17 autark left #perl6
05:20 lue I only thought of the ≤ ≥ when playing around with the third-level on my keyboard and happening upon those symbols.
05:21 lue (I would personally implement it in my perl6 projects because it looks cleaner.)
05:21 cjk101010 joined #perl6
05:30 k23z__ joined #perl6
05:37 lue rakudo: my $cale=NaN; say $cale;
05:37 p6eval rakudo 1d4928: OUTPUT«NaN␤»
05:38 lue rakudo: multi sub infix<•>($a, $b){$a*$b;};say 5•4;
05:38 p6eval rakudo 1d4928: OUTPUT«Malformed routine definition at line 10, near "infix<\u2022>($"␤in Main (file <unknown>, line <unknown>)␤»
05:38 lue rakudo: multi sub infix:<•>($a, $b){$a*$b;}; say 5•4;
05:38 p6eval rakudo 1d4928: OUTPUT«20␤»
05:43 lue rakudo say "echo"*3;
05:43 lue rakudo: say "echo"*3;
05:43 p6eval rakudo 1d4928: OUTPUT«0␤»
05:44 lue heh, old python habits :)
05:53 lue this silence is ear-splitting.
05:53 lue I can hear the evalbot recompiling ng.
05:54 lue ng: say "hello";
05:54 p6eval ng 8faeb9: OUTPUT«hello␤»
05:55 lue hm, what _was_ that noise then?
06:00 * lue is trying to instill life into the irc. Going into the future to find hope.
06:03 galf joined #perl6
06:03 galf left #perl6
06:04 * lue is back from the future. Will not reveal details of the past, because I saw I didn't.
06:26 lue beh. Nothing going on here. G'night.
06:26 lue left #perl6
06:27 dual joined #perl6
06:27 ihrd joined #perl6
06:27 ihrd left #perl6
06:32 Su-Shee joined #perl6
06:36 k23z__ joined #perl6
07:07 kaare joined #perl6
07:08 clausi joined #perl6
07:18 uniejo joined #perl6
07:26 agentzh joined #perl6
07:31 meppl joined #perl6
07:38 eternaleye joined #perl6
07:50 drbean joined #perl6
07:56 dalek rakudo/ng: c5dda73 | (Martin Berends)++ |  (4 files):
07:56 dalek rakudo/ng: Add qx{} and qqx{}, except for hash_to_env() because %*ENV is missing
07:56 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/c5dda734b3dd759098c6e2994eac24ca2bfa1a8a
08:08 iblechbot joined #perl6
08:22 moritz_ good morning
08:24 mathw Morning
08:27 james joined #perl6
08:27 james hi
08:27 dj joined #perl6
08:29 dj jj
08:29 fridim joined #perl6
08:49 k23z___ joined #perl6
08:49 barney joined #perl6
08:57 fda314925 joined #perl6
09:31 dakkar joined #perl6
09:33 eternaleye joined #perl6
09:34 IllvilJa joined #perl6
10:19 eternaleye joined #perl6
10:20 dalek rakudo/ng: 98b4632 | (Martin Berends)++ | src/builtins/control.pir:
10:20 dalek rakudo/ng: [builtins/control.pir] implement time()
10:20 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/98b463252f5fde6479ce3430e7e0665dae05d8e4
10:23 masak joined #perl6
10:23 masak oh hai, #perl6
10:24 moritz_ \o/
10:25 moritz_ masak: do you already know when you'll be present at the Open Source Days in Copenhagen?
10:26 masak moritz_: no, I haven't thought about transportation at all.
10:26 * moritz_ has a possibly cheap means of transportatioin as long as he doesn't travel on a Friday
10:27 masak I'm open to arriving early and doing touristy things/hacking/last-minute procrastination.
10:28 * moritz_ could arrive on Thursday, possibly
10:40 orafu joined #perl6
10:48 eternaleye joined #perl6
10:51 orafu joined #perl6
10:52 mberends Planless testing slightly annoys me.  Is there any objection to me putting test counts back into plan lines where the counts are known and stable?
10:52 masak not from me.
10:53 mberends :)
10:53 masak but I must admit to being entirely sold on planless testing nowadays.
10:53 masak so I'd be interested to hear more about what annoys you.
10:53 mberends as long as planful testing is ok with you too
10:54 masak yes, it's OK in the sense that I don't fight against it.
10:54 mberends the annoyance is the inner workings of tools/test_summary.pl
10:54 masak but I usually default to planless in my own apps.
10:54 masak oh, an extrinsic reason! :)
10:54 mberends the spectest suite is a mix of planless and planful
10:56 moritz_ mberends: please coordinate with KyleHa and colomon
10:56 moritz_ mberends: afaict they mostly use planless testing
10:56 mberends will do
10:58 mberends they mainly applied planless in the wave of 10000 extra trig tests, it was an effort saving device
10:58 masak planless is always an effort savind device.
10:58 masak it's letting the computer do what it does best: count.
10:59 mssm joined #perl6
11:00 mberends testing can re-count and verify, I don't mind the minor edit work. test_summary.pl tells you the count you need anyway.
11:00 moritz_ if rakudo can run the test
11:00 moritz_ and fudging didn't confuse it
11:00 moritz_ which happens
11:01 masak well, mst had a number of good points about planless.
11:01 mberends moritz_: that's where planless is better
11:01 moritz_ mberends: not quite... but I need to get some lunch before I continue this discussion :)
11:01 masak one of the subtler ones, but which I liked, is that planful doesn't scale over several developers, because merges might get the plan count wrong.
11:02 moritz_ true
11:02 * masak goes looking for that post
11:02 moritz_ http://www.shadowcat.co.uk/blog/matt-s-trout/a-cunning-no_plan/
11:02 moritz_ it helps if you remember the title :-)
11:03 * masak just found it too
11:04 mberends it would be good to discuss the issue here and then choose either 100% planless or 0%
11:04 moritz_ I see no need for a definitive decision
11:05 moritz_ I'd be fine with planless testing for files where it's non-trivial to count
11:05 moritz_ either because it's large, or because it's more complicated somehow
11:05 sunnavy joined #perl6
11:06 mberends the big generated test scripts for example
11:09 moritz_ also note that mst is talking about Perl 5
11:09 moritz_ perl 6 compilers often die without error message
11:10 moritz_ really afk &
11:10 old_gray_bear joined #perl6
11:10 jnthn oh morning
11:11 Su-Shee joined #perl6
11:11 masak jnthn: \o
11:11 masak lunch &
11:11 mberends good localtime() jnthn
11:11 orafu joined #perl6
11:12 jnthn Hmm...akshually....I see it is no longer morning. Oops. :-)
11:12 schmalbe joined #perl6
11:13 mberends ng: say time()
11:13 p6eval ng 98b463: OUTPUT«1265713262.29492␤»
11:13 jnthn Well, that clearly confirms it's afternoon.
11:14 jnthn ;-)
11:14 jnthn mberends++ # qx, qqx \o/
11:15 mberends thanks for the tips, they were 90% of the work :)
11:23 jnthn Knowing what to change is often a big part of things in Rakudo, yes. :-)
11:28 mberends Knowing into which file new code must go was also difficult.  The docs are.. hmm...
11:29 mberends the time() function took at least 5 attempts
11:29 * mberends plans to do run() next, because proto needs it
11:32 jnthn The docs? What docs?
11:32 jnthn Oh, wait...that's the problem.
11:32 * jnthn did attempt to do better by writing a metamodel one
11:37 drbean joined #perl6
11:51 broquaint joined #perl6
12:06 colomon o/
12:07 mberends \o
12:09 jnthn o/ colomon
12:10 mathw o/
12:10 mathw \o
12:10 mathw \o/
12:10 mathw o/
12:11 mathw /|
12:11 mathw / \
12:11 colomon oooo, complete stick figure!
12:12 jnthn ASCII. Who said we'd ever need more?
12:13 huf we dont.
12:13 * moritz_ does
12:13 huf but it's good to have the option not to use the rest ;)
12:13 huf even my moonspeak langauge is perfectly useable with just ascii
12:14 colomon jnthn: got a new version of what I presume is the old dispatch issue last night.
12:15 colomon I was working on writing another infix:<...> last night, and tried for the one that has an array on the left and a Whatever on the right.
12:16 jnthn colomon: I also hit it in S06-multi/typed-based.t last night.
12:16 jnthn colomon: We really, really need a fix/workaround for that.
12:16 moritz_ if the tests catch it, the tests are good :-)
12:16 * moritz_ pats audreyt, colomon, KyleHa, himself and a lot of others
12:16 colomon when I tried it in the REPL, it called the version with scalars on both ends, putting the .elems of the array on the left-hand side.
12:17 colomon moritz_: actually, that problem is so bad it blows up dozens if not hundreds or thousands of tests.
12:17 colomon I don't think Rat or Complex math will work correctly until it is fixed.
12:19 jnthn colomon: OK, let's try and find a fix today.
12:19 * colomon will be excited when pmichaud gets list assignment fixed, so he can try using the series.t test file to test the series work he is doing.
12:19 colomon \o?
12:19 colomon \o/
12:19 jnthn colomon: Hopefully Pm will be around and we can work something out.
12:20 colomon hmmm... \o? was a typo. but I kind of like the idea of mixed celebration and head scratching.
12:20 cognominal joined #perl6
12:24 bluescreen joined #perl6
12:29 mberends jnthn: into which file would the "set up %*ENV" etc of old/builtins/globals.pir now go? builtins/Code.pir?
12:31 moritz_ %*ENV !~~ Code
12:32 moritz_ but I don't know the answer either :/
12:32 jnthn mberends: Perhaps src/glue/env.pir
12:32 jnthn moritz_: Well, it's not like there's One Perfect Answer. :-)
12:33 mberends glue/run.pir  ?    # '!fire_phasers'('INIT')  ;)
12:34 jnthn Cool, INIT?
12:34 jnthn :-)
12:34 jnthn mberends: Well, the other option is to make an INIT phaser.
12:35 SmokeMachine joined #perl6
12:35 mberends %*ENV should be created before INIT, methinks
12:36 mberends although it's probably splitting hairs
12:38 jnthn mberends: Yeah
12:38 jnthn Well
12:38 jnthn BEGIN maybe :-)
12:38 * jnthn finally wins the jar fight with Tomcat.
12:41 mberends how about run()? in builtins/control.pir or builtins/Str.pir ? (or core/Str.pm?)
12:42 moritz_ maybe builtins/system.pir (then run, runinstead, qx etc. could go there)
12:42 jnthn mberends: In general, please don't add built-ins that are called directly into .pir files - even a wrapper in a .pm file with Q:PIR are better than that.
12:42 macae joined #perl6
12:42 jnthn mberends: I'd suggest a system.pm perhaps.
12:42 jnthn src/core/system.pm
12:42 jnthn mberends: !qx is just "glue" so I don't mind that in .pir file, fwiw.
12:43 jnthn That is, we never call it directly.
12:43 jnthn Every built-in function that's declared in a .pir file rather than the core will hurt us later though.
12:44 mberends ok, will ponder all this and carefully decide. I'd been reluctant to create more files but that seems to be a popular suggestion too.
12:44 jnthn mberends: Personally, I'd rather have more files with names that make it obvious what they contain, than a bunch of possibles to look through.
12:44 jnthn And yes, I know, there's grep. :-)
12:45 mberends :-)
12:45 ruoso joined #perl6
12:45 masak by the way. I tried and failed yesterday to get statement_mod_loop:sym<for> working in ng.
12:45 masak I got as far as making it loop the right number of times.
12:46 jnthn That's progress. :-)
12:46 jnthn masak: In what way did you haz a fail?
12:46 masak the point I got confused/stuck on is that there seems to be no analog to declare_implicit_function_vars in ng.
12:46 bbkr joined #perl6
12:47 moritz_ wasn't declare_implicit_function_vars for blocks, and the <for> statement modifier works on a thunk, not a block?
12:47 masak also, a minor thing: it's <cond.=EXPR> in if, unless, while and until, but that name hardly seems appropriate for for :)
12:48 masak moritz_: line 162 of src/parser/actions.pm in master.
12:48 colomon jnthn: when you say "will hurt us later", do you mean that it makes Rakudo's core less portable to other p6 implementations, or is there some other reason I don't know to be against pir?  (Other than my not knowing much pir, of course!)
12:49 jnthn colomon: That is one reason, but there's others. One is that auto-threading doesn't work, for example.
12:49 jnthn colomon: At least, not without extra effort.
12:50 jnthn moritz_: I've never quite got the thunk/block distinction, fwiw.
12:50 moritz_ jnthn: a block is something that's enclosed by { ... }
12:50 jnthn masak: Hmm. You only really need a $_ param in the block, mind.
12:50 jnthn moritz_: OK, at a Perl 6 level, yes.
12:51 moritz_ jnthn: a think is a bunch of code that runs only conditionally
12:51 jnthn moritz_: At a lower level, I'm not sure what (if anything) divides them though.
12:51 masak jnthn: yes, but I don't know how to plumb the plumbing, so I'm officially teh stuck.
12:51 * jnthn calls Dave the Plumber
12:52 masak moritz_: what jnthn said. is there even a difference between a thunk and a block?
12:52 jnthn masak: Let me check it.
12:52 masak \o/
12:52 masak anyway, it didn't seem hard apart from that.
12:52 moritz_ jnthn: I've never looked at the low level aspect of thunking
12:52 colomon masak: was your implementation lazy?
12:52 masak but then t/spec/S04-statement-modifiers/for.t blows up on the third test because it can't shift a range :)
12:53 masak colomon: the question makes no sense to me.
12:53 colomon masak
12:53 masak colomon: I was quite tired when I tried, if that's what you mean.
12:53 moritz_ masak: 'for' and 'map' are both lazy, and only become eager in void context
12:53 masak yeah, but I didn't implement any of them.
12:53 moritz_ s/void/sink/
12:54 masak I just tried to switch them on by generating the PAST.
12:54 colomon masak: for should work with iterators, but right now standard block for in ng isn't.
12:54 jnthn masak: So essentially you've made a PAST::Block?
12:54 * masak falls off the deep end in details
12:54 masak jnthn: no, I was just adding a few lines in the grammar and actions files.
12:55 masak averaging down, I didn't do a thing. :)
12:55 bluescreen joined #perl6
12:55 masak s/averaging/rounding/
12:55 jnthn :-P
12:55 jnthn masak: Got a diff? :-)
12:56 jnthn masak: But essentially I think you need to do something akin to what is in method pblock
12:56 masak well, I cleaned out my attempt, but I can easily recreate it in a few minutes.
12:56 masak ok.
12:56 jnthn e.g. to create a $_ signature for the LHS
12:56 jnthn erm
12:56 hanekomu interesting, a translation of the Perl6 Advent Calendar into Japanese: http://d.hatena.ne.jp/uasi/
12:56 jnthn for your block.
12:57 jnthn masak: It'll look at bit like:
12:57 jnthn my $signature := Perl6::Compiler::Signature.new();
12:57 jnthn my $parameter := Perl6::Compiler::Parameter.new();
12:57 jnthn $parameter.var_name('$_');
12:57 masak hanekomu: yes, Tene and I have found that independently too. guess people on Twitter run across it sooner or later. :)
12:57 jnthn $parameter.is_parcel(1);
12:57 jnthn $signature.add_parameter($parameter);
12:57 jnthn add_signature($block, $signature, 0);
12:58 masak jnthn: thanks. I'll digest that and try making a better patch, rather than trying to recreate my old one.
12:59 jnthn masak: It's tasty because we actually have compile-time objects to represent parameters and signatures. :-)
12:59 masak \o/
13:09 mssm joined #perl6
13:10 takadonet joined #perl6
13:10 takadonet morning everyone
13:13 masak takadonet: \o
13:37 payload joined #perl6
13:50 SmokeMachine joined #perl6
13:53 pmurias joined #perl6
13:59 pnu joined #perl6
14:04 pmichaud good morning, #perl6
14:04 mberends good morning!
14:04 colomon o/
14:04 masak lolitspmichaud!
14:05 takadonet morning
14:05 moritz_ that's a good occasion to continue our discussion about the Open Source Days in Copenhagen
14:05 moritz_ and who will be there on which day
14:05 masak right.
14:05 * masak is flexible
14:06 pmichaud I'm about to book tickets, but I plan to arrive CPH on the 4th and depart on the 10th
14:06 moritz_ iirc there was a "core" hackathon planned for Monday, right?
14:06 pmichaud yes, "core" hackathon planned for 8th and 9th
14:06 moritz_ and 9th. Ok
14:06 pmichaud (at least, that's what I'd like to see, depending on who can make it)
14:06 moritz_ then I'll try to depart on 10th too
14:08 masak ok, me too.
14:08 masak not decided on when to arrive yet.
14:08 pmichaud although I'd really like to go, I don't think I'll be able to make it to the dutch perl workshop
14:09 mberends I can stay only until about 7pm Sunday 7th because of $work :-(
14:09 pmurias mberends: re not using i plan, i think done_testing removed the need for declaring the plan, it protects against the test duing in the middle and avoid having to deal with maintaining an annoying number
14:09 mathw I wish I could go :(
14:09 mathw Another time, though.
14:09 moritz_ mathw: what keeps you? $work?
14:10 mathw moritz_: money
14:12 mathw so $work in a sense
14:12 mathw because they need to pay me more
14:12 moritz_ :/
14:12 mathw or decide that my attending Perl events is a critical business need and let me expense it :D
14:14 xomas_ joined #perl6
14:14 mathw Basically I need plenty of notice and some planning, but I'll manage it at some point
14:15 mathw Oh yes, and a new passport. Hmm.
14:15 mathw I keep forgetting that expired
14:16 mberends pmurias: thanks, I know done_testing writes the 1..n line at the end instead of the beginning. It's a small change of the TAP format, which usually has the count at the beginning. Recent test harnesses (but not all old ones) can handle both layouts.
14:16 jnthn pmichaud: I'll be arriving to be there on the 6th, and be around until *. :-)
14:17 jnthn pmichaud: Though I do have some bits to do on the 10th, so those dates work out nicely. :-)
14:18 * jnthn sets 8th and 9th aside for hackathoning
14:26 moritz_ I've sent my mail; I'll probably can't come earlier because I might have to move during this week
14:26 moritz_ afk
14:32 colomon that's 8th and 9th of March?
14:33 jnthn Aye
14:34 nihiliad joined #perl6
14:35 pmurias mberends: if the harness doesn't see the 1..n line at all it assumes something is wrong
14:35 pmichaud the plan is to have hackathon activities on mar 6 + 7, and "core hacking" on 8 + 9
14:37 jnthn pmichaud: wfm.
14:39 jnthn I'll probably be more concious on 8th and 9th. :-)
14:42 cognominal joined #perl6
14:44 jonasbn joined #perl6
14:45 ujin joined #perl6
14:46 pmichaud okay, looks like I have ticket reservations :-)
14:50 jonasbn pmichaud: for Copenhagen?
14:51 pmichaud jonasbn: yes.
14:51 jonasbn \o/
14:51 pmichaud jonasbn: I'll submit my talk this morning.  Sorry I didn't do it earlier -- been out of town the past weekend
14:51 jonasbn pmichaud: great, don't sweat it
14:52 jonasbn seen jnthn
14:56 masak ENOPURL
14:56 masak but jnthn was last seen half an hour ago :)
14:58 iblechbot joined #perl6
14:59 cognominal joined #perl6
15:01 jnthn jonasbn: I'm about.
15:01 jonasbn hey, jnthn
15:01 jnthn (hidden in a debugger) :-)
15:01 jnthn jonasbn: hi :-)
15:01 jonasbn jnthn, when will you have a synopsis ready?
15:02 jonasbn jnthn: hello :)
15:02 jnthn It's ready, I just need to submit it :-)
15:02 jonasbn super
15:02 jnthn jonasbn: Will do today.
15:02 jonasbn I just need dates from all of you guys, so I can book some accomodation
15:02 jnthn jonasbn: Arrive on the morning of the 6th
15:03 jonasbn jnthn: did you see my mail? - if you can fill in the template, that would be nice, then I can collect data on all of you guys
15:03 jnthn Yeah, but my mail client messed up the layout. :-/
15:03 jnthn I'll reply anyways.
15:03 mberends jonasbn: can I just let you know here? I need accommodation for Saturday only.
15:04 jonasbn okay I will make notes
15:04 jonasbn hehehe
15:04 jonasbn *lazy*
15:04 jnthn jonasbn: Plz I can haz also a pony? :-)
15:04 jnthn <grin>
15:04 jonasbn jnthn: did you eat your vegetables?
15:04 jnthn Yes!
15:04 jonasbn jnthn: did you submit you paper?
15:04 jnthn Onions and potatoes, anyway...
15:05 jnthn jonasbn: I have an email window open for doing so :-)
15:05 jonasbn hehehe
15:05 jonasbn jnthn: if you want ponies you should go to NPW in Iceland
15:06 jonasbn land of ponies
15:07 jonasbn jnthn: how long are you staying?
15:07 jnthn I'm SO going!
15:08 jnthn jonasbn: I figure I may as well stay around while Pm is also around.
15:08 jonasbn okay
15:08 jnthn jonasbn: That said, I guess Pm has a morning flight on the 10th, so I may as well head off on the 9th to crash at my own place in Lund.
15:09 jnthn It's not like it's all that far away. :-)
15:09 jnthn And plenty of trains into the evening.
15:09 jonasbn okay
15:09 jonasbn noted
15:09 masak I might do the same, then.
15:10 masak proabbly take a late train back up to Uppsala.
15:10 jonasbn masak, are you coming in friday, there is a Nokia event friday night
15:10 pmichaud oops, gotta run. bb in 2 hrs
15:10 jonasbn masak: or saturday morning
15:11 pmichaud (might be able to connect at destination)
15:11 masak a Nokia event? is that one of those with the Copenhagen birds singing the Nokia tune?
15:11 masak I've heard of those :)
15:11 jonasbn Copenhagen birds?
15:11 jonasbn I think it is just beer and food
15:11 masak yes. don't remember which type.
15:12 masak might have been starlings.
15:12 masak http://news.cnet.com/2100-1033-257826.html
15:12 masak seems it is primarily starlings, yes.
15:13 rindolf joined #perl6
15:16 masak jonasbn: I don't know yet when I'll show up. I might come early, but not sure a Nokia event is reason enough. socializing with moritz_ and mberends would definitely be, though.
15:16 jonasbn mberends: will be here Saturday morning together with Jonathan
15:17 masak oh, ok.
15:17 jonasbn masak: but it is okay, I can spend the evening with the family, Saturday evening will be the 'Scroll bar' anyway
15:18 mberends we're driving overnight from Dutch Perl Workshop, probably arriving very early
15:18 masak ah, right. DPW. now I remember.
15:19 jnthn masak: Saturday's talk will need a lot of coffee. :-)
15:19 masak I'd recommend at least a brief lunch nap that day. :)
15:20 jnthn mberends: 7am is going to be the earliest I've been awake for *ages*, but I'm happy that I'll be achieving it by staying up all night, not having to get up early. ;-)
15:20 jonasbn napathon?
15:20 jnthn hehe
15:20 mberends drive-by hacking
15:20 jnthn masak: Short naps tend to give me headaches, annoyingly. :-/
15:20 jonasbn hehehe
15:21 masak jnthn: hm, I'm usually so wired up after a night without sleep that I don't notice headaches :)
15:24 Psyche^ joined #perl6
15:31 jnthn :-)
15:31 * jnthn -> Slovak
15:34 dalek rakudo/ng: 3049f65 | (Martin Berends)++ |  (2 files):
15:34 dalek rakudo/ng: [tools/test_summary.pl] do per-test timestamps, begin calculating benchmarks
15:34 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/3049f654e3798d1549e5ac92acbc48c54b18e43a
15:36 Trashlord joined #perl6
15:37 Trashlord hey, do you think Perl 6 is mature enough to depend on it for general purpose coding?
15:40 xinming Trashlord: I don't think so. :-)
15:41 xinming Trashlord: Wait for the synopsis to be more stable.
15:41 Trashlord alright
15:41 Trashlord I'm just reading perl6 code, and it looks promising. cleaner and better organized
15:44 moritz_ could somebody with root access please reset my password on feather3 and /msg me the new password please?
15:45 Juerd msg you? :)
15:46 Juerd moritz_: feather1:~moritz/feather3.pass
15:46 moritz_ Juerd: thanks
15:47 colomon Trashlord: I wouldn't worry about the specification being stable enough, but for sure there is not an implementation stable enough at the moment.
15:48 pmichaud hello again
15:50 colomon \o
15:50 pmichaud looka like I can irc from my phone :)
15:50 colomon \o/
15:50 * colomon needs to get a better phone one of these days.
15:50 Trashlord colomon: what about modules (like CPAN), is there anything like this at all for Perl 6?
15:50 moritz_ Trashlord: there are only the basics of an installer
15:51 colomon Trashlord: Just a very simple script making it easier to install the random assortment of modules that people have played with so far.
15:51 moritz_ Trashlord: and some few modules
15:51 pmichaud afk again
15:55 moritz_ public service announcement: the timtowtdi.org server is going to be unavailable to us starting from next week (masak, pmurias, japhb have accounts there)
15:56 Trashlord alright, cool then
15:56 moritz_ oh, and wolfman2000
15:57 cosimo joined #perl6
15:59 rv2733 joined #perl6
16:00 lisppaste3 joined #perl6
16:00 pmichaud_ joined #perl6
16:01 justatheory joined #perl6
16:02 AndChat| joined #perl6
16:09 Trashlord do I need my shebang to have /usr/bin/parrot instead of /usr/bin/perl ?
16:09 payload joined #perl6
16:09 Su-Shee perl6
16:10 Trashlord oh
16:25 pmurias moritz_: where will the evalbot migrate to?
16:26 moritz_ pmurias: it's already on a different server
16:26 moritz_ on a machiine provided by diakopter++
16:30 Juerd Why the hell is the first byte of /etc/group missing on feather1?
16:30 Juerd It says "oot" instead of "root" :)
16:30 * Juerd inserts an r :)
16:30 moritz_ misuse of vim? :-)
16:30 Juerd Probably
16:30 Juerd I noticed when doing ls -l
16:31 Juerd Suddenly all these files were owned by root:oot
16:49 hercynium joined #perl6
17:06 nihiliad joined #perl6
17:13 * jnthn back
17:13 jnthn Juerd: Aww...missed opportunity to put it back as a w :-)
17:20 masak joined #perl6
17:21 masak hm. seems I have an hour of bonus time to hack on ng.
17:21 masak thusly, I will try jnthn++'s suggestions from earlier today. :)
17:22 colomon \o/
17:23 * TimToady is massivel backlogging; did you foax every figure out the <-> thing?
17:23 TimToady *ever
17:23 TimToady namely, that lambda is listed in the terminators?
17:24 masak oh! that didn't occur to me. :/
17:24 masak that makes a lot of sense, though.
17:25 TimToady and *massively
17:25 TimToady wow, that y moved quite a few positions
17:25 masak :P
17:26 masak (hm, isn't there a bash.org quote with the same punch line?)
17:26 arnsholt So many, in fact, that I'd suggest it was two separate errors =)
17:26 masak http://bash.org/?35955
17:26 TimToady I dunno, I have some pretty strange delay loops in my brane.
17:29 cognominal joined #perl6
17:33 pugs_svn r29663 | mberends++ | [t/spec] update some plan counts to make spectest progress stats more accurate
17:33 meppl joined #perl6
17:34 masak TimToady: why is infix:sym« p5=> » still defined in STD.pm, when S03 says it's not part of the Perl 6 grammar?
17:36 masak TimToady: also, I grepped through STD.pm looking for signs that <-> is treated as a terminator. didn't really find something. do you have a line number?
17:37 SmokeMachine joined #perl6
17:41 TimToady actually it's in infixstopper, line 4024
17:41 jnthn TimToady: Now, didn't figure out that one. :-)
17:41 masak ah. I see it now.
17:41 jnthn TimToady: But didn't spend too long on it either, knowing somebody like you would know the answer. :-)
17:45 masak these Perl6::Compiler::Signature and ::Parameter classes make me very happy!
17:45 ash_ joined #perl6
17:46 cjk101010 joined #perl6
17:46 TimToady .oO(If all you have is introspection, everyone begins to look like neurotic...)
17:46 TimToady s/like//
17:47 masak better than everything appearing psychotic, I guess.
17:50 TimToady I am sufficiently psychotic to believe that instrospection should generelly be encapsulated inside a pattern language, and if binding isn't sufficiently powerful, it should be mae so
17:50 TimToady *made
17:50 masak jnthn: trying to grok what pblock is doing in Actions.pm. what does 'if $*IMPLICIT' test?
17:51 masak TimToady: does the 'and' in that sentence close over 'I am sufficiently psychotic...', or just over 'introspection should generally...'?
17:51 TimToady as far as I can see, the only spot in the Perl 6 design that mandates arity inspection right now is the right side of a series operator
17:52 masak what about map and grep?
17:52 uniejo joined #perl6
17:52 TimToady I've said this about five times by now...map and grep should just fall naturally out of binding a sig as a subsig, just like subpatterns can be used withing a larger pattern
17:53 TimToady the sig's arity might not even be deterministic
17:54 REPLeffect joined #perl6
17:54 TimToady series is special because we have to know how many old values to keep around
17:54 masak I must have either missed those earlier times you said it. :/
17:54 masak ...or not been ready for the truth. :P
17:54 masak I think I get it. just haven't used subsigs much.
17:55 TimToady the tricky thing that pm and I were discussion last week is how map/grep tell the sig that it's really a subsig
17:55 masak can the unresolved .reduce issue be resolved with the same thinking?
17:55 TimToady which .reduce issue?
17:55 masak I think I missed that subsig discussion as well...
17:56 TimToady but, yes, probably
17:56 masak well, ruoso once tried to generalize .reduce to multisubs.
17:56 masak I don't think a good way to do that was ever arrived at.
17:56 TimToady yes, I think it would solve that
17:57 masak \o/
17:57 masak I don't see it, but I'm glad it might.
17:57 TimToady it has something to do with dispatching on a CaptureCursor rather than just a Capture
17:58 TimToady much like STD passes around cursors to track the current match pos
17:58 diakopter masak: how in the world did you find that bash.org allusion
17:58 TimToady and match results can tell you the endpoint
17:58 masak diakopter: I don't know, I'm good at guessing...
17:58 stephenlb joined #perl6
17:59 masak TimToady: yes, but won't multi dispatch be different with a variable number of arguments?
18:00 masak for example :($a, $b) and :($a, $b, $c) would both match in a .reduce scenario.
18:00 masak but the latter would be more specific, I guess.
18:01 TimToady yes, some kind of LTMish notion would presumably be operating there
18:02 masak right.
18:02 masak that's what I like about the concept :) it's a skewed, cursory kind of MMD :)
18:03 TimToady and is likely to drive jnthn++ mad...er...madder
18:03 masak ruoso was going to use it for dispatching on URLs, IIRC.
18:03 TimToady speaking of mad... :)
18:04 masak well, Catalyst already does something similar, but without the nifty .reduce method.
18:09 masak jnthn: so, I now have a Perl6::Compiler::Signature and a PAST::Op. They don't really combine, do they?
18:10 TimToady the main problem I see is how to get the new CaptureCursor state back from the dispatcher if it's immutable
18:11 masak right.
18:11 TimToady STD works by never returning anything *but* cursors
18:11 masak nod.
18:12 frettled TimToady: so what does a cursory inspection reveal, then? :)
18:12 masak many thanks, sir.
18:13 masak I will have to leave my kanelbulle at the door though, when I leave in half an hour.
18:13 frettled As long as you recycle.
18:14 masak I really try.
18:14 frettled Now I'm worried that TimToady will come up with a horrible retort.
18:15 TimToady only alchemists use horrible retorts
18:17 mj41 joined #perl6
18:18 Su-Shee joined #perl6
18:18 frettled As long as it's not a tort, that's fine.
18:19 masak it's a tort the first time, but later uses makes it a re-tort.
18:19 TimToady first you cycle, and then you re-cycle
18:19 masak yeah. I usually re-cycle home from work.
18:19 frettled and before you return, you have to turn
18:20 TimToady before you retire, you have to tire
18:20 TimToady hmm...
18:20 masak it's harder to get respect than just spect.
18:20 ShaneC joined #perl6
18:20 TimToady now yer just playin with werds
18:20 frettled do you have a ceipt for that?
18:21 masak I thought I something else, but I can't member it...
18:21 TimToady no, but had a pretty good cipe the other day
18:21 payload joined #perl6
18:22 masak .duce
18:23 frettled member, member, the fifth ember
18:23 frettled Or, as a friend's t-shirt reads:
18:23 frettled Haikus are easy
18:24 ash_ joined #perl6
18:24 frettled but sometimes they make no sense
18:24 frettled refrigerator.
18:24 masak :D
18:24 TimToady I'm ally luctant to gard your joinder as splendant parté.
18:24 * masak is getting ady to leave
18:25 TimToady *splendent
18:25 masak ooh, correcting typos under a projection!
18:25 frettled I'm not feeling jected, you know.
18:25 TimToady I ject your premise
18:26 Psyche^ joined #perl6
18:26 TimToady *pmise
18:26 masak 哈哈
18:26 masak oh, we're not only doing pfixes now?
18:26 ash_ left #perl6
18:26 masak *we'
18:26 TimToady hmm, now thinking of chinese characters with missing radicals
18:27 mberends then I'm mbends
18:27 frettled TimToady: I suppose they're in jail.
18:27 masak mberends: I got a visual image of you as a steel robot with a drinking problem. :)
18:27 mberends lol
18:27 TimToady we could chop 日 [ri4] out of a lot of characters
18:28 masak few things are more radical than the sun, I s'pose.
18:28 TimToady though it's gonna make it difficult to speak 本語
18:29 masak at least to read it.
18:29 MaL0 joined #perl6
18:29 MaL0 hi
18:29 TimToady howdy
18:29 masak hello.
18:30 Chillance joined #perl6
18:31 cotto_working joined #perl6
18:33 masak jnthn: I think I learned a bit more by trying to get the signature in there, but now I feel like learning more about PAST, in order to understand where I'm failing :)
18:33 jonasbn joined #perl6
18:34 masak also, I have that other thing I wanted to implement, the... um.
18:34 masak the anon enums.
18:34 masak so I'll probably give this up for the time being and try that instead.
18:36 ruoso joined #perl6
18:36 masak mberends: uh, did you just add timestamps to all Test.pm output by default?
18:37 masak I'm not saying I mind, I'm just slightly surprised by this. :)
18:37 Psyche^ joined #perl6
18:37 masak I mean, it'll affect all Perl 6 projects with tests.
18:38 masak probably not significantly, but still.
18:38 PerlJam timestamps?
18:38 masak it's in the latest ng commit, 3049f6
18:39 colomon woah, those are freaky.
18:39 colomon # t=1265740722.65674
18:39 colomon ok 1 - simple
18:39 colomon # t=1265740722.67646
18:39 colomon ok 2 - # SKIP calling positional params by name
18:39 colomon # t=1265740722.68134
18:39 colomon starting time and the time between each test.
18:39 masak I'm not sure that's what we want to do, long-term :)
18:40 Juerd jnthn: I wonder what harm changing these names does. You make it sound rather tempting :)
18:40 jnthn Juerd: Or kit. ;-)
18:40 PerlJam masak: I *am* sure it's not what we want to do long term  :)
18:40 masak PerlJam: right. I'm just being diplimatic.
18:40 jnthn masak: ah, I see you got stuck on for
18:41 masak a little.
18:41 jnthn masak: I'm kinda distracted debugging Mahout at the moment, so ain't been following here...sorry.
18:41 frettled masak: I think it's a good idea if it's easy to toggle
18:41 masak frettled: it's presently on by default.
18:42 masak jnthn: no problemo.
18:42 MaL0 left #perl6
18:42 PerlJam though I tend to agree with the sentiment.  We need a good benchmarking tool like we have a good testing tool; it does make sense to utilize one to get the other.
18:42 masak jnthn: I still figure I'll learn something in the long run.
18:42 frettled it's not just for benchmarking, but also for debugging
18:43 PacoLinux joined #perl6
18:43 PerlJam frettled: give me a debugging scenario please
18:44 frettled PerlJam: you make a change, you run the tests while you go for coffee/lunch/whatever, and you come back -- then you can see whether the change introduced a suspiciously significant time impact to the relevant test(s).
18:44 frettled For instance, a test might pass either too quickly or too slow according to your expectations.
18:45 frettled My attention span certainly isn't sufficient for watching tests as they run.
18:45 colomon frettled: doesn't that imply you'd need a record of the "normal" time the tests take?
18:45 masak we seems to agree that the timestamps shouldn't be on by default.
18:46 masak s/ms/m/
18:46 * masak too hugry to type
18:46 masak time for nom. &
18:46 frettled colomon: it implies that you have some reasonable expectation of it, at least, either based on previous measurements, or because you've run a particular set of tests frequently enough to know.
18:46 frettled masak: absolutely
18:47 mberends masak: yes, timestamps experimentally. If it doesn't work out, we revert it.
18:47 PerlJam mberends: just make it optional and let it be :)
18:48 PerlJam mberends: (off by default)
18:49 mberends ok, will make timestamps optional very soon
18:50 frettled We're timing you. ;)
18:50 mberends *sharp intake of breath*
18:50 PerlJam frettled: that particular scenario would work better if you were recording the execution times of your tests between runs so that you can access the historical data and even provide some sort of automated message to the effect of "test #x took significantly different time to run" or something
18:51 mberends PerlJam: that's the purpose,  it's under construction
18:52 frettled PerlJam: Yes, typically, you'll use a framework around it.
18:52 frettled You might use e.g. the "script" command for that.
18:52 frettled Actually, "script" might be sufficient in itself for that particular purpose, since it can timestamp any output.
18:53 PerlJam indeed
18:53 PerlJam (and doesn't require mucking with Test.pm  :)
18:53 frettled It's typically recommended for replaying things at the same speed they happened, with "scriptreplay".
18:53 frettled PerlJam: it's a wheel, someone has to invent it.
18:55 frettled Plus: it's a wheel you can package with the implementation, you know it's there, as opposed to a pretty unix-specific program -- I'm not even sure that it exists for other systems than GNU/Linux.
19:01 dalek rakudo/ng: f018377 | (Martin Berends)++ | Test.pm:
19:01 dalek rakudo/ng: [Test.pm] turn off timestamps completely, for now.  I'll be back...
19:01 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/f018377abaf54bd17a66c2454774013807cff0f9
19:02 * mberends breathes again
19:02 rgrau joined #perl6
19:02 frettled mberends: 12 minutes, 16 seconds
19:03 mberends heh
19:05 cdarroch joined #perl6
19:05 cdarroch joined #perl6
19:05 fda314925 joined #perl6
19:08 dalek rakudo/ng: c1c6cd2 | duff++ | tools/rakudo-swarm.config:
19:08 dalek rakudo/ng: [tools] Add config file for code_swarm in case anyone else wants to play with it
19:08 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/c1c6cd2792640efa997799650d0bde7a3a7be331
19:08 dalek rakudo/ng: 20eae2d | duff++ | Test.pm:
19:08 dalek rakudo/ng: Merge branch 'ng' of git@github.com:rakudo/rakudo into ng
19:08 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/20eae2d28111da14057ea28837ebb6ab43bc5e33
19:10 jackyf joined #perl6
19:34 colomon joined #perl6
19:42 cognominal joined #perl6
19:51 eternaleye joined #perl6
19:54 supernovus joined #perl6
19:55 supernovus Just wondering, in rakudo, are file/directory tests implemented?
19:58 mberends they work in master but not yet in ng (it's become fairly low hanging fruit because it's been done before, very similarly, if you want a yak to shave)
20:11 dugg joined #perl6
20:26 TimToady ng: my @rray=(gather loop (my $calar = 0; $calar <= 6; $calar++){take $calar;}); say @rray
20:26 p6eval ng 20eae2: OUTPUT«7777777␤»
20:26 TimToady colomon: that is correct behavior; take returns a parcel, which might be bound rw
20:26 colomon TimToady: !!!!
20:26 TimToady so that just returns the same variable N times
20:27 TimToady just as map would, if you referenced a variable outside its scope
20:27 TimToady $calar is defined outside the block, therefore is not cloned
20:27 colomon easy enough to work around, but I thought we "fixed" this behavior back in Rakudo master.
20:28 supernovus Hmm, in a subst() should the replacement closure be able to use a match? As in $string.subst( / \< \% (\w+) \% \> /, { %opts($0) }, :global );  ?
20:28 TimToady ng: my @rray=(gather for 0..6 -> $calar {take $calar;}); say @rray
20:28 p6eval ng 20eae2: OUTPUT«0123456␤»
20:30 colomon TimToady: your example works because $calar is "fresh" each time through the loop, right?
20:30 TimToady correct, a parameter is lexically internal to the block
20:30 TimToady supernovus: yes, the block's $/ ought to start out aliased to OUTER::<$/>
20:31 TimToady $/ is rebound in a block only if that block does its own match
20:31 colomon supernovus: I think that may be broken in ng at the moment (possibly master as well).
20:32 TimToady ng: my @rray=(gather loop (my $calar = 0; $calar <= 6; $calar++){take $calar.WHICH;}); say @rray
20:32 p6eval ng 20eae2: OUTPUT«0123456␤»
20:32 TimToady that works too
20:32 supernovus colomon: Ah, that may explain it. I am using master, but it is not working. I'll comment it out and work on a workaround.
20:33 PerlJam supernovus: I think $/ is passed as a parameter to the block (for your workaround)
20:33 TimToady master might understand $OUTER::0 or some such
20:33 frettled TimToady: I almost expected $calar.ΩHICH or something
20:34 TimToady all the luck is running out of that horseshoe, because it's pointing down
20:34 frettled :)
20:34 supernovus PerlJam, I tried using $/[0] but rakudo complained: Method 'postcircumfix:[ ]' not found for invocant of class 'Failure'
20:34 TimToady oddly, unicode doesn't seem to have any lucky horseshoes
20:35 TimToady because the inner $/ was not properly aliased to OUTER::<$/>
20:35 frettled does that mean that Unicode is shoddily made?  :
20:35 PerlJam supernovus: try that with $_ instead.
20:36 TimToady and master still inits vars with Failure instead of Mu
20:36 TimToady (or whatever the declared type is)
20:36 TimToady ng: my $x; say
20:36 p6eval ng 20eae2: OUTPUT«␤»
20:37 supernovus PerlJam: Thanks! $_[0] worked great.
20:37 TimToady ng: my $x; say $x.WHAT
20:37 p6eval ng 20eae2: OUTPUT«Mu()␤»
20:37 frettled I really look forward to ng as master.
20:37 TimToady cow typing...
20:37 colomon frettled: I really look forward to ng working.  ;)
20:37 * jnthn back
20:37 frettled colomon: that, too :D
20:38 colomon It's definitely getting there now...
20:45 hercynium joined #perl6
20:48 * jnthn finally remembers to send in his talk submission for OSD. :-)
20:50 ruoso TimToady, masak, re CaptureCursor... that's the reason for the PushBack Iterator to exist...
20:51 ruoso the idea is that you get an iterator from the capture
20:51 ruoso and consume it as you try to bind
20:51 ruoso pushing it back if you fail
20:52 TimToady binding shouldn't consume the original capture, or you can't do nextsame
20:53 ruoso maybe getting the iterator from the capture isn't destructive
20:54 TimToady and you can conceivably have cursors pointing at various spots simultaneously
20:54 ruoso exactly
20:55 ruoso and the CaptureCursor (which does Iterator::PushBack) is itself a capture that can be used in a routine call
20:56 TimToady binding still has to know somehow whether to anchor the end or not
20:57 ruoso I'm not sure it's *in* the binding
20:57 ruoso maybe it's outside it
20:57 ruoso i.e. reduce
20:58 TimToady reduce wouldn't care; it's ordinary dispatch that anchors
20:58 ruoso but reduce isn't ordinary dispatch
20:58 TimToady I just said that
20:58 TimToady map and grep aren't ordinary either
20:58 ruoso ah... I read it backwards
20:59 TimToady otoh, using pushback means essentially that we're running with mutable cursors rather than immutable, and that causes...issues...
20:59 * jnthn is a little concerned how this will play with multi-dispatch.
20:59 ruoso right... so every call would somehow "return" the CaptureCursor (or maybe it just consumes it)
21:00 ruoso TimToady, it can be non-destructive
21:00 TimToady then you have to get the new one back out somehow
21:00 ruoso and the regular dispatch fails if there's something left in the capture after the bind
21:00 jnthn colomon: ping
21:00 ruoso er... in the CaptureCursor
21:01 TimToady jnthn: basically, it's just a dynamic context of some sort (presumably supplied by the Capture/Cursor) that tells it to assume a *@ on the end
21:01 ruoso TimToady, maybe you decide that at dispatch time... you can either send a CaptureCursor that will give you the introspection you want
21:01 colomon jnthn: pong
21:01 jnthn TimToady: Ah, seen that way, it's not quite so scary.
21:01 ruoso or just send the Capture and ignore it...
21:01 jnthn colomon: OK, I want to look at this dispatchy bug :-)
21:01 ruoso then the dispatch would behave differently in the case of a CaptureCursor
21:01 jnthn colomon: Do you have a minimal example handy at all?
21:02 colomon jnthn: give me a moment.
21:02 jnthn Thanks :-)
21:02 colomon let me see...
21:02 colomon ng: say 'a' cmp 'b';
21:02 p6eval ng 20eae2: OUTPUT«-1␤»
21:02 colomon ng: say 'a' before 'b'
21:02 p6eval ng 20eae2: OUTPUT«Nominal type check failed for parameter '$a'; expected Num but got Str instead␤current instr.: '&infix:<cmp>' pc 222902 (src/gen/core.pir:7373)␤»
21:02 frettled hmm
21:02 ruoso TimToady, dynamically invoking a sub with a modified signature is quite an interesting way to solve it
21:03 TimToady thought about that
21:03 TimToady it seems heavy handed
21:03 frettled ng: say 'b' cmp 'a';
21:03 p6eval ng 20eae2: OUTPUT«1␤»
21:03 colomon jnthn: and if you look at the source for before, all it does is call cmp and look at the result.
21:03 frettled woot.
21:03 jnthn ruoso: That feels...odd.
21:03 jnthn colomon: OK
21:03 ruoso of course it looks terribly slow
21:03 TimToady and, in fact, it's one of the solutions proposed for Pm-19
21:03 ruoso but optimizer could take it away very easily
21:04 ruoso since few places (reduce) need it
21:04 TimToady I think it's probably better to pre-optimize it by design here
21:04 TimToady consider how many places map pops up in the internals
21:05 TimToady reduce is rare compared to map and grep
21:05 ruoso (ok, map and grep could also be an use case for that)
21:05 ruoso but varying-arity map/grep/reduce is quite unusual
21:06 TimToady still better not to have special cases
21:06 jnthn TimToady: It does feel like a kind of contextual thing that the binder see.s
21:06 jnthn *sees
21:07 TimToady could even be solved with a dynamic variable, but that seems silly when there's an object to carry the info in
21:07 jnthn TimToady: Though I dobut a traditional context variable would work since I guess you gotta make sure it doesn't leak further down the call chain...
21:07 TimToady and the dynvar could affect other calls accidentally
21:07 ruoso Okay... so the harder issue is how to decide "should I fail if there is some capture left?"
21:07 jnthn ...
21:07 jnthn :-)
21:07 jnthn colomon: Ah. :-/
21:07 jnthn colomon: For lexical multis it doesn't show up. For our-scoped ones it does.
21:08 ruoso so maybe we use an explicit type CaptureCursor that tells "ignore if you don't consume all of it"
21:08 TimToady or that's the default, as with subrules
21:08 TimToady and the anchoring happens outside
21:08 colomon jnthn: that seems like a mighty clue.
21:09 TimToady some .parse equivalent requires the whole original to parse
21:09 ruoso TimToady, that forces a two-step dispatch
21:11 jnthn colomon: It rather is, yes.
21:11 TimToady so maybe just a flag that says "I care", but the ramifications of that can still be determined externally
21:12 jnthn TimToady: Could it just be some "flag" on the capture?
21:12 ruoso TimToady, right... the binding would fail with a determined exception
21:12 ruoso could the "flag" be a more specific type?
21:12 jnthn ruoso: Hmm
21:12 jnthn Maybe
21:13 jnthn ruoso: I guess there's a desire to keep captures low-level-ish too.
21:13 ruoso er... that's no longer the case for a while
21:13 payload joined #perl6
21:13 ruoso jnthn, I tried to sell that idea before ;)
21:13 ruoso but it's Capture, not capture
21:13 jnthn ruoso: lol
21:14 ruoso it's non-native
21:14 jnthn ruoso: Well, as with Rakudo's signatures...
21:14 jnthn ...it's a Signature if anyone asks for it. :-)
21:14 ruoso but what if you build your own Signature object?
21:14 jnthn For now, you don't.
21:14 jnthn In the future, we'll cheat for known natives and obey the interface otherwise.
21:15 ruoso that's how SMOP does all the time
21:15 ruoso for every single dispatch ;)
21:15 * ruoso .oO( maybe that's why it's so slow )
21:15 jnthn Maybe. Parrot's method-calling speed is hardly stellar too, which makes me reluctant on that front.
21:16 ruoso but even if it's low-level-ish
21:16 jnthn A subtype is still possible, yeah.
21:16 ruoso it would be a different PMC in Parrot (iiuc)
21:16 jnthn Right.
21:17 jnthn Just thinking how to make that work. :-)
21:17 ruoso # after the binding code
21:17 ruoso if ($capture ~~ CaptureThatShouldBeEntirelyConsumed && $capture) { fail ... }
21:18 TimToady well, let's call 'em different types in any case, just to keep 'em straight in our heads, even if the only difference ends up being a bit somewhere other than the type
21:18 TimToady or maybe we should invent meta-adverbs :D
21:18 ruoso in the low-level side it'll probably end up being a straight pointer comparison
21:18 ruoso most of the time, anyway
21:19 jnthn Yeah
21:19 cdarroch joined #perl6
21:19 cdarroch joined #perl6
21:19 TimToady sounds we're in violent disconfusion
21:19 jnthn colomon: Thing is, we install the subs into the namespace or lexpad "ourselves"
21:19 TimToady sounds like, even
21:20 jnthn TimToady: The missing piece I guess is how this looks at a Perl 6 level though.
21:20 ruoso TimToady, so the default is allowing incomplete bind? or disallowing it?
21:20 frettled TimToady: madverbs?
21:20 * frettled is confuzzled.
21:20 PerlJam frettled++  :)
21:21 * ruoso .oO( incomplete as in "did it consume the entire capture?" )
21:21 jnthn colomon: Eh. I made 'a' before 'b' work with a minor hack.
21:21 PerlJam "consume" sounds like another eager/lazy distinction to me.
21:21 TimToady ruoso: well, default is probably to check anchor, since that's intrinsic to lambda
21:22 jnthn TimToady: My feeling is that you'd have to ask to call something and not care if it consumed all of the args.
21:22 colomon jnthn: general hack or special purpose to that function?
21:22 jnthn colomon: general
21:22 TimToady jnthn: yes, as in Pm-19
21:22 jnthn colomon: oh damm, it fails every spectest.
21:22 * ruoso agrees with jnthn
21:22 colomon jnthn: I'd be happy to give it a try... ;)
21:22 colomon jnthn: I take that back.
21:23 TimToady where $cursor in Pm-19 is our altered capture type, presumably
21:23 * ruoso likes the name CaptureCursor for that respect
21:24 ruoso Pm-19?
21:24 TimToady http://svn.pugscode.org/pugs/misc/pm.txt
21:24 * colomon is suddenly worried that breaking every spectest might be legit...
21:25 jnthn colomon: Not sure yet...digging.
21:26 rjbs joined #perl6
21:26 * ruoso needs to decommute &
21:26 rjbs Patrick Michaud did a lightning talk about Perl 6 operators a year or so ago.
21:27 rjbs It was about shuffling and dealing playing cards.
21:27 rjbs I know he published the slides, but I cannot find them.  Help?
21:28 TimToady The senile geezer draws a blank.
21:28 lisppaste3 colomon pasted "pmichaud++'s cards example" at http://paste.lisp.org/display/94665
21:28 colomon I don't know where the slides are, but there's the code.
21:29 rjbs Found it! http://www.pmichaud.com/2009/pres/oscon-perl6op/slides/start.html
21:29 rjbs thanks.
21:29 jnthn colomon: Oh. I mighta just broken the exporter.
21:30 jnthn colomon: ooh, yes, tweaking that and we look a bit better (well, my sample spectest runs...trying the bunch now)
21:32 colomon jnthn: \o/
21:34 jnthn colomon: 1 new fail, but I know why and how to fix.
21:34 colomon jnthn: \o\  /o/   \o/
21:34 jnthn C:\Consulting\rakudo>perl6 -e "say 'a' before 'b'"
21:34 jnthn 1
21:34 jnthn :-)
21:35 jnthn ng: our multi foo(Rat $x) { say 'r' }; our multi foo(Str $x) { say 's' };  foo(4.2); foo('lol');
21:35 p6eval ng 20eae2: OUTPUT«r␤Nominal type check failed for parameter '$x'; expected Rat but got Str instead␤current instr.: '&foo' pc 198 (EVAL_1:78)␤»
21:35 jnthn That was my minimal test case, and it passes now too.
21:35 jnthn OK, let me clean this up, and then I'll push.
21:36 PerlJam er ... before?  Is that a longhand lt ?
21:37 jnthn colomon: oh the irony. The test that fails, fails because I changed it to make it pass a couple of days ago.
21:37 jnthn And if I change it back it will pass again.
21:37 colomon PerlJam: no, before is lt for anything.
21:38 colomon before is to cmp as < is to <=>
21:38 dalek rakudo/ng: 4e5777c | (Martin Berends)++ |  (2 files):
21:38 dalek rakudo/ng: [core/system.pm] add a simple run(Str) returning Int
21:38 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/4e5777cb17e38fc6f7c6aaea895d2e8c02720b0b
21:38 PerlJam colomon: gotcha
21:39 PerlJam (I assume there's an "after" too?)
21:39 colomon PerlJam: yup.
21:40 jnthn ng: say 'beer' before 'hacking'
21:40 p6eval ng 20eae2: OUTPUT«Nominal type check failed for parameter '$a'; expected Num but got Str instead␤current instr.: '&infix:<cmp>' pc 222902 (src/gen/core.pir:7373)␤»
21:41 pugs_svn r29664 | jnthn++ | [t/spec] Generalize a test I 'corrected' a couple of days back.
21:41 colomon PerlJam: though as jnthn++'s example shows, before and after are broken at the moment in ng.  :)
21:41 pugs_svn r29665 | jnthn++ | [t/spec] Catch up on s/Num/Rat/ spec change for thingies like 1.4.
21:44 jnthn colomon: Hey, I like this patch.
21:44 jnthn 2 files changed, 2 insertions(+), 5 deletions(-)
21:44 colomon :)
21:45 jnthn colomon: re-buidling/re-testing since mberends++ beat me to the commit :-)
21:46 mberends it's fair because your laptop's newer and faster ;)
21:47 jnthn mberends: Also because I'm on my even-faster quadcore desktop at the moment. :-)
21:47 mberends wheee!
21:48 jnthn Great for parallel spectests.
21:48 jnthn Phew, still looks good.
21:49 jnthn If anyone has a small tuit, S16-filehandles/io.rakudo gives a weird plan at the start and throws off the harness.
21:49 jnthn (Did it since before my patch though.)
21:50 dalek rakudo/ng: 8733e74 | jonathan++ | src/ (2 files):
21:50 dalek rakudo/ng: Since we install methods into the lexpad and namespace ourselves, we can happily avoid the Parrot behavior that hoses our multi-dispatches by naming them sigilless for Parrot's sake (in the namespace they're still &foo of course). Simplifies export because methods aren't a special case on stringification now.
21:50 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/8733e74585036ab98338e8847b3542f32c2127c6
21:51 jnthn colomon: OK, anything else I should look at?
21:52 diakopter TimToady: that blank you drew can stand for any letter, you know.
21:52 colomon \o/
21:53 colomon jnthn: nothing I can think of at the moment.  What you just did was huge, I think...
21:53 jnthn Yay. :-)
21:54 colomon I'm working on cooking dinner now, but I'll try to give it a spin at the same time, and a more thorough inspection later.
21:56 jnthn TimToady: my $thingy = <a b c>; say $thingy.WHAT; # What is it?
21:56 jnthn TimToady: I just found a spectest that things Array. :-)
21:58 jnthn *thinks
22:01 rjbs left #perl6
22:01 colomon why does S16-filehandles/io.t have "plan 0" ?
22:02 mberends oops, that was me, because it totally crashed on the sub nonce() line...
22:03 mberends the 0 went better with the tools/test_summary.pl harness. sorry.
22:03 jnthn Ah, phew, not a new regression in ng then.
22:05 colomon mberends: it crashed with a recent ng?
22:05 colomon what platform?
22:05 mberends ng on linux/x86
22:05 mberends I think line 24 is the problem
22:06 TimToady jnthn: I expect it's a Seq.
22:06 mberends io.rakudo:24 sub nonce () { return ".{$*PID}." ~ (1..1000).pick() }
22:07 jnthn TimToady: OK, I'll update said test.
22:08 mberends no longer fails here, it passes all 69 tests now
22:10 colomon jnthn: hmmm, my infix:<...>(@lhs, ::Whatever $rhs) still fails miserably.  But after works, so \o/
22:10 colomon need to stir dinner now...
22:11 jnthn colomon: Note it'll be treating ::Whatever as a type capture...
22:12 mberends jnthn: shall I quickly fix S16-filehandles/io.t or are you on it?
22:12 pugs_svn r29666 | jnthn++ | [t/spec] Catch up a test on recent Array/List/Seq changes.
22:12 jnthn mberends: Please do, I'm on something else.
22:15 jnthn ng: sleep
22:15 p6eval ng 4e5777: OUTPUT«Could not find non-existent sub &sleep␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
22:15 jnthn mberends: Did you mention sleep the other day?
22:15 pugs_svn r29667 | mberends++ | [S16-filehandles/io.t] correct a 'plan 0' back to 'plan *'
22:16 mberends jnthn: planning to do that, but it needed time() first, which is now done.
22:16 jnthn mberends: ah, ok, cool
22:16 jnthn That'll be another test. :)
22:16 mberends trouble is, I need *real* sleep soon
22:17 jnthn ;-)
22:17 jnthn ng: rx/^'first line'/
22:17 p6eval ng 4e5777: OUTPUT«sh: ./perl6: No such file or directory␤»
22:17 jnthn std: rx/^'first line'/
22:17 p6eval std 29665: OUTPUT«ok 00:01 108m␤»
22:19 mberends jnthn: I have a long day at $work tomorrow. I can write sleep() and add the tests in the evening unless someone picks it as LHF
22:20 jnthn mberends: No hurry - I just wanted to check it hadn't been put in and something had gone awry, that's all. :-)
22:21 mberends I'd forgotten about it, distracted by proto's needs :)
22:23 jnthn That's a cool thing to hack on too.
22:24 jnthn ng: say 'beer' before 'sleep'
22:24 p6eval ng 8733e7: OUTPUT«1␤»
22:24 jnthn \o/
22:34 mberends ok, ng compiles proto's Ecosystem.pm to pir with only two "workarounds": delete the unspaces, and replace $0 etc with $/[0] etc
22:36 mberends Installer.pm is much worse off. 'use Ecosystem' is a noop. that's a biggie.
22:38 mberends jnthn: will the 'use' and 'require' code port from master? I know the old versions fairly well.
22:39 mberends (proto is a good Yak to test ng)
22:41 mberends ok, must sleep soon, goodnight
22:47 jnthn phenny: tell mberends sorry, connection dropped...I think use and require may need some review since imports need to be lexical etc - check with Pm.
22:47 phenny jnthn: I'll pass that on when mberends is around.
22:48 dalek rakudo/ng: fcb9e3c | jonathan++ | t/spectest.data:
22:48 dalek rakudo/ng: Updated S29-any/isa.t passes.
22:48 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/fcb9e3c5122bf7ae14188c7e6803662861b38a9a
22:48 dalek rakudo/ng: f456c24 | jonathan++ |  (3 files):
22:48 dalek rakudo/ng: Parse a couple more types of regex quoting constructs. We now get to pass another 3 tests from S05.
22:48 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/f456c2478051d1431f1af9e6cc3f9d6284c66f21
22:48 jnthn That's 4 more. :-)
22:53 eternaleye colomon: you want infix:<...>( @lhs, Whatever $rhs ) not ::Whatever
22:53 eternaleye Also, you could just do Whatever ) without a variable, since all you need is to know it's there, seeing as WHatever is a singleton
22:55 colomon eternaleye: Just Whatever $rhs gets me
22:55 colomon Invalid typename in parameter declaration at line 234, near " $rhs)
22:55 colomon but if I class Whatever { ... } it complains it is already defined.
22:55 eternaleye Hm.
22:55 colomon same error with just Whatever (no $rhs).
22:56 eternaleye Well, ::Whatever will capture the type of that argument and store that type under the name Whatever, rather than constraining the argument to Whatever, which isn't what you want
22:56 colomon right, I got that message.  :)
22:57 eternaleye ng: say Whatever.WHAT
22:57 p6eval ng f456c2: OUTPUT«Whatever()␤»
22:57 jnthn colomon: I guess that means "plz I can haz class stub declarations?" :-)
22:57 eternaleye ng: say *.WHAT
22:57 p6eval ng f456c2: OUTPUT«Whatever()␤»
22:57 jnthn colomon: Alternatively, maybe move Whatever earlier on in the bootstrap.
22:57 eternaleye AH
22:58 jnthn colomon: Oh, or maybe it's something else.
22:59 cotto_working joined #perl6
23:00 colomon yes, I'm getting weird messages still
23:01 colomon ah, it complained when I said $a ~~ Whatever.
23:01 jnthn ng: sub foo(Whatever $x) { say "ok" }; foo(*)
23:01 p6eval ng f456c2: OUTPUT«ok␤»
23:01 colomon $a ~~ ::Whatever seems to be fine.
23:03 jnthn colomon: What file are you trying to add to?
23:03 colomon operators.pm
23:03 jnthn ah
23:03 jnthn Yeah, it's before Whatever in the bootstrap.
23:03 jnthn std: class Foo { ... }
23:03 p6eval std 29667: OUTPUT«ok 00:02 107m␤»
23:03 jnthn std: class Foo { ... }; my Foo $x;
23:03 p6eval std 29667: OUTPUT«ok 00:01 106m␤»
23:04 jnthn Hmm
23:04 jnthn ng: class Foo { ... }
23:04 p6eval ng f456c2: OUTPUT«No exception handler and no message␤current instr.: '&fail' pc 15242 (src/builtins/Junction.pir:207)␤»
23:05 colomon ng: ('a'..'g').map({.say}).eager
23:05 p6eval ng f456c2: OUTPUT«a␤b␤c␤d␤e␤f␤g␤»
23:05 colomon \o/
23:05 dalek rakudo/ng: 057d093 | jonathan++ | src/Perl6/ (2 files):
23:05 dalek rakudo/ng: return without any arguments should not be an error, but rather just return Nil.
23:05 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/057d093327ea6cbed6e9abd706a7145b756abb81
23:14 lichtkind joined #perl6
23:23 dalek rakudo/ng: 81273d8 | (Solomon Foster)++ | src/core/Range.pm:
23:23 dalek rakudo/ng: Make Range!min_test and Range!max_test use after and before rather than lt and gt.
23:23 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/81273d81961bbfb2b0967bad42230d041f188797
23:24 pugs_svn r29668 | colomon++ | [t/spec] Defudge tests that now work.
23:25 jnthn Yay. :-)
23:25 jnthn colomon: I'm part of the way to a patch for stubs.
23:25 jnthn (for packages)
23:25 colomon \o/
23:26 muenalan joined #perl6
23:26 muenalan left #perl6
23:27 jnthn Also, it seems multiple return values work "out of the box" in ng, and return; also works after a patch earlier.
23:28 jnthn Mmmm...tmave krusovice...
23:28 eternaleye joined #perl6
23:29 colomon ng: say ~(3..6)
23:29 p6eval ng 057d09: OUTPUT«3..6␤»
23:31 jnthn rakudo: say ~(3..6)
23:31 p6eval rakudo 1d4928: OUTPUT«3 4 5 6␤»
23:31 colomon range.t expects that behavior.
23:31 jnthn I think I do too.
23:31 colomon but I don't know what, if anything, is spec'd.
23:32 jnthn ng: say 3..6
23:32 p6eval ng 057d09: OUTPUT«3456␤»
23:32 jnthn ah
23:32 jnthn rakudo: say 3..6
23:32 p6eval rakudo 1d4928: OUTPUT«3456␤»
23:32 jnthn Ah, ok
23:32 jnthn More subtle.
23:32 jnthn Hm
23:33 colomon Yeah, Range isn't spec'd as having .Str on it.
23:36 colomon If it doesn't, then you get Method 'Str' not found for invocant of class 'Range'
23:36 jnthn That feels a tad awkward/unhelpful though.
23:37 jnthn Eh well, hopefully TimToady backlogs and has an idea. :-)
23:37 colomon I'm trying the version from master now to see how it does.
23:38 colomon no joy there either.
23:38 jnthn colomon: Think I have a first cut of stubs working. :-)
23:39 colomon \o/
23:39 colomon I think I'm about to run out of battery, which will probably end my hacking for a while.  :)
23:39 jnthn It's getting kinda late here too.
23:40 jnthn I sorta want to do my (...sig...) := foo(), but figure I'll do that tomorrow :-)
23:40 hercynium joined #perl6
23:40 jnthn I fail some of S03-operators\range-basic.t - maybe I'm missing a pull though?
23:40 colomon If 4 fails you're missing a pull.
23:41 jnthn Yup, 4.
23:42 jnthn OK, pulling, re-testing, pushing. :-)
23:43 colomon dang it!  you beat me again!
23:44 kensanata joined #perl6
23:45 colomon oh, nope, I beat you this time.  :D
23:45 jnthn aww!
23:45 dalek rakudo/ng: 153adb7 | (Solomon Foster)++ | src/core/Range.pm:
23:45 dalek rakudo/ng: Implement version of Range.Str which produces the expected (but not spec'd?) "3 4 5 6".
23:45 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/153adb7cae119fc0066e030cb8cdc4680704e424
23:47 jnthn It's my own fault for getting distracted by lolcats.
23:48 TimToady in keeping with the notion that .. represents intervals more than serieses these days, it maybe that ~ returning "3..6" from a range is reasonable
23:48 TimToady and it gets more reasonable as 6 approaches infinity
23:49 TimToady though we'll have to decide how to stringify an infinite series as well
23:50 jnthn I'd not object to it stringifying that way.
23:50 jnthn (Good point on the infinities.)
23:50 jnthn TimToady: I dunno if you had any more thoughts on resolving the "multi role" vs "specific role" issue?
23:51 jnthn TimToady: Trying to pretend both are the same thing is tripping me up a bit.
23:52 jnthn I agree that in general you shouldn't have to care, just as you can do foo() and not care if it's multi or single.
23:52 jnthn But there's a way to care when you need to.
23:54 TimToady well, I'd rather have &foo mean "whatever it is you get if you call foo", and let it degerate to a bare invocation in some cases, than to default to bare and have no way of naming the multi easily
23:54 TimToady *degenerate
23:55 TimToady there's something to be said for mediating it all through the proto, if there is one, and the proto is really the &foo, which
23:55 TimToady delegates to its multies
23:56 TimToady (leaving something else to function as a default)
23:56 jnthn Hmm
23:57 jnthn But my point is more than I can test if I have a multi if I need to (&foo ~~ Multi), which is rarely important...
23:57 dalek rakudo/ng: ae7824c | jonathan++ | src/Perl6/ (2 files):
23:57 dalek rakudo/ng: Initial support for stub packages - just doesn't generate any code and notes that it shouldn't complain on 're'-declaration.
23:57 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/ae7824ca34f556b97dc293a99008f90024eb0611
23:57 jnthn But if I declare role R[::T] { } and role R[::T1, ::T2] { }
23:58 jnthn R is kinda different from, say, R[Int]
23:58 jnthn It's the name of a whole bunch of related roles.
23:58 jnthn Or at least, that's how I've been seeing it so far.
23:59 jnthn There's the odd case in metamodel-y bits where it matters which one we have, and while I've got some tricksy way of doing it at a guts level, there's no way of doing it at a Perl 6 level so far.
23:59 jnthn And given I'm aiming to reduce magic and write more of Perl 6 in Perl 6, I'm kinda aching for one at the moment.

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

Perl 6 | Reference Documentation | Rakudo