Perl 6 - the future is here, just unevenly distributed

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

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

All times shown according to UTC.

Time Nick Message
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:55 FROGGS_ joined #perl6-dev
02:56 bisectable6oops joined #perl6-dev
03:04 bisectable6oops joined #perl6-dev
03:05 AlexDaniel bisectable6oops: run(:out, "ls").out.encoding.say
03:05 bisectable6oops AlexDaniel, Exit code is 1 on both starting points (good=2015.12 bad=b771f1e), bisecting by using the output
03:05 bisectable6oops AlexDaniel, bisect log: https://gist.github.com/9f081f1cb9018d60e4002dc13609c661
03:05 bisectable6oops AlexDaniel, (2016-08-26) https://github.com/rakudo/rakudo/commit/87887da
03:05 AlexDaniel lizmat: ↑
03:06 AlexDaniel lizmat: “concatenate requires a concrete string, but got null” is probably worse than the previous error
03:08 AlexDaniel lizmat: I am actually seeing a regression in this case: run(:out, "ls").out.split(0.chr, :skip-empty)
03:09 AlexDaniel lizmat: but the regression itself seems to be associated more with https://github.com/rakudo/rakudo/commit/1a03efe
03:10 bisectable6oops joined #perl6-dev
03:10 AlexDaniel bisectable6oops: run(:out, "ls").out.binary.say
03:10 bisectable6oops AlexDaniel, Exit code is 1 on both starting points (good=2015.12 bad=b771f1e), bisecting by using the output
03:10 bisectable6oops AlexDaniel, bisect log: https://gist.github.com/3be864fc5825f769c6aaebb8a6760eca
03:10 bisectable6oops AlexDaniel, (2016-08-26) https://github.com/rakudo/rakudo/commit/1a03efe
03:11 AlexDaniel lizmat: yeah, so 1a03efe added a check using .binary (which is broken), which made the whole thing blow up
03:12 AlexDaniel lizmat: one possible way to fix it is to revert 1a03efe so that it works with non-binary handles
03:20 AlexDaniel lizmat: here is a quick ticket just in case: RT #129296
03:20 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=129296
03:25 AlexDaniel bisectable++ (poor creature, this regression actually broke it)
03:57 Zoffix .tell jnthn the multi == hang is due to inlining. It inlines it, then tries to optimize the inlined bit, and so on. ATM it's over my head on how and if to fix it. I posted details on the ticket: https://rt.perl.org/Ticket/Display.html?id=127421#txn-1423789
03:57 yoleaux2 Zoffix: I'll pass your message to jnthn.
04:55 committable6 joined #perl6-dev
06:11 committable6 joined #perl6-dev
07:20 dalek rakudo/nom: dad57b0 | MasterDuke17++ | src/core/IO/Handle.pm:
07:20 dalek rakudo/nom: Set the default encoding for IO::Handle to 'utf8'
07:20 dalek rakudo/nom:
07:20 dalek rakudo/nom: When an IO::Handle (or IO::Pipe in the case that prompted the RT) is
07:20 dalek rakudo/nom: created the default encoding isn't set. The default is set when .open()
07:20 dalek rakudo/nom: is called, but not .new(), this commit fixes that.
07:20 dalek rakudo/nom:
07:20 dalek rakudo/nom: Fixes RT #129296
07:20 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/dad57b0bad
07:20 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=129296
07:20 dalek rakudo/nom: 86d9e91 | niner++ | src/core/IO/Handle.pm:
07:20 dalek rakudo/nom: Merge pull request #882 from MasterDuke17/RT129296
07:20 dalek rakudo/nom:
08:18 travis-ci joined #perl6-dev
08:18 travis-ci Rakudo build errored. niner 'Merge pull request #882 from MasterDuke17/RT129296
08:18 travis-ci https://travis-ci.org/rakudo/rakudo/builds/160784480 https://github.com/rakudo/rakudo/compare/31c4c6f7aae9...86d9e9123039
08:18 travis-ci left #perl6-dev
08:36 nine Ok, I've decided to give up on speeding up copying of hashes for now. Even if the API didn't make it as hard, perl's behavior of first getting the list of all keys and only then to start fetching the corresponding values would be enough of a deal breaker.
08:42 nine Would be lovely to find a way to detect that a hash won't be accessed in Perl 6 code anymore (e.g. it's only passed to a Perl 5 function and not stored anywhere) in which case it would be better to just copy it once.
08:56 dalek joined #perl6-dev
09:02 nine t/04-nativecall/12-sizeof.t .............. Failed 6/9 subtests
09:02 nine https://travis-ci.org/rakudo/rakudo/jobs/160784481
09:11 RabidGravy joined #perl6-dev
09:18 Ven_ joined #perl6-dev
10:01 dalek rakudo/nom: 363a3a8 | lizmat++ | src/core/IO/Handle.pm:
10:01 dalek rakudo/nom: Revert "Temporary fix for .comb/.split on binary handles"
10:01 dalek rakudo/nom:
10:01 dalek rakudo/nom: This reverts commit 1a03efe4e3b61a07b7df505af5e2575893677a8f.
10:01 dalek rakudo/nom:
10:01 dalek rakudo/nom: See http://irclog.perlgeek.de/perl6-dev/2016-09-18#i_13230226
10:01 dalek rakudo/nom:
10:01 dalek rakudo/nom: Since everything related to encoding is going to be refactored soon
10:01 dalek rakudo/nom: anyway, I have no problem reverting this patch (although I think it
10:01 dalek rakudo/nom: is the right thing to do in the end).
10:01 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/363a3a899f
10:54 brrt joined #perl6-dev
10:55 travis-ci joined #perl6-dev
10:55 travis-ci Rakudo build failed. Elizabeth Mattijsen 'Revert "Temporary fix for .comb/.split on binary handles"
10:55 travis-ci https://travis-ci.org/rakudo/rakudo/builds/160800879 https://github.com/rakudo/rakudo/compare/86d9e9123039...363a3a899f2c
10:55 travis-ci left #perl6-dev
12:07 nine [Tux]: with https://github.com/niner/Inline-Perl5/commit/fcc97c0691 Inline::Perl5 should be back in the performance race :)
12:10 [Tux] compiling
12:20 [Tux] This is Rakudo version 2016.09-7-g363a3a8 built on MoarVM version 2016.09
12:20 [Tux] csv-ip5xs        9.002
12:20 [Tux] test            15.807
12:20 [Tux] test-t           6.963
12:20 [Tux] csv-parser      17.008
12:22 nine That's...not much better :/ Which is odd, since it runs in 5.7 seconds here (assuming Inline::Perl5 is precompiled)
12:25 lizmat [Tux]: maybe you should run the benchmark at least twice to reduce any pre-comp overhead from a first time after a re-compile?
12:26 nine With compilation it's ~ 11s here
12:28 MasterDuke nine: re travis error after you merged my PR, that test always passes (after running several times) on my machine, and i'm not sure why my commit would have effected anything nativecall related
12:29 MasterDuke oh, i see the same test failed on lizmat's last commit
12:31 MasterDuke timotimo did have a commit to NativeCall.pm, but i don't know if it's related
12:33 Zoffix That test has been flopping for ages
12:33 Zoffix Can't reproduce the failure on my box either :/
12:33 * Zoffix looks up more
12:33 Zoffix Oh, 12-sizeof.t... I meant the union one
12:34 MasterDuke yeah, i just noticed timotimo's travis error was for that, which makes the error for the other commits afterward kind of odd
12:35 timotimo did my commit break some things?
12:37 nine FWIW with rakudo 363a3a8 I'm now at 6.0s. Was 5.7s with 0cf7128
12:39 timotimo i haven't checked how expensive the lock is for setting up natively called routines
12:48 timotimo i expected it to be cheap enough in the common case, and not hit nearly often enough to matter :S
12:49 nine Inline::Perl5 has 63 of them
12:49 nine Though isn't that run only during compilation?
12:50 timotimo no, when the routine is first used
12:51 * Zoffix finally has a chance to play around with coverage and is following timotimo's instructions on http://irclog.perlgeek.de/perl6/2016-07-15#i_12846583
12:52 timotimo yay
13:05 Zoffix timotimo, "the crapton of files you end up with...."  um, where would they be? I ran MVM_COVERAGE_LOG="coverage-report-%d" make stresstest; but don't see any extra files
13:05 Zoffix That's with line_based_coverage_4
13:05 Zoffix that I checked out in nqp/MoarVM, then did perl Configure.pl; make; make install;
13:06 timotimo should be in your working dir
13:07 Zoffix Nothing found https://gist.github.com/zoffixznet/c9eada733416cd48c98077151cc7f544
13:07 timotimo gimme a sec.
13:08 Zoffix Forgot the asterisks in find, but still no coverage files: https://gist.github.com/zoffixznet/d1e7e7562f3304ca289847e639f8883e
13:09 timotimo hm. maybe my code is dumb about when the %d is at the very very end?
13:09 timotimo it *should* be fine, though
13:09 timotimo does it create a file when you run just perl6 -e '' ?
13:09 timotimo with the env var set, i mean
13:12 Zoffix nope https://gist.github.com/zoffixznet/6b98ed49e8e53023997bff008d20de32
13:12 Zoffix oh wait
13:13 Zoffix The moar ./perl6 uses is not the updated moar: https://gist.github.com/zoffixznet/7382637869bd2418c82aeca9969e6ddc
13:13 Zoffix I guess I need make install in rakudo's dir too
13:13 timotimo i was afraid that might be the case
13:13 timotimo oh
13:14 timotimo you didn't give the configure.pl script a --prefix probably
13:14 Zoffix no, I didn't
13:14 timotimo yeah
13:14 timotimo that means you have a moarvm under rakudo/nqp/moarvm/install
13:14 timotimo but the scripts you have will look in rakudo/install
13:17 Zoffix k, now I see the coverage file. Thanks
13:17 timotimo good
13:17 * timotimo is not a friend of --gen-nqp
14:10 AlexDaniel joined #perl6-dev
14:12 [Tux] lizmat, if you take a look at time.pl, you can see that I run a simple short run before the real timeing test to make up for that
14:13 [Tux] second run with same perl6:
14:13 [Tux] csv-ip5xs        8.983
14:13 [Tux] test-t           6.929
14:23 Zoffix m: say gethostname
14:23 camelia rakudo-moar 363a3a: OUTPUT«camelia␤»
14:24 Zoffix I wonder how many uncovered things are uncovered 'cause they weren't meant for end users :)
14:26 timotimo Rakudo::Internals is somewhat new
14:27 nine Where do we need gethostname internally?
14:27 Zoffix It's not used anywhere
14:27 timotimo hah
14:27 Zoffix Seems it was intended for users, but OS.pm just has that single function.
14:27 Zoffix https://gist.github.com/zoffixznet/42dc4c6b7d5925d82284afe5227d18f5
14:29 timotimo 2013.11 %)
14:38 nine With https://github.com/niner/Inline-Perl5/commit/51ec79dd1a I'm now down to 5.5s for csv-ip5xs with current rakudo.
14:38 nine We now do only 300K native calls for parsing 50K lines of CSV. Was 700K native calls before my array optimizations.
14:40 Zoffix \o/
14:46 dalek roast: 17d9189 | (Zoffix Znet)++ | S02-types/sethash.t:
14:46 dalek roast: [coverage] SetHash: .SetHash, .antipairs
14:46 dalek roast: review: https://github.com/perl6/roast/commit/17d91896c5
14:48 dalek roast: 0edbecb | (Zoffix Znet)++ | S02-types/sethash.t:
14:48 dalek roast: Do not rely on order of .antipairs
14:48 dalek roast: review: https://github.com/perl6/roast/commit/0edbecb48c
14:49 Zoffix *sigh*. I need more coffee
14:49 dalek roast: 0cd034f | (Zoffix Znet)++ | S02-types/sethash.t:
14:49 dalek roast: Remove extraneous code
14:49 dalek roast: review: https://github.com/perl6/roast/commit/0cd034f8f1
14:51 timotimo Zoffix: are you making extra sure that the coverage results you're basing your test-writing on are actually accurate? because the coverage report code generates some garbage :(
14:52 Zoffix timotimo, how can I make sure?
14:57 timotimo see if any tests for the method you're looking at already exist, i suppose :\
14:58 Zoffix What would be a probability of coverage saying a method is uncovered yet is is?
14:58 Zoffix It did pick up my commits above, saying those two are now covered
14:59 timotimo i don't know what exactly causes the report to be bogus
14:59 Zoffix hm
14:59 timotimo otherwise i'd be fixing it :)
14:59 Zoffix :)
15:04 nine And down to 5.0s (of which 4.1s are spent at runtime) with https://github.com/niner/Inline-Perl5/commit/83746454ce
15:05 nine Btw. it's 10K lines of CSV. The number it prints is the number of fields parsed.
15:05 nine So we're now at 18 native calls per line.
15:07 nine The Dancer2 benchmark shed a second, too and is now at 10s (was 11).
15:07 timotimo how big is the dancer2 benchmark's workload?
15:09 nine It's https://metacpan.org/pod/distribution/Dancer2/lib/Dancer2/Tutorial.pod#Putting-it-all-together translated directly to Perl 6 rendering / (which lists the db entries) 1000 times with 6 entries in the database
15:20 timotimo meaning it also uses DBI from perl5?
15:20 nine yes
15:21 timotimo neat.
15:24 nine http://niner.name/talks/Perl%205%20and%20Perl%206%20-%20a%20great%20team/examples/Dancr/Dancr.pm6
15:24 nine Benchmark is: http://niner.name/talks/Perl%205%20and%20Perl%206%20-%20a%20great%20team/examples/Dancr/dancr-bench.pl6
15:30 nine For comparison: the pure Perl 5 version takes 1.44s
15:32 timotimo wow, less than 10x of a hit?
15:34 nine Actually, yes. And that's with a lot of time wasted by being slow on copying hashes
15:36 timotimo impressive
15:42 nine Oooh...there is a way out! Maps are immutable. So when we pass a Map to Perl 5 code, we can safely copy it right there. This way the user has a choice between copying and wrapping.
15:42 nine With that I get it down to 7.0s (4.9x slowdown).
15:57 timotimo nice!
16:00 DrForr nine: I'm putting together a TT2 clone that should be a drop-in replacement for preexisting Dancer2 templates.
16:01 DrForr (working on it when I get bored of figuring out where WS has gone *this* time around in a '= $foo'.)
16:08 dalek roast: b0b1ead | (Zoffix Znet)++ | S32-list/classify.t:
16:08 dalek roast: Strip trailing whitespace
16:08 dalek roast: review: https://github.com/perl6/roast/commit/b0b1ead813
16:14 dalek roast: 0f4199b | (Zoffix Znet)++ | S32-list/c (2 files):
16:14 dalek roast: [coverage] Any: .classify/.categorize with bad arguments throw
16:14 dalek roast: review: https://github.com/perl6/roast/commit/0f4199b1cd
16:20 Zoffix Were coverage report 100% accurate, roast covers 63.4% of code :)
16:24 timotimo that's really not alot
16:24 timotimo brave sir not-a-lot
16:44 mst 'not alot' isn't better than you at anything?
16:44 mst I suppose how negation affects it depends on whether alot is an individual symbol or a junction
16:49 timotimo that's right
16:51 arnsholt Mid 60% isn't too shabby, I think
16:52 arnsholt If memory serves, the project my friend (and now colleague) works on has something like 30-ish percent coverage
16:52 arnsholt On a big Java EE project
16:54 nine Coverage percentages are not comparable at all unless you define exactly what they mean.
16:54 nine Is it % of functions, lines, expressions, sub-expressions, ops?
16:55 nine Measuring Perl 5 code with Devel::Cover you usually get the first 30 % by running anything at all.
17:04 arnsholt True, true
17:04 arnsholt Can't remember what they're measuring
17:08 timotimo we currently measure lines that appear in some frame somewhere vs lines that have definitely been hit
17:08 timotimo with some uncertainty what makes some of these darn lines show up in the moarvm dump but not be hit when run
17:29 bartolin joined #perl6-dev
17:29 DrForr joined #perl6-dev
17:29 timotimo joined #perl6-dev
17:32 ugexe as a performance data point zef installs itself in 30 seconds (2016.09) vs 90 seconds (2016.01)
17:32 tadzik niiice
17:33 japhb Oh, that is huge.
17:51 camelia joined #perl6-dev
18:23 [Tux] joined #perl6-dev
18:39 Zoffix m: multi foo ($count) { say "Not right one" }; multi foo (*@_ [&first, *@rest]) { say "Right one" }; foo [{;}];
18:39 camelia rakudo-moar 363a3a: OUTPUT«Not right one␤»
18:40 Zoffix m: multi foo ($count) { say "Not right one" }; multi foo (@_ [&first, *@rest]) { say "Right one" }; foo [{;}];
18:40 camelia rakudo-moar 363a3a: OUTPUT«Right one␤»
18:40 Zoffix Well, shit. Who knew writing coverage would find a bug so fast :)
18:41 Zoffix The bug being this .tree multi being called, instead of the one below it: https://github.com/rakudo/rakudo/blob/363a3a8/src/core/Any.pm#L166
18:43 timotimo wow!
18:43 timotimo i did *not* expect that
18:43 Zoffix m: multi foo (Int $count) { say "Not right one" }; multi foo (*@_ [&first, *@rest]) { say "Right one" }; foo [{;}];
18:43 camelia rakudo-moar 363a3a: OUTPUT«Right one␤»
18:44 Zoffix m: multi foo (Int(Cool) $count) { say "Not right one" }; multi foo (*@_ [&first, *@rest]) { say "Right one" }; foo [{;}];
18:44 camelia rakudo-moar 363a3a: OUTPUT«Not right one␤»
18:44 Zoffix m: say [{;}] ~~ Cool
18:44 camelia rakudo-moar 363a3a: OUTPUT«True␤»
18:44 Zoffix really :S
18:44 Zoffix m: say [{;}].^mro
18:44 camelia rakudo-moar 363a3a: OUTPUT«((Array) (List) (Cool) (Any) (Mu))␤»
18:44 Zoffix Ah
18:59 dalek rakudo/nom: 96299c7 | (Zoffix Znet)++ | docs/ChangeLog:
18:59 dalek rakudo/nom: Start 2016.10 section
18:59 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/96299c7453
19:08 dalek rakudo/nom: 34f9508 | (Zoffix Znet)++ | / (2 files):
19:08 dalek rakudo/nom: Fix .tree([&first]) incorrectly calling .tree($count) candidate
19:08 dalek rakudo/nom:
19:08 dalek rakudo/nom: We can't make tree(Any:D: @ [&first, *@rest]) candidate a *@_ slurpy,
19:08 dalek rakudo/nom: becauses lists are Cool and then the tree(Any:D: Int(Cool) $count) candidate
19:08 dalek rakudo/nom: becomes narrower.
19:08 dalek rakudo/nom:
19:08 dalek rakudo/nom: Fix by adding another multi for (&first, *@rest) and removing slurpy from @_
19:08 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/34f95082e9
19:08 Zoffix s/@_/@/
19:09 dalek roast: a176e08 | (Zoffix Znet)++ | S02-lists/tree.t:
19:09 dalek roast: [coverage] Cover all branches of .tree
19:09 dalek roast: review: https://github.com/perl6/roast/commit/a176e08655
19:20 Zoffix Hm. Another one. sorta-not-really-a-bug tho.
19:20 Zoffix s: Array, 'append', \(42)
19:20 SourceBaby Zoffix, Something's wrong: ␤ERR: Unhandled exception: Missing or wrong version of dependency 'src/Perl6/Grammar.nqp' (from 'gen/moar/m-main.nqp')␤   at <unknown>:1  (/home/zoffix/services/sourceable/building-perl6/perl6.moarvm:<dependencies+deserialize>)␤
19:20 Zoffix s: Array, 'append', \(42)
19:20 SourceBaby Zoffix, Something's wrong: ␤ERR: Unhandled exception: Missing or wrong version of dependency 'src/Perl6/Grammar.nqp' (from 'gen/moar/m-main.nqp')␤   at <unknown>:1  (/home/zoffix/services/sourceable/building-perl6/perl6.moarvm:<dependencies+deserialize>)␤
19:20 Zoffix sigh
19:20 Zoffix That's NOT that bug :P
19:21 Zoffix This is the candidate that would be called: https://github.com/rakudo/rakudo/blob/363a3a8/src/core/Any.pm#L186
19:21 Zoffix But:
19:21 Zoffix m: say Array.append: 42
19:21 camelia rakudo-moar 34f950: OUTPUT«Cannot resolve caller STORE(Array: Array); none of these signatures match:␤    (Array:D $: Iterable:D \iterable, *%_)␤    (Array:D $: Mu \item, *%_)␤  in block <unit> at <tmp> line 1␤␤»
19:22 Zoffix m: use nqp; say nqp::istype(Array,Positional)
19:22 camelia rakudo-moar 34f950: OUTPUT«1␤»
19:23 Zoffix m: class { method append (|c) { dd c} }.append: 42
19:23 camelia rakudo-moar 34f950: OUTPUT«\(42)␤»
19:24 * Zoffix doesn't get why one works but not the other.
19:24 Zoffix Since condition is SELF = nqp::istype(SELF,Positional) ?? SELF.new !! Array.new;
19:27 Zoffix m: say Int.append: 42
19:27 camelia rakudo-moar 34f950: OUTPUT«Cannot modify an immutable Int␤  in block <unit> at <tmp> line 1␤␤»
19:27 Zoffix Ah. I see (I think)
19:27 * Zoffix tries a fix
19:31 Zoffix Yup. Fixed.
19:40 Zoffix timotimo++ damn this coverage thing is useful. I found a nest of bugs just now :)
19:42 timotimo <3
19:42 timotimo i'm super glad someone's taking advantage of it
19:44 nine I guess the lesson of this year is: tools are everything
19:46 lizmat [Tux]: message received  :-)
19:46 timotimo i could see that
19:53 travis-ci joined #perl6-dev
19:53 travis-ci Rakudo build passed. Zoffix Znet 'Start 2016.10 section'
19:53 travis-ci https://travis-ci.org/rakudo/rakudo/builds/160872898 https://github.com/rakudo/rakudo/compare/363a3a899f2c...96299c745398
19:53 travis-ci left #perl6-dev
20:18 Zoffix s/nest of bugs/no bugs/;  :)
20:18 Zoffix The Any:U.[push|append|prepend|unshift] are done that way for autovivification purposes
20:19 Zoffix They don't show up as covered, even though there are definitely tests calling it (since I broke them now :P)
20:24 timotimo yeah, the coverer isn't good enough :(
20:25 travis-ci joined #perl6-dev
20:25 travis-ci Rakudo build passed. Zoffix Znet 'Fix .tree([&first]) incorrectly calling .tree($count) candidate
20:25 travis-ci https://travis-ci.org/rakudo/rakudo/builds/160874432 https://github.com/rakudo/rakudo/compare/96299c745398...34f95082e939
20:25 travis-ci left #perl6-dev
20:25 timotimo hm. i wonder if it b0rks because of static inlining via the rakudo optimizer?
20:29 Zoffix maybe
20:30 timotimo theoretically you could build a core setting with --optimize=off
20:31 Zoffix I'll try tomorrow or later tonight
20:32 timotimo cool
20:33 dalek roast: e427332 | (Zoffix Znet)++ | S (3 files):
20:33 dalek roast: [coverage] cover all non-CAPS methods in Any.pm
20:33 dalek roast: review: https://github.com/perl6/roast/commit/e42733254e
20:33 dalek rakudo/nom: 8991360 | (Zoffix Znet)++ | t/spectest.data:
20:33 dalek rakudo/nom: Add t/spec/S29-any/deg-trans.t
20:33 dalek rakudo/nom:
20:33 dalek rakudo/nom: Degenerate and Transformative Any methods
20:33 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/899136068b
20:49 btyler joined #perl6-dev
20:56 AlexDaniel dalek: ;)
20:57 Zoffix cc1: error: argument to ‘-O’ should be a non-negative integer, ‘g’, ‘s’ or ‘fast’
20:57 * Zoffix goes with --no-optimize
20:58 timotimo er
20:58 timotimo no
20:58 timotimo wrong position to put that argument
20:58 timotimo Zoffix: it needs to go in the long-ass commandline that generates CORE.setting.moarvm
20:58 dalek joined #perl6-dev
20:59 Zoffix What level is that? MoarVM? NQP? Rakudo?
20:59 timotimo rakudo
20:59 timotimo in its "make" step
20:59 timotimo the one that has "stage parse" and all that
20:59 Zoffix k
21:01 pmichaud joined #perl6-dev
21:10 Zoffix timotimo, I think this is it. The old make stresstest shows `multi method append(Any:U \SELF: |values)` as uncovered. I built with optimize=off and ran report for `./perl6 -e 'my %h; say %h<c><d>.append: 42;'` (which calls that .append under the hood) and now it's showing it as covered
21:10 Zoffix Gonna generate a new report for the full stresstest now
21:17 timotimo a-ha!
21:17 timotimo damn, i thought it ought to have transferred over the nodes so it'd generate the line numbers properly
21:17 timotimo but nooo
21:27 dalek rakudo/nom: 9b6f2eb | lizmat++ | src/core/List.pm:
21:27 dalek rakudo/nom: Fix for RT #129299
21:27 dalek rakudo/nom:
21:27 dalek rakudo/nom: The List.iterator assumed that a List could never have a "hole" in it.
21:27 dalek rakudo/nom: This allowed the iterator to not have to check the index against the
21:27 dalek rakudo/nom: number of elements in the list.  I have now reinstated that check,
21:27 dalek rakudo/nom: albeit only when it finds what could be a hole.  If the index is then
21:27 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=129299
21:27 dalek rakudo/nom: still less than the number of elems, we return the hole and continue.
21:27 dalek rakudo/nom:
21:27 dalek rakudo/nom: This adds an extra test for *each* List.iterator.  Going to think about
21:27 dalek rakudo/nom: another way to fix this if this shows up in reduced performance somehow.
21:27 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/9b6f2eb543
21:29 lizmat good night, #perl6-dev!
21:29 timotimo gniet liz!
21:30 Zoffix night
21:34 Zoffix hm weird
21:34 Zoffix timotimo, now it's showing it as uncovered again :/ That's on a full stresstest run
21:34 timotimo did you delete reports in between doing the stuff?
21:35 Zoffix Yeah
21:35 timotimo also, if the script that creates the html files is too slow, do you run grep for CORE and sort and uniq over it?
21:37 Zoffix This is basically what I ran: https://gist.github.com/zoffixznet/fcc1fe0a2b82d6f256d676132986f916
21:37 Zoffix With `MVM_COVERAGE_LOG='coverage/cover-%d' make stresstest` being `MVM_COVERAGE_LOG='coverage/cover-%d' ./perl6 -e 'my %h; say %h<c><d>.append: 42;'` when it did show `multi method append(Any:U \SELF: |values)` as covered
21:38 timotimo you can run the stresstest with TEST_JOBS btw
21:38 timotimo that's why i introduced the support for %d in the filename
21:38 Zoffix I have it in .bashrc
21:38 timotimo OK!
21:38 timotimo yeah that looks like the right way to invoke that
21:39 * Zoffix tries the `my %h; say %h<c><d>.append: 42;'` one again
21:44 Zoffix Yup. Now it shows it as covered :} I also ran make t/spec/S02-types/autovivification.t (that contains that piece of code) and it told me it's uncovered now :S
21:45 Zoffix Even though multi method push(Any:U \SELF: |values) and multi method unshift(Any:U \SELF: |values) do show up as covered, even though the full stresstest shows them as uncovered
21:53 Zoffix Oh god... I found the problem
21:53 Zoffix <--- that's the problem :)
21:54 Zoffix The test file doesn't have .append in it. Only .push and .unshift that do show up covered :}
21:58 timotimo ooooh!
22:02 bisectable6oops joined #perl6-dev
22:04 bisectable6 joined #perl6-dev
22:04 committable6 joined #perl6-dev
22:05 bisectable6 joined #perl6-dev
22:05 bisectable6 joined #perl6-dev
22:38 dalek roast: 510b44a | (Zoffix Znet)++ | S02-types/autovivification.t:
22:38 dalek roast: Add autovivification tests for append/prepend
22:38 dalek roast: review: https://github.com/perl6/roast/commit/510b44a6d0
23:23 Zoffix m: "ac" ~~ / (a) (b)? (c) /; say $/.list
23:23 camelia rakudo-moar 641ee1: OUTPUT«(「a」 (Mu) 「c」)␤»
23:23 Zoffix star: "ac" ~~ / (a) (b)? (c) /; say $/.list
23:23 camelia star-m 2016.04: OUTPUT«(「a」 (Any) 「c」)␤»
23:24 Zoffix committable6, 2016.07 m: "ac" ~~ / (a) (b)? (c) /; say $/.list
23:24 committable6 Zoffix, ¦«2016.07»: (「a」)
23:26 timotimo Zoffix: was that also a [coverage] commit? :)
23:26 Zoffix Yeah, I guess.
23:29 Zoffix m: my @a = [1, 2, 3]; @a[1]:delete; dd @a
23:29 camelia rakudo-moar 641ee1: OUTPUT«Array @a = [1, Any, 3]␤»
23:29 Zoffix m: "ac" ~~ / (a) (b)? (c) /; dd $/.list
23:29 camelia rakudo-moar 641ee1: OUTPUT«(Match.new(ast => Any, list => (), hash => Map.new(()), orig => "ac", to => 1, from => 0), Mu, Match.new(ast => Any, list => (), hash => Map.new(()), orig => "ac", to => 2, from => 1))␤»
23:30 Zoffix .ask lizmat is it correct that 9b6f2eb543 makes "ac" ~~ / (a) (b)? (c) /; $/.list has a Mu in the hole and not an Any? In 2016.04 it used to be an Any and if you do my @a = [1, 2, 3]; @a[1]:delete; dd @a you get an Any in the hole
23:30 yoleaux2 Zoffix: I'll pass your message to lizmat.
23:30 timotimo it makes me quite happy that the coverage thing gets to help
23:30 Zoffix Yeah, it's useful.
23:32 btyler joined #perl6-dev
23:35 Zoffix Not everything can be covered, right? Like ternaries for example. I recall some sort of limitation like that in P5. Like these http://i.imgur.com/ZUqwmh9.png  as the tests for them are there: https://github.com/perl6/roast/blob/master/S02-lists/tree.t#L36
23:39 timotimo the coverage tool knows nothing about conditions or control flow or anything like that
23:40 timotimo it just says "hey, there's a line number here! *plop*"
23:40 Zoffix Ah
23:53 Zoffix m: use Test; "ac" ~~ / (a) (b)? (c) /; is-deeply $/.list, (Match.new(ast => Any, list => (), hash => Map.new(()), orig => "ac", to => 1, from => 0), Mu, Match.new(ast => Any, list => (), hash => Map.new(()), orig => "ac", to => 2, from => 1))
23:53 camelia rakudo-moar 641ee1: OUTPUT«Type check failed in binding to <anon>; expected Any but got Mu (Mu)␤  in sub is-deeply at /home/camelia/rakudo-m-inst-1/share/perl6/sources/C712FE6969F786C9380D643DF17E85D06868219E (Test) line 484␤  in block <unit> at <tmp> line 1␤␤»
23:56 Zoffix m: "ac" ~~ / (a) (b)? (c) /;  $ = $/.list eqv (Match.new(ast => Any, list => (), hash => Map.new(()), orig => "ac", to => 1, from => 0), Any, Match.new(ast => Any, list => (), hash => Map.new(()), orig => "ac", to => 2, from => 1))
23:56 camelia rakudo-moar 641ee1: OUTPUT«Type check failed in binding to <anon>; expected Any but got Mu (Mu)␤  in block <unit> at <tmp> line 1␤␤»
23:56 Zoffix I think it's the same thing as === that I wanted to fix but failed, 'cause the fix was breaking Junctions.

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