»ö« 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 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…
..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 failed␤FAILED 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 number␤at /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 m␤at /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 m␤at /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 m␤at /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 m␤at /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 1␤Check failed␤FAILED 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 %hash␤␤Unhandled 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 %hash␤␤Unhandled 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 row␤at /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] }; sa␤␤after␤»
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