Perl 6 - the future is here, just unevenly distributed

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

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

All times shown according to UTC.

Time Nick Message
00:53 Zoffix joined #perl6-dev
00:54 Zoffix https://travis-ci.org/rakudo/rakudo/builds/157487091
00:55 Zoffix oh, I updated Perl 6 and modules are missing.
00:58 buggable joined #perl6-dev
00:58 huggable joined #perl6-dev
00:58 Zoffix https://travis-ci.org/rakudo/rakudo/builds/157487091
00:59 buggable [travis build above] ✓ All failures are due to timeout (1), missing build log (0), or GitHub connectivity (0)
00:59 NeuralAnomaly joined #perl6-dev
00:59 Zoffix NeuralAnomaly, stats
00:59 NeuralAnomaly Zoffix, [✘] Next release will be in 1 week and 5 days. Since last release, there are 35 new still-open tickets (3 unreviewed and 0 blockers) and 5 unreviewed commits. See http://perl6.fail/release/stats for details
00:59 Zoffix buggable, test
00:59 Zoffix huggable, test
00:59 huggable Zoffix, Test failed
01:01 Zoffix Man, these incidents of RT lying flat on its face coincide with my launching perl6.fail that uses its API every 10 minutes to perform a search. I'm probably just paranoid... can't be the first person to use its API, right?
01:05 MasterDuke the website is working for me
01:05 Zoffix Yeah, it seems to go in and out of service. Flickered about 5 times this morning.
01:11 dalek nqp: 6702a8f | MasterDuke17++ | docs/ops.markdown:
01:11 dalek nqp: Add stmts to the ToC
01:11 dalek nqp: review: https://github.com/perl6/nqp/commit/6702a8f770
01:11 dalek nqp: 67b6836 | (Zoffix Znet)++ | docs/ops.markdown:
01:11 dalek nqp: Merge pull request #306 from MasterDuke17/patch-1
01:11 dalek nqp:
01:11 dalek nqp: Add stmts to the ToC
01:11 dalek nqp: review: https://github.com/perl6/nqp/commit/67b6836c90
01:27 sherwool joined #perl6-dev
01:30 NeuralAnomaly joined #perl6-dev
01:31 Zoffix NeuralAnomaly, stats
01:31 NeuralAnomaly Zoffix, [✘] Next release will be in 1 week and 5 days. Since last release, there are 35 new still-open tickets (0 unreviewed and 1 blockers) and 0 unreviewed commits. See http://perl6.fail/release/stats for details
01:31 Zoffix NeuralAnomaly, blockers
01:31 NeuralAnomaly Zoffix, There is 1 release blocker. See http://perl6.fail/release/blockers
01:31 NeuralAnomaly Zoffix, http://perl6.fail/129198 : Still problems with syntactic errors in the REPL
01:31 Zoffix \o/
01:46 Zoffix Really? t/02-rakudo/repl.t runs qqx[$repl-input | $*EXECUTABLE]  :/
01:46 Zoffix heh "## warning: works only with simple input lines which don't need quoting for Windows"
01:49 ilbot3 joined #perl6-dev
01:49 Topic for #perl6-dev is now Perl 6 language and compiler development 2.0 | Logs at http://irclog.perlgeek.de/perl6-dev/today
01:52 geekosaur somehow that looks like someone's trying to adapt or simulate a haskell quasiquoter >.>
01:54 dalek rakudo/nom: 77d9d41 | (Zoffix Znet)++ | / (2 files):
01:54 dalek rakudo/nom: Syntax errors in REPL must clear on further input
01:54 dalek rakudo/nom:
01:54 dalek rakudo/nom: Fixes RT#129198
01:54 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/77d9d41fc4
01:54 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=129198
03:07 * Zoffix is trying and failing to make :merge on Proc work
03:08 Zoffix SIGABORTS on me
03:08 MasterDuke RT #128594
03:08 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=128594
03:09 MasterDuke trying to fix it or use it?
03:09 Zoffix It's not spectested... and I always found it iffy that one has to use .out to get merged output out, so I'm thinking of attempting to have both .out and .err available as normal, and add a .merged where I'll attempt to merge the two outputs....
03:09 Zoffix ... after I go out to grab some ice cream :)
03:10 Zoffix MasterDuke, well, I was gonna fix up t/02-rakudo/repl.t to not use qqx[] with poorly quoted input and ran into the crash with the :merge, so I was gonna try to fix it.
03:10 Zoffix I see timotimo commented with "I've unsuccessfully tried to fix this" which makes me think I may be out of my depth here :P
03:11 MasterDuke he had some more comments somewhere
03:11 Zoffix I'm gonna try one more thing on the rakudo level and give up if I fail there.
03:13 MasterDuke http://irclog.perlgeek.de/perl6-dev/2016-07-31#i_12942223 maybe
03:43 ShimmerFairy joined #perl6-dev
03:55 Zoffix Right, the last thing I see is "<timotimo> i think i've found a way to make the shared pipe thing work. it's a bit round-about, but it might just be the right thing"
03:57 Zoffix But IMO, if there's a way to keep .out and .err intact and provide a .merged it would be more useful than just clobbering .out with merged output and having this hackish-API where you use .out to get merged output :/
03:58 MasterDuke i do like the idea of a .merged. counter-argument is it would kind of fit with the unixism 2>&1 to put them both in .out
04:06 Zoffix wow, that's quite a list of undocumented nqp stuff :/
04:07 Zoffix Kinda wish that weren't the case because it's very hard to hack on rakudo when you see nqp ops you've no idea what they do
04:09 MasterDuke yeah, some are definitely used more than others, like nqp::decont, really wish that was documented
04:11 MasterDuke btw, any idea why "throws-like('str' x 9999999999999999999, X::AdHoc, 'repeat count greater than the NQP limit');" doesn't work?
04:11 MasterDuke i'm using a rakudo built with my PR
04:12 Zoffix m: 'str' x 9999999999999999999
04:12 camelia rakudo-moar 77d9d4: OUTPUT«WARNINGS for <tmp>:␤Useless use of "x" in expression "'str' x 9999999999999999999" in sink context (line 1)␤»
04:12 Zoffix MasterDuke, it should be throws-like { EVAL q{'str' x 9999999999999999999} }, ....
04:13 Zoffix usually you don't need eval, but you'd still need a block
04:13 MasterDuke ahh, didn't get that from the doc
04:14 MasterDuke yep, just surrounding it in {} worked, thanks
04:21 Zoffix And BTW, from what I understand nqp::decont just decontenerizes a thing
04:22 MasterDuke it's the 'just' part i couldn't say for sure
04:23 MasterDuke decontainerizes yes, but what does that mean for different types of containers? failure modes? etc.
04:23 Zoffix ¯\_(ツ)_/¯
04:24 MasterDuke exactly. you can figure out a lot from looking at other code, but some documentation would be nice also
04:41 Zoffix Well, I give up. I've no idea what I'm doing (re :merged on Proc) :)
04:42 MasterDuke too bad, i would love to have :merge working for our bots
05:29 dalek rakudo/nom: f197ebc | (Zoffix Znet)++ | docs/release_guide_automated.md:
05:29 dalek rakudo/nom: Document which pieces are currently not automated
05:29 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f197ebcd7b
05:34 dalek rakudo/nom: d33d6ef | (Zoffix Znet)++ | docs/release_guide_automated.md:
05:34 dalek rakudo/nom: Document commit review -> changelog interface
05:34 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/d33d6ef619
05:35 dalek rakudo/nom: 1e2ecd7 | (Zoffix Znet)++ | docs/release_guide_automated.md:
05:35 dalek rakudo/nom: Typo
05:35 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/1e2ecd7270
06:04 [Tux] This is Rakudo version 2016.08.1-106-g1e2ecd7 built on MoarVM version 2016.08-35-g5108035
06:04 [Tux] csv-ip5xs       10.261
06:04 [Tux] test            15.213
06:04 [Tux] test-t           7.325
06:04 [Tux] csv-parser      17.265
06:31 nine MasterDuke: at that level, there are only scalar containers. If something is already decontainerized, nqp::decont is a noop.
06:32 nine MasterDuke: though I am surprised to find that decont is not documented :)
06:43 nine lizmat: I wonder if you see any improvement on spectest time with my module loading speedups. Loading Test didn't take that long before but we do it quite often in the spectests :)
07:48 arnsholt Huh. My old precomp-singleprocess branch now works
07:48 arnsholt I have approximately negative confidence this is anything other than an accident
07:52 arnsholt This does make it harder to remember what was the cause of the breakage though >.<
08:09 RabidGravy joined #perl6-dev
08:33 lizmat nine: Files=1135, Tests=52699, 257 wallclock secs (14.84 usr  4.72 sys + 1594.30 cusr 149.68 csys = 1763.54 CPU)
08:34 lizmat machine was not really cold, will be able to tell more tomorrow (after having run a spectest in the middle of the night on a cold machine)
08:34 lizmat not seeing much difference, fwiw
08:56 nine Ok, thanks. There wasn't much to be expected but it would have been cool if it were at least measurable
08:58 lizmat well, test-t has gone down a bit  :-)
09:00 nine within margin of error I suppose
09:26 timotimo Zoffix: it should be easy-ish to do. just i little bit of C and using the libuv API
10:44 Zoffix timotimo, alright, then I'll give it a go once I finish this release automation stuff.
10:45 timotimo that'd be cool :)
10:48 AlexDaniel joined #perl6-dev
10:57 |Tux| joined #perl6-dev
11:38 Zoffix NativeCall is not implemented on JVM, is it?
11:40 nine I think it is, but it also seems to be broken.
11:47 Zoffix K. All of t/04-nativecall fails with "parse errors" on my box
11:47 Zoffix was wondering if it was ever meant to work on JVM in the first place
11:53 arnsholt It used to work
11:53 arnsholt The more recent CPP stuff, and some other stuff, is probably not ported
11:53 arnsholt But I did implement it on JVM a while back
11:54 arnsholt What kind of parse errors do you get though?
11:54 arnsholt Could be that the NativeCall.pm6 sources use NQP ops that haven't been properly stubbed on JVM
11:55 arnsholt Fixing *that* particular problem should be pretty straightforward
11:55 arnsholt Implementing the desired behaviours is a different question of course =)
11:57 Zoffix TAP parse errors; tests seem to explode with 'java.lang.NullPointerException'  https://gist.github.com/zoffixznet/c80c43d2c0bd04248d45eb44d59eeb8a
11:58 arnsholt Weird. In that case I'm not sure off the cuff
11:58 arnsholt You'd have to dig into the source and see
11:59 arnsholt ll-exception might help
11:59 * Zoffix has little interest in JVM backend
11:59 Zoffix don't know Java... It's all alien territory
12:01 arnsholt In that case, you'll have to wait for some kind soul to fix it =)
12:05 nine Ah, yes. I also got an NPE trying to load Inline::Perl5 on the JVM but seem to have lost my Java debugging mojo. Couldn't get jdb to tell me where that exception was thrown.
12:10 arnsholt jdb is terrible though, at least if you're used to something like gdb
12:11 arnsholt I've been considering doing some work on NQP and Rakudo on the JVM, actually
12:11 arnsholt They could do with some love
12:11 arnsholt And might be cool to see if it's possible to replace our current codegen with something based on Truffle/Graal
12:12 nine ++arnsholt # please go on
12:12 arnsholt In my copious spare time, of course =)
12:13 arnsholt Although top of my list is making the NQP JAR a fat JAR that can be invoked simply as java -jar nqp.jar @arguments
12:14 arnsholt Another angle I'm considering is the single-process precomp branch
12:16 nine arnsholt: you have experimented with single-process precomp, haven't you?
12:18 dalek rakudo/nom: 6c39b97 | (Zoffix Znet)++ | docs/release_guide_automated.md:
12:18 dalek rakudo/nom: List JVM backend testing as not part of automated release
12:18 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6c39b973bf
12:18 dalek rakudo/nom: f49b387 | (Zoffix Znet)++ | docs/release_guide_automated.md:
12:18 dalek rakudo/nom: Include links to source code of release software
12:18 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f49b38789f
12:22 arnsholt nine: Yeah, there's a branch. I even merged an up-to-date nom into it today
12:22 arnsholt A mere 2343 commits =D
12:23 arnsholt Anyways, it didn't work quite like the forking implementation, because of some datastructure (can't remember which) that was kept across invocations of the compiler
12:24 arnsholt Sadly (sort of), the bug has gone away when I merge in nom
12:24 arnsholt I should probably look at it in the state it was and then see what the modern status is
12:25 arnsholt IIRC the problem is likely ordering-sensitive on the SHA1 hashes of the CUs
12:26 sherwool joined #perl6-dev
12:26 nine arnsholt: what's the branch called?
12:27 arnsholt precomp-singleprocess
12:30 |Tux| joined #perl6-dev
12:32 nine I'd love if we could get that to work reliably. Would make for example custom repo implementations a lot simpler to handle.
12:41 arnsholt Yeah
12:41 arnsholt Also, forking a subprocess when we have a compiler object available offends my architectural sensibilities =)
12:44 arnsholt IIRC the problem with the branch was that there was some registry of loaded CUs that wasn't cleared in a new compiler, or something along those lines
12:44 arnsholt So the dependency resolution went awry, somehow
12:45 nine Sounds like something I may have some expertise with.
13:01 AlexDaniel joined #perl6-dev
13:13 MasterDuke jnthn: do you have any opinion on https://github.com/rakudo/rakudo/pull/867?
13:15 AlexDaniel joined #perl6-dev
14:21 AlexDaniel joined #perl6-dev
14:26 Zoffix Weird. 129192 ticket now showing up on R6 :/
14:26 Zoffix *not showing up
14:45 Zoffix m: use Test; isnt 0, 0; done-testing
14:45 camelia rakudo-moar f49b38: OUTPUT«not ok 1 - ␤␤# Failed test at <tmp> line 1␤# twice: '0'␤1..1␤# Looks like you failed 1 test of 1␤»
14:45 Zoffix .oO( "twice" ? )
14:45 timotimo 0, and then also 0
14:45 timotimo so twice 0
14:46 * Zoffix doesn't follow that logic....
14:47 Zoffix m: use Test; my $result = 42; my $expected = $result; isnt $result, $expected; done-testing
14:47 camelia rakudo-moar f49b38: OUTPUT«not ok 1 - ␤␤# Failed test at <tmp> line 1␤# twice: '42'␤1..1␤# Looks like you failed 1 test of 1␤»
14:47 Zoffix ¯\_(ツ)_/¯
14:51 skids joined #perl6-dev
14:53 timotimo you want the thing to be different
14:53 timotimo but it turns out it's the same
14:53 Zoffix right, "same", not "twice" :)
14:53 Zoffix "Got $got but shouldn't have"
14:54 timotimo you passed the same thing twice
14:54 Zoffix No, I didn't pass anything. I'm reading the output of TAP
14:54 timotimo *shrug*
14:55 timotimo "you wanted '42' to not be '42', but '42' is '42'."
14:56 ilmari got: 42, expected: anything else
14:56 mst "error: 42 is obviously the correct answer. did you ask the wrong question?"
14:57 ilmari is what perl5's Test::More gives
14:59 ilmari m: use Test; is 42, 43; done-testing
14:59 camelia rakudo-moar f49b38: OUTPUT«not ok 1 - ␤␤# Failed test at <tmp> line 1␤# expected: '43'␤#      got: '42'␤1..1␤# Looks like you failed 1 test of 1␤»
15:06 Zoffix m: use Test; isnt Mu, Mu
15:06 camelia rakudo-moar f49b38: OUTPUT«Cannot resolve caller infix:<===>(Mu, Mu); none of these signatures match:␤    ($?)␤    (\a, \b)␤    (Int:D \a, Int:D \b)␤    (int $a, int $b)␤    (Num:D \a, Num:D \b)␤    (Num $ where { ... }, Num $ where { ... })␤    (num $a, num $b --> Boo…»
15:06 timotimo hehehe
15:07 Zoffix :)
15:07 timotimo m: use Test; isn't (1 | 2), (5 | 4)
15:07 camelia rakudo-moar f49b38: OUTPUT«===SORRY!=== Error while compiling <tmp>␤Undeclared routine:␤    isn't used at line 1. Did you mean 'isnt'?␤␤»
15:07 timotimo m: use Test; isnt (1 | 2), (5 | 4)
15:07 camelia rakudo-moar f49b38: OUTPUT«ok 1 - ␤»
15:07 timotimo oh, huh
15:08 ilmari m: use Test; isnt (1|2), (2|3); done-testing
15:08 camelia rakudo-moar f49b38: OUTPUT«not ok 1 - ␤␤# Failed test at <tmp> line 1␤# twice: 'any(1, 2)'␤1..1␤# Looks like you failed 1 test of 1␤»
15:09 ilmari well, that's not just misleading, it's blatantly false
15:09 Zoffix :/
15:09 ilmari s/misleading/confusing/
15:09 timotimo indeed it is
15:09 Zoffix I'm fixing the message ATM, btw. Just doing tests
15:14 Zoffix huh
15:14 Zoffix oh nm
15:24 Zoffix m: use Test; isnt Int, Mu
15:24 camelia rakudo-moar f49b38: OUTPUT«Cannot resolve caller infix:<===>(Int, Mu); none of these signatures match:␤    ($?)␤    (\a, \b)␤    (Int:D \a, Int:D \b)␤    (int $a, int $b)␤    (Num:D \a, Num:D \b)␤    (Num $ where { ... }, Num $ where { ... })␤    (num $a, num $b --> Bo…»
15:24 Zoffix m: use MONKEY-GUTS; my Int $x; say nqp::istype($x, Mu)
15:24 camelia rakudo-moar f49b38: OUTPUT«1␤»
15:24 Zoffix s: &infix:<===>
15:24 SourceBaby Zoffix, Sauce is at https://github.com/rakudo/rakudo/blob/f49b387/src/core/Any.pm#L418
15:30 dalek roast: 29a0186 | MasterDuke17++ | S03-operators/repeat.t:
15:30 dalek roast: Tests for RT #125628
15:30 dalek roast:
15:30 dalek roast: Tests for 'a' x NaN, Inf, * and variations.
15:30 dalek roast: review: https://github.com/perl6/roast/commit/29a0186146
15:30 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=125628
15:30 dalek roast: 3242f09 | MasterDuke17++ | S03-operators/repeat.t:
15:30 dalek roast: Merge pull request #152 from MasterDuke17/RT125628
15:31 dalek roast:
15:31 dalek roast: Tests for RT #125628
15:31 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=125628
15:31 dalek roast: review: https://github.com/perl6/roast/commit/3242f09266
15:43 lizmat_ joined #perl6-dev
15:45 Zoffix m: my Mu $x .= new;
15:45 camelia rakudo-moar f49b38: OUTPUT«Type check failed in binding to mutate; expected Any but got Mu (Mu)␤  in block <unit> at <tmp> line 1␤␤»
15:45 * Zoffix is getting too deep into the rabbit hole
15:45 Zoffix m: my $x = Mu.new;  say $x ~~ Mu:D
15:45 camelia rakudo-moar f49b38: OUTPUT«X::Multi::NoMatch exception produced no message␤  in block <unit> at <tmp> line 1␤␤»
15:47 Zoffix m: multi foo (Mu:D $a, Mu:D $b) {say "here"}; multi foo (\a, \b) { say "there"};  my $x = Mu.new;  foo class {}, $x
15:47 camelia rakudo-moar f49b38: OUTPUT«X::Multi::NoMatch exception produced no message␤  in block <unit> at <tmp> line 1␤␤»
15:51 committable6 joined #perl6-dev
15:52 Zoffix Well, I was gonna add Mu candidates to ===, but that breaks autothreading apparently. (or at least that's what the tests tell me)
15:52 Zoffix m: dd [ (1|2) == 1 ]
15:52 camelia rakudo-moar f49b38: OUTPUT«[any(Bool::True, Bool::False)]␤»
15:52 geekosaur joined #perl6-dev
15:53 Zoffix m: use Test; isa-ok  (1|2 === 1), Junction
15:53 camelia rakudo-moar f49b38: OUTPUT«ok 1 - The object is-a 'Junction'␤»
15:53 Zoffix Hm. This fails with my patch, saying it got Bool, but dd [ (1|2) == 1 ] gives the same result.
15:53 Zoffix I wonder if it's just a crappy test
15:56 Zoffix s: Junction, 'isa', \(Junction)
15:56 SourceBaby Zoffix, Something's wrong: ␤ERR: Cannot resolve caller sourcery(Junction, Str, Capture); none of these signatures match:␤    ($thing, Str:D $method, Capture $c)␤    ($thing, Str:D $method)␤    (&code)␤    (&code, Capture $c)␤  in block <unit> at -e line 6␤␤
15:56 Zoffix s: (1|2), 'isa', \(Junction)
15:56 SourceBaby Zoffix, Sauce is at any("https://github.com/rakudo/rakudo/blob/f49b387/src/core/Mu.pm#L588", "https://github.com/rakudo/rakudo/blob/f49b387/src/core/Mu.pm#L588")
15:56 TheLemonMan joined #perl6-dev
15:56 * Zoffix giggles
15:57 cog__ joined #perl6-dev
16:00 timotimo :D :D :D
16:07 Zoffix m: use Test; is Mu, Mu
16:07 camelia rakudo-moar f49b38: OUTPUT«Cannot resolve caller infix:<===>(Mu, Mu); none of these signatures match:␤    ($?)␤    (\a, \b)␤    (Int:D \a, Int:D \b)␤    (int $a, int $b)␤    (Num:D \a, Num:D \b)␤    (Num $ where { ... }, Num $ where { ... })␤    (num $a, num $b --> Boo…»
16:07 Zoffix k, this is more prevalent. Screw it.
16:12 Zoffix Would    $ok or ($dof and dof) or $ok;    get optimised to anything if $dof is false?
16:13 Zoffix m: my $dof = 0;  sub dof { say "ran dof"; exit; }; sub test { my $ok = 0; $ok or ($dof and dof) or $ok; }; say test
16:13 camelia rakudo-moar f49b38: OUTPUT«0␤»
16:13 Zoffix m: my $dof = 0;  sub dof { say "ran dof"; exit; }; sub test { my $ok = 42; $ok or ($dof and dof) or $ok; }; say test
16:13 camelia rakudo-moar f49b38: OUTPUT«42␤»
16:13 Zoffix m: my $dof = 1;  sub dof { say "ran dof"; exit; }; sub test { my $ok = 42; $ok or ($dof and dof) or $ok; }; say test
16:13 camelia rakudo-moar f49b38: OUTPUT«42␤»
16:13 Zoffix m: my $dof = 1;  sub dof { say "ran dof"; exit; }; sub test { my $ok = 0; $ok or ($dof and dof) or $ok; }; say test
16:13 camelia rakudo-moar f49b38: OUTPUT«ran dof␤»
16:13 timotimo t/spec/S17-promise/start.t ........................................ Failed 30/47 subtests
16:13 timotimo ummmmmm ...?
16:14 Zoffix Basically, I want the return value to be `$ok` unless `$dof` is set, at which point I want dof() to run when `$ok` is false and dof() will exit()
16:26 dalek rakudo/nom: cfb1b23 | (Zoffix Znet)++ | lib/Test.pm6:
16:26 dalek rakudo/nom: Improve failure message on Test::isnt
16:26 dalek rakudo/nom:
16:26 dalek rakudo/nom: The `twice: $got` is confusing from the point of view of the user running the
16:26 dalek rakudo/nom: test suite. Also, it gives bad results when Junctions are used.
16:26 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/cfb1b23628
16:49 Zoffix Test.pm6 needs a refactor.
16:50 Zoffix Right now it's blessed by the Flying Spaghetti Monster for being holy code.
16:52 Zoffix benchable6, HEAD my $state = class { has int $.foo = 1}; for ^100 {  $state.foo = 0; $state.foo = 1; $state.foo = 3; $state.foo = 4; }
16:52 benchable6 Zoffix, starting to benchmark the 1 given commits
16:52 dogbert17 joined #perl6-dev
16:52 dogbert17 Zoffix: are you around?
16:53 * Zoffix is asquare
16:53 dogbert17 care to take a look at https://gist.github.com/dogbert17/f348e0f69bb81feed1b2802222c2e28c
16:53 Zoffix benchable6, HEAD my int $state = 1; for ^100 {  $state = 0; $state = 1; $state = 3; $state = 4; }
16:55 Zoffix dogbert17, looks good to me
16:55 dogbert17 thx, I'll commit it
16:57 benchable6_ joined #perl6-dev
16:57 Zoffix m: my $state = class { has int $.foo = 1}; for ^1000 {  $state.foo = 0; $state.foo = 1; $state.foo = 3; $state.foo = 4; }; say now - INIT now;
16:57 camelia rakudo-moar cfb1b2: OUTPUT«Cannot look up attributes in a type object␤  in block <unit> at <tmp> line 1␤␤»
16:57 Zoffix m: my $state = class { has int $.foo = 1}.new; for ^1000 {  $state.foo = 0; $state.foo = 1; $state.foo = 3; $state.foo = 4; }; say now - INIT now;
16:57 camelia rakudo-moar cfb1b2: OUTPUT«Cannot modify an immutable Int␤  in block <unit> at <tmp> line 1␤␤»
16:57 Zoffix m: my $state = class { has int $.foo is rw = 1}.new; for ^1000 {  $state.foo = 0; $state.foo = 1; $state.foo = 3; $state.foo = 4; }; say now - INIT now;
16:57 camelia rakudo-moar cfb1b2: OUTPUT«0.00274253␤»
16:57 MasterDuke Zoffix++ bot killer extraordinaire
16:57 Zoffix m: my $state = class { has int $.foo is rw = 1}.new; for ^100000 {  $state.foo = 0; $state.foo = 1; $state.foo = 3; $state.foo = 4; }; say now - INIT now;
16:57 camelia rakudo-moar cfb1b2: OUTPUT«0.0762078␤»
16:58 Zoffix m: my int $state = 1; for ^100000 {  $state = 0; $state = 1; $state = 3; $state = 4; }; say now - INIT now;
16:58 camelia rakudo-moar cfb1b2: OUTPUT«0.03267211␤»
16:58 MasterDuke benchable6, HEAD my int $state = 1; for ^100 {  $state = 0; $state = 1; $state = 3; $state = 4; }
16:59 Zoffix Hm... Gonna give Test.pm6 a rewrite for fun. Then see if performance is anywhere close to reasonable when done.
17:00 benchable6 joined #perl6-dev
17:02 MasterDuke bench: HEAD my int $state = 1; for ^100000 {  $state = 0; $state = 1; $state = 3; $state = 4; };
17:02 benchable6 MasterDuke, starting to benchmark the 1 given commits
17:02 benchable6 MasterDuke, ¦«HEAD»:0.1393
17:02 Zoffix :)
17:06 AlexDaniel joined #perl6-dev
17:11 dalek rakudo/nom: 75ba8cc | (Zoffix Znet)++ | / (2 files):
17:11 dalek rakudo/nom: Prevent too-soon exit when PERL6_TEST_DIE_ON_FAIL is used
17:11 dalek rakudo/nom:
17:11 dalek rakudo/nom: The die-on-fail currently exits during proclaim() call, which is prior to
17:11 dalek rakudo/nom: diagnostic messages describing the failure are printed.
17:11 dalek rakudo/nom:
17:11 dalek rakudo/nom: This work moves the exit to the end of test subroutines. There's certainly
17:11 dalek rakudo/nom: a DRYer way to implement this, but performance is a concern.
17:11 dalek rakudo/nom:
17:11 dalek rakudo/nom: Fixes RT#129192
17:11 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/75ba8cc6c3
17:11 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=129192
17:23 travis-ci joined #perl6-dev
17:23 travis-ci Rakudo build errored. Zoffix Znet 'Improve failure message on Test::isnt
17:23 travis-ci https://travis-ci.org/rakudo/rakudo/builds/157680608 https://github.com/rakudo/rakudo/compare/f49b38789fd0...cfb1b236288c
17:23 travis-ci left #perl6-dev
17:23 buggable [travis build above] ✓ All failures are due to timeout (1), missing build log (0), or GitHub connectivity (0)
17:27 dalek rakudo/nom: 490cf72 | LemonBoy++ | src/core/Enumeration.pm:
17:27 dalek rakudo/nom: Make sure to always ACCEPT the enum elements.
17:27 dalek rakudo/nom:
17:27 dalek rakudo/nom: As shown in RT#129160 if we try to use an enumeration element as a type
17:27 dalek rakudo/nom: for an optional parameter like in the following example we end up with a
17:27 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=129160
17:27 dalek rakudo/nom: type mismatch between Int:D and Foo.
17:27 dalek rakudo/nom: To actually understand what goes wrong we simply have to look at the
17:27 dalek rakudo/nom: backtrace: the ACCEPT method that the binder calls is the one from the
17:27 dalek rakudo/nom: Numeric role (since enums have Int as base type by default) which in
17:27 dalek rakudo/nom: turn calls the infix:<==> operator which in turn calls Bridge.
17:27 dalek rakudo/nom: This is where things go south as we actually fail to bind a (Option)
17:28 dalek roast: 17557ce | (Zoffix Znet)++ | S24-testing/8-die_on_fail.t:
17:28 dalek roast: PERL6_TEST_DIE_ON_FAIL must not exit on failed TODO tests
17:28 dalek roast: review: https://github.com/perl6/roast/commit/17557ce7b0
17:31 TheLemonMan maybe I should write shorter commit messages
17:31 dalek roast: 350d02b | (Zoffix Znet)++ | S24-testing/8-die_on_fail.t:
17:31 dalek roast: test failure diagnostics must show up when PERL6_TEST_DIE_ON_FAIL is used
17:31 dalek roast:
17:31 dalek roast: RT #129192
17:31 dalek roast: review: https://github.com/perl6/roast/commit/350d02be0b
17:31 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=129192
17:32 Zoffix TheLemonMan, I think a more correct course of action would be to fix the bot :)
17:33 MasterDuke synopsebot6: source
17:33 MasterDuke synopsebot6: help
17:33 MasterDuke synopsebot6: url
17:33 Zoffix It's dalek that's less than perfect.
17:34 MasterDuke doh, right
17:34 MasterDuke dalek: source
17:34 MasterDuke dalek: help
17:34 MasterDuke dalek: url
17:34 MasterDuke huggable: dunno
17:34 huggable MasterDuke, ¯\_(ツ)_/¯
17:40 nine Nice! use GTK::Simple down from 6.7 to 3.4s
17:40 Zoffix \o/
17:42 nine (was ~20s before yesterday)
17:47 mst \o/
17:52 MasterDuke isn't there some log somewhere that shows when the docs were last rebuilt?
17:53 TheLemonMan any clue about RT#128846 ? it's as simple as adding 'is rw' to andthen and notandthen, but I don't really know what the design docs say about this
17:53 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=128846
17:53 Zoffix MasterDuke, yeah, in the footer "Generated on 2016-09-05T17:06:54Z from HomePage.pod6 from perl6/doc on GitHub, commit 71fde8d. "
17:53 Zoffix There's a build log somewhere too
17:53 timotimo https://docs.perl6.org/build-log/
17:54 timotimo MasterDuke: ^
17:55 MasterDuke thanks
17:55 AlexDaniel Zoffix: I'm trying to understand this line, can you help me? 「$ok or ($die_on_fail and die-on-fail) or $ok;」
17:55 AlexDaniel Zoffix: I mean, right there it says $ok or $ok, what's the trick?
17:58 Zoffix AlexDaniel, the second $ok will be returned when $die_on_fail is false
17:59 Zoffix return $ok if $ok; die-on-fail if $die_on_fail; return $ok
17:59 AlexDaniel I see
18:02 Zoffix Granted, it's probably not needed there, since if $die_on_fail is false, false will be returned anyway and the $ok at that point is always false
18:02 Zoffix But I'm hoping I'll be able to improve the code in that entire module and avoid this dance too.
18:03 AlexDaniel Zoffix: nice
18:03 MasterDuke re building docs. will whatever builds them automatically pull in new commits to Pod::To::Html?
18:04 Zoffix MasterDuke, nope
18:04 Zoffix I can do it
18:06 MasterDuke cool, that should fix those links that end in _
18:06 Zoffix MasterDuke, ==> Successfully installed Pod::To::HTML
18:09 dalek roast: 09c8d3f | LemonBoy++ | S12-enums/misc.t:
18:09 dalek roast: Tests for RT#129160 (#153)
18:09 dalek roast: review: https://github.com/perl6/roast/commit/09c8d3fd7a
18:09 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=129160
18:10 TheLemonMan Zoffix, the only thing left to do is closing the ticket and calling it a day :D
18:10 Zoffix Way ahead of you ;)
18:12 Zoffix BTW here you didn't miss anything. I've just marked the ticket as testsneeded that fast: http://irclog.perlgeek.de/perl6-dev/2016-09-02#i_13139757
18:13 TheLemonMan the RT ninja heh
18:16 mst is it a bird? is it a plane? no, it's madrussianexpatman!
18:17 Zoffix m: <pub no-pub>.pick.say
18:17 camelia rakudo-moar bdd469: OUTPUT«no-pub␤»
18:17 Zoffix m: <pub no-pub>.pick.say
18:17 camelia rakudo-moar bdd469: OUTPUT«pub␤»
18:17 Zoffix \o/
18:17 * Zoffix &
18:37 ZoffixLappy joined #perl6-dev
18:41 go|dfish joined #perl6-dev
18:42 TimToady joined #perl6-dev
18:43 ZoffixLappy I wonder if anyone uses the PERL6_TEST_TIMES in Test.pm6 anymore. I'm going to start with the assumption of "no" (in my rewrite-for-fun that might not land into nom)
18:47 mst ZoffixLappy: there is only 'pub'
18:48 ZoffixLappy :)
18:54 lizmat ZoffixLappy: fwiw, I wonder if we shouldn't generate Test.pm6 from a source with/without timing support
18:54 lizmat and if we want timing, we load the one with timing support
18:55 ZoffixLappy maybe
18:55 lizmat I mean, "use Test" is all about its exports anyway, so whether it actually comes from Test.pm6 is immaterial anyway
18:56 lizmat now to conditionally use one of two modules, that's actually something I don't see easily done (depending on a env var)
19:07 travis-ci joined #perl6-dev
19:07 travis-ci Rakudo build passed. lizmat 'Merge pull request #869 from LemonBoy/enum-as-params
19:07 travis-ci https://travis-ci.org/rakudo/rakudo/builds/157692999 https://github.com/rakudo/rakudo/compare/75ba8cc6c338...bdd4691e6a1a
19:07 travis-ci left #perl6-dev
19:15 jnthn MasterDuke: Left a comment on it.
19:18 TheLemonMan jnthn, maybe we need an unbox_u
19:18 TheLemonMan because the _i value is rightfully decoded as negative
19:22 timotimo TheLemonMan: i don't think so, we just have to use the right _u ops whenever we work with that given register
19:27 jnthn TheLemonMan: That'd be one way to do the error checking, though as timo mentions we'd only end up turning it back to (native) signed int to feed it into the x op
19:32 TheLemonMan oh I see, I failed to check out the whole patch
19:46 dalek rakudo/better-test-pm6: e03cac2 | (Zoffix Znet)++ | / (3 files):
19:46 dalek rakudo/better-test-pm6: Start possible de-spagettification of Test.pm6
19:46 dalek rakudo/better-test-pm6: review: https://github.com/rakudo/rakudo/commit/e03cac210b
19:46 ZoffixLappy Coding at a bar doesn't really jive :)
19:46 * ZoffixLappy starts writing something
19:47 mst I do it sometimes
19:48 mst usually I sit on IRC and read docs and kibbitz
19:58 dalek rakudo/nom: 74f1edc | niner++ | src/core/CompUnit/PrecompilationUnit.pm:
19:58 dalek rakudo/nom: Lazily deserialize the DependencySpecification of a PrecompilationUnit
19:58 dalek rakudo/nom:
19:58 dalek rakudo/nom: Speeds up loading of GTK::Simple from 6.7 to 2.9 seconds as we shouldn't
19:58 dalek rakudo/nom: need the specification during an ordinary module load. It's only needed
19:58 dalek rakudo/nom: if we detect a change in the repositories.
19:58 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/74f1edca4b
19:59 nine Now we're not reading any JSON and not EVALing any code during loading of a precompiled GTK::Simple :)
20:00 lizmat nine++
20:00 ZoffixLappy wooo \o/ nine++
20:00 nine jnthn++ # profiler
20:01 nine tadzik++ # Qt GUI for the profiler with which I could actually read the profile
20:02 timotimo sorry about the problem with the html profiler :(
20:11 benchable6 joined #perl6-dev
20:11 dalek joined #perl6-dev
20:11 SourceBaby joined #perl6-dev
20:11 synopsebot6 joined #perl6-dev
20:18 hankache joined #perl6-dev
20:22 lizmat and another Perl 6 Weekly hits the Net: https://p6weekly.wordpress.com/2016/09/05/2016-36-introducao-ao-perl-6/
20:30 dalek rakudo/nom: a87fc7d | niner++ | src/core/CompUnit/PrecompilationStore/File.pm:
20:30 dalek rakudo/nom: Cache path to the compiler in PrecompilationStoreFile
20:30 dalek rakudo/nom:
20:30 dalek rakudo/nom: Speeds up loading of GTK::Simple from 2.9 to 2.5 seconds by saving about
20:30 dalek rakudo/nom: 1000 calls to .child.
20:30 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a87fc7d0bc
20:30 nine lizmat: it's now 8x :) from 20s on Saturday down to 2.5
20:31 lizmat Updated :-)
20:31 timotimo nine: i'm quite glad you're working on performance here :3
20:32 nine Unbelievable how much LHF there is...
20:33 lizmat well, anything related to $*SPEC is, really
20:33 lizmat one of the reasons I wanted to get rid of that in the first place
20:52 jnthn weekly \o/
20:52 jnthn lizmat++
20:52 jnthn nine: Glad you put the profiler to good use :)
20:56 * arnsholt has found a potential way to parse C headers without a completely ridiculous amount of work
20:56 arnsholt Yet another item on the work queue...
20:59 Ven_ joined #perl6-dev
21:00 dalek rakudo/nom: e5d7a16 | niner++ | src/core/CompUnit/PrecompilationStore/File.pm:
21:00 dalek rakudo/nom: Cache another layer of directories in PrecompilationStore::File
21:00 dalek rakudo/nom:
21:00 dalek rakudo/nom: Saves another couple 100 calls to .child and speeds up loading GTK::Simple from
21:00 dalek rakudo/nom: 2.5 to 2.1 seconds.
21:00 dalek rakudo/nom: Caching the full .path however would lead to spectest regressions.
21:00 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e5d7a16fbf
21:00 ZoffixLappy :D
21:00 nine If it continues like this, I'm gonna have to make those measurements a bit more scientific...
21:02 nine But enough for today. Good night :)
21:02 ZoffixLappy night
21:02 lizmat nine: why {$compiler-id}{$precomp-id} instead of {$compiler-id ~ $precomp-id} ??
21:02 lizmat good night, nine
21:04 nine timotimo++ # reporting an excellent testcase
21:05 MasterDuke jnthn: a problem is that nqp::unbox_x goes negative before it complains about too wide bigints
21:05 MasterDuke *nqp::unbox_i
21:05 nine lizmat: no reason other than being tired :)
22:43 lue joined #perl6-dev
23:00 brrt joined #perl6-dev
23:08 ZoffixLappy New blog post "Perl 6's Schrödinger-Certified Junctions": http://perl6.party/post/Perl-6-Schrodinger-Certified-Junctions
23:25 cog__ lizmat++

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