travis-ci Rakudo build passed. Timo Paulssen 'don't want to call .Bool on undefined Failure objects' 00:11
travis-ci.org/rakudo/rakudo/builds/160012990 github.com/rakudo/rakudo/compare/7...95f74903b5
buggable [travis build above] ☠ Did not recognize some failures. Check results manually 00:12
dalek ast: 8b2446d | MasterDuke17++ | S03-metaops/hyper.t:
Test that union hypers on a hash don't warn

Test for RT #118223
03:36
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=118223
[Coke] wonders if any .eu folks are up this early. 04:14
awwaiid wonders if he should be up this late 04:19
hoelzro and I are meeting up IRL here at StrangeLoop :) . Watch out for REPL-madness 04:20
(or something) 04:21
[Coke] awwaiid: it's 0522 here; Have to leave in a taxi in 39m, didn't sleep. :) 04:23
I have to be up now, but probably shouldn't have been for so long so far. :)
dalek kudo/better-test-pm6: b204ce4 | (Zoffix Znet)++ | / (2 files):
Implement is() multies
08:59
kudo/better-test-pm6: cd7a254 | (Zoffix Znet)++ | / (2 files):
Implement isnt() and cmp-ok()
09:29
Zoffix m: use Test; cmp-ok class {}.new but Numeric, &[==], 72; 09:40
camelia rakudo-moar 2c95f7: OUTPUT«Memory allocation failed; could not allocate 60416 bytes␤»
Zoffix m: say class {}.new but Numeric == 72 09:41
camelia rakudo-moar 2c95f7: OUTPUT«Memory allocation failed; could not allocate 82944 bytes␤»
Zoffix RT: rt.perl.org/Ticket/Display.html?id=129275 09:43
dalek kudo/better-test-pm6: d40acff | (Zoffix Znet)++ | test.t:
Expand output diff test to use custom objects too
09:46
lizmat jnthn: in your gist, there is no mention of BOM's 11:06
is that something you see the decoders handle, or would this be done transparently at the VM level ?
|Tux| This is Rakudo version 2016.08.1-196-g2c95f74 built on MoarVM version 2016.08-47-g2eedba8 11:13
csv-ip5xs 9.132
test 15.740
test-t 6.796
csv-parser 16.954
jnthn lizmat: That's for decoders 11:34
The utf-8 decoder will go on stripping the BOM just like today :) 11:35
lizmat and any utf-16 will need to do that as well in the future then :-)
masak Zoffix: re "some good underlying reason" -- dunno about "good", but... I'd bet my hat that what you'll find is that two or more numeric routines end up delegating to each other in a cycle until stack space runs out, due to some unstated assumption not being met (possibly involving the Bridge type) 11:36
Zoffix prolly 11:39
masak it's happened before with the numeric stuff 11:50
timotimo oh yeah
also with Stringy we had some infinite recursions
masak there need to be ironclad rules about what's allowed to call what 11:54
especially since such assumptions leak out to whoever starts extending/creating core numeric and stringy types
dalek kudo/better-test-pm6: be5b207 | (Zoffix Znet)++ | / (5 files):
Factor out volatile test conditions

