Perl 6 - the future is here, just unevenly distributed

IRC log for #p6dev, 2016-04-13

| Channels | #p6dev index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
01:47 ilbot3 joined #p6dev
01:47 Topic for #p6dev is now Perl 6 language and compiler development
03:11 teatime https://github.com/rakudo/rakudo/compare/nom...pprince:pprince/pr/Duration1-r1
03:11 teatime https://github.com/perl6/roast/compare/master...pprince:pprince/pr/Duration1-r1
03:12 teatime ^^  my future/soon PR.  feedback welcome; still needs work.  IIRC the commit messages demo the rationale decently; mainly the goal is to fix RT #127339, and bring Duration closer to the spec in S02 (which is vaguely contradictory at times :)
03:12 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=127339
03:13 teatime pls ping me w/ changes / stuff I am doing wrong, or if you think I should open the PR ticket.
06:50 geekosaur joined #p6dev
07:41 jnthn morning, #p6dev
07:41 moritz \o
07:41 teatime o/
07:42 moritz jnthn: I don't know if you saw it yesterday in #perl6, but I'd propose for v6.d that we make block parameters default to Any, not Mu (only the default, not the type constraint)
07:43 moritz jnthn: do you think that's sensible?
07:43 moritz m: (-> $x? { say $x.^name })()
07:43 camelia rakudo-moar d1eeb3: OUTPUT«Mu␤»
07:44 jnthn Hm, maybe. Why, ooc?
07:44 jnthn It seems something we can do by lang version though
07:44 jnthn So technically it's probably unproblematic
07:44 jnthn Something to do with auto-viv, or?
07:45 moritz jnthn: no, it's for passing on the optional parameter to a routine
07:46 moritz which defaults to Any as a type constraint
07:46 moritz m: sub f($x?) { say $x.perl }; (-> $x? { f($x) })()
07:46 camelia rakudo-moar d1eeb3: OUTPUT«Type check failed in binding $x; expected Any but got Mu (Mu)␤  in sub f at /tmp/LIwgjxzO9_ line 1␤  in block <unit> at /tmp/LIwgjxzO9_ line 1␤␤»
07:46 moritz that would Just Work[tm] if the default was Any
07:58 jnthn Aha
07:58 jnthn Yeah, it seems reasonable at first glance
07:59 jnthn moritz: On https://rt.perl.org/Ticket/Display.html?id=127878 did you write a test in the end? :)
07:59 moritz jnthn: yes, but I didn't push it, because it turns out that the nqp/moar versions weren't bumped yet
08:00 moritz jnthn: ... and I didn't fancy pushing a coredumping test :-)
08:00 moritz ... and I was too lazy to bump the versions myself
08:01 jnthn Or fudge it? ;-)
08:01 jnthn Anyway, looking at the commits that fixed it now
08:01 moritz of that, yes
08:02 moritz anyway, ill push tonight, one way or another
08:02 moritz *will
08:02 moritz and it's good to see that the test does fail with the old version :-)
08:02 jnthn aye :)
08:12 RabidGravy joined #p6dev
09:41 bartolin_ joined #p6dev
09:44 stmuk joined #p6dev
09:53 ugexe joined #p6dev
10:32 stmuk joined #p6dev
10:39 b2gills joined #p6dev
11:36 vendethiel joined #p6dev
11:38 lucs joined #p6dev
11:43 psch joined #p6dev
12:21 |Tux| rakudobrew perl still at 104 :(
12:23 lizmat joined #p6dev
12:23 jnthn |Tux|: You're waiting on Moar/NQP revision bumps?
12:24 |Tux| as I said yesterday: I have no idea how perl6 core changes end up in rakudowbrew or (better question) how I can tell rakudobrew to use the bleadiest edge available
12:25 * jnthn doesn't use rakudobrew so can't help with that, sorry
12:25 |Tux| if rakudobrew doesn't change, my timings have way less usage and only show the influence of the moon and the butterflies
12:26 jnthn I thought that it just pulled latest Rakudo?
12:26 jnthn And then used by default the NQP/Moar that were declared as current dependencies
12:26 |Tux| that was my impression too, but perl6 --version still shows
12:26 |Tux| This is Rakudo version 2016.03-116-gd1eeb38 built on MoarVM version 2016.03-104-g10d3971
12:26 |Tux| implementing Perl 6.c.
12:26 |Tux| test            20.675
12:26 |Tux| test-t          11.950
12:26 |Tux| csv-parser      24.746
12:27 jnthn 2016.03-116-gd1eeb38 is latest Rakudo
12:27 |Tux| and that is what I want to see too
12:27 |Tux| so I can play with utf8-c8 as timotimo fixed it
12:28 jnthn I dunno if you can tell it to ignore Rakudo's desired NQP/Moar versions and grab bleading edge of those too
12:28 |Tux| lizmat? (the latest commit in nom was by lizmat, so she might know)
12:29 jnthn Anyway, if you just want the latest MoarVM then a way to get it is to cd to wherever rakudobrew checked out MoarVM too, and inside there just git pull && make install
12:30 jnthn s/too/so/
12:39 |Tux| If I build from MoarVM and install:
12:39 |Tux| This is MoarVM version 2016.03-108-gca1a21a built with JIT support
12:40 |Tux| but that doesn't support -I. -Ilib
12:40 jnthn ...what?
12:41 |Tux| perl6 -I. -Ilib test-t.pl
12:41 |Tux| ERROR: Unknown flag -I..
12:41 |Tux| http://tux.nl/Files/20160413144116.png
12:42 jnthn What on earth, that looks almost as if your perl6 symbol is pointing directly at the moar executable, but I've no idea how that can happen
12:43 |Tux| it is. /me investigates where that goes wrong
12:43 lizmat [Tux] : fwiw, I'm not using rakudobrew either
12:43 |Tux| this approach is new to me, so it is likely *I* made the error
12:44 jnthn |Tux|: Did you build a separate Moar, or did you do what I suggested and tinker in-place with the rakudobrew managed one? :)
12:44 |Tux| the first: cd git_reference/MoarVM; perl Configure.pl --prefix=/pro/3gl/rakudobrew ; make -j8 ; make install
12:45 |Tux| I'll try now: cd git_reference/MoarVM; perl Configure.pl --prefix=/pro/3gl/rakudobrew/moar-nom/install ; make -j8 ; make install
12:59 [Coke] I would not manually install your copy into rakudobrew.
12:59 [Coke] I'd just have a location where you can manage your own copy
13:00 jnthn [Coke]: Yeah, my point was that he already had a copy, and so updating the repo to latest and a `make install` would do it since there's nothing that needs a Moar re-configure :)
13:00 jnthn My "you can get away with X" solutions don't really scale to people thinking and trying to do the right thing. :)
13:01 [Coke] I would also point out that you may end up breaking yourself if you're doing nom/master/master - that trio doesn't always work.
13:02 jnthn [Coke]: Don't suppose you know how to force that to happen with rakudobrew, though?
13:02 [Coke] I don't use rakudobrew. :)
13:02 jnthn By this point I might as well have just bumped the various revisions :P
13:03 jnthn Screw it, I'll do that
13:03 [Coke] if you want it in this weekend's release, yes, please.
13:03 [Coke] gives us a few days to kick the tires.
13:04 dalek nqp: a525da3 | jnthn++ | tools/build/MOAR_REVISION:
13:04 dalek nqp: Get latest MoarVM.
13:04 dalek nqp:
13:04 dalek nqp: With utf8-c8 and crash fixes.
13:04 dalek nqp: review: https://github.com/perl6/nqp/commit/a525da3572
13:06 dalek rakudo/nom: ae2ae92 | jnthn++ | tools/build/NQP_REVISION:
13:06 dalek rakudo/nom: Bump NQP_REVISION.
13:06 dalek rakudo/nom:
13:06 dalek rakudo/nom: To get a MoarVM with fixes for the UTF8-C8 encoding and a couple of
13:06 dalek rakudo/nom: other crashes.
13:06 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/ae2ae92330
13:06 jnthn |Tux|: You can just do a latest rakudobrew build now
13:06 |Tux| building …
13:07 jnthn [Coke]: Yeah. The next thing I'm working on is fairly major, so will happen in a (MoarVM) branch.
13:07 [Coke] jnthn: danke.
13:07 jnthn So I don't have anything else to land this side of release.
13:12 |Tux| This is Rakudo version 2016.03-117-gae2ae92 built on MoarVM version 2016.03-108-gca1a21a
13:16 |Tux| test            21.526
13:16 |Tux| test-t          12.431
13:16 |Tux| csv-parser      25.762
13:17 |Tux| I get a new error :) - something to dig into!
13:23 |Tux| is($a,$b,"..."); does not seem to accept Buf
13:23 |Tux| m: use Test;my $b=Buf.new(61,^2048 .map({256.rand.Int}));my Str $u=$b.decode("utf8-c8");is($b,$u.encode("utf8-c8"),"")
13:23 camelia rakudo-moar ae2ae9: OUTPUT«not ok 1 - ␤␤# Failed test at /tmp/u6v9lI0uJX line 1␤Cannot use a Buf as a string, but you called the Stringy method on it␤  in block  at /home/camelia/rakudo-m-inst-1/share/perl6/sources/C712FE6969F786C9380D643DF17E85D06868219E (Test) line 145␤ …»
13:25 jnthn yeah, is relies on doing string comparison, I think. Use is-deeply instead
13:28 |Tux| *intresting*
13:28 |Tux| # at 43_binary.t line 23
13:28 |Tux| # expected: "=\x[13]􏿽xA5پ􏿽x8AR􏿽x87􏿽xB4􏿽x8Er􏿽xE929*􏿽xAA􏿽xC9/ua􏿽x83"
13:28 |Tux| #      got: "=\x[13]􏿽xA5پ􏿽x8AR􏿽x87􏿽xB4􏿽x8Er􏿽xE929*􏿽xAA􏿽xC9/ua􏿽x83"
13:31 * jnthn is failing to spot the difference...
13:31 |Tux| so am I
13:31 |Tux| but it might stem in this:
13:31 |Tux| # at 43_binary.t line 24
13:31 |Tux| # expected: Buf.new(61,165,72,180,71,202,104,86,252,158,233,35,78,224,158,82,18,1,42,185,78)
13:31 |Tux| #      got: Blob[uint8].new(61,165,72,180,71,202,104,86,252,158,233,35,78,224,158,82,18,1,42,185,78)
13:34 |Tux| my Buf $b = Buf.new(...); my Str $s = $b.decode("utf8-c8"); my Buf $x = $s.encode("utf8-c8");
13:34 |Tux| not?
13:37 moritz oh, different type
13:38 moritz can't you just do is-depploy $got.list, $expected.list ?
13:38 moritz I wouldn't want to make it dependent on the actual return type, because something more specific is always OK
13:57 |Tux| for my understanding ...
13:57 |Tux| my Buf $b = Buf.new (...)
13:58 |Tux| my Str $s = $b.decode("utf8-c8");
13:58 |Tux| my @f = $s.encode("utf8-c8").list;
13:59 |Tux| my Buf $c = Buf.new(@f);
13:59 |Tux| now $c should be equal to $b, right?
13:59 |Tux| or should I move this to #perl6
14:00 jnthn I'd expect them to contain the same bytes, yeah
14:00 |Tux| the answer seems to be no  :(
14:00 * |Tux| experiment further
14:20 teatime joined #p6dev
14:26 |Tux| https://gist.github.com/Tux/eac2f0f8c380a8acfdd1ba8617de5204 <= random failures (reproducable)
14:26 |Tux| does that help?
14:27 jnthn |Tux|: Yes, if it reproduces the problem
14:27 jnthn timotimo: ^^ if you're about and fancy some more hunting :)
14:31 |Tux| thank both of you for enabling me to test even deeper :]
14:34 timotimo that could very well be that invalid read off the end of the input buffer
14:36 timotimo hm, the difference is that the "got" one is one byte longer, and that byte is 127
14:36 timotimo no, the byte is not deterministic
14:37 teatime bah, I wonder how long my client was in a disconnect loop
14:38 timotimo https://gist.github.com/timo/a4090024c8e5997b876a54d34576c47f  -  need i say more? :P
14:40 jnthn valgrind++ :)
14:41 timotimo the interesting thing is it only outputs that blurb once even though multiple runs of the test fail, but perhaps valgrind deduplicates reports that are 1:1
15:34 dogbert17 joined #p6dev
15:47 geekosaur joined #p6dev
15:49 geekosaur joined #p6dev
15:51 ugexe joined #p6dev
16:49 pyrimidine joined #p6dev
16:52 hankache joined #p6dev
17:27 lizmat joined #p6dev
18:41 stmuk joined #p6dev
18:41 lucs joined #p6dev
18:42 dalek roast: 28274ef | moritz++ | integration/weird-errors.t:
18:42 dalek roast: RT #127878: Can decode and work with interesting byte sequence
18:42 dalek roast: review: https://github.com/perl6/roast/commit/28274ef712
18:42 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=127878
19:25 sortiz joined #p6dev
19:48 bartolin_ joined #p6dev
19:48 jnthn joined #p6dev
20:09 bartolin_ joined #p6dev
20:09 jnthn joined #p6dev
20:17 jnthn joined #p6dev
20:17 bartolin joined #p6dev
20:42 lucs_ joined #p6dev
20:50 PerlJam joined #p6dev
21:23 dalek rakudo/nom: 4f3f1c8 | PerlJam++ | docs/release_guide.pod:
21:23 dalek rakudo/nom: Mention other nick since I'm using it often
21:23 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/4f3f1c8f22
21:25 dalek nqp: c86b601 | PerlJam++ | docs/release_guide.pod:
21:25 dalek nqp: Mention other nick since I'm using it often
21:25 dalek nqp: review: https://github.com/perl6/nqp/commit/c86b601c79
21:42 bartolin joined #p6dev
21:49 lucs joined #p6dev
22:11 bartolin joined #p6dev

| Channels | #p6dev index | Today | | Search | Google Search | Plain-Text | summary