Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2013-04-05

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:02 [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…
00:02 [Coke] for ^10 { next; LEAVE say "yay!" }; say "outside"
00:02 [Coke] r: for ^10 { next; LEAVE say "yay!" }; say "outside"
00:02 p6eval rakudo 604986: OUTPUT«yay!␤yay!␤yay!␤yay!␤yay!␤ya​y!␤yay!␤yay!␤yay!␤yay!␤outside␤»
00:07 huf joined #perl6
00:08 labster yay!
00:16 mst joined #perl6
00:25 fgomez joined #perl6
00:26 Perlx joined #perl6
00:36 toddr left #perl6
00:38 xinming joined #perl6
00:49 [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␤␤»
00:52 [Coke] RT-- I have a search where tag doesn't contain testneeded - tickets with this tag show up in the search.
00:54 [Coke] (ah. need !=, not "not like")
00:57 [Coke] LHF: https://rt.perl.org/rt3/Ti​cket/Display.html?id=82524 - file has moved to tools/build, but should apply easily and be testable.
01:00 [Coke] coke - Ticket 111932: Merged into ticket #93980
01:04 [Coke] I hate RT so much. I wonder if it would suck less if we could open tickets without having to go through email.
01:06 * geekosaur likes RT, but has not done a lot of mail-only with it
01:06 geekosaur 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:06 drbean joined #perl6
01:15 [Coke] things like word wrapping of code make it painful to test.
01:19 drbean joined #perl6
01:22 fridim joined #perl6
01:22 drbean joined #perl6
01:30 drbean joined #perl6
01:36 drbean joined #perl6
01:39 atta_ joined #perl6
01:42 sqirrel_ joined #perl6
01:42 FROGGS_ joined #perl6
01:56 dalek rakudo/nom: 23847e9 | (Geoffrey Broadwell)++ | src/core/ListIter.pm:
01:56 dalek rakudo/nom: 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 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/23847e9023
02:08 arlinius joined #perl6
02:10 census joined #perl6
02:10 fgomez joined #perl6
02:10 timotimo r: say {"foo" => ()}.perl
02:10 p6eval rakudo 3ff276: OUTPUT«{"foo" => $()}␤»
02:10 timotimo r: say {"foo" => $()}.perl
02:10 p6eval rakudo 3ff276: OUTPUT«No such method 'ast' for invocant of type 'Any'␤  in block  at /tmp/iTCnskFOaO:1␤␤»
02:10 timotimo this seems like a good thing i could quickly fix, do you agree?
02:19 labster already reported it
02:20 labster r: say ().item.perl
02:20 p6eval rakudo 23847e: OUTPUT«$()␤»
02:20 dmol joined #perl6
02:20 timotimo cool. are you okay with me fixing it and writing a test case?
02:20 timotimo changing it to be () is the right way, correct?
02:20 labster sure.  might I suggest "$( )" for empty parcel?
02:21 timotimo in that case, i don't know how to implement it
02:21 labster r: say ().WHAT, $( ).WHAT
02:21 timotimo all i know is how to make rakudo output () instead of $() in .perl :D
02:21 p6eval rakudo 23847e: OUTPUT«(Parcel)(Parcel)␤»
02:21 labster maybe you're right.
02:21 timotimo oh! maybe it should output $( )!
02:21 timotimo that should work fine
02:23 labster either way would be better, not sure which is more better.
02:23 timotimo oooh, the AST is really weird
02:23 timotimo does $() have some kind of value relating to $/?
02:24 timotimo - 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 $/)
02:24 timotimo see how it creates "callmethod ast" on the $/ object?
02:24 labster S05: The .ast method by default returns an undefined value. $() is a shorthand for $($/.ast // ~$/).
02:24 timotimo ...oh!
02:25 timotimo in that case, that is what's wrong i suppose.
02:25 timotimo so should i correct the output to $( ) or ()?
02:25 timotimo r: "foo bar" ~~ / (<[a..z]>+) { make $0 } /; say $();
02:25 p6eval rakudo 23847e: OUTPUT«「foo」␤␤»
02:26 timotimo r: "foo bar" ~~ / (<[a..z]>+) { make $0 } /; say $( );
02:26 p6eval rakudo 23847e: OUTPUT«␤»
02:26 timotimo r: "foo bar" ~~ / (<[a..z]>+) { make $0 } /; say $( ).perl;
02:26 p6eval rakudo 23847e: OUTPUT«$()␤»
02:26 timotimo indeed, that should definitely be changed away from that.
02:27 pmichaud rn: say ().perl
02:27 p6eval rakudo 23847e, niecza v24-35-g5c06e28: OUTPUT«()␤»
02:28 pmichaud rn: say ().item.perl
02:28 p6eval rakudo 23847e, niecza v24-35-g5c06e28: OUTPUT«$()␤»
02:28 timotimo oh, i need to figure out in which context it appears
02:28 pmichaud better might be ().item.perl
02:28 timotimo i wonder if that's tricky.
02:28 timotimo rn: say $().perl
02:28 p6eval rakudo 23847e: OUTPUT«No such method 'ast' for invocant of type 'Any'␤  in block  at /tmp/vvvjOpqDn8:1␤␤»
02:28 p6eval ..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…
02:28 timotimo yeah, both agree this is basically wrong
02:29 labster rn: say <foo bar>.item.perl
02:29 p6eval rakudo 23847e, niecza v24-35-g5c06e28: OUTPUT«$("foo", "bar")␤»
02:29 pmichaud perhaps it should be trailing ".item" instead of leading '$' there.
02:29 pmichaud just a sec
02:29 timotimo i can do that
02:29 timotimo i have the code in front of me right now
02:29 pmichaud can you do a 'git diff' on it so I can see?
02:30 timotimo sure.
02:30 timotimo http://paste.ee/p/pAFRV
02:30 [Coke] how can I tell which parent/role a method comes from?
02:31 timotimo [Coke]: oh, that's a tough one
02:31 timotimo (to me, me being a total newbie)
02:31 pmichaud timotimo: diff looks very good to me... go with that.
02:31 timotimo yay!
02:31 timotimo do you have a commit bit for rakudo? i can format-patch it over to you
02:31 timotimo so you can git am it
02:32 timotimo i'll build and test a bit first, though
02:32 pmichaud that's a good idea.  also, might be careful with precedence of ~ and ??!!
02:32 timotimo i will test that in a quick nqp session
02:32 pmichaud might want parens around the nqp::iscont(SELF) ?? ... !!   part
02:32 daniel-s_ joined #perl6
02:32 timotimo good call.
02:32 timotimo yes
02:35 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:35 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…
02:38 timotimo pmichaud: this is the format-patch'd version of the fixed diff:  http://paste.ee/p/eXLpF  - i'll give you the go-ahead for pushing it after i tested it for a little bit
02:38 timotimo but you can already prepare to push it, isn't technology magical? :D
02:40 timotimo uuuh, what did i do now?! Missing or wrong version of dependency 'src/Perl6/Actions.pm'
02:40 timotimo i just recompiled that! :|
02:40 timotimo oh well. *make clean*
02:42 pmichaud r: say ({"a" => 0, b => ().item}).<a>;
02:42 p6eval rakudo 23847e: OUTPUT«0␤»
02:42 pmichaud r: say ({"a" => 0, b => ().item})>>.<a>;
02:42 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…
02:42 pmichaud r: say ({"a" => 0, b => ().item})».<a>;
02:42 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…
02:42 timotimo r: say ({"a" => 0, b => ().item},)[0].<a>;
02:42 p6eval rakudo 23847e: OUTPUT«0␤»
02:42 pmichaud oh
02:43 timotimo yep, you missed the , in there
02:43 pmichaud that's because of a spec change
02:43 timotimo oh, >>. flattens or something?
02:43 pmichaud >>. goes deeply
02:43 timotimo ooooh!
02:43 timotimo do i do .each.<a> instead?
02:43 pmichaud the spec changed but rakudo hasn't changed to match yet
02:43 timotimo r: say ({"a" => 0, b => ().item},).each.<a>;
02:43 p6eval rakudo 23847e: OUTPUT«No such method 'each' for invocant of type 'Parcel'␤  in block  at /tmp/wfQh8xgrbP:1␤␤»
02:43 timotimo oh, each isn't even specced yet iirc
02:43 pmichaud >>. needs to not go deeply, I think.
02:43 pmichaud checking spec
02:43 timotimo ah, okay, so the code *would* be correct, but rakudo isn't
02:44 drbean joined #perl6
02:44 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 @ …
02:44 pmichaud timotimo: I think that's the case.
02:44 timotimo it appears niecza does the same thing
02:44 timotimo 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:46 atroxaper joined #perl6
02:46 pmichaud oh, it's not as simple as I remembered.
02:46 timotimo oh no :(
02:46 pmichaud See "duck mapping" in S03.
02:46 timotimo i will
02:46 timotimo d'aaw, that's an awesome naming scheme
02:47 timotimo oh, i think i misunderstood
02:47 timotimo i thought duck mapping would be flat, because the duck swims "on the surface" of the structure
02:47 timotimo but apparently duckmap and deepmap both descend into structures
02:47 pmichaud duck mapping has a shallow bias, yes.
02:47 pmichaud deepmap has a recursive bias
02:48 [Coke] rn: say (1..1234).max;
02:48 p6eval rakudo 23847e, niecza v24-35-g5c06e28: OUTPUT«1234␤»
02:48 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"?
02:49 pmichaud at any rate, rakudo currently gives hypers a deepmap semantic
02:49 pmichaud I have to leave :-(  bbl maybe
02:49 timotimo i'll probably go to bed in a few minutes anyway
02:49 timotimo see you tomorrow, pmichaud :)
02:52 [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/…
02:52 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:54 dalek roast: 33955a8 | coke++ | S0 (5 files):
02:54 dalek roast: rakudo unfudge
02:54 dalek roast:
02:54 dalek roast: move some skips to (conditional) todos, run more passing tests.
02:54 dalek roast: review: https://github.com/perl6/roast/commit/33955a8106
02:54 dalek roast: f73dd38 | coke++ | S32-list/minmax.t:
02:54 dalek roast: Remove spec-invalid min/max Range tests
02:54 dalek roast:
02:54 dalek roast: RT #105118
02:54 dalek roast: review: https://github.com/perl6/roast/commit/f73dd3865f
02:57 preflex_ joined #perl6
02:59 orafu joined #perl6
03:06 fgomez joined #perl6
03:07 census joined #perl6
03:32 japhb_ What's the best way to achieve a deep .clone?
04:06 asogani joined #perl6
04:11 sorear japhb_: best way - intelligent multisub.  quickest way - .perl.eval
04:14 japhb_ sorear, fair enough, thank you.
04:21 japhb_ .ask moritz Why does JSON::Tiny have to-json multis for Hash and Any, instead of Associative and Mu, respectively?
04:21 yoleaux japhb_: I'll pass your message to moritz.
04:46 sam1983 joined #perl6
05:10 pupoque joined #perl6
05:15 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:15 yoleaux 04:22Z <japhb_> moritz: Why does JSON::Tiny have to-json multis for Hash and Any, instead of Associative and Mu, respectively?
05:21 quester joined #perl6
05:22 SamuraiJack joined #perl6
05:23 fgomez joined #perl6
05:44 Heather joined #perl6
05:45 Heather hi there.
05:45 Heather how can I fork another branch too with git?
05:45 atroxaper Hi
05:46 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
05:47 Heather Timbus I need to checkout some outdated branch from remote there
05:47 Heather with some ancient change
05:48 Heather then rebase master changes to it and test
05:48 atroxaper git checkout -b new_branch origin/remote_branch
05:48 Timbus ^
05:49 Heather thank you
05:51 atroxaper ;)
06:02 nyuszika7h_ joined #perl6
06:06 frdmn joined #perl6
06:07 kaleem joined #perl6
06:07 FROGGS_ joined #perl6
06:12 FROGGS_ morning
06:13 rindolf joined #perl6
06:20 FROGGS nr: say "abcde" ~~ / | @(<a b bc cde>)+»/
06:20 p6eval niecza v24-35-g5c06e28: OUTPUT«「abcde」␤␤»
06:20 p6eval ..rakudo 23847e: OUTPUT«「cde」␤␤»
06:24 rindolf joined #perl6
06:30 japhb moritz, ah, OK.
06:31 * japhb pushes that onto his task heap
06:34 rindolf joined #perl6
06:43 labster hi FROGGS
06:44 domidumont joined #perl6
06:44 rindolf joined #perl6
06:48 domidumont joined #perl6
06:58 rindolf joined #perl6
07:04 rindolf joined #perl6
07:11 SamuraiJack_ joined #perl6
07:21 domidumont joined #perl6
07:29 quester left #perl6
07:36 diakopter .
07:37 diakopter yoleaux: y u no msgs 4 me
08:04 mst diakopter: I am frankly ashamed that I was able to parse that.
08:07 diakopter yoleaux: ask mst 4giv
08:07 diakopter >sigh<
08:07 diakopter dvj: how about 'ask'
08:08 FROGGS .tell diakopter Maybe this way?
08:08 yoleaux FROGGS: I'll pass your message to diakopter.
08:08 diakopter (like phuphuphuphenny)
08:08 yoleaux 08:08Z <FROGGS> diakopter: Maybe this way?
08:08 diakopter .ask mst 4giv
08:08 yoleaux diakopter: I'll pass your message to mst.
08:08 diakopter yippee
08:08 FROGGS :o)
08:09 FROGGS yoleaux: .ask somebody Really??
08:09 FROGGS hmm, oaky
08:10 nwc10 .ask yoleaux about recursion
08:10 yoleaux nwc10: Thanks for the message.
08:11 fhelmberger joined #perl6
08:11 diakopter .ask p6eval r: say '.ask p6eval r: hi'
08:11 yoleaux diakopter: I'll pass your message to p6eval.
08:11 diakopter r: ;
08:11 p6eval rakudo 23847e:  ( no output )
08:11 yoleaux 08:11Z <diakopter> p6eval: r: say '.ask p6eval r: hi'
08:11 Timbus awww
08:12 Timbus your domino tipped sideways
08:12 FROGGS :/
08:12 FROGGS .tell FROGGS Hi!
08:12 yoleaux FROGGS: Talking to yourself is the first sign of madness.
08:12 FROGGS *g*
08:14 diakopter .ask yoleaux um
08:14 yoleaux diakopter: Thanks for the message.
08:15 FROGGS .meow
08:15 yoleaux http://edgecats.net/cats/anigif_en​hanced-buzz-2749-1323295539-27.gif
08:19 diakopter .cowbell
08:20 Heather yoleaux++ !
08:21 diakopter .ask dvj wherefore me
08:21 yoleaux diakopter: I'll pass your message to dvj.
08:25 lizmat rn: my $foo=val("bar")
08:25 p6eval rakudo 23847e: OUTPUT«[31m===[0mSORRY![​31m===[0m�Undeclared routine:�    val used at line 1. Did you mean '&eval'?��»
08:25 p6eval ..niecza v24-35-g5c06e28: OUTPUT«Potential difficulties:�  $foo is declared but not used at /tmp/KktPbyC6dK line 1:�------> [32mmy [33m�[31m$foo=val("​bar")[0m��»
08:26 lizmat rn: my $foo=val("bar"); say $foo
08:26 p6eval niecza v24-35-g5c06e28: OUTPUT«bar␤»
08:26 p6eval ..rakudo 23847e: OUTPUT«[31m===[0mSORRY![​31m===[0m�Undeclared routine:�    val used at line 1. Did you mean '&eval'?��»
08:26 lizmat val() NYI in Rakudo?
08:26 diakopter n: say &val.WHAT.new
08:27 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 #perl6
08:32 dmol joined #perl6
08:37 moritz lizmat: aye
08:37 lizmat rn: say 1.23456.WHAT
08:37 p6eval rakudo 23847e, niecza v24-35-g5c06e28: OUTPUT«(Rat)␤»
08:38 lizmat S02:3369 states :6.02e23.WHAT     # Num"
08:38 lizmat maybe that example should be (Num) instead?
08:38 masak good forenoon, #perl6
08:38 lizmat oops, and its Rat rather than Num
08:39 lizmat oops copy'n'paste error on my side
08:39 lizmat rn: way 6.02e23.WHAT
08:39 p6eval niecza v24-35-g5c06e28: OUTPUT«[31m===[0mSORRY![31m​===[0m��Undeclared routine:�     'way' used at line 1��Unhandled 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…
08:39 p6eval ..rakudo 23847e: OUTPUT«[31m===[0mSORRY![​31m===[0m�Undeclared routine:�    way used at line 1. Did you mean '&say'?��»
08:39 lizmat rn: say 6.02e23.WHAT
08:39 p6eval niecza v24-35-g5c06e28: OUTPUT«Num()␤»
08:39 p6eval ..rakudo 23847e: OUTPUT«(Num)␤»
08:39 * lizmat is not awake yet
08:43 lizmat std: say :2{0010_1110_1000_10}
08:43 p6eval std 86b102f: OUTPUT«[31m===[0mSORRY!​[31m===[0m�Malformed radix number at /tmp/iWYzSI1oUR line 1:�------> [32msay :2[33m�[31m{0010_11​10_1000_10}[0m�Parse failed�FAILED 00:00 41m�»
08:44 lizmat blob literals NYI, check :-)
08:46 jac50 joined #perl6
08:51 kaleem joined #perl6
09:11 * lizmat is trying to make sense of S02:3676
09:12 lizmat :sweet(16) versus :16sweet
09:13 * lizmat doesn't understand the reasoning behind allowing :16sweet
09:13 jnthn s:2nd/foo/bar/
09:13 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"
09:14 jnthn yeah, that's not the best 1nd example.
09:16 masak nor a best 2rd or 3st one...
09:17 moritz a thirst option!
09:17 sorear internationalizatioN!
09:17 lizmat suggest to add: "Please note that this abbreviation allows: s:2nd/foo/bar/  # or 3rd, 4th, 5th etc."
09:17 lizmat to S02 there
09:18 masak lizmat: do you have commitbit to the spec?
09:18 lizmat yes
09:18 lizmat I will commit then  :-)
09:18 masak lizmat: feel free, then. sounds good.
09:18 masak lizmat++
09:18 tadzik \o/
09:18 tadzik hello #perl6
09:19 tadzik moritz: does "Method 'seek' not implemented for type Socket" ring a bell, re ilbot6?
09:19 Heather hi
09:19 moritz tadzik: yes. Fixed by switching to parrot HEAD
09:19 tadzik oh, good
09:20 tadzik is there a reason why PARROT_REVISION is not bumped?
09:20 dalek specs: c557b42 | (Elizabeth Mattijsen)++ | S02-bits.pod:
09:20 dalek specs: Clarification on :sweet(16) -> :16sweet adverb
09:20 dalek specs: review: https://github.com/perl6/specs/commit/c557b42c5e
09:20 moritz tadzik: I don't think so
09:20 moritz (note that the newest release should be fine, probably doesn't really need HEAD)
09:21 * Heather is using head
09:21 moritz every human should.
09:21 tadzik moritz: I'll see if there're no spectest failures and if not I'll bump Parrot for all the things
09:22 * FROGGS will put coffee now into his HEAD
09:22 tadzik working networking seems like a worthy goal to pursue
09:22 lizmat FROGGS: be sure to use the right entry point
09:23 dalek v5: f41550c | (Tobias Leich)++ | lib/Perl6/P5 (2 files):
09:23 dalek v5: allow C-style for loops
09:23 dalek v5: review: https://github.com/rakudo-p5/v5/commit/f41550c2ea
09:23 dalek v5: 3c0bdf6 | (Tobias Leich)++ | lib/Perl6/P5Grammar.pm:
09:23 dalek v5: treat "abc"."def" as concat and not as dottyop
09:23 dalek v5: review: https://github.com/rakudo-p5/v5/commit/3c0bdf690f
09:24 sorear r: say :1.42stopbits
09:24 p6eval rakudo 23847e: OUTPUT«[31m===[0mSORRY!​[31m===[0m�Malformed radix number�at /tmp/TaC3rRd3cR:1�------> [32msay :1[33m�[31m.42stopbits[0m�    expecting any of:�        number in radix notation�»
09:24 FROGGS lizmat: I will *g*
09:34 lizmat rn: say :10(12)
09:34 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…
09:34 p6eval ..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␤␤»
09:34 lizmat rn: say :10("12")
09:34 p6eval rakudo 23847e, niecza v24-35-g5c06e28: OUTPUT«12␤»
09:43 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…
09:43 p6eval ..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 #perl6
09:43 FROGGS rn: say :2(~100100101010010)
09:43 p6eval rakudo 23847e, niecza v24-35-g5c06e28: OUTPUT«18770␤»
09:43 lizmat yeah, I get that...
09:44 lizmat seems though that new users may be confused by :2(1) having to be written as 2:("1") or 2:(~1)
09:46 lizmat it stumped me for a bit :-)
09:46 lizmat bi15&
09:48 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 Heather left #perl6
09:51 FROGGS ya, but then you can't write:  s:7ish/a/b/  anymore :o)
09:51 moritz or special-case s:///
09:51 moritz :-)
09:52 FROGGS r: say "abcdef" ~~ m:1st/\w/
09:52 p6eval rakudo 23847e: OUTPUT«「a」␤␤»
09:52 FROGGS r: say "abcdef" ~~ m:2st/\w/
09:52 p6eval rakudo 23847e: OUTPUT«「b」␤␤»
09:52 FROGGS r: say "abcdef" ~~ m:2_1st/\w/
09:52 p6eval rakudo 23847e: OUTPUT«[31m===[0mSORRY![31m===[0m�Adverb _1st not allowed on m�at /tmp/F1QKpjtF3l:1�------> [32msay "abcdef" ~~ m:2_1st/\w/[33m�[31m<EOL>[0m�»
09:52 FROGGS r: say "abcdefhdsakfhlskdhfklasjdflhsskdhflkjsdah" ~~ m:2_1st/\w/
09:52 p6eval rakudo 23847e: OUTPUT«[31m===[0mSORRY![31m===[0m�Adverb _1st not allowed on m�at /tmp/NMjjprmc4c:1�------> [32mhfklasjdflhsskdhflkjsdah" ~~ m:2_1st/\w/[33m�[31m<EOL>[0m�»
09:53 FROGGS r: say "abcdefhdsakfhlskdhfklasjdflhsskdhflkjsdah" ~~ m:2_1/\w/
09:53 p6eval rakudo 23847e: OUTPUT«[31m===[0mSORRY![31m===[0m�Adverb _1 not allowed on m�at /tmp/Xi4sgDVFXf:1�------> [32mkdhfklasjdflhsskdhflkjsdah" ~~ m:2_1/\w/[33m�[31m<EOL>[0m�»
09:53 FROGGS r: say "abcdefhdsakfhlskdhfklasjdflhsskdhflkjsdah" ~~ m:2e1/\w/
09:53 p6eval rakudo 23847e: OUTPUT«[31m===[0mSORRY![31m===[0m�Adverb e1 not allowed on m�at /tmp/yoEAChuA9b:1�------> [32mkdhfklasjdflhsskdhflkjsdah" ~~ m:2e1/\w/[33m�[31m<EOL>[0m�»
09:53 atta_ joined #perl6
09:54 FROGGS ahh, hold on, it really just knows about st, nd, rd, th, ...
09:55 moritz the actions, yes. The parser doesn't care.
09:55 FROGGS true
09:59 FROGGS std: ok(chr 65 eq 'A' || chr 193 eq 'A', "chr can produce 'A'");
09:59 p6eval std 86b102f: OUTPUT«[31m===[0mSORRY![​31m===[0m�Undeclared routine:� 'ok' used at line 1�Check failed�FAILED 00:00 43m�»
09:59 FROGGS std: use v5; ok(chr 65 eq 'A' || chr 193 eq 'A', "chr can produce 'A'");
09:59 p6eval std 86b102f: OUTPUT«ok 00:01 53m␤»
10:00 FROGGS locally I get: Too many positional parameters passed; got 2 but expected 1
10:00 FROGGS now I tell it that chr takes one argument, and the rest doesn't belong to chr's sub call
10:00 drbean joined #perl6
10:00 FROGGS -.-
10:02 FROGGS uhh, ahh, it looks like STD_P5 can do it already, I just commented that bit out :o)
10:13 moritz in other words, you need to implement prototypes
10:13 * lizmat shivers
10:17 FROGGS moritz: well, yes, but not yet for the built-ins though
10:19 FROGGS moritz: I have no idea how this could be done with perl5's prototypes :/
10:21 FROGGS does somebody here know how to read an ENV var? (from nqp/parrot)
10:24 tadzik OS pmc I suppose
10:24 tadzik possibly http://docs.parrot.org/parrot/l​atest/html/src/pmc/env.pmc.html
10:26 FROGGS ohh what the, I feel like Kirk discovering a new planet
10:27 tadzik now beam down and kiss some green woman
10:27 FROGGS ... and like there is no deepspacebitch waiting for me
10:27 FROGGS hehe
10:31 Vlavv joined #perl6
10:45 lizmat n: say +val(" +2/4 ")
10:45 p6eval niecza v24-35-g5c06e28: OUTPUT«0.5␤»
10:45 lizmat n: say ~val(" +2/4 ")
10:45 p6eval niecza v24-35-g5c06e28: OUTPUT« +2/4 ␤»
10:45 lizmat n: say val(" +2/4 ").WHAT
10:45 p6eval niecza v24-35-g5c06e28: OUTPUT«(RatStr)␤»
10:50 lizmat rn: my %hash=:foo:bar; say %hash
10:50 p6eval niecza v24-35-g5c06e28: OUTPUT«[31m===[0mSORRY![3​1m===[0m��Multi colonpair syntax not yet understood at /tmp/lc1uqceW8u line 1:�------> [32mmy %hash=:foo:bar[33m�[31m; say %hash[0m��Unhandled exception: Check failed��  at /home/p6eval/niecza/boot/lib/CORE.setting line 1443 (die …
10:50 p6eval ..rakudo 23847e: OUTPUT«("foo" => Bool::True).hash␤»
10:50 lizmat rn: my %hash=:foo :bar; say %hash
10:50 p6eval rakudo 23847e: OUTPUT«("foo" => Bool::True).hash␤»
10:50 p6eval ..niecza v24-35-g5c06e28: OUTPUT«[31m===[0mSORRY![3​1m===[0m��Multi colonpair syntax not yet understood at /tmp/L71HIf3HEU line 1:�------> [32mmy %hash=:foo :bar[33m�[31m; say %hash[0m��Unhandled exception: Check failed��  at /home/p6eval/niecza/boot/lib/CORE.setting line 1443 (die…
10:51 lizmat rn: my %hash=:foo,:bar; say %hash
10:51 p6eval niecza v24-35-g5c06e28: OUTPUT«{"bar" => Bool::True, "foo" => Bool::True}␤»
10:51 p6eval ..rakudo 23847e: OUTPUT«("foo" => Bool::True, "bar" => Bool::True).hash␤»
10:51 FROGGS rn: my %hash=<<:foo :bar>>; say %hash
10:51 p6eval niecza v24-35-g5c06e28: OUTPUT«{":foo" => ":bar"}␤»
10:51 p6eval ..rakudo 23847e: OUTPUT«("foo" => Bool::True, "bar" => Bool::True).hash␤»
10:52 FROGGS nieczabug
11:06 asogani_ joined #perl6
11:09 colomon joined #perl6
11:19 lizmat my %hash=(:foo,:bar); say "%hash<>"
11:19 lizmat rn: my %hash=(:foo,:bar); say "%hash<>"
11:19 p6eval rakudo 23847e: OUTPUT«foo       True bar        True␤»
11:19 p6eval ..niecza v24-35-g5c06e28: OUTPUT«␤»
11:20 lizmat S02:3920 states "pairs are terminated by newlines"
11:20 lizmat the output seems to suggest space rather than newline
11:20 lizmat is this a pb with the spec, or with rakudo?
11:33 zygew joined #perl6
11:39 atroxaper left #perl6
11:44 FROGGS pb?
11:47 lizmat problem
11:48 mst bloody kids, treating IRC like an SMS
11:48 yoleaux 08:09Z <diakopter> mst: 4giv
11:49 * 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
12:13 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:15 timotimo i wouldn't expect it, though
12:16 timotimo 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?
12:17 FROGGS hmmm, dunno, I have always my trouble finding the right place for tests
12:20 timotimo well, at least all tests succeed.
12:21 timotimo i really don't see how it could blow up. anyone except pmichaud with a commit bit awake and attentive right now? :)
12:26 timotimo http://paste.ee/p/eXLpF - this is "git am"-able
12:30 woolfy left #perl6
12:30 FROGGS timotimo: shouldn't  ( ... ).item   work in all cases?
12:31 moritz timotimo: spectesting now
12:32 timotimo FROGGS: "all cases" meaning there would be no reason to ever leave out the .item?
12:34 FROGGS timotimo: I mean, (x).item is the same as $(x), if there is something in x, right?
12:34 moritz yes
12:34 moritz but $() is special, ().item is not
12:34 FROGGS so you don't need to switch between '$(', and '('
12:35 moritz the patch doesn't switch
12:35 moritz it always uses .item
12:35 FROGGS right, so one could use always the none special one
12:35 FROGGS damnit
12:35 FROGGS read the patch wrong
12:35 FROGGS -.-
12:35 FROGGS sorry
12:36 timotimo :D
12:36 FROGGS :o)
12:36 timotimo i was very confused in between there
12:36 pupoque joined #perl6
12:47 dalek v5: 75830f5 | (Tobias Leich)++ | lib/Perl6/P5 (2 files):
12:47 dalek v5: add term chr
12:47 dalek v5: review: https://github.com/rakudo-p5/v5/commit/75830f5930
12:47 dalek v5: e550174 | (Tobias Leich)++ | lib/Perl6/P5 (2 files):
12:47 dalek v5: support closures
12:47 dalek v5: review: https://github.com/rakudo-p5/v5/commit/e550174bc4
12:48 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 #perl6
12:55 colomon joined #perl6
12:56 colomon_ joined #perl6
13:00 timotimo is there a prettier way to do this? %h<a b c>.map({($^a // {"count" => 0}).<count>})
13:01 timotimo (when any of those keys may not exist, so the resulting list may contain a few (Any) entries
13:01 timotimo ) sorry for paren mismatch
13:07 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:09 timotimo yes
13:10 pupoque left #perl6
13:10 pmichaud maybe something like   %h<a b c>.map( { .<count> // 0 } )
13:13 pmichaud when more of S09 is implemented, then   %h{ <a b c>; <count> } // 0   might work
13:13 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 #perl6
13:20 census joined #perl6
13:22 timotimo ah. there's one more thing
13:22 dalek v5: cb42c9f | (Tobias Leich)++ | t/spectest.data:
13:22 dalek v5: add op/ord.t to the list of passing tests
13:22 dalek v5: review: https://github.com/rakudo-p5/v5/commit/cb42c9f63b
13:24 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:24 PacoAir joined #perl6
13:25 timotimo so my short form is dependent on the old spec behavior that makes >>. descend into sturctures >_>
13:29 pmichaud note that there's a spec change there as well.
13:30 pmichaud the ? quantifier will no longer create arrays
13:30 pmichaud have to run to store ... bbbl
13:31 timotimo oh!
13:31 timotimo my goodness.
13:31 masak it's one of the few spec changes where we changed from A to B back to A.
13:32 timotimo so it'll end up being okay in the end if both changes are applied "at the same time"?
13:32 FROGGS nr: say "abc" ~~ / \w? /
13:32 p6eval rakudo 23847e, niecza v24-35-g5c06e28: OUTPUT«「a」␤␤»
13:34 drbean joined #perl6
13:34 timotimo http://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:39 FROGGS ETOOMUCHCOMMENTS
13:40 moritz I think a copy without comments could help to demonstrate the compactness ;-)
13:41 FROGGS (and its beauty)
13:42 timotimo http://t.h8.lv/ipv6_regex_compact.p6
13:43 timotimo i'm honoured that you speak of beauty with this example :)
13:43 FROGGS and now remove all whitespace >.<
13:43 FROGGS *g*
13:46 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«[31m===[0mSORRY![31m===[0m�Two terms in a row�at /tmp/g1mACK0rdD:1�------> [32m<initial>.ast<count> == 8 or fail } ] } [33m�[31mregex partial { | [$<values>=<[0..9 a..f[0m�    expecting any of:�        argument list�        postfix�        statement end�   …
13:46 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)} } } }
13:46 timotimo oh, damn :)
13:47 timotimo lacks some ;, too. but i fixed that now
14:01 pmichaud { $<initial>.ast<count> == 6 or fail }   might be better written as  <?{ $<initial><values> == 6 }>
14:02 pmichaud then the count thingy might not be needed.
14:02 pmichaud (or the .ast parts, for that matter)
14:05 moritz does fail() even work in a block in a regex?
14:05 pmichaud I think it's supposed to do so.
14:05 pmichaud I suspect it does, since a regex is just a method.
14:05 jnthn Probably not in Rakudo as it doesn't have a return handler
14:05 pmichaud oh, there is that, though.
14:05 jnthn And also the next thing up stream wont' know what to do with a Failure.
14:05 * [Coke] yawwwwwns.
14:06 FROGGS mornin' [Coke]
14:06 pmichaud well, next-thing-up-the-stream tests for truthiness :)
14:06 * jnthn throws coffee into [Coke]'s yawning mouth
14:06 pmichaud anyway,   <?{ ... }>   is probably more idiomatic.
14:06 [Coke] RT--: The requested URL /Search/Results.html was not found on this server.
14:06 pmichaud and eliminating the "make" stuff gets things to be a bit cleaner and lazier.
14:07 rurban seen samv
14:08 [Coke] Anyone know how to get RT to actually search when this shows up?
14:13 [Coke] ah. RT decided to strip out "rt3/" from the URL.
14:13 [Coke] O_o
14:13 FROGGS .seen samv
14:13 yoleaux I haven't seen samv around.
14:13 [Coke] r: say 0 ~~ 0 ~~ 0
14:13 p6eval rakudo 23847e: OUTPUT«False␤»
14:15 census joined #perl6
14:17 timotimo pmichaud: i'll have a look at making >> non-descending again today and making the tests reflect that. does that seem sensible?
14:17 [Coke] rn:say NaN.Rat
14:17 [Coke] rn: say NaN.Rat
14:17 p6eval niecza v24-35-g5c06e28: OUTPUT«-269653970229347386159395778618353710​042696546841345985910145121736599013708251444​699062715983611304031680170819807090036488184​653221624933739271145959211186566651840137298​227914453329401869141179179624428127508653257​226023513694322210869665811240855745025…
14:17 p6eval ..rakudo 23847e: OUTPUT«0␤»
14:23 Psyche^ joined #perl6
14:25 kaare_ joined #perl6
14:33 timotimo jnthn: do you feel like given a minimal test case you could debug perl6-debug? WRT the .ast/make thingie?
14:36 cognominal joined #perl6
14:50 timotimo aaw, the farabi6 demo on feather is down
14:53 cognominal joined #perl6
14:54 [Coke] .tell Coke hi.
14:54 yoleaux [Coke]: I'll pass your message to Coke.
14:55 [Coke] .tell [Coke] hi.
14:55 yoleaux [Coke]: Talking to yourself is the first sign of madness.
14:58 timotimo is rubber duck debugging considered talking to ones self?
14:59 masak not if you buy an actual rubber duck!
15:00 timotimo are other inanimate but animal-like objects okay, too?
15:01 timotimo i have a tux in form of a stuffed animal
15:01 [Coke] I have a webgui octopus.
15:03 moritz ... and I'm not afraid to use it!
15:03 * masak .oO( or are you just happy to see me? )
15:08 cognominal joined #perl6
15:10 FROGGS joined #perl6
15:12 flussence joined #perl6
15:12 cognominal__ joined #perl6
15:14 [Coke] r: Date.new('2010-12-25')
15:14 p6eval rakudo 23847e:  ( no output )
15:14 alester joined #perl6
15:14 [Coke] r: say Date.new('2013-01-04') - Date.new('2010-12-25')
15:14 p6eval rakudo 23847e: OUTPUT«741␤»
15:16 frdmn joined #perl6
15:18 [Coke] niecza has been dirty for 261 days. pugs has been clean for 2 days. rakudo has b
15:18 [Coke] een clean for 19 days.
15:19 atroxaper joined #perl6
15:23 [Coke] ugh. that is a sadder number than I anticipated.
15:26 masak dirty for 261 days is... surprising.
15:28 moritz aye, I would have expected far more
15:30 perigrin moritz++ # not afriad to use it.
15:31 * perigrin is sort of proud of his team weaponizing webgui octopi.
15:32 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:34 arnsholt perigrin: If you insist on a classical plural of octopus, it's octopodes, not -pi =p
15:34 masak grammar BURN! :P zing!
15:35 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:35 perigrin arnsholt: I'm a descriptivist and insist on a crappy american layman's conjugation.
15:35 arnsholt Nice comeback! =D
15:36 perigrin the english degree is occasionally useful for something.
15:36 arnsholt That is, objectively, the best possible answer to that objection ^_^
15:36 masak actually, "octopi" suggests some degree of education.
15:36 masak a real layman woulda gone with "octopuses" :)
15:36 tgt joined #perl6
15:36 perigrin real laymen would go with "effin squids man."
15:38 geekosaur of course there's also the "childrens" approach
15:38 perigrin childri?
15:39 masak childrodes.
15:39 moritz childrenses
15:39 pmichaud dependents.
15:39 * pmichaud is in the middle of doing taxes.
15:39 perigrin freeloaders.
15:40 asogani_ joined #perl6
15:53 nwc10 pmichaud: today is the last day of the UK tax year. I'm sure that this is compeltely unrelated to everything :-)
15:54 timotimo so, with the new semantics of hyperops, [1, [2, 3]] >>+<< [1, [2, 3]
15:54 timotimo ] should give 2, 4?
15:54 timotimo because it will evaluate [2, 3] as a number and pass it to the + operator?
15:58 masak oh? I must have missed when we switched that back to sanity.
15:59 timotimo Back To The Sanity~
16:00 timotimo 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:04 [Coke] we have to get this regex engine to 88?
16:04 nwc10 nah, he doesn't use clock towers. He uses toasters.
16:05 Bzek joined #perl6
16:06 nwc10 (for all those who don't get the reference, http://www.pmichaud.com/toast/ )
16:06 masak :)
16:08 Chillance joined #perl6
16:10 fgomez joined #perl6
16:11 timotimo wow, wat
16:12 Bzek joined #perl6
16:16 bluescreen100 joined #perl6
16:21 timotimo r: say [1, 2] + [3, 4]
16:21 p6eval rakudo 23847e: OUTPUT«4␤»
16:22 * arnsholt has beer and soon food
16:22 arnsholt Hackers, start your editors!
16:26 xinming joined #perl6
16:33 tgt joined #perl6
16:34 spider-mario joined #perl6
16:34 Psyche^ joined #perl6
16:39 domidumont joined #perl6
16:55 LoRe joined #perl6
16:57 rindolf joined #perl6
16:59 timotimo http://paste.ee/p/gjAeQ - does this seem like reasonable changes?
17:05 pmichaud 15:54 <timotimo> so, with the new semantics of hyperops, [1, [2, 3]] >>+<< [1, [2, 3]
17:05 pmichaud 15:54 <timotimo> ] should give 2, 4?
17:05 pmichaud No.
17:06 pmichaud Since arrays don't naturally have an &infix:<+> defined on them, I believe it recurses there.
17:06 timotimo "naturally"? oh my
17:06 masak oh, so we didn't revert back to sanity.
17:06 timotimo in that case my changes are bogus
17:06 masak then I don't have to go hunt for the spec commit I thought I had missed...
17:07 gtodd joined #perl6
17:07 timotimo oh, it says so in the specs!
17:07 timotimo i should have read all of it before implementing
17:07 pmichaud we *did* revert back to sanity.
17:07 pmichaud or, more precisely, we adopted a new form of sanity.
17:07 pmichaud "duck mapping"
17:07 masak yuck.
17:07 masak it's not my kind of sanity.
17:08 pmichaud from S03:
17:08 pmichaud 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 masak I see what that bit is trying to do.
17:09 masak I just find the hyperops more predictable and useful when they don't recurse structurally.
17:09 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:09 masak right.
17:10 masak I liked it better when hyper was a (parallel) synonym to .map
17:10 timotimo so there's a special-casing of Cool when dispatching to the operator
17:10 masak special-casing of Cool is a language design smell. :/
17:10 spider-mario are we making a * 2013.03?
17:10 pmichaud timotimo: Cool candidates aren't considered, correct.
17:11 timotimo masak: that's what i thought.
17:11 pmichaud spider-mario: I was planning to do it, but my tuits are missing.
17:11 spider-mario ok :)
17:11 timotimo should we make a non-release announcement?
17:11 spider-mario that would require tuits as well
17:12 timotimo hehe.
17:14 pmichaud I may have time tonight or tomorrow to cut a release.
17:15 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 pmichaud it'd be better to not have one.
17:16 masak +1
17:16 arnsholt pmichaud: FYI, there's an open issue with Zavolaj/NativeCall
17:16 pmichaud arnsholt: what kind of an open issue?
17:16 arnsholt It may or may not trip a segfault in one of the test files
17:17 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
17:17 arnsholt Depends on how much RAM you have it seems (something weird happens in Parrot GC)
17:17 pmichaud is there a version of Zavolaj/NativeCall that doesn't exhibit the issue with 2013.03 ?
17:17 arnsholt Not AFAIK
17:17 pmichaud okay
17:17 arnsholt https://github.com/jnthn/zavolaj/issues/23 for the sum total of my knowledge (more or less) so far
17:18 pmichaud did the 2013.02 release have the issue?
17:18 arnsholt I haven't tried, but I'd assume so
17:18 pmichaud okay.
17:18 arnsholt It's in the callback handling, which isn't very recent at this point
17:19 pmichaud Is this related to https://github.com/rakudo/star/issues/20 ?
17: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
17:21 pmichaud okay.
17:21 arnsholt (I really should get some kind of Windows setup to test this kind of stuff)
17:21 pmichaud if I work on the star release, I'll run some tests.
17:21 pmichaud I might do a candidate tarball and let others run some tests :)
17:22 arnsholt Cool
17:26 Chillance joined #perl6
17:26 pmichaud afk again
17:32 PacoAir joined #perl6
17:35 crab2313 joined #perl6
17:48 fgomez joined #perl6
18:11 japhb_ joined #perl6
18:12 fgomez joined #perl6
18:12 * timotimo doesn't know how to do the hyper stuff now.
18:20 anant joined #perl6
18:21 SamuraiJack_ joined #perl6
18:21 diakopter joined #perl6
18:22 [Coke] ENOGITHUB
18:24 timotimo WFM
18:25 [Coke] everything works except the git.
18:26 [Coke] (I can't do a pull atm.)
18:27 timotimo oh, dang
18:30 sorear works for me unreliably
18:33 masak it was unreliable for me an hour or so ago.
18:34 timotimo the problem is slowly propagating across the world
18:39 dvj Is it possible to define a destructor on a class?
18:39 yoleaux 08:21Z <diakopter> dvj: wherefore me
18:39 dvj ..
18:39 diakopter :)
18:41 masak dvj: there are DESTROY submethods, yes.
18:41 dvj diakopter: therefore! :P
18:41 masak dvj: but I don't believe they are properly fired on Rakudo.
18:42 masak rn: class C { submethod DESTROY { say "fired!" } }; { my $c = C.new; #`[now de-allocate it] }; say "after"
18:42 p6eval rakudo 23847e: OUTPUT«after␤»
18:42 p6eval ..niecza v24-35-g5c06e28: OUTPUT«Potential difficulties:�  $c is declared but not used at /tmp/BAffxPynXn line 1:�------> [32mmethod DESTROY { say "fired!" } }; { my [33m�[31m$c = C.new; #`[now de-allocate it] }; sa[0m��after�»
18:42 dvj ok
18:42 masak nor in Niecza.
18:42 dvj so no C++ RAII style objects
18:42 dvj (yet) :)
18:42 masak 'fraid not.
18:43 masak there's a famous thread on p6l about that.
18:43 masak the conclusion seems to be "RAII don't work so well in a parallel world, so no".
18:43 masak 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
18:49 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?
18:50 spider-mario they don’t GC everything
18:50 spider-mario @managed pointers are GCed, but ~owned pointers are not
18:50 spider-mario (@ and ~ are the sigils used for pointers)
18:50 dalek perl6-roast-data: 72ee7cf | coke++ | / (4 files):
18:50 dalek perl6-roast-data: today (automated commit)
18:50 dalek perl6-roast-data: review: https://github.com/coke/perl6​-roast-data/commit/72ee7cf945
18:50 spider-mario (there’s also & for borrowed pointers and * for unsafe pointers but they’re not relevant here)
18:53 Tene diakopter: hunt down the author and persuade him to revert the relevant commit.
18:53 Tene I'm not going to submit a patch adding that behaviour though...
18:53 diakopter eh?
18:53 [Coke] niecza has been dirty for 262 days. pugs has been dirty for 1 day. rakudo has been clean for 20 days.
18:53 diakopter oh
18:53 Tene [Coke]: dirty/clean?
18:53 * [Coke] will not do that every day, but is sad that pugs is dirty again.
18:54 [Coke] Tene: https://github.com/coke/perl6-roast-data
18:54 Tene ah
18:54 [Coke] "we have gone X days with no workplace accidents".
18:54 nwc10 Makes me think of http://xkcd.com/363/
18:55 moritz makes me think of http://abstrusegoose.com/133
18:55 [Coke] nwc10: hee!
18:57 [Coke] "Zorns Lemma is a 1970 American structural experimental film by Hollis Frampton."
19:02 atroxaper bb all. night!
19:03 atroxaper left #perl6
19:04 araujo joined #perl6
19:05 timotimo [Coke]: did you ask before how to figure out from what role a method comes?
19:05 timotimo i'm now interested in that, too >_<
19:06 masak what's the use case?
19:06 * masak curious
19:06 [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.)
19:06 [Coke] masak: spec spelunking.
19:06 [Coke] ... via rakudo's implementation, of course.
19:08 timotimo mhm
19:08 timotimo masak: i'm trying to implement insanity
19:08 timotimo (proper recursion for hyper ops)
19:09 timotimo although now i realise that i only have to check if the operator is defined to handle lists itsefl
19:09 timotimo i think i'm too confused to properly implement this at this point.
19:10 moritz you mean for stuff like @list>>.[0] ?
19:11 krunen joined #perl6
19:11 SHODAN joined #perl6
19:11 timotimo for instance, yes
19:13 moritz well, that's pretty easy. >> as a postfix now only goes one level deep
19:13 moritz so it doesn't depend on what comes after it
19:13 masak this is the second time I hear that today.
19:14 masak moritz: do you know approximately when we got this behavior back?
19:14 moritz end of last year, iirc
19:14 moritz commit b3233b4ccfe2a65ceae78df44d162de8cb0699a7
19:14 moritz Author: Larry Wall <larry@wall.org>
19:14 moritz Date:   Sat Sep 15 18:49:50 2012 -0700
19:14 moritz limit unary hypers to declared shape or flat
19:14 moritz Also add .duckmap and .deepmap to give the less huffmanly desirable semantics.
19:15 moritz we don't have shapes yet, so that means for now it's always one level deep
19:16 timotimo oh, is the change only for unary operators?
19:16 moritz yes
19:17 moritz there aren't many binary operators that make sense with complex complex structures
19:17 timotimo that's good to know!
19:18 moritz maybe you should read the parts of the specs you're about to implement :-)
19:18 timotimo multi sub hyper(\op, Associative \h) {  <-  is the only one i have to change?
19:18 timotimo i should! :(
19:19 timotimo oh, no, that's for a hash
19:20 timotimo i think i need a break and some concentration.
19:30 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:31 moritz Unary hyper operators always produce a hash or array of exactly the
19:31 moritz same I<declared> shape as the single argument.  If the item is not
19:31 moritz declared with a shape, only the top dimension is mapped, equivalent
19:31 moritz to a normal C<.map> method.
19:31 moritz is what S03 says
19:31 pmichaud looking.
19:31 moritz that's *unary* hypers
19:31 moritz binary still do the recursive stuff, more or less like it's implemented right now
19:32 pmichaud but later in the spec, it says
19:32 pmichaud Hyper operators are defined recursively on nested arrays, so:
19:32 pmichaud -« [[1, 2], 3]               #    [-«[1, 2], -«3]
19:32 pmichaud # == [[-1, -2], -3]
19:32 pmichaud and explicitly uses a unary hyper there.
19:32 * moritz compares dates
19:33 moritz the examples are way older than TimToady_++'s commit mentioned above
19:33 moritz so I guess they are a fossils
19:33 * masak just accidentally wrote `$contents.substr(0, 1) eq '<'`, which is perfectly valid, if confusing, Perl 5
19:34 moritz curious :-)
19:38 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:38 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.
19:38 pmichaud timotimo: check to make sure it's not in S09 already.
19:39 timotimo i will
19:39 timotimo there is not.
19:40 pmichaud I'm afk, kid pickups and errands.
19:40 pmichaud taxes are done, though, and that's a good thing.  :)
19:43 * arnsholt got papers from the tax office in the mail today
19:44 arnsholt Looks like I'll be getting a fair chunk back this year. Also, I really like the pre-filled return thing
19:59 gtodd pmichaud: is there a rosalind problem for taxes that perl6 could solve ....
20:00 gtodd pmichaud: actually    $taxes--
20:04 fgomez joined #perl6
20:09 arcterus joined #perl6
20:10 arcterus perl6: my @array[3] = 4; @array[4] = 3;
20:10 p6eval rakudo 23847e: OUTPUT«[31m===[0mSORRY![31m===[0m�Shaped variable declarations not yet implemented. Sorry. �at /tmp/zsAf7VFEtl:1�------> [32mmy @array[3][33m�[31m = 4; @array[4] = 3;[0m�»
20:10 p6eval ..niecza v24-35-g5c06e28: OUTPUT«[31m===[0mSORRY![31m===​[0m��Postconstraints, and shapes on variable declarators NYI at /tmp/l80xl_3So6 line 1:�------> [32mmy @array[3] [33m�[31m= 4; @array[4] = 3;[0m��Unhandled exception: Check failed��  at /home/p6eval/niecza/boot/lib/CORE.setti…
20:13 shlomif joined #perl6
20:17 arcterus joined #perl6
20:18 rindolf joined #perl6
20:19 lichtkind joined #perl6
20:26 fgomez joined #perl6
20:31 dalek v5: 192ef6f | (Tobias Leich)++ | / (3 files):
20:31 dalek v5: make .= work
20:31 dalek v5: review: https://github.com/rakudo-p5/v5/commit/192ef6fea9
20:35 arcterus left #perl6
20:38 arcterus joined #perl6
20:44 arcterus left #perl6
21:03 dmol joined #perl6
21:04 arcterus joined #perl6
21:08 dmol1 joined #perl6
21:26 arlinius joined #perl6
21:36 dmol joined #perl6
21:39 lichtkind does anyone know who is in charge of parrot?
21:40 dmol1 joined #perl6
21:40 masak John Cleese?
21:40 FROGGS >.<
21:49 [Coke] lichtkind: There isn't a single person. What sort of charge are you looking for?
21:50 * diakopter did not realize masak was answering lichtkind's question until just now.  bwa.
21:53 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
21:53 FROGGS 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
21:53 FROGGS bucket, 'e's shuffled off 'is mortal coil, run down the curtain and joined the bleedin' choir invisibile!! THIS IS AN EX-PARROT!!
21:53 FROGGS Read more: http://artists.letssingit.com/monty-python-ly​rics-dead-parrot-sketch-mkqd4zc#ixzz2Pd1WhZHU
21:53 FROGGS LetsSingIt - Your favorite Music Community
21:53 lichtkind i never could decide if leto or cotto is the one
21:54 [Coke] lichtkind: ask both.
21:54 FROGGS ohh cool, a javascript that autoadds stuff to ones clipboard O.o
21:54 [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.
22:32 masak 'night, #perl6
22:32 FROGGS night masak
22:39 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:42 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?
22:44 labster that has a different meaning in .splitpath.  splitpath('foo/bar/') returns ('', 'foo/bar/', ''), while splitpath('foo/bar') -> ('', 'foo/', 'bar')
22:45 labster it tries to determine what is a directory and what is not.  Which is why it has the nofile parameter.
22:46 FROGGS then we have the same problem again like a few days ago
22:47 FROGGS 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 FROGGS 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.
22:48 labster Unless it's VMS.
22:48 FROGGS :/
22:50 labster If you want to play with Win32 paths on Unix, you won't know exactly what it refers to.
22:51 labster I think, when we readdir, we could stat everything and assign IO::File/IO::Dir based on that.
22:53 labster It would be a lot slower though.
23:04 sizz joined #perl6
23:18 cooper_ joined #perl6
23:19 jnthn_ joined #perl6
23:21 lorn_ joined #perl6
23:22 dmol joined #perl6
23:23 swarley-freenode joined #perl6
23:24 daniel-s_ joined #perl6

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

Perl 6 | Reference Documentation | Rakudo