Into a separate diff test
13:23
TestNinja tsk tsk bad robot
dalek kudo/better-test-pm6: e33e076 | (Zoffix Znet)++ | / (3 files):
Implement does-ok()
14:18
kudo/better-test-pm6: 93de986 | (Zoffix Znet)++ | / (3 files):
Implement can-ok()
kudo/better-test-pm6: 977db7b | (Zoffix Znet)++ | / (3 files):
Implement like()
kudo/better-test-pm6: ca10378 | (Zoffix Znet)++ | / (3 files):
Implement unlike()
lizmat waves from Köln 15:38
do we have some page explaining NFG ? can't seem to find it on docs.perl6.org 15:42
TestNinja \o 15:44
lizmat TestNinja o/ 15:46
I guess the closest thing we have is design.perl6.org/S15.html#NFG
ugexe m: say "42" ~~ 42 16:07
camelia rakudo-moar 2c95f7: OUTPUT«True␤»
ugexe m: say "42x" ~~ 42 16:08
camelia rakudo-moar 2c95f7: OUTPUT«Cannot convert string to number: trailing characters after number in '42⏏x' (indicated by ⏏)␤ in block <unit> at <tmp> line 1␤␤Actually thrown at:␤ in block <unit> at <tmp> line 1␤␤»
ugexe m: say "x" ~~ 42
camelia rakudo-moar 2c95f7: OUTPUT«Cannot convert string to number: base-10 number must begin with valid digits or '.' in '⏏x' (indicated by ⏏)␤ in block <unit> at <tmp> line 1␤␤Actually thrown at:␤ in block <unit> at <tmp> line 1␤␤»
ugexe Numeric need additional multis?
for ACCEPTS^
stmuk_ lizmat: not sure if it still applies for NFG but there is also ftp://ftp.uni-siegen.de/pub/parrot-docs/html/docs/pdds/pdd28_strings.pod.html 16:09
I actually found that one of the better explantions
lizmat ugexe: please rakudobug :-) 16:11
TimToady what's the bug? it looks like it's working as designed to me 16:12
if the bug is "smartmatching is not symmetric" then it's notabug 16:13
ugexe m: use Test:auth<666>; # Really trying to find the appropriate place to fix this
camelia rakudo-moar 2c95f7: OUTPUT«===SORRY!===␤Cannot convert string to number: base-10 number must begin with valid digits or '.' in '⏏perl' (indicated by ⏏)␤»
TimToady yeah, that does look buggier 16:14
timotimo m: use Test:auth({ .say; Bool.pick })
camelia rakudo-moar 2c95f7: OUTPUT«perl␤Block object coerced to string (please use .gist or .perl to do that)␤ in any load_module at src/Perl6/World.nqp line 1193␤Block object coerced to string (please use .gist or .perl to do that)␤ in any load_module at src/Perl6/World.nqp line …»
ugexe i know how to fix it by adding changing `$_.value<auth> ~~ $spec.auth-matcher` to `$_.value<auth> ~~ ($spec.auth-matcher ~~ Num ?? $spec.auth-matcher.Str !! $spec.auth-matcher)` but that seems sloppy 16:16
github.com/rakudo/rakudo/blob/nom/...on.pm#L443
jnthn TimToady: Arguably, asking if something matches a number could just say "no" if the thing can't be coerced to Numeric, rather than blowing up the Failure 16:17
m: say 42.ACCEPTS("x") # could just say False 16:18
camelia rakudo-moar 2c95f7: OUTPUT«Cannot convert string to number: base-10 number must begin with valid digits or '.' in '⏏x' (indicated by ⏏)␤ in block <unit> at <tmp> line 1␤␤Actually thrown at:␤ in block <unit> at <tmp> line 1␤␤»
TimToady I don't see a problem with just saying False
jnthn I think that's what was being complained about, not the assymetry.
TimToady so yeah, maybe just some extra ACCEPTs would work
or some way to tell Numeric not to carp 16:19
nine Shouldn't use Test:auth<666> be the same as use Test:auth('666')?
jnthn heh, asymmetry
*nod* 16:20
TimToady nine: right
jnthn iirc, Numeric just returns a Failure in that case, so ACCEPTS could be smart enough to check for that before matching.
TimToady should probaly not be using smartmatch with number there
jnthn I suspect it's feeding it straight into ==, which is what causes the explosion 16:21
TimToady m: say so Numeric('x')
camelia rakudo-moar 2c95f7: OUTPUT«Cannot invoke this object (REPR: Uninstantiable; Numeric)␤ in block <unit> at <tmp> line 1␤␤»
TimToady m: say so +'x'
camelia rakudo-moar 2c95f7: OUTPUT«False␤»
jnthn dinner & 16:22
TimToady ugexe: sorry, was pretty sure you weren't advocating symmetry, but haven't had enough coffee to figure out what you were actually wanting :) 16:23
tbrowder hi 16:24
ugexe files 'not enough coffee' ticket 16:25
tbrowder we (Zoffix and I) have Github's attention about rendering pod6 docs on their website. See this message: 16:26
www.irccloud.com/pastebin/4InOsji1/
Which dev do we need to see about continuing this process? 16:28
TimToady wonders if they'll end up wanting to vet the security of all of Perl 6...
ugexe from what I remember performance was an issue last time this was discussed with them 16:30
TestNinja Is trying to guess the correct argument to callframe when wanting to get filename futile? I'm trying to replace this bit with manual calculation of $level, but when I print the auto-calculated level, it doesn't make much sense: my $caller = callframe $level; repeat until !$?FILE.ends-with($caller.file) { $caller = callframe(++$level); } 16:42
The callframe calculation is inside method test; and on this line, level is 3: gist.github.com/zoffixznet/6c990c9...e-p6-p6-L4 on line 20, I call a Callable with more tests, but in those, the level is still 3; but then on line 23—what to me looks like the same thing as line 4—the correct callframe is 4 :/ 16:44
never mind; I probably can't use that method anyway, 'cause blocks don't create a new level, AFAIK 16:50
(and I don't know what user will give me) 16:51
tbrowder, why is a dev needed? Seems any user can give GitHub whatever deliverables they seek 16:56
tbrowder Well I'm not sure at the moment, their answer wasn't very helpful, but I have asked for clarification. In the meantime, is there a public list of core revs and responsibilities somewhere? 17:00
dalek kudo/better-test-pm6: 1cb54f8 | (Zoffix Znet)++ | / (2 files):
Implement lives-ok()
kudo/better-test-pm6: 28fcc40 | (Zoffix Znet)++ | / (2 files):
Implement eval-dies-ok()
kudo/better-test-pm6: ca39f71 | (Zoffix Znet)++ | / (2 files):
Implement eval-lives-ok()
kudo/better-test-pm6: ad7330a | (Zoffix Znet)++ | / (3 files):
Implement is-deeply()
tbrowder s/revs/devs/ 17:01
TestNinja Not really.
tbrowder Is there an objection to publishing such a list? 17:03
TestNinja tbrowder, presumably they mean a PR against the repo that Issue is on. Here's a place where P5 pod is rendered, for example: github.com/github/markup/blob/mast...ups.rb#L46 17:04
tbrowder, there's no "list of responsibilities"; it's a lot less structured.
There's no way to parse POD6 without compiling the entire file (and executing all the BEGIN blocks), is there? I wonder how that will go down through their security reviews 17:07
tbrowder TestNinja: that is probably true about the PR, but the response was to multiple people and in the context of the p6 community, so it seemed as if a core dev might be needed.
TestNinja imagines the headlines "GitHub Hacked through Perl 6 markup highlighter—Millions of accounts compromised!" :)
tbrowder I should hope they are as careful about p6 pod as they are about p5. 17:09
And that is the other issue: the pod tooling. Surely they will need to contact a core dev if implementation questions or security questions arise. 17:11
Okay, bye.
TestNinja ¯\_(ツ)_/¯ 17:15
DrForr Shrug, Perl6::Tidy uses the Perl6 grammar which means it's got the same problem. 17:22
dalek kudo/better-test-pm6: ad6ec20 | (Zoffix Znet)++ | / (2 files):
Implement skip()
18:08
kudo/better-test-pm6: 33b8b11 | (Zoffix Znet)++ | / (3 files):
Implement throws-like()
kudo/better-test-pm6: b4105db | (Zoffix Znet)++ | lib/Test.pm6:
Do not output plan when not needed

