»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend! | YAPC::NA talk submissions due end of Month. Have you submitted your talk? Set by toddr_ on 18 March 2013. |
|||
[Coke] | r: loop { last; LEAVE say "bye!" }; say "outside" | 00:02 | |
p6eval | rakudo 604986: OUTPUT«===SORRY!===Error while compiling block : Error while compiling op call: Error while compiling block : Error while compiling op bind: Error while compiling op while: Error while compiling block : Error while compiling op p6return: Operation 'p6return' requires 1 o… | ||
[Coke] | for ^10 { next; LEAVE say "yay!" }; say "outside" | 00:03 | |
r: for ^10 { next; LEAVE say "yay!" }; say "outside" | |||
p6eval | rakudo 604986: OUTPUT«yay!yay!yay!yay!yay!yay!yay!yay!yay!yay!outside» | ||
00:07
huf joined
|
|||
labster | yay! | 00:08 | |
00:17
mst left,
mst joined
00:26
fgomez left,
fgomez joined
00:27
Perlx joined
00:35
Perlx left
00:36
toddr left
00:37
xinming left
00:39
xinming joined
00:42
tgt left
|
|||
[Coke] | r: say callframe().callframe(1).my.perl | 00:50 | |
p6eval | rakudo 3ff276: OUTPUT«Callframe.callframe not yet implemented. Sorry.  in method callframe at src/gen/CORE.setting:11205 in block at /tmp/if5wQttEsM:1» | ||
[Coke] | RT-- I have a search where tag doesn't contain testneeded - tickets with this tag show up in the search. | 00:52 | |
(ah. need !=, not "not like") | 00:54 | ||
LHF: rt.perl.org/rt3/Ticket/Display.html?id=82524 - file has moved to tools/build, but should apply easily and be testable. | 00:57 | ||
coke - Ticket 111932: Merged into ticket #93980 | 01:00 | ||
I hate RT so much. I wonder if it would suck less if we could open tickets without having to go through email. | 01:05 | ||
01:05
drbean left
|
|||
geekosaur likes RT, but has not done a lot of mail-only with it | 01:06 | ||
ticket manipulation via email is slightly better now than it was in 2.x, but in some ways 1.x still was better (and 1.x rather sucked for it) | 01:07 | ||
01:07
drbean joined
|
|||
[Coke] | things like word wrapping of code make it painful to test. | 01:15 | |
01:17
drbean left
01:20
drbean joined
01:22
drbean left
01:23
fridim joined,
drbean joined
01:30
drbean left,
drbean joined
01:35
atta_ left
01:36
drbean left
01:37
drbean joined
01:38
arlinius left
01:39
atta_ joined
01:42
sqirrel_ joined,
FROGGS_ joined
01:46
sqirrel left,
FROGGS left
|
|||
dalek | kudo/nom: 23847e9 | (Geoffrey Broadwell)++ | src/core/ListIter.pm: Tweak ListIter output to put $!list attribute first, since it is just a circular reference back to the parent list and tends to get lost visually when at the end |
01:56 | |
01:57
fgomez left
01:59
census left
02:09
arlinius joined
02:10
census joined,
fgomez joined
|
|||
timotimo | r: say {"foo" => ()}.perl | 02:10 | |
p6eval | rakudo 3ff276: OUTPUT«{"foo" => $()}» | 02:11 | |
timotimo | r: say {"foo" => $()}.perl | ||
p6eval | rakudo 3ff276: OUTPUT«No such method 'ast' for invocant of type 'Any' in block at /tmp/iTCnskFOaO:1» | ||
timotimo | this seems like a good thing i could quickly fix, do you agree? | ||
labster | already reported it | 02:20 | |
r: say ().item.perl | |||
p6eval | rakudo 23847e: OUTPUT«$()» | ||
02:20
dmol joined
|
|||
timotimo | cool. are you okay with me fixing it and writing a test case? | 02:20 | |
changing it to be () is the right way, correct? | |||
labster | sure. might I suggest "$( )" for empty parcel? | 02:21 | |
timotimo | in that case, i don't know how to implement it | ||
labster | r: say ().WHAT, $( ).WHAT | 02:22 | |
timotimo | all i know is how to make rakudo output () instead of $() in .perl :D | ||
p6eval | rakudo 23847e: OUTPUT«(Parcel)(Parcel)» | ||
labster | maybe you're right. | ||
timotimo | oh! maybe it should output $( )! | ||
that should work fine | |||
labster | either way would be better, not sure which is more better. | 02:23 | |
timotimo | oooh, the AST is really weird | 02:24 | |
does $() have some kind of value relating to $/? | |||
- QAST::Op(call &say) say $() - QAST::Stmt - QAST::Op(bind) - QAST::Var(local sm_result_1 :decl) - QAST::Op(if) - QAST::Op(callmethod ast) - QAST::Var(lexical $/) - QAST::Op(callmethod ast) - QAST::Var(lexical $/) - QAST::Op(callmethod Str) - QAST::Var(lexical $/) | |||
see how it creates "callmethod ast" on the $/ object? | |||
labster | S05: The .ast method by default returns an undefined value. $() is a shorthand for $($/.ast // ~$/). | 02:25 | |
timotimo | ...oh! | ||
in that case, that is what's wrong i suppose. | |||
so should i correct the output to $( ) or ()? | |||
r: "foo bar" ~~ / (<[a..z]>+) { make $0 } /; say $(); | 02:26 | ||
p6eval | rakudo 23847e: OUTPUT«「foo」» | ||
timotimo | r: "foo bar" ~~ / (<[a..z]>+) { make $0 } /; say $( ); | ||
p6eval | rakudo 23847e: OUTPUT«» | ||
timotimo | r: "foo bar" ~~ / (<[a..z]>+) { make $0 } /; say $( ).perl; | ||
p6eval | rakudo 23847e: OUTPUT«$()» | ||
timotimo | indeed, that should definitely be changed away from that. | ||
pmichaud | rn: say ().perl | 02:28 | |
p6eval | rakudo 23847e, niecza v24-35-g5c06e28: OUTPUT«()» | ||
pmichaud | rn: say ().item.perl | ||
p6eval | rakudo 23847e, niecza v24-35-g5c06e28: OUTPUT«$()» | ||
timotimo | oh, i need to figure out in which context it appears | ||
pmichaud | better might be ().item.perl | ||
timotimo | i wonder if that's tricky. | ||
rn: say $().perl | 02:29 | ||
p6eval | rakudo 23847e: OUTPUT«No such method 'ast' for invocant of type 'Any' in block at /tmp/vvvjOpqDn8:1» | ||
..niecza v24-35-g5c06e28: OUTPUT«Unhandled exception: Unable to resolve method ast in type Any at /tmp/TqXQYDQTCj line 1 (mainline @ 3)  at /home/p6eval/niecza/lib/CORE.setting line 4299 (ANON @ 3)  at /home/p6eval/niecza/lib/CORE.setting line 4300 (module-CORE @ 583)  at /home/p6… | |||
timotimo | yeah, both agree this is basically wrong | ||
labster | rn: say <foo bar>.item.perl | ||
p6eval | rakudo 23847e, niecza v24-35-g5c06e28: OUTPUT«$("foo", "bar")» | ||
pmichaud | perhaps it should be trailing ".item" instead of leading '$' there. | ||
just a sec | 02:30 | ||
timotimo | i can do that | ||
i have the code in front of me right now | |||
pmichaud | can you do a 'git diff' on it so I can see? | ||
timotimo | sure. | ||
paste.ee/p/pAFRV | 02:31 | ||
[Coke] | how can I tell which parent/role a method comes from? | ||
timotimo | [Coke]: oh, that's a tough one | ||
(to me, me being a total newbie) | |||
pmichaud | timotimo: diff looks very good to me... go with that. | ||
timotimo | yay! | 02:32 | |
do you have a commit bit for rakudo? i can format-patch it over to you | |||
so you can git am it | |||
i'll build and test a bit first, though | |||
pmichaud | that's a good idea. also, might be careful with precedence of ~ and ??!! | ||
timotimo | i will test that in a quick nqp session | 02:33 | |
pmichaud | might want parens around the nqp::iscont(SELF) ?? ... !! part | ||
02:33
daniel-s_ joined
|
|||
timotimo | good call. | 02:33 | |
yes | |||
02:35
daniel-s left,
census left
|
|||
timotimo | r: say ({"a" => 0, "b" => ().item}, {"a" => 1, "b" => ("ffff",).item}, {"a" => 4, "b" => ("123",).item})>>.<a>; # explain please why it seems to want to call postcircumfix:<{ }> on Int here? :( | 02:36 | |
p6eval | rakudo 23847e: OUTPUT«postcircumfix:<{ }> not defined for type Int in method sink at src/gen/CORE.setting:10742 in method STORE at src/gen/CORE.setting:6840 in sub hash at src/gen/CORE.setting:6993 in sub hyper at src/gen/CORE.setting:13388 in sub hyper at src/gen/CORE.setting… | ||
timotimo | pmichaud: this is the format-patch'd version of the fixed diff: paste.ee/p/eXLpF - i'll give you the go-ahead for pushing it after i tested it for a little bit | 02:38 | |
but you can already prepare to push it, isn't technology magical? :D | |||
02:38
dmol left
|
|||
timotimo | uuuh, what did i do now?! Missing or wrong version of dependency 'src/Perl6/Actions.pm' | 02:41 | |
i just recompiled that! :| | |||
oh well. *make clean* | |||
pmichaud | r: say ({"a" => 0, b => ().item}).<a>; | 02:42 | |
p6eval | rakudo 23847e: OUTPUT«0» | ||
pmichaud | r: say ({"a" => 0, b => ().item})>>.<a>; | ||
p6eval | rakudo 23847e: OUTPUT«postcircumfix:<{ }> not defined for type Int in method sink at src/gen/CORE.setting:10742 in method STORE at src/gen/CORE.setting:6840 in sub hash at src/gen/CORE.setting:6993 in sub hyper at src/gen/CORE.setting:13388 in sub hyper at src/gen/CORE.setting… | ||
pmichaud | r: say ({"a" => 0, b => ().item})».<a>; | 02:43 | |
p6eval | rakudo 23847e: OUTPUT«postcircumfix:<{ }> not defined for type Int in method sink at src/gen/CORE.setting:10742 in method STORE at src/gen/CORE.setting:6840 in sub hash at src/gen/CORE.setting:6993 in sub hyper at src/gen/CORE.setting:13388 in sub hyper at src/gen/CORE.setting… | ||
timotimo | r: say ({"a" => 0, b => ().item},)[0].<a>; | ||
p6eval | rakudo 23847e: OUTPUT«0» | ||
pmichaud | oh | ||
timotimo | yep, you missed the , in there | ||
pmichaud | that's because of a spec change | ||
timotimo | oh, >>. flattens or something? | ||
pmichaud | >>. goes deeply | ||
timotimo | ooooh! | ||
do i do .each.<a> instead? | |||
02:43
drbean left
|
|||
pmichaud | the spec changed but rakudo hasn't changed to match yet | 02:43 | |
timotimo | r: say ({"a" => 0, b => ().item},).each.<a>; | 02:44 | |
p6eval | rakudo 23847e: OUTPUT«No such method 'each' for invocant of type 'Parcel' in block at /tmp/wfQh8xgrbP:1» | ||
timotimo | oh, each isn't even specced yet iirc | ||
pmichaud | >>. needs to not go deeply, I think. | ||
checking spec | |||
timotimo | ah, okay, so the code *would* be correct, but rakudo isn't | ||
02:44
drbean joined
|
|||
timotimo | n: say ({"a" => 0, b => ().item},)>>.<a>; | 02:44 | |
p6eval | niecza v24-35-g5c06e28: OUTPUT«Unhandled exception: Cannot use hash access on an object of type Int at <unknown> line 0 (ExitRunloop @ 0)  at /home/p6eval/niecza/lib/CORE.setting line 352 (Any.at_key @ 9)  at <unknown> line 0 (ExitRunloop @ 0)  at /tmp/4rGFLpN8Qn line 0 (ANON @ … | ||
pmichaud | timotimo: I think that's the case. | ||
timotimo | it appears niecza does the same thing | ||
would you trust in me to handle that change in rakudo? it could potentially be quite easy, but lots of tests would have to be changed i suppose | 02:45 | ||
02:46
atroxaper joined
|
|||
pmichaud | oh, it's not as simple as I remembered. | 02:46 | |
timotimo | oh no :( | ||
pmichaud | See "duck mapping" in S03. | ||
timotimo | i will | ||
d'aaw, that's an awesome naming scheme | 02:47 | ||
oh, i think i misunderstood | |||
i thought duck mapping would be flat, because the duck swims "on the surface" of the structure | |||
but apparently duckmap and deepmap both descend into structures | 02:48 | ||
pmichaud | duck mapping has a shallow bias, yes. | ||
deepmap has a recursive bias | |||
[Coke] | rn: say (1..1234).max; | 02:49 | |
p6eval | rakudo 23847e, niecza v24-35-g5c06e28: OUTPUT«1234» | ||
timotimo | i don't understand how that works from the spec wording. is it like "descend the operator tree in left, operator, right order" versus "descend the tree in left, right, operator order"? | ||
pmichaud | at any rate, rakudo currently gives hypers a deepmap semantic | ||
I have to leave :-( bbl maybe | |||
timotimo | i'll probably go to bed in a few minutes anyway | 02:50 | |
see you tomorrow, pmichaud :) | |||
[Coke] | rn: (1..10).min: { ($_-3) * ($_-5) } | 02:52 | |
p6eval | niecza v24-35-g5c06e28: OUTPUT«Unhandled exception: Excess arguments to min, used 1 of 2 positionals at /home/p6eval/niecza/lib/CORE.setting line 0 (min @ 1)  at /tmp/TtM6oyufuF line 1 (mainline @ 3)  at /home/p6eval/niecza/lib/CORE.setting line 4299 (ANON @ 3)  at /home/p6eval/… | ||
..rakudo 23847e: OUTPUT«Too many positional parameters passed; got 2 but expected 1 in method <anon> at src/gen/CORE.setting:1937 in block at /tmp/xDx00Bl1gn:1» | |||
02:53
fgomez left
|
|||
dalek | ast: 33955a8 | coke++ | S0 (5 files): rakudo unfudge move some skips to (conditional) todos, run more passing tests. |
02:54 | |
ast: f73dd38 | coke++ | S32-list/minmax.t: Remove spec-invalid min/max Range tests RT #105118 |
|||
02:57
preflex left,
orafu left,
preflex_ joined
02:58
preflex_ is now known as preflex
02:59
orafu joined
03:06
fgomez joined
03:08
census joined
03:26
drbean left
|
|||
japhb_ | What's the best way to achieve a deep .clone? | 03:32 | |
03:54
census left
04:07
asogani joined
|
|||
sorear | japhb_: best way - intelligent multisub. quickest way - .perl.eval | 04:11 | |
04:14
fridim left
|
|||
japhb_ | sorear, fair enough, thank you. | 04:14 | |
.ask moritz Why does JSON::Tiny have to-json multis for Hash and Any, instead of Associative and Mu, respectively? | 04:22 | ||
yoleaux | japhb_: I'll pass your message to moritz. | ||
04:47
sam1983 joined
04:51
japhb_ left
04:52
fgomez left
05:07
asogani left
05:10
pupoque joined
|
|||
moritz | japhb: iirc JSON::Tiny comes from the pre-nom area, where roles where fraught with peril. If it works now with Associative and Mu, feel free to change | 05:16 | |
yoleaux | 04:22Z <japhb_> moritz: Why does JSON::Tiny have to-json multis for Hash and Any, instead of Associative and Mu, respectively? | ||
05:16
frdmn left
05:20
sam1983 left
05:21
quester joined
05:23
SamuraiJack joined,
fgomez joined
05:34
kurahaupo left
05:45
Heather joined
|
|||
Heather | hi there. | 05:45 | |
how can I fork another branch too with git? | |||
atroxaper | Hi | ||
Timbus | the easiest way is to checkout into a new branch. git checkout -b new_branch_name | 05:46 | |
atroxaper | Timbus+ | 05:47 | |
Heather | Timbus but it will checkout current / base branch to it | ||
Timbus I need to checkout some outdated branch from remote there | 05:48 | ||
with some ancient change | |||
then rebase master changes to it and test | |||
atroxaper | git checkout -b new_branch origin/remote_branch | ||
Timbus | ^ | ||
Heather | thank you | 05:49 | |
atroxaper | ;) | 05:52 | |
05:57
FROGGS_ left
06:01
nyuszika7h left
06:02
nyuszika7h_ joined
06:07
frdmn joined,
kaleem joined
06:08
FROGGS_ joined
|
|||
FROGGS_ | morning | 06:13 | |
06:13
FROGGS_ is now known as FROGGS,
rindolf joined
|
|||
FROGGS | nr: say "abcde" ~~ / | @(<a b bc cde>)+»/ | 06:20 | |
p6eval | niecza v24-35-g5c06e28: OUTPUT«「abcde」» | ||
..rakudo 23847e: OUTPUT«「cde」» | |||
06:25
rindolf left,
rindolf joined
|
|||
japhb | moritz, ah, OK. | 06:31 | |
japhb pushes that onto his task heap | |||
06:35
rindolf left,
rindolf joined
|
|||
labster | hi FROGGS | 06:43 | |
06:44
domidumont joined,
rindolf left,
domidumont left
06:45
rindolf joined
06:47
Shozan is now known as SHODAN,
SHODAN is now known as 36DAACKXL,
36DAACKXL is now known as SHODAN
06:48
domidumont joined
06:58
rindolf left,
rindolf joined
07:04
rindolf left,
rindolf joined
07:11
SamuraiJack_ joined,
pupoque left
07:12
SamuraiJack left
07:21
domidumont left
07:22
domidumont joined
07:29
quester left
|
|||
diakopter | . | 07:37 | |
yoleaux: y u no msgs 4 me | |||
mst | diakopter: I am frankly ashamed that I was able to parse that. | 08:05 | |
diakopter | yoleaux: ask mst 4giv | 08:07 | |
>sigh< | |||
dvj: how about 'ask' | 08:08 | ||
FROGGS | .tell diakopter Maybe this way? | ||
yoleaux | FROGGS: I'll pass your message to diakopter. | ||
diakopter | (like phuphuphuphenny) | ||
yoleaux | 08:08Z <FROGGS> diakopter: Maybe this way? | ||
diakopter | .ask mst 4giv | 08:09 | |
yoleaux | diakopter: I'll pass your message to mst. | ||
diakopter | yippee | ||
FROGGS | :o) | ||
yoleaux: .ask somebody Really?? | |||
hmm, oaky | |||
nwc10 | .ask yoleaux about recursion | 08:11 | |
yoleaux | nwc10: Thanks for the message. | ||
08:11
fhelmberger joined
|
|||
diakopter | .ask p6eval r: say '.ask p6eval r: hi' | 08:11 | |
yoleaux | diakopter: I'll pass your message to p6eval. | ||
diakopter | r: ; | ||
p6eval | rakudo 23847e: ( no output ) | ||
yoleaux | 08:11Z <diakopter> p6eval: r: say '.ask p6eval r: hi' | 08:12 | |
Timbus | awww | ||
your domino tipped sideways | |||
FROGGS | :/ | ||
.tell FROGGS Hi! | 08:13 | ||
yoleaux | FROGGS: Talking to yourself is the first sign of madness. | ||
FROGGS | *g* | ||
diakopter | .ask yoleaux um | 08:15 | |
yoleaux | diakopter: Thanks for the message. | ||
FROGGS | .meow | ||
yoleaux | edgecats.net/cats/anigif_enhanced-b...539-27.gif | ||
diakopter | .cowbell | 08:19 | |
Heather | yoleaux++ ! | 08:21 | |
diakopter | .ask dvj wherefore me | ||
yoleaux | diakopter: I'll pass your message to dvj. | ||
lizmat | rn: my $foo=val("bar") | 08:26 | |
p6eval | rakudo 23847e: OUTPUT«===SORRY!===Undeclared routine: val used at line 1. Did you mean '&eval'?» | ||
..niecza v24-35-g5c06e28: OUTPUT«Potential difficulties: $foo is declared but not used at /tmp/KktPbyC6dK line 1:------> my ⏏$foo=val("bar")» | |||
lizmat | rn: my $foo=val("bar"); say $foo | ||
p6eval | niecza v24-35-g5c06e28: OUTPUT«bar» | ||
..rakudo 23847e: OUTPUT«===SORRY!===Undeclared routine: val used at line 1. Did you mean '&eval'?» | |||
lizmat | val() NYI in Rakudo? | 08:27 | |
diakopter | n: say &val.WHAT.new | ||
p6eval | niecza v24-35-g5c06e28: OUTPUT«Unhandled exception: System.InvalidCastException: Cannot cast from source type to destination type. at Niecza.Kernel.GetInfo (Niecza.P6any sub) [0x00000] in <filename unknown>:0  at Builtins.code_name (Niecza.P6any obj) [0x00000] in <filename unknown>:… | ||
08:27
woolfy joined
08:32
dmol joined
|
|||
moritz | lizmat: aye | 08:37 | |
lizmat | rn: say 1.23456.WHAT | 08:38 | |
p6eval | rakudo 23847e, niecza v24-35-g5c06e28: OUTPUT«(Rat)» | ||
lizmat | S02:3369 states :6.02e23.WHAT # Num" | ||
maybe that example should be (Num) instead? | |||
masak | good forenoon, #perl6 | 08:39 | |
lizmat | oops, and its Rat rather than Num | ||
oops copy'n'paste error on my side | |||
rn: way 6.02e23.WHAT | 08:40 | ||
p6eval | niecza v24-35-g5c06e28: OUTPUT«===SORRY!===Undeclared routine: 'way' used at line 1Unhandled exception: Check failed at /home/p6eval/niecza/boot/lib/CORE.setting line 1443 (die @ 5)  at /home/p6eval/niecza/src/STD.pm6 line 1147 (P6.comp_unit @ 37)  at /home… | ||
..rakudo 23847e: OUTPUT«===SORRY!===Undeclared routine: way used at line 1. Did you mean '&say'?» | |||
lizmat | rn: say 6.02e23.WHAT | ||
p6eval | niecza v24-35-g5c06e28: OUTPUT«Num()» | ||
..rakudo 23847e: OUTPUT«(Num)» | |||
lizmat is not awake yet | |||
std: say :2{0010_1110_1000_10} | 08:44 | ||
p6eval | std 86b102f: OUTPUT«===SORRY!===Malformed radix number at /tmp/iWYzSI1oUR line 1:------> say :2⏏{0010_1110_1000_10}Parse failedFAILED 00:00 41m» | ||
lizmat | blob literals NYI, check :-) | ||
08:47
jac50 joined
08:50
kaleem left
08:51
kaleem joined
|
|||
lizmat is trying to make sense of S02:3676 | 09:12 | ||
:sweet(16) versus :16sweet | |||
lizmat doesn't understand the reasoning behind allowing :16sweet | 09:13 | ||
jnthn | s:2nd/foo/bar/ | ||
moritz | probably a "you think this is cool /today/" generalization of the principle that allows you to write :1st, :2nd, :3rd, :4th etc. on matches and substitutions | 09:14 | |
lizmat | ah, now *that* makes more sense than "16sweet" | ||
jnthn | yeah, that's not the best 1nd example. | 09:15 | |
masak | nor a best 2rd or 3st one... | 09:17 | |
moritz | a thirst option! | ||
sorear | internationalizatioN! | ||
lizmat | suggest to add: "Please note that this abbreviation allows: s:2nd/foo/bar/ # or 3rd, 4th, 5th etc." | 09:18 | |
to S02 there | |||
masak | lizmat: do you have commitbit to the spec? | ||
lizmat | yes | ||
I will commit then :-) | |||
masak | lizmat: feel free, then. sounds good. | ||
lizmat++ | |||
tadzik | \o/ | 09:19 | |
hello #perl6 | |||
moritz: does "Method 'seek' not implemented for type Socket" ring a bell, re ilbot6? | |||
Heather | hi | ||
moritz | tadzik: yes. Fixed by switching to parrot HEAD | ||
tadzik | oh, good | 09:20 | |
is there a reason why PARROT_REVISION is not bumped? | |||
dalek | ecs: c557b42 | (Elizabeth Mattijsen)++ | S02-bits.pod: Clarification on :sweet(16) -> :16sweet adverb |
||
moritz | tadzik: I don't think so | 09:21 | |
(note that the newest release should be fine, probably doesn't really need HEAD) | |||
Heather is using head | |||
moritz | every human should. | 09:22 | |
tadzik | moritz: I'll see if there're no spectest failures and if not I'll bump Parrot for all the things | ||
FROGGS will put coffee now into his HEAD | |||
tadzik | working networking seems like a worthy goal to pursue | ||
lizmat | FROGGS: be sure to use the right entry point | 09:23 | |
dalek | : f41550c | (Tobias Leich)++ | lib/Perl6/P5 (2 files): allow C-style for loops |
09:24 | |
: 3c0bdf6 | (Tobias Leich)++ | lib/Perl6/P5Grammar.pm: treat "abc"."def" as concat and not as dottyop |
|||
sorear | r: say :1.42stopbits | ||
p6eval | rakudo 23847e: OUTPUT«===SORRY!===Malformed radix numberat /tmp/TaC3rRd3cR:1------> say :1⏏.42stopbits expecting any of: number in radix notation» | ||
FROGGS | lizmat: I will *g* | 09:25 | |
lizmat | rn: say :10(12) | 09:35 | |
p6eval | niecza v24-35-g5c06e28: OUTPUT«Unhandled exception: Numbers may not be passed :base(); if you wanted to render the number in the given base, use $number.base($radix); if you want to treat the number as a string, explicitly coerce it first at /home/p6eval/niecza/lib/CORE.setting line 1… | ||
..rakudo 23847e: OUTPUT«Nominal type check failed for parameter '$str'; expected Str but got Int instead in sub unbase at src/gen/CORE.setting:5036 in block at /tmp/DnQfo9v2qz:1» | |||
lizmat | rn: say :10("12") | ||
p6eval | rakudo 23847e, niecza v24-35-g5c06e28: OUTPUT«12» | ||
lizmat | rn: say :2(100100101010010) | 09:43 | |
p6eval | niecza v24-35-g5c06e28: OUTPUT«Unhandled exception: Numbers may not be passed :base(); if you wanted to render the number in the given base, use $number.base($radix); if you want to treat the number as a string, explicitly coerce it first at /home/p6eval/niecza/lib/CORE.setting line 1… | ||
..rakudo 23847e: OUTPUT«Nominal type check failed for parameter '$str'; expected Str but got Int instead in sub unbase at src/gen/CORE.setting:5036 in block at /tmp/OB_1AQNGVb:1» | |||
09:43
woosley joined
|
|||
FROGGS | rn: say :2(~100100101010010) | 09:44 | |
p6eval | rakudo 23847e, niecza v24-35-g5c06e28: OUTPUT«18770» | ||
lizmat | yeah, I get that... | ||
seems though that new users may be confused by :2(1) having to be written as 2:("1") or 2:(~1) | 09:45 | ||
it stumped me for a bit :-) | 09:46 | ||
bi15& | 09:47 | ||
09:48
Heather left
|
|||
moritz | it might be wiser to abolish the whole district of magic, and force the user to write s:nth(2)/a/b/ | 09:48 | |
09:49
atta_ left
|
|||
FROGGS | ya, but then you can't write: s:7ish/a/b/ anymore :o) | 09:51 | |
moritz | or special-case s:/// | ||
:-) | |||
FROGGS | r: say "abcdef" ~~ m:1st/\w/ | 09:53 | |
p6eval | rakudo 23847e: OUTPUT«「a」» | ||
FROGGS | r: say "abcdef" ~~ m:2st/\w/ | ||
p6eval | rakudo 23847e: OUTPUT«「b」» | ||
FROGGS | r: say "abcdef" ~~ m:2_1st/\w/ | ||
p6eval | rakudo 23847e: OUTPUT«===SORRY!===Adverb _1st not allowed on mat /tmp/F1QKpjtF3l:1------> say "abcdef" ~~ m:2_1st/\w/⏏<EOL>» | ||
FROGGS | r: say "abcdefhdsakfhlskdhfklasjdflhsskdhflkjsdah" ~~ m:2_1st/\w/ | ||
p6eval | rakudo 23847e: OUTPUT«===SORRY!===Adverb _1st not allowed on mat /tmp/NMjjprmc4c:1------> hfklasjdflhsskdhflkjsdah" ~~ m:2_1st/\w/⏏<EOL>» | ||
FROGGS | r: say "abcdefhdsakfhlskdhfklasjdflhsskdhflkjsdah" ~~ m:2_1/\w/ | ||
p6eval | rakudo 23847e: OUTPUT«===SORRY!===Adverb _1 not allowed on mat /tmp/Xi4sgDVFXf:1------> kdhfklasjdflhsskdhflkjsdah" ~~ m:2_1/\w/⏏<EOL>» | ||
FROGGS | r: say "abcdefhdsakfhlskdhfklasjdflhsskdhflkjsdah" ~~ m:2e1/\w/ | ||
p6eval | rakudo 23847e: OUTPUT«===SORRY!===Adverb e1 not allowed on mat /tmp/yoEAChuA9b:1------> kdhfklasjdflhsskdhflkjsdah" ~~ m:2e1/\w/⏏<EOL>» | ||
09:54
atta_ joined
|
|||
FROGGS | ahh, hold on, it really just knows about st, nd, rd, th, ... | 09:55 | |
moritz | the actions, yes. The parser doesn't care. | ||
FROGGS | true | ||
std: ok(chr 65 eq 'A' || chr 193 eq 'A', "chr can produce 'A'"); | 09:59 | ||
p6eval | std 86b102f: OUTPUT«===SORRY!===Undeclared routine: 'ok' used at line 1Check failedFAILED 00:00 43m» | ||
FROGGS | std: use v5; ok(chr 65 eq 'A' || chr 193 eq 'A', "chr can produce 'A'"); | ||
p6eval | std 86b102f: OUTPUT«ok 00:01 53m» | ||
FROGGS | locally I get: Too many positional parameters passed; got 2 but expected 1 | 10:00 | |
now I tell it that chr takes one argument, and the rest doesn't belong to chr's sub call | 10:01 | ||
10:01
drbean joined
|
|||
FROGGS | -.- | 10:01 | |
uhh, ahh, it looks like STD_P5 can do it already, I just commented that bit out :o) | 10:02 | ||
moritz | in other words, you need to implement prototypes | 10:13 | |
lizmat shivers | |||
FROGGS | moritz: well, yes, but not yet for the built-ins though | 10:17 | |
moritz: I have no idea how this could be done with perl5's prototypes :/ | 10:20 | ||
does somebody here know how to read an ENV var? (from nqp/parrot) | 10:22 | ||
tadzik | OS pmc I suppose | 10:24 | |
possibly docs.parrot.org/parrot/latest/html/...v.pmc.html | 10:25 | ||
FROGGS | ohh what the, I feel like Kirk discovering a new planet | 10:27 | |
tadzik | now beam down and kiss some green woman | ||
FROGGS | ... and like there is no deepspacebitch waiting for me | ||
hehe | 10:28 | ||
10:31
Vlavv joined
10:34
nyuszika7h_ is now known as nyuszika7h,
Vlavv` left
|
|||
lizmat | n: say +val(" +2/4 ") | 10:45 | |
p6eval | niecza v24-35-g5c06e28: OUTPUT«0.5» | ||
lizmat | n: say ~val(" +2/4 ") | ||
p6eval | niecza v24-35-g5c06e28: OUTPUT« +2/4 » | ||
lizmat | n: say val(" +2/4 ").WHAT | 10:46 | |
p6eval | niecza v24-35-g5c06e28: OUTPUT«(RatStr)» | ||
lizmat | rn: my %hash=:foo:bar; say %hash | 10:51 | |
p6eval | niecza v24-35-g5c06e28: OUTPUT«===SORRY!===Multi colonpair syntax not yet understood at /tmp/lc1uqceW8u line 1:------> my %hash=:foo:bar⏏; say %hashUnhandled exception: Check failed at /home/p6eval/niecza/boot/lib/CORE.setting line 1443 (die … | ||
..rakudo 23847e: OUTPUT«("foo" => Bool::True).hash» | |||
lizmat | rn: my %hash=:foo :bar; say %hash | ||
p6eval | rakudo 23847e: OUTPUT«("foo" => Bool::True).hash» | ||
..niecza v24-35-g5c06e28: OUTPUT«===SORRY!===Multi colonpair syntax not yet understood at /tmp/L71HIf3HEU line 1:------> my %hash=:foo :bar⏏; say %hashUnhandled exception: Check failed at /home/p6eval/niecza/boot/lib/CORE.setting line 1443 (die… | |||
lizmat | rn: my %hash=:foo,:bar; say %hash | ||
p6eval | niecza v24-35-g5c06e28: OUTPUT«{"bar" => Bool::True, "foo" => Bool::True}» | ||
..rakudo 23847e: OUTPUT«("foo" => Bool::True, "bar" => Bool::True).hash» | |||
FROGGS | rn: my %hash=<<:foo :bar>>; say %hash | 10:52 | |
p6eval | niecza v24-35-g5c06e28: OUTPUT«{":foo" => ":bar"}» | ||
..rakudo 23847e: OUTPUT«("foo" => Bool::True, "bar" => Bool::True).hash» | |||
FROGGS | nieczabug | ||
11:06
asogani_ joined
11:10
colomon joined
|
|||
lizmat | my %hash=(:foo,:bar); say "%hash<>" | 11:19 | |
rn: my %hash=(:foo,:bar); say "%hash<>" | |||
p6eval | rakudo 23847e: OUTPUT«foo True bar True» | ||
..niecza v24-35-g5c06e28: OUTPUT«» | |||
lizmat | S02:3920 states "pairs are terminated by newlines" | 11:20 | |
the output seems to suggest space rather than newline | 11:21 | ||
is this a pb with the spec, or with rakudo? | |||
11:33
zygew joined
11:39
atroxaper left
|
|||
FROGGS | pb? | 11:45 | |
lizmat | problem | 11:47 | |
mst | bloody kids, treating IRC like an SMS | 11:49 | |
yoleaux | 08:09Z <diakopter> mst: 4giv | ||
FROGGS reads that line in his mind with mst's accent | 11:50 | ||
lizmat thinks mst is just flattering, as he knows my real age | |||
timotimo | i'm now spectesting my ().item.perl change, just to make sure there isn't a test that checks for the old form or something | 12:13 | |
i wouldn't expect it, though | 12:16 | ||
i didn't see a proper file in t/spec/S32-array or -list to check for the .perlisation of ().item ... is there maybe a different spot where it would fit? | |||
FROGGS | hmmm, dunno, I have always my trouble finding the right place for tests | 12:18 | |
timotimo | well, at least all tests succeed. | 12:21 | |
i really don't see how it could blow up. anyone except pmichaud with a commit bit awake and attentive right now? :) | |||
paste.ee/p/eXLpF - this is "git am"-able | 12:26 | ||
12:30
woolfy left
|
|||
FROGGS | timotimo: shouldn't ( ... ).item work in all cases? | 12:31 | |
moritz | timotimo: spectesting now | 12:32 | |
12:32
lizmat left
|
|||
timotimo | FROGGS: "all cases" meaning there would be no reason to ever leave out the .item? | 12:33 | |
FROGGS | timotimo: I mean, (x).item is the same as $(x), if there is something in x, right? | 12:34 | |
moritz | yes | 12:35 | |
but $() is special, ().item is not | |||
FROGGS | so you don't need to switch between '$(', and '(' | ||
moritz | the patch doesn't switch | ||
it always uses .item | |||
FROGGS | right, so one could use always the none special one | ||
damnit | 12:36 | ||
read the patch wrong | |||
-.- | |||
sorry | |||
timotimo | :D | ||
FROGGS | :o) | ||
timotimo | i was very confused in between there | ||
12:36
pupoque joined
12:43
colomon left
|
|||
dalek | : 75830f5 | (Tobias Leich)++ | lib/Perl6/P5 (2 files): add term chr |
12:48 | |
: e550174 | (Tobias Leich)++ | lib/Perl6/P5 (2 files): support closures |
|||
timotimo | i'm loving how i can operate on items in a list and then on the list itself just by chaining >>. and . operations ... @list>>.WHAT.perl.say, that's really damn cool. | ||
12:55
tgt joined,
colomon joined
12:57
colomon_ joined
13:00
colomon left,
colomon_ is now known as colomon
|
|||
timotimo | is there a prettier way to do this? %h<a b c>.map({($^a // {"count" => 0}).<count>}) | 13:01 | |
(when any of those keys may not exist, so the resulting list may contain a few (Any) entries | |||
) sorry for paren mismatch | |||
13:04
frdmn left
|
|||
pmichaud | timotimo: not sure exactly what that's trying to do. Is it simply trying to give a value of 0 for non-existent elements? | 13:07 | |
timotimo | yes | 13:09 | |
13:10
pupoque left
|
|||
pmichaud | maybe something like %h<a b c>.map( { .<count> // 0 } ) | 13:10 | |
when more of S09 is implemented, then %h{ <a b c>; <count> } // 0 might work | 13:14 | ||
timotimo | hm, i have no idea why the way i had it before, which looked almost exactly like yours, gave me "use of any in string context" errors | ||
13:20
bluescreen10 joined
13:21
census joined
|
|||
timotimo | ah. there's one more thing | 13:23 | |
dalek | : cb42c9f | (Tobias Leich)++ | t/spectest.data: add op/ord.t to the list of passing tests |
||
timotimo | i have a piece [ \: <?after \:> <ipv4_part> ]?, which means i'd have to get the [0] of $<ipv4_part>, but in the other cases i have them "unpacked" | 13:25 | |
13:25
PacoAir joined
|
|||
timotimo | so my short form is dependent on the old spec behavior that makes >>. descend into sturctures >_> | 13:25 | |
13:28
census left
|
|||
pmichaud | note that there's a spec change there as well. | 13:30 | |
the ? quantifier will no longer create arrays | |||
have to run to store ... bbbl | |||
timotimo | oh! | 13:32 | |
masak | it's one of the few spec changes where we changed from A to B back to A. | ||
timotimo | my goodness. | ||
so it'll end up being okay in the end if both changes are applied "at the same time"? | |||
13:33
drbean left
|
|||
FROGGS | nr: say "abc" ~~ / \w? / | 13:33 | |
p6eval | rakudo 23847e, niecza v24-35-g5c06e28: OUTPUT«「a」» | ||
13:34
kaleem left,
drbean joined
|
|||
timotimo | t.h8.lv/ipv6_regex.p6 - i did this litte exercise to demonstrate the readability and power of perl6 grammars to friends (with german comments) | 13:34 | |
13:37
woosley left
|
|||
FROGGS | ETOOMUCHCOMMENTS | 13:39 | |
moritz | I think a copy without comments could help to demonstrate the compactness ;-) | 13:41 | |
FROGGS | (and its beauty) | 13:42 | |
timotimo | t.h8.lv/ipv6_regex_compact.p6 | 13:43 | |
i'm honoured that you speak of beauty with this example :) | |||
FROGGS | and now remove all whitespace >.< | ||
*g* | |||
timotimo | r: grammar ipv6_addr { regex TOP { ^ $<initial>=<.partial> [ || '::' $<following>=<.partial> [ \:? <?after \:> <ipv4_part> ]? $ { my $lensum = [+] $<initial following ipv4_part>>>.ast.map({.<count> // 0}); $lensum < 8 or fail; } || ':' <ipv4_part> $ { $<initial>.ast<count> == 6 or fail } || $ { $<initial>.ast<count> == 8 or fail } ] } regex partial { | [$<values>=<[0..9 a..f A..F]> ** 1..4]* % ':' <!before <[0..9]>> { make {:count(+$<values>.list), ... | 13:46 | |
p6eval | rakudo 23847e: OUTPUT«===SORRY!===Two terms in a rowat /tmp/g1mACK0rdD:1------> <initial>.ast<count> == 8 or fail } ] } ⏏regex partial { | [$<values>=<[0..9 a..f expecting any of: argument list postfix statement end … | ||
timotimo | ... :values($<values>.list>>.Str)} } | } regex ipv4_part { $<values>=( 0 | <[1..9]><[0..9]> ** 0..2 ) ** 4 % '.' { fail unless 0 <= all($<values>.list>>.Int) <= 255; make {:count(2), :values($<values>.list>>.Str)} } } } | ||
oh, damn :) | |||
13:46
fhelmberger left
|
|||
timotimo | lacks some ;, too. but i fixed that now | 13:47 | |
13:57
zygew left
|
|||
pmichaud | { $<initial>.ast<count> == 6 or fail } might be better written as <?{ $<initial><values> == 6 }> | 14:02 | |
then the count thingy might not be needed. | |||
(or the .ast parts, for that matter) | 14:03 | ||
moritz | does fail() even work in a block in a regex? | 14:05 | |
pmichaud | I think it's supposed to do so. | ||
I suspect it does, since a regex is just a method. | |||
jnthn | Probably not in Rakudo as it doesn't have a return handler | ||
pmichaud | oh, there is that, though. | 14:06 | |
jnthn | And also the next thing up stream wont' know what to do with a Failure. | ||
[Coke] yawwwwwns. | |||
FROGGS | mornin' [Coke] | ||
pmichaud | well, next-thing-up-the-stream tests for truthiness :) | ||
jnthn throws coffee into [Coke]'s yawning mouth | |||
pmichaud | anyway, <?{ ... }> is probably more idiomatic. | ||
[Coke] | RT--: The requested URL /Search/Results.html was not found on this server. | ||
pmichaud | and eliminating the "make" stuff gets things to be a bit cleaner and lazier. | 14:07 | |
rurban | seen samv | ||
[Coke] | Anyone know how to get RT to actually search when this shows up? | 14:08 | |
ah. RT decided to strip out "rt3/" from the URL. | 14:13 | ||
O_o | |||
FROGGS | .seen samv | 14:14 | |
yoleaux | I haven't seen samv around. | ||
[Coke] | r: say 0 ~~ 0 ~~ 0 | ||
p6eval | rakudo 23847e: OUTPUT«False» | ||
14:14
SamuraiJack_ left
14:15
census joined
|
|||
timotimo | pmichaud: i'll have a look at making >> non-descending again today and making the tests reflect that. does that seem sensible? | 14:18 | |
[Coke] | rn:say NaN.Rat | ||
rn: say NaN.Rat | |||
p6eval | niecza v24-35-g5c06e28: OUTPUT«-269653970229347386159395778618353710042696546841345985910145121736599013708251444699062715983611304031680170819807090036488184653221624933739271145959211186566651840137298227914453329401869141179179624428127508653257226023513694322210869665811240855745025… | ||
..rakudo 23847e: OUTPUT«0» | |||
14:23
Psyche^ joined
14:25
kaare_ joined
14:26
Patterner left,
Psyche^ is now known as Patterner
|
|||
timotimo | jnthn: do you feel like given a minimal test case you could debug perl6-debug? WRT the .ast/make thingie? | 14:33 | |
14:37
cognominal joined
14:40
colomon left
14:48
cognominal left
|
|||
timotimo | aaw, the farabi6 demo on feather is down | 14:50 | |
14:53
FROGGS left,
sqirrel_ left
14:54
cognominal joined
|
|||
[Coke] | .tell Coke hi. | 14:55 | |
yoleaux | [Coke]: I'll pass your message to Coke. | ||
[Coke] | .tell [Coke] hi. | ||
yoleaux | [Coke]: Talking to yourself is the first sign of madness. | ||
14:56
domidumont left
|
|||
timotimo | is rubber duck debugging considered talking to ones self? | 14:58 | |
masak | not if you buy an actual rubber duck! | 14:59 | |
15:00
asogani_ left
|
|||
timotimo | are other inanimate but animal-like objects okay, too? | 15:01 | |
i have a tux in form of a stuffed animal | |||
[Coke] | I have a webgui octopus. | 15:02 | |
moritz | ... and I'm not afraid to use it! | 15:03 | |
masak .oO( or are you just happy to see me? ) | |||
15:06
cognominal left
15:08
cognominal joined
15:11
FROGGS joined
15:12
flussence left
15:13
cognominal__ joined,
flussence joined,
cognominal left
|
|||
[Coke] | r: Date.new('2010-12-25') | 15:14 | |
p6eval | rakudo 23847e: ( no output ) | ||
15:14
alester joined
|
|||
[Coke] | r: say Date.new('2013-01-04') - Date.new('2010-12-25') | 15:15 | |
p6eval | rakudo 23847e: OUTPUT«741» | ||
15:16
frdmn joined
|
|||
[Coke] | niecza has been dirty for 261 days. pugs has been clean for 2 days. rakudo has b | 15:18 | |
een clean for 19 days. | |||
15:19
cognominal__ left,
atroxaper joined
15:20
rindolf left
|
|||
[Coke] | ugh. that is a sadder number than I anticipated. | 15:24 | |
masak | dirty for 261 days is... surprising. | 15:27 | |
moritz | aye, I would have expected far more | 15:28 | |
15:29
tgt left
|
|||
perigrin | moritz++ # not afriad to use it. | 15:31 | |
perigrin is sort of proud of his team weaponizing webgui octopi. | |||
nwc10 | perigrin: you fear an attack of the msts? | 15:32 | |
perigrin | nwc10: not really ... I've only been to paris while in a committed monogmous relationship. | 15:33 | |
arnsholt | perigrin: If you insist on a classical plural of octopus, it's octopodes, not -pi =p | 15:34 | |
masak | grammar BURN! :P zing! | ||
arnsholt | It's from Greek pous (the Latin version is pedis, whence words like pedestrian) which is podes in the plural =) | 15:35 | |
geekosaur | octopueghnt :p | 15:36 | |
perigrin | arnsholt: I'm a descriptivist and insist on a crappy american layman's conjugation. | ||
arnsholt | Nice comeback! =D | ||
perigrin | the english degree is occasionally useful for something. | ||
arnsholt | That is, objectively, the best possible answer to that objection ^_^ | ||
masak | actually, "octopi" suggests some degree of education. | ||
a real layman woulda gone with "octopuses" :) | 15:37 | ||
15:37
tgt joined
|
|||
perigrin | real laymen would go with "effin squids man." | 15:37 | |
geekosaur | of course there's also the "childrens" approach | 15:38 | |
perigrin | childri? | 15:39 | |
masak | childrodes. | ||
moritz | childrenses | ||
pmichaud | dependents. | ||
pmichaud is in the middle of doing taxes. | |||
perigrin | freeloaders. | 15:40 | |
15:40
asogani_ joined
15:43
frdmn left
|
|||
nwc10 | pmichaud: today is the last day of the UK tax year. I'm sure that this is compeltely unrelated to everything :-) | 15:54 | |
15:54
fgomez left
|
|||
timotimo | so, with the new semantics of hyperops, [1, [2, 3]] >>+<< [1, [2, 3] | 15:54 | |
] should give 2, 4? | |||
because it will evaluate [2, 3] as a number and pass it to the + operator? | |||
masak | oh? I must have missed when we switched that back to sanity. | 15:59 | |
timotimo | Back To The Sanity~ | ||
carl mäsak (secret identity moritz lenz) joins the slightly crazy scientist patrick michaud in an adventure through time and headspace! | 16:01 | ||
masak has a mental image of pmichaud connecting two wires below a clock tower, visible lightning coursing through the wires | 16:02 | ||
16:03
Bzek left
|
|||
[Coke] | we have to get this regex engine to 88? | 16:05 | |
nwc10 | nah, he doesn't use clock towers. He uses toasters. | ||
16:05
Bzek joined
|
|||
nwc10 | (for all those who don't get the reference, www.pmichaud.com/toast/ ) | 16:06 | |
masak | :) | 16:07 | |
16:09
Chillance joined
16:10
fgomez joined,
Bzek left
|
|||
timotimo | wow, wat | 16:11 | |
16:12
Bzek joined
16:17
bluescreen100 joined
16:20
bluescreen10 left
|
|||
timotimo | r: say [1, 2] + [3, 4] | 16:22 | |
p6eval | rakudo 23847e: OUTPUT«4» | ||
arnsholt has beer and soon food | |||
Hackers, start your editors! | |||
16:26
xinming left
16:27
xinming joined
16:33
tgt left
16:34
tgt joined,
spider-mario joined
16:35
Patterner left,
Psyche^ joined,
Psyche^ is now known as Patterner
16:39
domidumont joined
16:55
LoRe left,
LoRe joined
16:58
rindolf joined
|
|||
timotimo | paste.ee/p/gjAeQ - does this seem like reasonable changes? | 17:00 | |
pmichaud | 15:54 <timotimo> so, with the new semantics of hyperops, [1, [2, 3]] >>+<< [1, [2, 3] | 17:06 | |
15:54 <timotimo> ] should give 2, 4? | |||
No. | |||
Since arrays don't naturally have an &infix:<+> defined on them, I believe it recurses there. | |||
timotimo | "naturally"? oh my | ||
masak | oh, so we didn't revert back to sanity. | ||
timotimo | in that case my changes are bogus | 17:07 | |
masak | then I don't have to go hunt for the spec commit I thought I had missed... | ||
17:07
gtodd joined
|
|||
timotimo | oh, it says so in the specs! | 17:07 | |
pmichaud | we *did* revert back to sanity. | ||
timotimo | i should have read all of it before implementing | ||
pmichaud | or, more precisely, we adopted a new form of sanity. | 17:08 | |
"duck mapping" | |||
masak | yuck. | ||
it's not my kind of sanity. | |||
pmichaud | from S03: | ||
If and only if a node does not respond to the operator, it is examined to see if is Iterable, and recursion occurs. (For this meaning of "responds to", we ignore any multi candidates defined in Cool, or the negation above would not work, since Array responds to negation via Cool. | |||
17:08
araujo left
|
|||
masak | I see what that bit is trying to do. | 17:09 | |
I just find the hyperops more predictable and useful when they don't recurse structurally. | |||
pmichaud | if you want strictly shallow, I think you use .map . If you want strictly recurse, you use .deepmap . Hypers fill a space in between. | 17:10 | |
masak | right. | ||
I liked it better when hyper was a (parallel) synonym to .map | |||
timotimo | so there's a special-casing of Cool when dispatching to the operator | ||
masak | special-casing of Cool is a language design smell. :/ | 17:11 | |
spider-mario | are we making a * 2013.03? | ||
pmichaud | timotimo: Cool candidates aren't considered, correct. | ||
timotimo | masak: that's what i thought. | ||
pmichaud | spider-mario: I was planning to do it, but my tuits are missing. | ||
spider-mario | ok :) | ||
timotimo | should we make a non-release announcement? | ||
spider-mario | that would require tuits as well | 17:12 | |
timotimo | hehe. | 17:13 | |
17:14
Chillance left
|
|||
pmichaud | I may have time tonight or tomorrow to cut a release. | 17:14 | |
17:15
diakopter left
|
|||
pmichaud | if anyone else wants to make a release, that's okay, but I don't want a release that fails the module tests. | 17:15 | |
it'd be better to not have one. | |||
masak | +1 | 17:16 | |
arnsholt | pmichaud: FYI, there's an open issue with Zavolaj/NativeCall | ||
pmichaud | arnsholt: what kind of an open issue? | 17:17 | |
arnsholt | It may or may not trip a segfault in one of the test files | ||
timotimo | in that case i don't know how to improve upon the spectests, but maybe i can look into the implementation of hyper to try to make it conform to the spec | ||
arnsholt | Depends on how much RAM you have it seems (something weird happens in Parrot GC) | ||
pmichaud | is there a version of Zavolaj/NativeCall that doesn't exhibit the issue with 2013.03 ? | ||
arnsholt | Not AFAIK | 17:18 | |
pmichaud | okay | ||
arnsholt | github.com/jnthn/zavolaj/issues/23 for the sum total of my knowledge (more or less) so far | ||
pmichaud | did the 2013.02 release have the issue? | ||
arnsholt | I haven't tried, but I'd assume so | ||
pmichaud | okay. | ||
arnsholt | It's in the callback handling, which isn't very recent at this point | 17:19 | |
pmichaud | Is this related to github.com/rakudo/star/issues/20 ? | ||
arnsholt | Don't think so | 17:20 | |
pmichaud | has star issue #20 been fixed, ooc? | 17:21 | |
arnsholt | I can't remember. jnthn++ did some work on it I think, but I'm not sure if it was completely fixed | ||
pmichaud | okay. | ||
arnsholt | (I really should get some kind of Windows setup to test this kind of stuff) | ||
pmichaud | if I work on the star release, I'll run some tests. | ||
I might do a candidate tarball and let others run some tests :) | 17:22 | ||
arnsholt | Cool | ||
17:27
Chillance joined
|
|||
pmichaud | afk again | 17:27 | |
17:32
PacoAir left
17:33
PacoAir joined
17:35
crab2313 joined
17:40
fgomez left
17:49
fgomez joined
18:07
fgomez left
18:11
japhb_ joined
18:12
fgomez joined
|
|||
timotimo doesn't know how to do the hyper stuff now. | 18:12 | ||
18:21
anant joined
18:22
SamuraiJack_ joined,
diakopter joined
|
|||
[Coke] | ENOGITHUB | 18:23 | |
timotimo | WFM | 18:25 | |
18:25
crab2313 left
|
|||
[Coke] | everything works except the git. | 18:26 | |
(I can't do a pull atm.) | |||
timotimo | oh, dang | 18:27 | |
sorear | works for me unreliably | 18:30 | |
masak | it was unreliable for me an hour or so ago. | 18:34 | |
timotimo | the problem is slowly propagating across the world | ||
dvj | Is it possible to define a destructor on a class? | 18:39 | |
yoleaux | 08:21Z <diakopter> dvj: wherefore me | ||
dvj | .. | ||
diakopter | :) | 18:40 | |
masak | dvj: there are DESTROY submethods, yes. | 18:41 | |
dvj | diakopter: therefore! :P | 18:42 | |
masak | dvj: but I don't believe they are properly fired on Rakudo. | ||
rn: class C { submethod DESTROY { say "fired!" } }; { my $c = C.new; #`[now de-allocate it] }; say "after" | |||
p6eval | rakudo 23847e: OUTPUT«after» | ||
..niecza v24-35-g5c06e28: OUTPUT«Potential difficulties: $c is declared but not used at /tmp/BAffxPynXn line 1:------> method DESTROY { say "fired!" } }; { my ⏏$c = C.new; #`[now de-allocate it] }; saafter» | |||
dvj | ok | ||
masak | nor in Niecza. | 18:43 | |
dvj | so no C++ RAII style objects | ||
(yet) :) | |||
masak | 'fraid not. | ||
there's a famous thread on p6l about that. | |||
the conclusion seems to be "RAII don't work so well in a parallel world, so no". | |||
and "use `LEAVE` and `is leave` for such things" | 18:44 | ||
arnsholt | There's also the thorny issue of not all GCs guaranteeing the order in which objects are deallocated | ||
spider-mario | rust has them through the Drop trait | 18:50 | |
diakopter | what *do* you do with an object that stashes a reference to itself in a live object during its DESTROY? obviously it's live again. But do you run DESTROY again the next time it's collected? | ||
spider-mario | they don’t GC everything | ||
@managed pointers are GCed, but ~owned pointers are not | |||
(@ and ~ are the sigils used for pointers) | 18:51 | ||
dalek | rl6-roast-data: 72ee7cf | coke++ | / (4 files): today (automated commit) |
||
spider-mario | (there’s also & for borrowed pointers and * for unsafe pointers but they’re not relevant here) | ||
18:52
SamuraiJack_ left
|
|||
Tene | diakopter: hunt down the author and persuade him to revert the relevant commit. | 18:53 | |
I'm not going to submit a patch adding that behaviour though... | |||
diakopter | eh? | ||
[Coke] | niecza has been dirty for 262 days. pugs has been dirty for 1 day. rakudo has been clean for 20 days. | 18:54 | |
diakopter | oh | ||
Tene | [Coke]: dirty/clean? | ||
[Coke] will not do that every day, but is sad that pugs is dirty again. | |||
Tene: github.com/coke/perl6-roast-data | |||
Tene | ah | ||
[Coke] | "we have gone X days with no workplace accidents". | ||
nwc10 | Makes me think of xkcd.com/363/ | 18:55 | |
moritz | makes me think of abstrusegoose.com/133 | 18:56 | |
[Coke] | nwc10: hee! | ||
"Zorns Lemma is a 1970 American structural experimental film by Hollis Frampton." | 18:57 | ||
18:58
arlinius left
18:59
fgomez left
|
|||
atroxaper | bb all. night! | 19:03 | |
19:03
atroxaper left
19:05
asogani_ left,
araujo joined
|
|||
timotimo | [Coke]: did you ask before how to figure out from what role a method comes? | 19:05 | |
i'm now interested in that, too >_< | |||
19:06
anant left
|
|||
masak | what's the use case? | 19:06 | |
masak curious | |||
[Coke] | timotimo: yes. I was trying to figure out where in the hierarchy Range got a "min" method from; I was eventually able to find it in the spec, though. (annoyingly, it was not in S32 where Range is defined.) | ||
masak: spec spelunking. | |||
... via rakudo's implementation, of course. | 19:07 | ||
timotimo | mhm | 19:08 | |
masak: i'm trying to implement insanity | |||
(proper recursion for hyper ops) | |||
19:09
krunen left
|
|||
timotimo | although now i realise that i only have to check if the operator is defined to handle lists itsefl | 19:10 | |
i think i'm too confused to properly implement this at this point. | |||
moritz | you mean for stuff like @list>>.[0] ? | 19:11 | |
19:11
krunen joined,
SHODAN left
19:12
SHODAN joined
|
|||
timotimo | for instance, yes | 19:12 | |
moritz | well, that's pretty easy. >> as a postfix now only goes one level deep | 19:13 | |
so it doesn't depend on what comes after it | |||
masak | this is the second time I hear that today. | 19:14 | |
moritz: do you know approximately when we got this behavior back? | |||
moritz | end of last year, iirc | ||
commit b3233b4ccfe2a65ceae78df44d162de8cb0699a7 | 19:15 | ||
Author: Larry Wall [email@hidden.address] | |||
Date: Sat Sep 15 18:49:50 2012 -0700 | |||
limit unary hypers to declared shape or flat | |||
Also add .duckmap and .deepmap to give the less huffmanly desirable semantics. | |||
we don't have shapes yet, so that means for now it's always one level deep | |||
timotimo | oh, is the change only for unary operators? | 19:16 | |
moritz | yes | 19:17 | |
there aren't many binary operators that make sense with complex complex structures | |||
timotimo | that's good to know! | 19:18 | |
moritz | maybe you should read the parts of the specs you're about to implement :-) | 19:19 | |
timotimo | multi sub hyper(\op, Associative \h) { <- is the only one i have to change? | ||
i should! :( | |||
oh, no, that's for a hash | 19:20 | ||
i think i need a break and some concentration. | |||
19:30
domidumont left,
kaare_ left
|
|||
pmichaud | I don't think hypers are always "one level deep" according to the spec. They're one level deep if the nested structures all directly support the operation being performed. (See the examples in S03.) | 19:30 | |
moritz | Unary hyper operators always produce a hash or array of exactly the | 19:31 | |
same I<declared> shape as the single argument. If the item is not | |||
declared with a shape, only the top dimension is mapped, equivalent | |||
to a normal C<.map> method. | |||
is what S03 says | |||
pmichaud | looking. | ||
moritz | that's *unary* hypers | 19:32 | |
binary still do the recursive stuff, more or less like it's implemented right now | |||
pmichaud | but later in the spec, it says | ||
Hyper operators are defined recursively on nested arrays, so: | |||
-« [[1, 2], 3] # [-«[1, 2], -«3] | |||
# == [[-1, -2], -3] | |||
and explicitly uses a unary hyper there. | |||
moritz compares dates | 19:33 | ||
the examples are way older than TimToady_++'s commit mentioned above | |||
so I guess they are a fossils | |||
masak just accidentally wrote `$contents.substr(0, 1) eq '<'`, which is perfectly valid, if confusing, Perl 5 | |||
moritz | curious :-) | 19:34 | |
timotimo | would you people be okay with me writing a bit about junction autothreading order into the specs? i'd like to specify that all positional args are considered before any keyword arguments are considered. | 19:39 | |
pmichaud | I'm thinking we need a spec clarification from TimToady, since the spec is clearly self-contradictory. I'm not willing to assume the new commit meant to repudiate all of the other examples. | ||
timotimo: check to make sure it's not in S09 already. | |||
timotimo | i will | ||
there is not. | 19:40 | ||
pmichaud | I'm afk, kid pickups and errands. | 19:41 | |
taxes are done, though, and that's a good thing. :) | |||
arnsholt got papers from the tax office in the mail today | 19:44 | ||
Looks like I'll be getting a fair chunk back this year. Also, I really like the pre-filled return thing | |||
gtodd | pmichaud: is there a rosalind problem for taxes that perl6 could solve .... | 20:00 | |
pmichaud: actually $taxes-- | |||
20:04
fgomez joined
20:10
arcterus joined
|
|||
arcterus | perl6: my @array[3] = 4; @array[4] = 3; | 20:11 | |
p6eval | rakudo 23847e: OUTPUT«===SORRY!===Shaped variable declarations not yet implemented. Sorry. at /tmp/zsAf7VFEtl:1------> my @array[3]⏏ = 4; @array[4] = 3;» | ||
..niecza v24-35-g5c06e28: OUTPUT«===SORRY!===Postconstraints, and shapes on variable declarators NYI at /tmp/l80xl_3So6 line 1:------> my @array[3] ⏏= 4; @array[4] = 3;Unhandled exception: Check failed at /home/p6eval/niecza/boot/lib/CORE.setti… | |||
20:11
arcterus left
20:14
shlomif joined,
rindolf left,
shlomif is now known as rindolf
20:15
rindolf left
20:18
arcterus joined,
rindolf joined
20:19
lichtkind joined
20:26
fgomez left
20:27
fgomez joined
|
|||
dalek | : 192ef6f | (Tobias Leich)++ | / (3 files): make .= work |
20:31 | |
20:36
arcterus left
20:38
arcterus joined
20:41
spider-mario left
20:45
arcterus left
21:01
dmol left
21:03
dmol joined
21:05
arcterus joined
21:08
dmol left,
dmol1 joined
21:26
arlinius joined
21:29
rindolf left
21:37
dmol1 left,
dmol joined
|
|||
lichtkind | does anyone know who is in charge of parrot? | 21:40 | |
21:40
dmol1 joined
|
|||
masak | John Cleese? | 21:40 | |
FROGGS | >.< | 21:41 | |
21:41
dmol left
21:43
dmol1 left
|
|||
[Coke] | lichtkind: There isn't a single person. What sort of charge are you looking for? | 21:49 | |
diakopter did not realize masak was answering lichtkind's question until just now. bwa. | 21:50 | ||
lichtkind | like leader or design decision maker | 21:53 | |
FROGGS | Mr. Praline: 'E's not pinin'! 'E's passed on! This parrot is no more! He has ceased to be! 'E's expired and gone to meet 'is maker! 'E's a stiff! Bereft of life, 'e | ||
rests in peace! If you hadn't nailed 'im to the perch 'e'd be pushing up the daisies! 'Is metabolic processes are now 'istory! 'E's off the twig! 'E's kicked the | |||
bucket, 'e's shuffled off 'is mortal coil, run down the curtain and joined the bleedin' choir invisibile!! THIS IS AN EX-PARROT!! | |||
Read more: artists.letssingit.com/monty-python...z2Pd1WhZHU | |||
LetsSingIt - Your favorite Music Community | |||
lichtkind | i never could decide if leto or cotto is the one | 21:54 | |
[Coke] | lichtkind: ask both. | ||
FROGGS | ohh cool, a javascript that autoadds stuff to ones clipboard O.o | ||
[Coke] | they are both on the board, both involved with tech. cotto is ostensibly the architect, but there's no point in standing on titles these days. if it's something public, ask on list or on IRC. | 21:55 | |
22:13
alester left
22:18
bluescreen100 left
22:31
fgomez left
|
|||
masak | 'night, #perl6 | 22:32 | |
FROGGS | night masak | ||
labster | FROGGS: I was thinking about changing File::Spec.splitpath to use dirname/basename syntax, i.e. the last element is always a file or folder with no slashes. This would help in making IO::Path work. But I ended up thinking about it all last night, and eventually decided it would be better to add a new method instead. | 22:40 | |
FROGGS | labster: do you mean to only allow to pass in "dir/file" ? | 22:42 | |
labster | I think it would even be workable on VMS, where .path-components('[.dir1.dir2.dir3]') would make ('', '[.dir1.dir2]', '[.dir3]') | 22:43 | |
FROGGS | what if you just strip the last slash? | ||
labster | that has a different meaning in .splitpath. splitpath('foo/bar/') returns ('', 'foo/bar/', ''), while splitpath('foo/bar') -> ('', 'foo/', 'bar') | 22:45 | |
it tries to determine what is a directory and what is not. Which is why it has the nofile parameter. | |||
FROGGS | then we have the same problem again like a few days ago | 22:46 | |
I'd like to pass a string to File::Spec and get a file part back if my string points to a file | 22:47 | ||
I basically dont want to check if something is a directory or not and then append a slash or not for force handling it as a directory | 22:48 | ||
labster | Then we'd actually have to check the filesystem for that, if it doesn't have a trailing slash. Which can't be done if you're just doing path manipulation. | ||
Unless it's VMS. | |||
FROGGS | :/ | ||
labster | If you want to play with Win32 paths on Unix, you won't know exactly what it refers to. | 22:50 | |
I think, when we readdir, we could stat everything and assign IO::File/IO::Dir based on that. | 22:51 | ||
It would be a lot slower though. | 22:54 | ||
23:01
sizz_ left
|
|||
labster | Well, I suppose it could be done in splitpath, by checking .IO.d on the local filesystem. It's not that expensive. It's just different than the Perl 5 version. | 23:04 | |
23:20
Tene_ joined,
mathw_ joined
23:22
Psyche^ joined,
sjohnson1 joined
23:25
Rix_ joined
23:54
dmol joined
23:56
xenoterracide_ joined
|
|||
FROGGS | okay, back to your first sentences, you wanna add a splitpathish method, which treats the last part always as a file? | 23:57 |