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 1Actually 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 1Actually 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«perlBlock object coerced to string (please use .gist or .perl to do that) in any load_module at src/Perl6/World.nqp line 1193Block 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 1Actually 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«1Too 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«1callwith 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«1callsame 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«10» | ||
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 blockat <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 1Actually 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 variableat <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 variableat <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«hiTrue» | ||
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«hiTrue» | ||
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 |