Such as when cleaning up automatically at the end
18:31
nine Ouch. I've just hit a huge limitation in Inline::Perl5. Dancer2 passes a sub of yours a hashref and expects you to add data to the hash. This data won't make it back to Perl 5 land, as the whole hash is a copy :/ 18:37
timotimo can you do something crazy with "is rw" somewhere? 18:41
nine Well I may be able to mix in a role that stores a reference to the Perl 5 hash and intercepts writes to duplicate them on that hash. 18:42
m: EVAL q:to/PERL5/, :lang<Perl5>; 18:45
camelia rakudo-moar 2c95f7: OUTPUT«===SORRY!=== Error while compiling <tmp>␤EVAL is a very dangerous function!!! (use the MONKEY-SEE-NO-EVAL pragma to override this error,␤but only if you're VERY sure your data contains no injection attacks)␤at <tmp>:1␤------> EVAL q:to/PERL…»
nine TimToady: ^^^
TestNinja m: class { has int $!n = 0; method x ($!n) {} }.new.x: 42 18:47
camelia rakudo-moar 2c95f7: OUTPUT«Cannot modify an immutable int␤ in method x at <tmp> line 1␤ in block <unit> at <tmp> line 1␤␤»
TestNinja m: class { has int $!n = 0; method x ($n) {$!n = $n} }.new.x: 42 18:48
camelia ( no output )
TestNinja RT: rt.perl.org/Ticket/Display.html?id=129278 18:49
timotimo nine: what was that eval for? o_O 18:51
oh
it thinks you're interpolating something 18:52
nine yes
timotimo: my workaround for now: gist.github.com/niner/460724a6282a...3495f55a7f 18:54
dalek kudo/nom: 4667702 | moritz++ | src/core/IO/Path.pm:
Fix type error ion IO::Path.rw, reported by jsimonet++
19:05
nine Less than an hour to finish the Dancer 2 tutorial in Perl 6 with a fully functional version :) I'd call that not bad. 19:08
The tutorial includes a login, writing to and reading from a database.
niner.name/talks/Perl%205%20and%20P...les/Dancr/ 19:11
timotimo cool 19:13
perlpilot nine++ 19:15
dalek kudo/better-test-pm6: 7c50a86 | (Zoffix Znet)++ | / (2 files):
Implement todo()
19:26
kudo/better-test-pm6: 7b7e945 | (Zoffix Znet)++ | / (2 files):
Implement diag()
kudo/better-test-pm6: 1eb0419 | (Zoffix Znet)++ | lib/Test.pm6:
Clean up
kudo/better-test-pm6: f104d83 | (Zoffix Znet)++ | lib/Test.pm6:
Implement skip-rest()
kudo/better-test-pm6: ef320a2 | (Zoffix Znet)++ | lib/Test.pm6:
Export eval monkey
19:49
kudo/better-test-pm6: dd69c38 | (Zoffix Znet)++ | lib/Test.pm6:
Temporarily replicate LTA behaviour of old Test.pm6

