Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6-dev, 2017-06-11

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

All times shown according to UTC.

Time Nick Message
00:10 MasterDuke joined #perl6-dev
00:12 eveo Reporting with plugin: Zef::CPANReporter+{<anon|85479024>}
00:12 eveo Use of uninitialized value of type Zef::CPANReporter in string context.
00:12 eveo Methods .^name, .perl, .gist, or .say can be used to stringify it to something meaningful.
00:12 eveo in method report at /home/cpan/.rakudobrew/moar-nom/install/share/perl6/site/sources/643D88410EFE62A5D6F3C68A2811502A3DD01FF4 (Zef::CPANReporter) line 18
00:12 eveo No idea what's causing it now. The email is fine (replicated the code used by the module and it reads the conf file to grab the email just fine)
00:25 eveo Looks like a good chunk of burnt toast is due to a bug in toaster where it says the module is already installed, and the failing version fails because RabidGravy is incorrectly using an END {} block in a bunch of test files
00:43 eveo intersting using $*LANG.define_slang() don't explode, but doing if 0 {} else { $*LANG.define_slang } explodes with "No such method 'sink' for invocant of type 'Perl6::Grammar'. Did you mean 'sign'?"
00:43 eveo I would've thought both versions would function the same
00:47 eveo I think toasting is something to be done a week pre-release rather than daily or whatever... at least for now. Simply because there's no good way to indicate which modules got fixed up and have PRs awaiting and don't need any more checking. You can't really mark them in DB, because what if another failure was introed :/
00:52 eveo And this burn is due to crappy tests. Testing X::NYI exception's exact output https://toast.perl6.party/module?module=Grammar::BNF&amp;commit=2017.05-393-g8b86b50
00:58 MasterDuke i don't actually see a difference between expected and got there. whitespace?
00:59 eveo Old version has rogue space at the end
01:00 eveo m: use Test; ok 1, "foo\nbar\nber"
01:00 camelia rakudo-moar 8b86b5: OUTPUT: «ok 1 - foo␤bar␤ber␤»
01:01 eveo we should probably handle this case; when desc is splitting over multiple lines
01:02 MasterDuke heh, probably not going to happen all that frequently. but yeah, still good to handle it
01:04 eveo It did happen to me just now indirectly. I split a regex for `message` in `throws-like` on multiple lines and `throws-like` used its .gist()
01:05 eveo buggable: author jonathanstowe
01:05 buggable eveo, Found 62 dists for jonathanstowe. See https://temp.perl6.party/buggable/05351160189697341497143148.html
01:06 eveo Wonder if RabidGravy will have a heart attack if I send him 62 PRs fixing broken travis files that still use panda :}
01:21 eveo hm. can't connect to my toaster VM anymore after rebooting it. "ssh: connect to host 104.154.66.115 port 22: Connection refused"
01:21 eveo Wonder if it's a rogue module messing something up
01:22 eveo nm... now it works. Stupid google
01:30 ugexe is there a concise way to write a file lock + code block + unlock similar to Lock.protect({ ... }) ?
01:31 eveo nope
01:32 eveo Man, Temp::Path is now failing its t/03-DESTROY.t tests but only while running zef both with zef --/tap-harness --verbose test . and with tap harness, but I can't gett it to output verbose output to see what the actual failure is
01:35 * eveo installs a custom zef
01:35 ugexe go one step further
01:35 ugexe --/tap-harness --/prove
01:36 ugexe this will run them with `perl6` command directly
01:37 eveo Well, I popped 'vl' command to Zef::Service::Shell::prove and.... now the tests doesn't fail :(
01:37 eveo ZofBot: quantum fail
01:37 ZofBot eveo, 09 cusr 119
01:37 eveo -vlr arg I mean
01:38 eveo :S
01:39 eveo prove -e 'perl6 -Ilib' -r t/03-DESTROY.t  fails  prove -e 'perl6 -Ilib' -vlr t/03-DESTROY.t  succceeds
01:39 ugexe lol
01:40 eveo "Segmentation fault" ahhhh
01:47 eveo Looks like another face of https://rt.perl.org/Ticket/Display.html?id=131510#ticket-history bug. Removing `use lib <lib>` inside the test file and using solely -Ilib avoids the issue
01:47 MasterDuke have a stacktrace or valgrind output for it?
01:47 MasterDuke if not, could try mentioning it to dogbert17, he's good at getting that info
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 | For toolchain/installation stuff see #perl6-toolchain | For MoarVM see #moarvm
01:54 ugexe it might help if you include in that ticket the output with RAKUDO_MODULE_DEBUG=1
01:55 ugexe that should technically be enough to figure out what is going wrong
01:56 ugexe for the -Ilib / use lib <lib> thing
02:00 eveo Doesn't look like it wants to segfault with it enabled
02:00 ugexe well, i have a good idea what it is then
02:01 ugexe its the `run` that does precomp, and its the bug that has to do with stderr/stdout buffer, which one you read first, and which one you close first
02:01 eveo It segfaults after running some tests tho. Like this is one of the outputs: https://rt.perl.org/Ticket/Display.html?id=131510#txn-1465483
02:01 ugexe the prove thing would be related because -v probably adds a bunch of extra stuff to stderr
02:02 eveo actually, seems to consistently segfault like that, after starting 3rd test grup
02:03 ugexe yea, and does it change if you rm -rf lib/.precomp ?
02:03 eveo It didn't segfault after removing it, but next run segfaulted at the same place
02:04 ugexe yep
02:04 ugexe so there should be a difference in RAKUDO_MODULE_DEBUG loading
02:04 ugexe specifically the precomp-repo it tries to use
02:08 ugexe if precomp can switch to proc::async it might fix some of these issues
02:08 eveo Ah, cool. I believe Proc will soon be made in terms of Proc::Async
02:09 ugexe its mostly just once proc::async exists for jvm, so hopefully soon
02:11 ugexe then zef will switch back to proc::async too, so hopefully less problems all around
02:48 Geth ¦ rakudo: MasterDuke17++ created pull request #1098: Say hash name when assigning value of wrong type
02:48 Geth ¦ rakudo: review: https://github.com/rakudo/rakudo/pull/1098
05:18 Geth ¦ nqp: 7478e1b389 | (Samantha McVey)++ | tools/build/MOAR_REVISION
05:18 Geth ¦ nqp: [unicode-grant] Bump Moar to get improved support for Prepend/RI
05:18 Geth ¦ nqp:
05:18 Geth ¦ nqp: Bump MoarVM to get fully working support for the new Unicode 9.0
05:18 Geth ¦ nqp: property `Prepend` as well as get much better Regional Indicator
05:18 Geth ¦ nqp: functionality!
05:18 Geth ¦ nqp: review: https://github.com/perl6/nqp/commit/7478e1b389
05:18 Geth ¦ nqp: version bump brought these changes: https://github.com/MoarVM/MoarVM/compare/2017.05-71-gad6ab26f...2017.05-76-gba6725f3
05:19 Geth ¦ rakudo/nom: 56e71d5925 | (Samantha McVey)++ | tools/build/NQP_REVISION
05:19 Geth ¦ rakudo/nom: [unicode-grant] Bump Moar/NQP to get improved support for Prepend/RI
05:19 Geth ¦ rakudo/nom:
05:19 Geth ¦ rakudo/nom: Bump MoarVM to get fully working support for the new Unicode 9.0
05:19 Geth ¦ rakudo/nom: property `Prepend` as well as get much better Regional Indicator
05:19 Geth ¦ rakudo/nom: functionality!
05:19 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/56e71d5925
05:19 Geth ¦ rakudo/nom: version bump brought these changes: https://github.com/perl6/nqp/compare/2017.05-149-gb96a0afe7...2017.05-172-g7478e1b38
05:20 samcv yay
05:38 dalek joined #perl6-dev
06:14 timotimo joined #perl6-dev
06:25 ugjka joined #perl6-dev
08:15 dct joined #perl6-dev
08:16 [Tux] This is Rakudo version 2017.05-394-g56e71d592 built on MoarVM version 2017.05-76-gba6725f3
08:16 [Tux] csv-ip5xs        2.894
08:16 [Tux] test            13.120
08:16 [Tux] test-t           4.381 - 4.394
08:16 [Tux] csv-parser      13.664
09:00 vendethiel joined #perl6-dev
10:36 bartolin joined #perl6-dev
11:36 bartolin joined #perl6-dev
12:08 eveo wonder why Proc::Async.kill doesn't always kill. Another module seems to be hanging now. They're all supposed to get killed after 5 minutes
12:09 eveo and Proc::Q sends SIGTERM first and a second later SIGSEGV: https://github.com/zoffixznet/perl6-Proc-Q/blob/master/lib/Proc/Q.pm6#L46-L47
12:09 eveo But that doesn't help, eventhough when I send SIGTERM from htop, the process dies and the toasting run continues then
12:10 MasterDuke jnthn: do you have any suggestions for https://github.com/rakudo/rakudo/pull/1098 ? making `key` also Mu doesn't work (e.g., `my Str %h{Int}; say %h<a> = "b"` succeeds, where now (and with the PR) it complains about `binding to parameter 'key'`)
12:10 cognominal joined #perl6-dev
12:22 dogbert17 eveo: do you have any idea why the signature for the coercion method Supply.Supply is declared like this 'method Supply(Supply:) { self }'? Why not method Supply(Supply:D) { self } ?
12:25 eveo don't know
12:26 dogbert17 looks a bit odd but I'm probably missing something
12:26 dogbert17 m: Supply.Supply
12:26 camelia rakudo-moar 56e71d: ( no output )
12:26 dogbert17 m: List.List
12:26 camelia rakudo-moar 56e71d: ( no output )
13:04 [Tux] 88.t still not 100%
13:04 [Tux] Error encoding UTF-8 string: could not encode codepoint 1149193 (0x118909), codepoint out of bounds. Cannot encode higher than 1114111 (0x10FFFF)
13:04 [Tux] in block <unit> at 88.t line 21
13:15 lucasb joined #perl6-dev
13:26 Undercover joined #perl6-dev
13:26 SourceBaby joined #perl6-dev
13:52 cono m: my $x = <a b c a b a>.BagHash; $x.sort({$x{$^a} <=> $x{$^b}}).say
13:52 camelia rakudo-moar 56e71d: OUTPUT: «(b => 2 a => 3 c => 1)␤»
13:53 cono is it a bug?
13:56 jnthn cono: Yes, in your code :)
13:57 jnthn $^a and $^b are Pair objects, not keys
13:57 jnthn m: my $x = <a b c a b a>.BagHash; $x.sort({ $^a.value <=> $^b.value }).say
13:57 camelia rakudo-moar 56e71d: OUTPUT: «(c => 1 b => 2 a => 3)␤»
13:57 jnthn m: my $x = <a b c a b a>.BagHash; $x.sort(*.value).say # shorter
13:57 camelia rakudo-moar 56e71d: OUTPUT: «(c => 1 b => 2 a => 3)␤»
13:58 lizmat ^^^ also a lot faster  :-)
13:58 lizmat as it does a Schwartzian transform under the hood
13:59 cono nice, thanks! :)
14:02 b2gills m: my $x = <a b c a b a b>.BagHash; $x.sort({ .value, .key }).say # you might want to sort by value, then by key
14:02 camelia rakudo-moar 56e71d: OUTPUT: «(c => 1 a => 3 b => 3)␤»
14:03 cono wow, even better :)
14:04 Geth ¦ rakudo/nom: 5c56e9e799 | (Elizabeth Mattijsen)++ | 3 files
14:04 Geth ¦ rakudo/nom: Fix various issues with Seq.(method)
14:04 Geth ¦ rakudo/nom:
14:04 Geth ¦ rakudo/nom: Spotted by lucasb++
14:04 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5c56e9e799
14:26 cono is it possible to localise Pair in BagHash? something like local $h{key} = 42; Tried temp but doesn't work for me :/
14:29 lizmat cono: what are you trying to achieve ?
14:30 jnthn m: my %h is BagHash; %h<key> = 42; { temp %h<key> = 69; say %h<key> }; say %h<key>
14:30 camelia rakudo-moar 5c56e9: OUTPUT: «69␤42␤»
14:31 cono hm.. strange
14:32 cono thanks, will look why it doesn't work in my code :(
14:38 dogbert17 jnthn: do you know why the signature for Supply.Supply lacks a 'D'? method Supply(Supply:) { self }
14:40 lizmat dogbert17: could be an oversight
14:41 dogbert17 lizmat: I was going to document it but that part confused me so I had to ask
14:42 lizmat feels to me it should create a Supply much like (1,2,3).Supply, except it would only produce a single Supply type object
14:43 dogbert17 m: say Supply.Supply.WHAT
14:43 camelia rakudo-moar 5c56e9: OUTPUT: «(Supply)␤»
14:45 * dogbert17 wonders if the doc should say 'returns the invocant'
14:46 eveo dogbert17: fwiw, there are some inconsistencies in the codebase in that area. For example Rat.Rat throws, while Date.Date returns self, while Set.Set returns set(Set), while Instant.Instant doesn't even exist. And there's no one-fits-all solution, so the entire codebase should be checked for this stuff and then figured out what SomeObj.SomeObj is meant to return
14:47 eveo like Set.Set is already good as lizmat++ stated above Supply:U.Supply should probably do the same, and all the types that contain stuff should probably do that for :U of self.
14:58 dogbert17 eveo: thx for the information
14:59 jnthn m: dd Supply.Supply
14:59 camelia rakudo-moar 5c56e9: OUTPUT: «Supply␤»
14:59 jnthn I think oversight; it should have the :D
15:00 dogbert17 anyone wants to fix it or should I, i.e. PR?
15:00 nine eveo: maybe the rule should be X.X should return X unless it's a container type, then it should return an X containing an X
15:03 dogbert17 Supply question spree :) does anyone remember if Supply.squish used to have an ':expires' named param? It's in the docs but I can't see it in the src
15:05 * eveo doesn't know which types are container types
15:05 nine eveo: I mean listy and hashy things
15:06 nine dogbert17: no, it never had one. Maybe copy and pasted from .unique?
15:08 dogbert17 nine: thx a lot. I'll fix it
15:15 ggoebel joined #perl6-dev
15:16 Geth ¦ rakudo/nom: 52d39576f7 | (Elizabeth Mattijsen)++ | 8 files
15:16 Geth ¦ rakudo/nom: Make Supply.Supply do the right thing
15:16 Geth ¦ rakudo/nom:
15:16 Geth ¦ rakudo/nom: This also involved making .Supply a multi.  This breaks 2 questionable
15:16 Geth ¦ rakudo/nom: spectests.
15:16 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/52d39576f7
15:22 dogbert17 lizmat++
15:24 Geth ¦ roast: 90d148ce42 | (Elizabeth Mattijsen)++ | 2 files
15:24 Geth ¦ roast: Fix suspicious Supply.(list|sort) tests
15:24 Geth ¦ roast: review: https://github.com/perl6/roast/commit/90d148ce42
15:26 Geth ¦ roast/6.c-errata: acc72051f6 | (Elizabeth Mattijsen)++ | 2 files
15:26 Geth ¦ roast/6.c-errata: Fix suspicious Supply.(list|sort) tests
15:26 Geth ¦ roast/6.c-errata: review: https://github.com/perl6/roast/commit/acc72051f6
15:27 lizmat afk&
15:29 geekosaur joined #perl6-dev
16:24 eveo Retoast on 2017.05-394-g56e71d5 with some minor modifications to toasting to eliminate toast issues: https://toast.perl6.party/
16:25 eveo This time 9 burnt modules. Tho some of them I sent PRs for already
16:25 eveo Also added total failures on latest commit. Says "On latest toasted commit, 210 out of 829 (25.33%) appear to be unusable modules (at least on the system that toasting was done on)."
16:26 eveo Probably 10 percentage points too high than reality. I still had to kill some modules manually because I don't know why Proc::Q fails to kill them after timeout
16:27 eveo + some modules need C libs that I don't (yet) have installed.
16:33 camelia joined #perl6-dev
17:17 BenGoldberg joined #perl6-dev
17:59 Geth ¦ rakudo: MasterDuke17++ created pull request #1099: Speed up StrDistance 25%
17:59 Geth ¦ rakudo: review: https://github.com/rakudo/rakudo/pull/1099
18:53 * BenGoldberg wonders if for (Range) gets optimized into a c-style loop.
18:59 MasterDuke Ranges do get some optimization in Optimize.nqp, but they still end up slower than a c-style loop
19:05 timotimo they only rarely actually get the optimization; the qast around for loops has changed often and the optimizer hasn't been changed to match
19:06 timotimo also, it only works for literal ranges with constant endpoints
19:20 AlexDaniel joined #perl6-dev
19:23 BenGoldberg MasterDuke, Depending on how long it takes to call @s.elems, it might be good to change those loops to: loop (my int $i = @s.elems; $i >= 1; $i = $i - 1), to avoid the repeated method call.
20:33 dogbert17 m: my $list := <d e f>; sub b(**@b) { @b.perl.say }; b([1, 2]) # this is doc'ed as returning «[[1, 2]]␤», who's right, Camelia or the doc?
20:33 camelia rakudo-moar 52d395: OUTPUT: «5===SORRY!5=== Error while compiling <tmp>␤Missing « or »␤at <tmp>:2␤------> 3»,7⏏5 who's right, Camelia or the doc?␤    expecting any of:␤        infix␤        infix stopper␤»
20:34 dogbert17 m: my $list := <d e f>; sub b(**@b) { @b.perl.say }; b([1, 2])
20:34 camelia rakudo-moar 52d395: OUTPUT: «[[1, 2],]␤»
22:10 Geth ¦ rakudo/nom: 2e041b068f | MasterDuke17++ | src/core/StrDistance.pm
22:10 Geth ¦ rakudo/nom: Speed up StrDistance 25%
22:10 Geth ¦ rakudo/nom:
22:10 Geth ¦ rakudo/nom: By using C-style nexted loops instead of X-ing two lists.
22:10 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/2e041b068f
22:10 Geth ¦ rakudo/nom: 9185fa2c58 | MasterDuke17++ | src/core/StrDistance.pm
22:10 Geth ¦ rakudo/nom: Pull array length checks out of the nested loops
22:10 Geth ¦ rakudo/nom:
22:10 Geth ¦ rakudo/nom: A little bit faster. BenGoldberg++
22:10 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/9185fa2c58
22:10 Geth ¦ rakudo/nom: bdf2019d49 | lizmat++ (committed using GitHub Web editor) | src/core/StrDistance.pm
22:10 Geth ¦ rakudo/nom: Merge pull request #1099 from MasterDuke17/minor_optimization_to_StrDistance
22:10 Geth ¦ rakudo/nom:
22:10 Geth ¦ rakudo/nom: Speed up StrDistance 25%
22:10 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/bdf2019d49
22:20 MasterDuke lizmat: thanks. while you're looking at PRs, have any thoughts/suggestions for https://github.com/rakudo/rakudo/pull/1098 ?
22:21 lizmat MasterDuke: not at the moment: that feels like I would have to look into it properly, which at my current state of mind, is not a wise thing to do
22:21 lizmat the other PR was rather simpler  :-)
22:22 lizmat MasterDuke: will look at it tomorrow after some sleep
22:22 MasterDuke heh, no worries
22:23 MasterDuke ugh, i only just now spotted the typo in the recent commit message. "nexted loops"
22:34 lizmat m: class A is Int {}; my A(Int) $a = 42 # this is really an NYI, right ?
22:34 camelia rakudo-moar bdf201: OUTPUT: «5===SORRY!5=== Error while compiling <tmp>␤Coercion A(Int) is insufficiently type-like to qualify a variable␤at <tmp>:1␤------> 3class A is Int {}; my A(Int) $a7⏏5 = 42 # this is really an NYI, right ?␤    expecting any of:␤        co…»
22:35 MasterDuke m: my Int() $a = "2" # similar to this, right?
22:35 camelia rakudo-moar bdf201: OUTPUT: «5===SORRY!5=== Error while compiling <tmp>␤Coercion Int(Any) is insufficiently type-like to qualify a variable␤at <tmp>:1␤------> 3my Int() $a7⏏5 = "2" # similar to this, right?␤    expecting any of:␤        constraint␤»
22:35 lizmat MasterDuke: yeah, A() is the same as A(Any)
22:36 MasterDuke huh, thought the non-paramterized coercion threw a NYI
22:47 eveo With the way our current coersers work Int would need an A method.
22:48 eveo m: class A is Int {}; my (A(Int) $a) := \(42)
22:48 camelia rakudo-moar bdf201: OUTPUT: «Unable to coerce value for '$a' from Int to A; no coercion method defined␤  in block <unit> at <tmp> line 1␤␤»
22:48 eveo m: use MONKEY; augment class Int { method A { A.new } }; class A is Int {}; my (A(Int) $a) := \(42); dd $a
22:48 camelia rakudo-moar bdf201: OUTPUT: «5===SORRY!5=== Error while compiling <tmp>␤Illegally post-declared type:␤    A used at line 1␤␤»
22:48 eveo m: use MONKEY; class A {...}; augment class Int { method A { A.new } }; class A is Int {}; my (A(Int) $a) := \(42); dd $a
22:48 camelia rakudo-moar bdf201: OUTPUT: «A $a = 0␤»
22:50 eveo m: class abs {}; my (abs(Int) $a) := \(-42); dd $a
22:50 camelia rakudo-moar bdf201: OUTPUT: «Int $a = 42␤»
22:50 eveo hehe
22:51 jnthn *sigh* coercion really needs another look
22:52 * geekosaur still has notes from last time it came up... but not much on possible answers
22:52 jnthn I think based on what the synopses speculated, though, we should really compile A(value) as `value.can('A') ?? value.'A'() !! value.new(A)`
22:52 jnthn d'oh
22:52 jnthn `value.can('A') ?? value.'A'() !! A.new(value)` I meant :)
22:53 jnthn Then you just write a constructor taking the appropriate positional in the target.
22:55 lizmat night!
22:55 timotimo that shouldn't be hard to implement, even
22:55 timotimo night lizmat
22:55 eveo night
22:55 jnthn 'night lizmat
23:08 BenGoldberg joined #perl6-dev
23:14 * jnthn gets some rest also
23:14 timotimo me, too

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