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