When throws-like takes a Failure as code to run, the message for "dies ok" is an Any. Keep that old behaviour for now.
TestNinja Hm. seems like my adventure in better Test.pm6 uncovered a bug 20:02
m: use Test; sub rt69314($n) { if $n { callsame; } }; lives-ok {rt69314(1)}, "Calling callsame directly from a sub works";
camelia rakudo-moar 466770: OUTPUT«ok 1 - Calling callsame directly from a sub works␤»
TestNinja The test passes (but fails on my new Test.pm6)
m: sub rt69314($n) { if $n { callsame; } }(1)
camelia rakudo-moar 466770: OUTPUT«callsame is not in the dynamic scope of a dispatcher␤ in sub rt69314 at <tmp> line 1␤ in block <unit> at <tmp> line 1␤␤»
TestNinja ^ and looks like it shouldn't pass?
m: sub rt69314($n) { if $n { callsame; } }; {rt69314(1)}() 20:03
camelia rakudo-moar 466770: OUTPUT«callsame is not in the dynamic scope of a dispatcher␤ in sub rt69314 at <tmp> line 1␤ in block <unit> at <tmp> line 1␤␤»
TestNinja m: use Test; eval-lives-ok 「sub rt69314($n) { if $n { callsame; } }; rt69314(1)」, "Calling callsame directly from a sub works"; 20:04
camelia rakudo-moar 466770: OUTPUT«ok 1 - Calling callsame directly from a sub works␤»
TestNinja That also fails on my new Test.pm6 20:05
And that test is weird too. Wouldn't it create an infiniloop if it actually worked? 20:06
RT#69314
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=69314
TestNinja m: sub foo($n) { say $n; if $n { callsame($n-1) } }; foo(1) 20:07
camelia rakudo-moar 466770: OUTPUT«1␤Too many positionals passed; expected 0 arguments but got 1␤ in sub foo at <tmp> line 1␤ in block <unit> at <tmp> line 1␤␤»
TestNinja wat
jnthn Did you mean callwith?
TestNinja oh
m: sub foo($n) { say $n; if $n { callwith($n-1) } }; foo(1)
jnthn Or samewith maybe? :)
camelia rakudo-moar 466770: OUTPUT«1␤callwith is not in the dynamic scope of a dispatcher␤ in sub foo at <tmp> line 1␤ in block <unit> at <tmp> line 1␤␤»
jnthn Yeah, callwith is for iterating through a dispatch list :) 20:08
Just noticed you were only in a sub
If you just want to call the very same routine you're currently sat in again, it's samewith
TestNinja But how's this supposed to work:
m: sub rt69314($n) { if $n { callsame; } }; {rt69314(1)}()
camelia rakudo-moar 466770: OUTPUT«callsame is not in the dynamic scope of a dispatcher␤ in sub rt69314 at <tmp> line 1␤ in block <unit> at <tmp> line 1␤␤»
jnthn The error looks legit to me 20:09
TestNinja m: sub foo($n) { say $n; if $n { callsame() } }; foo(1)
camelia rakudo-moar 466770: OUTPUT«1␤callsame is not in the dynamic scope of a dispatcher␤ in sub foo at <tmp> line 1␤ in block <unit> at <tmp> line 1␤␤»
TestNinja OK, so it's a bogus test then.
jnthn Looks like
TestNinja Thanks.
jnthn Maybe the original Test.pm had a multi?
And we were in its dynamic scope, and so it used that $*DISPATCHER?
In which case it bogus-passed 20:10
travis-ci Rakudo build failed. Moritz Lenz 'Fix type error ion IO::Path.rw, reported by jsimonet++'
travis-ci.org/rakudo/rakudo/builds/160259145 github.com/rakudo/rakudo/compare/2...67702a2e32
buggable [travis build above] ☠ Did not recognize some failures. Check results manually 20:11
TestNinja Yeah, the original Test.pm has lives-ok as a multi, but it's just one of them there, so my version has it just as a regular sub
^ that's just a network error 20:12
Hm. I need to teach buggable to ignore JVM
ugexe m: say <a b c>.roll; say <a b c>.roll(1); # Is this behavior expected? The roast relies on it but it seems wrong 20:18
camelia rakudo-moar 466770: OUTPUT«b␤(c)␤»
lizmat decommute& 20:21
jnthn What seems wrong?
The .roll($n) form predictably returns a List 20:22
TimToady item vs list, I presume, but that's intentional
jnthn Since you've no idea in the general case what $n will be, and it'd be an odd discontinuity
(were it not to return a 1-item List) 20:23
Especially if you were rolling a list of lists :)
TimToady it's just one of those spots where you can't be consistently consistent in every dimension
mst I like the current behaviour. 20:24
TimToady we could choose everything's-a-matrix consistency like APL, but then we lose singular/plural consistency with English 20:26
ugexe m: say ().pick.elems; say ().pick(1).elems # This is why I thought it seemed wrong 20:28
camelia rakudo-moar 466770: OUTPUT«1␤0␤»
TimToady no, because .pick(N) gives up after the list is exhausted, and .pick is really just .roll in disguise 20:29
though I can see the argument for returning Empty rather than Nil, I suppose 20:30
but Nil is better suited to the expectation of an item, which is what argumentless .pick and .roll are playing to 20:31
dalek roast/6.c-errata: b23ec4e | (Zoffix Znet)++ | S06-advanced/callsame.t: 20:33
roast/6.c-errata: Remove bogus RT#69314 test
roast/6.c-errata:
roast/6.c-errata: The test existed since before Sept, 2011, but was passing for the
roast/6.c-errata: wrong reason and according to the ticket[^1], even in 2011 the
roast/6.c-errata: current behaviour was already present. Test's bogusness was
roast/6.c-errata: discussed[^2] with jnthn++
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=69314
dalek roast/6.c-errata:
roast/6.c-errata: The corrected test will be added in master.
roast/6.c-errata:
roast/6.c-errata: [1] rt.perl.org/Ticket/Display.html?id=69314
roast/6.c-errata: [2] irclog.perlgeek.de/perl6-dev/2016-0...i_13217385
ast: 3666998 | (Zoffix Znet)++ | S06-advanced/callsame.t:
Replace bogus RT#69314 test

