Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6-dev, 2016-09-15

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

All times shown according to UTC.

Time Nick Message
00:11 travis-ci joined #perl6-dev
00:11 travis-ci Rakudo build passed. Timo Paulssen 'don't want to call .Bool on undefined Failure objects'
00:11 travis-ci https://travis-ci.org/rakudo/rakudo/builds/160012990 https://github.com/rakudo/rakudo/compare/7c48b90b013c...2c95f74903b5
00:11 travis-ci left #perl6-dev
00:12 buggable [travis build above] ☠ Did not recognize some failures. Check results manually
00:31 awwaiid joined #perl6-dev
01:48 ilbot3 joined #perl6-dev
01:48 Topic for #perl6-dev is now Perl 6 language and compiler development 2.0 | Logs at http://irclog.perlgeek.de/perl6-dev/today
01:57 cognominal joined #perl6-dev
03:36 dalek roast: 8b2446d | MasterDuke17++ | S03-metaops/hyper.t:
03:36 dalek roast: Test that union hypers on a hash don't warn
03:36 dalek roast:
03:36 dalek roast: Test for RT #118223
03:36 dalek roast: review: https://github.com/perl6/roast/commit/8b2446dc94
03:36 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=118223
04:14 * [Coke] wonders if any .eu folks are up this early.
04:19 * awwaiid wonders if he should be up this late
04:20 awwaiid hoelzro and I are meeting up IRL here at StrangeLoop :) . Watch out for REPL-madness
04:21 awwaiid (or something)
04:23 [Coke] awwaiid: it's 0522 here; Have to leave in a taxi in 39m, didn't sleep. :)
04:23 [Coke] I have to be up now, but probably shouldn't have been for so long so far. :)
08:02 Zoffix__ joined #perl6-dev
08:19 RabidGravy joined #perl6-dev
08:59 dalek rakudo/better-test-pm6: b204ce4 | (Zoffix Znet)++ | / (2 files):
08:59 dalek rakudo/better-test-pm6: Implement is() multies
08:59 dalek rakudo/better-test-pm6: review: https://github.com/rakudo/rakudo/commit/b204ce4f6d
09:29 dalek rakudo/better-test-pm6: cd7a254 | (Zoffix Znet)++ | / (2 files):
09:29 dalek rakudo/better-test-pm6: Implement isnt() and cmp-ok()
09:29 dalek rakudo/better-test-pm6: review: https://github.com/rakudo/rakudo/commit/cd7a2546e3
09:40 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␤»
09:41 Zoffix m: say class {}.new but Numeric == 72
09:41 camelia rakudo-moar 2c95f7: OUTPUT«Memory allocation failed; could not allocate 82944 bytes␤»
09:43 Zoffix RT: https://rt.perl.org/Ticket/Display.html?id=129275
09:46 dalek rakudo/better-test-pm6: d40acff | (Zoffix Znet)++ | test.t:
09:46 dalek rakudo/better-test-pm6: Expand output diff test to use custom objects too
09:46 dalek rakudo/better-test-pm6: review: https://github.com/rakudo/rakudo/commit/d40acffdca
11:06 lizmat jnthn: in your gist, there is no mention of BOM's
11:06 lizmat is that something you see the decoders handle, or would this be done transparently at the VM level ?
11:13 |Tux| This is Rakudo version 2016.08.1-196-g2c95f74 built on MoarVM version 2016.08-47-g2eedba8
11:13 |Tux| csv-ip5xs        9.132
11:13 |Tux| test            15.740
11:13 |Tux| test-t           6.796
11:13 |Tux| csv-parser      16.954
11:34 jnthn lizmat: That's for decoders
11:35 jnthn 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   :-)
11:36 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:39 Zoffix prolly
11:50 masak it's happened before with the numeric stuff
11:50 timotimo oh yeah
11:50 timotimo also with Stringy we had some infinite recursions
11:54 masak there need to be ironclad rules about what's allowed to call what
11:54 masak especially since such assumptions leak out to whoever starts extending/creating core numeric and stringy types
13:23 dalek rakudo/better-test-pm6: be5b207 | (Zoffix Znet)++ | / (5 files):
13:23 dalek rakudo/better-test-pm6: Factor out volatile test conditions
13:23 dalek rakudo/better-test-pm6:
13:23 dalek rakudo/better-test-pm6: Into a separate diff test
13:23 dalek rakudo/better-test-pm6: review: https://github.com/rakudo/rakudo/commit/be5b207c7f
13:23 AlexDaniel joined #perl6-dev
13:23 TestNinja tsk tsk bad robot
13:24 dalek joined #perl6-dev
13:44 AlexDani` joined #perl6-dev
14:18 dalek rakudo/better-test-pm6: e33e076 | (Zoffix Znet)++ | / (3 files):
14:18 dalek rakudo/better-test-pm6: Implement does-ok()
14:18 dalek rakudo/better-test-pm6: review: https://github.com/rakudo/rakudo/commit/e33e076c63
14:18 dalek rakudo/better-test-pm6: 93de986 | (Zoffix Znet)++ | / (3 files):
14:18 dalek rakudo/better-test-pm6: Implement can-ok()
14:18 dalek rakudo/better-test-pm6: review: https://github.com/rakudo/rakudo/commit/93de986847
14:18 dalek rakudo/better-test-pm6: 977db7b | (Zoffix Znet)++ | / (3 files):
14:18 dalek rakudo/better-test-pm6: Implement like()
14:18 dalek rakudo/better-test-pm6: review: https://github.com/rakudo/rakudo/commit/977db7b99c
14:18 dalek rakudo/better-test-pm6: ca10378 | (Zoffix Znet)++ | / (3 files):
14:18 dalek rakudo/better-test-pm6: Implement unlike()
14:18 dalek rakudo/better-test-pm6: review: https://github.com/rakudo/rakudo/commit/ca10378e5b
15:37 lizmat joined #perl6-dev
15:38 * lizmat waves from Köln
15:42 lizmat do we have some page explaining NFG ?  can't seem to find it on docs.perl6.org
15:44 TestNinja \o
15:46 lizmat TestNinja o/
15:46 lizmat I guess the closest thing we have is https://design.perl6.org/S15.html#NFG
16:07 ugexe m: say "42" ~~ 42
16:07 camelia rakudo-moar 2c95f7: OUTPUT«True␤»
16:08 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␤␤»
16:08 ugexe m: say "x" ~~ 42
16:08 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␤␤»
16:08 ugexe Numeric need additional multis?
16:08 ugexe for ACCEPTS^
16:09 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 stmuk_ I actually found that one of the better explantions
16:11 lizmat ugexe: please rakudobug  :-)
16:12 TimToady what's the bug?  it looks like it's working as designed to me
16:13 TimToady 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
16:13 camelia rakudo-moar 2c95f7: OUTPUT«===SORRY!===␤Cannot convert string to number: base-10 number must begin with valid digits or '.' in '⏏perl' (indicated by ⏏)␤»
16:14 TimToady yeah, that does look buggier
16:14 timotimo m: use Test:auth({ .say; Bool.pick })
16:14 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 …»
16:16 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 ugexe https://github.com/rakudo/rakudo/blob/nom/src/core/CompUnit/Repository/Installation.pm#L443
16:17 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:18 jnthn 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␤␤»
16:18 TimToady I don't see a problem with just saying False
16:18 jnthn I think that's what was being complained about, not the assymetry.
16:18 TimToady so yeah, maybe just some extra ACCEPTs would work
16:19 TimToady 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')?
16:19 jnthn heh, asymmetry
16:20 jnthn *nod*
16:20 TimToady nine: right
16:20 jnthn iirc, Numeric just returns a Failure in that case, so ACCEPTS could be smart enough to check for that before matching.
16:20 TimToady should probaly not be using smartmatch with number there
16:21 jnthn I suspect it's feeding it straight into ==, which is what causes the explosion
16:21 TimToady m: say so Numeric('x')
16:21 camelia rakudo-moar 2c95f7: OUTPUT«Cannot invoke this object (REPR: Uninstantiable; Numeric)␤  in block <unit> at <tmp> line 1␤␤»
16:21 TimToady m: say so +'x'
16:21 camelia rakudo-moar 2c95f7: OUTPUT«False␤»
16:22 jnthn dinner &
16:23 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:24 tbrowder joined #perl6-dev
16:24 tbrowder hi
16:25 * ugexe files 'not enough coffee' ticket
16:26 tbrowder we (Zoffix and I) have Github's attention about rendering pod6 docs on their website.  See this message:
16:26 tbrowder https://www.irccloud.com/pastebin/4InOsji1/
16:28 tbrowder 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...
16:30 ugexe from what I remember performance was an issue last time this was discussed with them
16:42 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:44 TestNinja The callframe calculation is inside method test; and on this line, level is 3: https://gist.github.com/zoffixznet/6c990c9307304b43c3827088abe2b2de#file-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:50 TestNinja never mind; I probably can't use that method anyway, 'cause blocks don't create a new level, AFAIK
16:51 TestNinja (and I don't know what user will give me)
16:56 TestNinja tbrowder, why is a dev needed? Seems any user can give GitHub whatever deliverables they seek
17:00 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 rakudo/better-test-pm6: 1cb54f8 | (Zoffix Znet)++ | / (2 files):
17:00 dalek rakudo/better-test-pm6: Implement lives-ok()
17:00 dalek rakudo/better-test-pm6: review: https://github.com/rakudo/rakudo/commit/1cb54f8c3f
17:00 dalek rakudo/better-test-pm6: 28fcc40 | (Zoffix Znet)++ | / (2 files):
17:00 dalek rakudo/better-test-pm6: Implement eval-dies-ok()
17:00 dalek rakudo/better-test-pm6: review: https://github.com/rakudo/rakudo/commit/28fcc40818
17:00 dalek rakudo/better-test-pm6: ca39f71 | (Zoffix Znet)++ | / (2 files):
17:00 dalek rakudo/better-test-pm6: Implement eval-lives-ok()
17:00 dalek rakudo/better-test-pm6: review: https://github.com/rakudo/rakudo/commit/ca39f7118b
17:00 dalek rakudo/better-test-pm6: ad7330a | (Zoffix Znet)++ | / (3 files):
17:00 dalek rakudo/better-test-pm6: Implement is-deeply()
17:00 dalek rakudo/better-test-pm6: review: https://github.com/rakudo/rakudo/commit/ad7330ae5b
17:01 tbrowder s/revs/devs/
17:01 TestNinja Not really.
17:03 tbrowder Is there an objection to publishing such a list?
17:04 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: https://github.com/github/markup/blob/master/lib/github/markups.rb#L46
17:04 TestNinja tbrowder, there's no "list of responsibilities"; it's a lot less structured.
17:07 TestNinja 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.
17:07 * TestNinja imagines the headlines "GitHub Hacked through Perl 6 markup highlighter—Millions of accounts compromised!" :)
17:09 tbrowder I should hope they are as careful about p6 pod as they are about p5.
17:11 tbrowder 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 tbrowder Okay, bye.
17:12 tbrowder left #perl6-dev
17:15 TestNinja ¯\_(ツ)_/¯
17:22 DrForr Shrug, Perl6::Tidy uses the Perl6 grammar which means it's got the same problem.
17:25 tadzik joined #perl6-dev
18:02 FROGGS joined #perl6-dev
18:08 dalek rakudo/better-test-pm6: ad6ec20 | (Zoffix Znet)++ | / (2 files):
18:08 dalek rakudo/better-test-pm6: Implement skip()
18:08 dalek rakudo/better-test-pm6: review: https://github.com/rakudo/rakudo/commit/ad6ec20641
18:08 dalek rakudo/better-test-pm6: 33b8b11 | (Zoffix Znet)++ | / (3 files):
18:08 dalek rakudo/better-test-pm6: Implement throws-like()
18:08 dalek rakudo/better-test-pm6: review: https://github.com/rakudo/rakudo/commit/33b8b1153b
18:31 dalek rakudo/better-test-pm6: b4105db | (Zoffix Znet)++ | lib/Test.pm6:
18:31 dalek rakudo/better-test-pm6: Do not output plan when not needed
18:31 dalek rakudo/better-test-pm6:
18:31 dalek rakudo/better-test-pm6: Such as when cleaning up automatically at the end
18:31 dalek rakudo/better-test-pm6: review: https://github.com/rakudo/rakudo/commit/b4105dbe2d
18:37 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:41 timotimo can you do something crazy with "is rw" somewhere?
18:42 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:45 nine 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…»
18:45 nine TimToady: ^^^
18:47 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␤␤»
18:48 TestNinja m: class { has int $!n = 0; method x ($n) {$!n = $n} }.new.x: 42
18:48 camelia rakudo-moar 2c95f7: ( no output )
18:49 TestNinja RT: https://rt.perl.org/Ticket/Display.html?id=129278
18:51 timotimo nine: what was that eval for? o_O
18:51 timotimo oh
18:52 timotimo it thinks you're interpolating something
18:52 nine yes
18:54 nine timotimo: my workaround for now: https://gist.github.com/niner/460724a6282aaad8d1edbc3495f55a7f
18:58 ilmari[m] joined #perl6-dev
19:05 dalek rakudo/nom: 4667702 | moritz++ | src/core/IO/Path.pm:
19:05 dalek rakudo/nom: Fix type error ion IO::Path.rw, reported by jsimonet++
19:05 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/4667702a2e
19:08 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 nine The tutorial includes a login, writing to and reading from a database.
19:11 nine http://niner.name/talks/Perl%205%20and%20Perl%206%20-%20a%20great%20team/examples/Dancr/
19:13 timotimo cool
19:15 perlpilot nine++
19:26 AlexDaniel joined #perl6-dev
19:26 dalek rakudo/better-test-pm6: 7c50a86 | (Zoffix Znet)++ | / (2 files):
19:26 dalek rakudo/better-test-pm6: Implement todo()
19:26 dalek rakudo/better-test-pm6: review: https://github.com/rakudo/rakudo/commit/7c50a866d7
19:26 dalek rakudo/better-test-pm6: 7b7e945 | (Zoffix Znet)++ | / (2 files):
19:26 dalek rakudo/better-test-pm6: Implement diag()
19:26 dalek rakudo/better-test-pm6: review: https://github.com/rakudo/rakudo/commit/7b7e945c7c
19:26 dalek rakudo/better-test-pm6: 1eb0419 | (Zoffix Znet)++ | lib/Test.pm6:
19:26 dalek rakudo/better-test-pm6: Clean up
19:26 dalek rakudo/better-test-pm6: review: https://github.com/rakudo/rakudo/commit/1eb0419146
19:26 dalek rakudo/better-test-pm6: f104d83 | (Zoffix Znet)++ | lib/Test.pm6:
19:26 dalek rakudo/better-test-pm6: Implement skip-rest()
19:26 dalek rakudo/better-test-pm6: review: https://github.com/rakudo/rakudo/commit/f104d83159
19:47 cog_ joined #perl6-dev
19:49 dalek rakudo/better-test-pm6: ef320a2 | (Zoffix Znet)++ | lib/Test.pm6:
19:49 dalek rakudo/better-test-pm6: Export eval monkey
19:49 dalek rakudo/better-test-pm6: review: https://github.com/rakudo/rakudo/commit/ef320a2714
19:49 dalek rakudo/better-test-pm6: dd69c38 | (Zoffix Znet)++ | lib/Test.pm6:
19:49 dalek rakudo/better-test-pm6: Temporarily replicate LTA behaviour of old Test.pm6
19:49 dalek rakudo/better-test-pm6:
19:49 dalek rakudo/better-test-pm6: When throws-like takes a Failure as code to run, the message
19:49 dalek rakudo/better-test-pm6: for "dies ok" is an Any. Keep that old behaviour for now.
19:49 dalek rakudo/better-test-pm6: review: https://github.com/rakudo/rakudo/commit/dd69c382b5
19:52 Ven_ joined #perl6-dev
20:02 TestNinja Hm. seems like my adventure in better Test.pm6 uncovered a bug
20:02 TestNinja m: use Test; sub rt69314($n) { if $n { callsame; } }; lives-ok {rt69314(1)}, "Calling callsame directly from a sub works";
20:02 camelia rakudo-moar 466770: OUTPUT«ok 1 - Calling callsame directly from a sub works␤»
20:02 TestNinja The test passes (but fails on my new Test.pm6)
20:02 TestNinja m: sub rt69314($n) { if $n { callsame; } }(1)
20:02 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␤␤»
20:02 TestNinja ^ and looks like it shouldn't pass?
20:03 TestNinja 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␤␤»
20:04 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␤»
20:05 TestNinja That also fails on my new Test.pm6
20:06 TestNinja And that test is weird too. Wouldn't it create an infiniloop if it actually worked?
20:06 TestNinja RT#69314
20:06 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=69314
20:07 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␤␤»
20:07 TestNinja wat
20:07 jnthn Did you mean callwith?
20:07 TestNinja oh
20:07 TestNinja m: sub foo($n) { say $n; if $n { callwith($n-1) } }; foo(1)
20:07 jnthn Or samewith maybe? :)
20:07 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␤␤»
20:08 jnthn Yeah, callwith is for iterating through a dispatch list :)
20:08 jnthn Just noticed you were only in a sub
20:08 jnthn If you just want to call the very same routine you're currently sat in again, it's samewith
20:08 TestNinja But how's this supposed to work:
20:08 TestNinja m: sub rt69314($n) { if $n { callsame; } }; {rt69314(1)}()
20:08 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␤␤»
20:09 jnthn The error looks legit to me
20:09 TestNinja m: sub foo($n) { say $n; if $n { callsame() } }; foo(1)
20:09 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␤␤»
20:09 TestNinja OK, so it's a bogus test then.
20:09 jnthn Looks like
20:09 TestNinja Thanks.
20:09 jnthn Maybe the original Test.pm had a multi?
20:09 jnthn And we were in its dynamic scope, and so it used that $*DISPATCHER?
20:10 jnthn In which case it bogus-passed
20:10 travis-ci joined #perl6-dev
20:10 travis-ci Rakudo build failed. Moritz Lenz 'Fix type error ion IO::Path.rw, reported by jsimonet++'
20:10 travis-ci https://travis-ci.org/rakudo/rakudo/builds/160259145 https://github.com/rakudo/rakudo/compare/2c95f74903b5...4667702a2e32
20:10 travis-ci left #perl6-dev
20:11 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
20:12 TestNinja ^ that's just a network error
20:12 TestNinja Hm. I need to teach buggable to ignore JVM
20:18 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)␤»
20:21 lizmat decommute&
20:21 jnthn What seems wrong?
20:22 jnthn The .roll($n) form predictably returns a List
20:22 TimToady item vs list, I presume, but that's intentional
20:22 Ven__ joined #perl6-dev
20:22 jnthn Since you've no idea in the general case what $n will be, and it'd be an odd discontinuity
20:23 jnthn (were it not to return a 1-item List)
20:23 jnthn Especially if you were rolling a list of lists :)
20:23 TimToady it's just one of those spots where you can't be consistently consistent in every dimension
20:24 mst I like the current behaviour.
20:26 TimToady we could choose everything's-a-matrix consistency like APL, but then we lose singular/plural consistency with English
20:28 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␤»
20:29 TimToady no, because .pick(N) gives up after the list is exhausted, and .pick is really just .roll in disguise
20:30 TimToady though I can see the argument for returning Empty rather than Nil, I suppose
20:31 TimToady but Nil is better suited to the expectation of an item, which is what argumentless .pick and .roll are playing to
20:33 dalek roast/6.c-errata: b23ec4e | (Zoffix Znet)++ | S06-advanced/callsame.t:
20:33 dalek roast/6.c-errata: Remove bogus RT#69314 test
20:33 dalek roast/6.c-errata:
20:33 dalek roast/6.c-errata: The test existed since before Sept, 2011, but was passing for the
20:33 dalek roast/6.c-errata: wrong reason and according to the ticket[^1], even in 2011 the
20:33 dalek roast/6.c-errata: current behaviour was already present. Test's bogusness was
20:33 dalek roast/6.c-errata: discussed[^2] with jnthn++
20:33 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=69314
20:33 dalek roast/6.c-errata:
20:33 dalek roast/6.c-errata: The corrected test will be added in master.
20:33 dalek roast/6.c-errata:
20:33 dalek roast/6.c-errata: [1] https://rt.perl.org/Ticket/Display.html?id=69314
20:33 dalek roast/6.c-errata: [2] http://irclog.perlgeek.de/perl6-dev/2016-09-15#i_13217385
20:42 dalek roast: 3666998 | (Zoffix Znet)++ | S06-advanced/callsame.t:
20:42 dalek roast: Replace bogus RT#69314 test
20:42 dalek roast:
20:42 dalek roast: The test existed since before Sept, 2011, but was passing for the
20:42 dalek roast: wrong reason and according to the ticket[^1], even in 2011 the
20:42 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=69314
20:42 dalek roast: current behaviour was already present. Test's bogusness was
20:42 dalek roast: discussed[^2] with jnthn++
20:42 dalek roast:
20:42 dalek roast: The corrected test checks that throwage occurs.
20:43 dalek roast:
20:43 dalek roast: [1] https://rt.perl.org/Ticket/Display.html?id=69314
20:43 dalek roast: [2] http://irclog.perlgeek.de/perl6-dev/2016-09-15#i_13217385
20:43 TestNinja dalek, lazy!
20:43 TestNinja Above commit: https://github.com/perl6/roast/commit/3666998872b2009736f0bf38761bf678a9c4eda9
20:44 dalek roast: fdaf1a1 | usev6++ | S03-smartmatch/array-array.t:
20:44 dalek roast: Test smartmatch with List RHS
20:44 dalek roast:
20:44 dalek roast: The modified test did not test what its description said.
20:44 dalek roast: Instead it tested whether a non empty list returns True (and
20:44 dalek roast: that is already tested elsewhere, e.g. S02-types/list.t).
20:44 dalek roast:
20:44 dalek roast: Also, I added a comment about 'ok (1 ~~ **,1**)' being bogus.
20:44 dalek roast: That test should be reviewed once we know if the LHS should
20:44 dalek roast: be coerced to list when smartmatched against (**,1,**).
20:44 dalek roast: review: https://github.com/perl6/roast/commit/fdaf1a12aa
20:44 ugexe m: say roll(<a b c d e>); # `multi sub roll($n, +values)` doesn't treat values as a required positional before numifying :(
20:44 camelia rakudo-moar 466770: OUTPUT«()␤»
20:45 dalek roast: 7738e43 | (Zoffix Znet)++ | S06-advanced/callsame.t:
20:45 dalek roast: Include comment explaining code choice
20:45 dalek roast: review: https://github.com/perl6/roast/commit/7738e43959
20:45 ugexe and its probably not ideal to use `where` to constrain it
20:57 MasterDuke m: say :3<12>
20:57 camelia rakudo-moar 466770: OUTPUT«5␤»
20:57 MasterDuke m: say :۳<12>
20:57 camelia rakudo-moar 466770: OUTPUT«===SORRY!===␤Error encoding ASCII string: could not encode codepoint 1779␤»
20:57 timotimo aha!
20:57 timotimo another place we need to put the radix op
20:57 MasterDuke yep
20:58 MasterDuke i've been looking for them
20:58 MasterDuke may have found another one or two
20:58 MasterDuke https://github.com/rakudo/rakudo/blob/nom/src/Perl6/Grammar.nqp#L3409
20:59 MasterDuke that's the one i just demo above
20:59 TestNinja wtf. That was fixed already
21:00 TestNinja m: say ۳
21:00 camelia rakudo-moar 466770: OUTPUT«3␤»
21:00 TestNinja oh
21:00 TestNinja m: say :۳foo
21:00 camelia rakudo-moar 466770: OUTPUT«Unexpected named argument 'foo' passed␤  in block <unit> at <tmp> line 1␤␤»
21:00 TestNinja m: say %(:۳foo)
21:00 camelia rakudo-moar 466770: OUTPUT«{foo => 3}␤»
21:00 TestNinja THAT was fixed already :)
21:00 MasterDuke i've made that fix in two different places
21:00 MasterDuke yeah, i did that one
21:00 MasterDuke and the one with subcaptures in grammars
21:01 MasterDuke which inspired me to see if there are any others, one definite so far, looking for more
21:25 stmuk joined #perl6-dev
21:26 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␤␤»
21:26 TestNinja Looks like another test passing for the wrong reason uncovered
21:26 TestNinja m: use Test; sub eval-lives-ok 「map -> $x, $y { ... }, 1..6」, 'why, yes, yes it does'
21:26 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␤»
21:27 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␤»
21:29 TestNinja hm wait
21:29 TestNinja m: try EVAL 「map -> $x, $y { ... }, 1..6」;
21:29 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␤␤»
21:31 TestNinja m: EVAL ''
21:31 camelia rakudo-moar 466770: ( no output )
21:31 TestNinja m: EVAL ('')
21:31 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 ('')⏏…»
21:35 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␤»
21:35 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('...')
21:35 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␤␤»
21:35 TestNinja I don't get why one dies and other doesn't :/
21:40 TestNinja 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␤»
21:42 TestNinja m: my $e = sub { EVAL '...' }(); say $e.WHAT
21:42 camelia rakudo-moar 466770: OUTPUT«(Failure)␤»
21:42 TestNinja m: my $e = sub { try EVAL 'die'; $! }(); say $e.WHAT
21:42 camelia rakudo-moar 466770: OUTPUT«(AdHoc)␤»
21:43 TestNinja I see. Seems some sort of exception thing I don't understand :)
21:48 hoelzro joined #perl6-dev
21:49 dalek rakudo/better-test-pm6: 46ae789 | (Zoffix Znet)++ | lib/Test.pm6:
21:49 dalek rakudo/better-test-pm6: Use a separate sub to catch eval exception
21:49 dalek rakudo/better-test-pm6:
21:49 dalek rakudo/better-test-pm6: Otherwise failures slip through and crash our test suite
21:49 dalek rakudo/better-test-pm6: review: https://github.com/rakudo/rakudo/commit/46ae789d56
21:59 tadzik joined #perl6-dev
22:00 jsimonet joined #perl6-dev
22:00 ugexe joined #perl6-dev
22:02 lizmat joined #perl6-dev
22:14 MasterDuke m: "a b" ~~ /(\w) \s (\w)/; say $1
22:14 camelia rakudo-moar 466770: OUTPUT«「b」␤»
22:14 MasterDuke m: "a b" ~~ /(\w) \s (\w)/; say $١
22:14 camelia rakudo-moar 466770: OUTPUT«===SORRY!===␤Error encoding ASCII string: could not encode codepoint 1633␤»
22:15 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␤»
22:15 MasterDuke so variable names can't be just numbers
22:15 MasterDuke m: my $١ = 0; say $١
22:15 camelia rakudo-moar 466770: OUTPUT«===SORRY!=== Error while compiling <tmp>␤Cannot declare a numeric variable␤at <tmp>:1␤------> my $١⏏ = 0; say $١␤»
22:16 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
22:16 MasterDuke so i assume i should fix that case also?
22:17 timotimo yeah, sounds good to me
22:18 TestNinja m: "a b" ~~ /(\w) \s (\w)/; say $/[١]
22:18 camelia rakudo-moar 466770: OUTPUT«「b」␤»
22:23 cog__ joined #perl6-dev
22:28 MasterDuke m: sub f(-1) { say "hi" }; say f(-1)
22:28 camelia rakudo-moar 466770: OUTPUT«hi␤True␤»
22:28 MasterDuke m: sub f(-١) { say "hi" }; say f(-1)
22:28 camelia rakudo-moar 466770: OUTPUT«===SORRY!===␤Error encoding ASCII string: could not encode codepoint 1633␤»
22:29 MasterDuke and another
22:30 MasterDuke m: sub f(١) { say "hi" }; say f(1)  # works
22:30 camelia rakudo-moar 466770: OUTPUT«hi␤True␤»
22:31 dalek rakudo/nom: ad5336d | lizmat++ | src/core/IO/Path.pm:
22:31 dalek rakudo/nom: No need to throw a Failure at the end of a method
22:31 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/ad5336d644
22:31 lizmat good night, #perl6-dev!
22:34 TestNinja night
22:39 dalek rakudo/better-test-pm6: c31ac0d | (Zoffix Znet)++ | lib/Test.pm6:
22:39 dalek rakudo/better-test-pm6: Implement bail-out()
22:39 dalek rakudo/better-test-pm6: review: https://github.com/rakudo/rakudo/commit/c31ac0d0c8
22:39 dalek rakudo/better-test-pm6: 282f4ed | (Zoffix Znet)++ | lib/Test.pm6:
22:39 dalek rakudo/better-test-pm6: Implement PERL6_TEST_DIE_ON_FAIL
22:39 dalek rakudo/better-test-pm6: review: https://github.com/rakudo/rakudo/commit/282f4edaac
22:39 dalek rakudo/better-test-pm6: 92b14dc | (Zoffix Znet)++ | lib/Test.pm6:
22:39 dalek rakudo/better-test-pm6: Implement output redirection subs
22:39 dalek rakudo/better-test-pm6: review: https://github.com/rakudo/rakudo/commit/92b14dccea
22:59 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␤»
23:00 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:06 timotimo already sounds kinda good
23:25 travis-ci joined #perl6-dev
23:25 travis-ci Rakudo build passed. Elizabeth Mattijsen 'No need to throw a Failure at the end of a method'
23:25 travis-ci https://travis-ci.org/rakudo/rakudo/builds/160308337 https://github.com/rakudo/rakudo/compare/4667702a2e32...ad5336d64484
23:25 travis-ci left #perl6-dev

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