The test existed since before Sept, 2011, but was passing for the wrong reason and according to the ticket[^1], even in 2011 the current behaviour was already present. Test's bogusness was discussed[^2] with jnthn++
The corrected test checks that throwage occurs.
  [1] rt.perl.org/Ticket/Display.html?id=69314
  [2] irclog.perlgeek.de/perl6-dev/2016-0...i_13217385
fdaf1a1 | usev6++ | S03-smartmatch/array-array.t: Test smartmatch with List RHS
The modified test did not test what its description said. Instead it tested whether a non empty list returns True (and that is already tested elsewhere, e.g. S02-types/list.t).
Also, I added a comment about 'ok (1 ~~ **,1**)' being bogus. That test should be reviewed once we know if the LHS should be coerced to list when smartmatched against (**,1,**).
20:42
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=69314
TestNinja dalek, lazy!
Above commit: github.com/perl6/roast/commit/3666...78a9c4eda9
ugexe m: say roll(<a b c d e>); # `multi sub roll($n, +values)` doesn't treat values as a required positional before numifying :(
camelia rakudo-moar 466770: OUTPUT«()␤»
dalek ast: 7738e43 | (Zoffix Znet)++ | S06-advanced/callsame.t:
Include comment explaining code choice
20:45
ugexe and its probably not ideal to use `where` to constrain it
MasterDuke m: say :3<12> 20:57
camelia rakudo-moar 466770: OUTPUT«5␤»
MasterDuke m: say :۳<12>
camelia rakudo-moar 466770: OUTPUT«===SORRY!===␤Error encoding ASCII string: could not encode codepoint 1779␤»
timotimo aha!
another place we need to put the radix op
MasterDuke yep
i've been looking for them 20:58
may have found another one or two
github.com/rakudo/rakudo/blob/nom/....nqp#L3409
that's the one i just demo above 20:59
TestNinja wtf. That was fixed already
m: say ۳ 21:00
camelia rakudo-moar 466770: OUTPUT«3␤»
TestNinja oh
m: say :۳foo
camelia rakudo-moar 466770: OUTPUT«Unexpected named argument 'foo' passed␤ in block <unit> at <tmp> line 1␤␤»
TestNinja m: say %(:۳foo)
camelia rakudo-moar 466770: OUTPUT«{foo => 3}␤»
TestNinja THAT was fixed already :)
MasterDuke i've made that fix in two different places
yeah, i did that one
and the one with subcaptures in grammars
which inspired me to see if there are any others, one definite so far, looking for more 21:01
TestNinja m: EVAL 「map -> $x, $y { ... }, 1..6」 21:26
camelia rakudo-moar 466770: OUTPUT«Stub code executed␤ in any at /home/camelia/rakudo-m-inst-2/share/perl6/runtime/CORE.setting.moarvm line 1␤ in block at EVAL_0 line 1␤ in block <unit> at <tmp> line 1␤␤»
TestNinja Looks like another test passing for the wrong reason uncovered
m: use Test; sub eval-lives-ok 「map -> $x, $y { ... }, 1..6」, 'why, yes, yes it does'
camelia rakudo-moar 466770: OUTPUT«===SORRY!=== Error while compiling <tmp>␤Missing block␤at <tmp>:1␤------> use Test; sub eval-lives-ok⏏ 「map -> $x, $y { ... }, 1..6」, 'why, ye␤ expecting any of:␤ new name to be defined␤»
TestNinja m: use Test; eval-lives-ok 「map -> $x, $y { ... }, 1..6」, 'why, yes, yes it does' 21:27
camelia rakudo-moar 466770: OUTPUT«ok 1 - why, yes, yes it does␤»
TestNinja hm wait 21:29
m: try EVAL 「map -> $x, $y { ... }, 1..6」;
camelia rakudo-moar 466770: OUTPUT«Stub code executed␤ in any at /home/camelia/rakudo-m-inst-2/share/perl6/runtime/CORE.setting.moarvm line 1␤ in block at EVAL_0 line 1␤ in block <unit> at <tmp> line 1␤␤»
TestNinja m: EVAL '' 21:31
camelia ( no output )
TestNinja m: EVAL ('')
camelia rakudo-moar 466770: OUTPUT«===SORRY!=== Error while compiling <tmp>␤EVAL is a very dangerous function!!! (use the MONKEY-SEE-NO-EVAL pragma to override this error,␤but only if you're VERY sure your data contains no injection attacks)␤at <tmp>:1␤------> EVAL ('')⏏…»
TestNinja m: use MONKEY-SEE-NO-EVAL; sub eval-lives-ok(Str $code) { my $ee = eval_exception($code); say (not defined $ee); }; sub eval_exception($code) { try EVAL $code; $!; }; eval-lives-ok('...') 21:35
camelia rakudo-moar 466770: OUTPUT«True␤»
TestNinja m: use MONKEY-SEE-NO-EVAL; sub eval-lives-ok(Str $code) { try EVAL $code; my $ee = $!; say (not defined $ee); }; eval-lives-ok('...')
camelia rakudo-moar 466770: OUTPUT«Stub code executed␤ in block <unit> at EVAL_0 line 1␤ in sub eval-lives-ok at <tmp> line 1␤ in block <unit> at <tmp> line 1␤␤Actually thrown at:␤ in block <unit> at <tmp> line 1␤␤»
TestNinja I don't get why one dies and other doesn't :/
m: use MONKEY-SEE-NO-EVAL; sub eval-lives-ok(Str $code) { my $ee = sub { try EVAL $code; $! }(); say (not defined $ee); }; eval-lives-ok('...') 21:40
camelia rakudo-moar 466770: OUTPUT«True␤»
TestNinja m: my $e = sub { EVAL '...' }(); say $e.WHAT 21:42
camelia rakudo-moar 466770: OUTPUT«(Failure)␤»
TestNinja m: my $e = sub { try EVAL 'die'; $! }(); say $e.WHAT
camelia rakudo-moar 466770: OUTPUT«(AdHoc)␤»
TestNinja I see. Seems some sort of exception thing I don't understand :) 21:43
dalek kudo/better-test-pm6: 46ae789 | (Zoffix Znet)++ | lib/Test.pm6:
Use a separate sub to catch eval exception

Otherwise failures slip through and crash our test suite
21:49
MasterDuke m: "a b" ~~ /(\w) \s (\w)/; say $1 22:14
camelia rakudo-moar 466770: OUTPUT«「b」␤»
MasterDuke m: "a b" ~~ /(\w) \s (\w)/; say $١
camelia rakudo-moar 466770: OUTPUT«===SORRY!===␤Error encoding ASCII string: could not encode codepoint 1633␤»
MasterDuke m: my $1 = 0; say $1 22:15
camelia rakudo-moar 466770: OUTPUT«===SORRY!=== Error while compiling <tmp>␤Cannot declare a numeric variable␤at <tmp>:1␤------> my $1⏏ = 0; say $1␤»
MasterDuke so variable names can't be just numbers
m: my $١ = 0; say $١
camelia rakudo-moar 466770: OUTPUT«===SORRY!=== Error while compiling <tmp>␤Cannot declare a numeric variable␤at <tmp>:1␤------> my $١⏏ = 0; say $١␤»
MasterDuke but the unicode version works (i.e., give the correct error) there 22:16
timotimo yeah, because $1 etc is sugar for $/[1] etc
MasterDuke so i assume i should fix that case also?
timotimo yeah, sounds good to me 22:17
TestNinja m: "a b" ~~ /(\w) \s (\w)/; say $/[١] 22:18
camelia rakudo-moar 466770: OUTPUT«「b」␤»
MasterDuke m: sub f(-1) { say "hi" }; say f(-1) 22:28
camelia rakudo-moar 466770: OUTPUT«hi␤True␤»
MasterDuke m: sub f(-١) { say "hi" }; say f(-1)
camelia rakudo-moar 466770: OUTPUT«===SORRY!===␤Error encoding ASCII string: could not encode codepoint 1633␤»
MasterDuke and another 22:29
m: sub f(١) { say "hi" }; say f(1) # works 22:30
camelia rakudo-moar 466770: OUTPUT«hi␤True␤»
dalek kudo/nom: ad5336d | lizmat++ | src/core/IO/Path.pm:
No need to throw a Failure at the end of a method
22:31
lizmat good night, #perl6-dev!
TestNinja night 22:34
dalek kudo/better-test-pm6: c31ac0d | (Zoffix Znet)++ | lib/Test.pm6:
Implement bail-out()
22:39
kudo/better-test-pm6: 282f4ed | (Zoffix Znet)++ | lib/Test.pm6:
Implement PERL6_TEST_DIE_ON_FAIL
kudo/better-test-pm6: 92b14dc | (Zoffix Znet)++ | lib/Test.pm6:
Implement output redirection subs
TestNinja m: say "New Test.pm6 is {681-433} lines smaller but takes {(484/(484-453)).Int}% more time to complete" 22:59
camelia rakudo-moar ad5336: OUTPUT«New Test.pm6 is 248 lines smaller but takes 15% more time to complete␤»
TestNinja That's with zero attempt to optimise anything. Not gonna merge it unless it's the same speed as old one or faster. 23:00
timotimo already sounds kinda good 23:06
travis-ci Rakudo build passed. Elizabeth Mattijsen 'No need to throw a Failure at the end of a method' 23:25
travis-ci.org/rakudo/rakudo/builds/160308337 github.com/rakudo/rakudo/compare/4...5336d64484