eveo Reporting with plugin: Zef::CPANReporter+{<anon|85479024>} 00:12
Use of uninitialized value of type Zef::CPANReporter in string context.
Methods .^name, .perl, .gist, or .say can be used to stringify it to something meaningful.
in method report at /home/cpan/.rakudobrew/moar-nom/install/share/perl6/site/sources/643D88410EFE62A5D6F3C68A2811502A3DD01FF4 (Zef::CPANReporter) line 18
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)
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:25
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
I would've thought both versions would function the same
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:47
And this burn is due to crappy tests. Testing X::NYI exception's exact output toast.perl6.party/module?module=Gr...3-g8b86b50 00:52
MasterDuke i don't actually see a difference between expected and got there. whitespace? 00:58
eveo Old version has rogue space at the end 00:59
m: use Test; ok 1, "foo\nbar\nber" 01:00
camelia ok 1 - foo
bar
ber
eveo we should probably handle this case; when desc is splitting over multiple lines 01:01
MasterDuke heh, probably not going to happen all that frequently. but yeah, still good to handle it 01:02
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:04
buggable: author jonathanstowe 01:05
buggable eveo, Found 62 dists for jonathanstowe. See temp.perl6.party/buggable/05351160...43148.html
eveo Wonder if RabidGravy will have a heart attack if I send him 62 PRs fixing broken travis files that still use panda :} 01:06
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
Wonder if it's a rogue module messing something up
nm... now it works. Stupid google 01:22
ugexe is there a concise way to write a file lock + code block + unlock similar to Lock.protect({ ... }) ? 01:30
eveo nope 01:31
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:32
eveo installs a custom zef 01:35
ugexe go one step further
--/tap-harness --/prove
this will run them with `perl6` command directly 01:36
eveo Well, I popped 'vl' command to Zef::Service::Shell::prove and.... now the tests doesn't fail :( 01:37
ZofBot: quantum fail
ZofBot eveo, 09 cusr 119
eveo -vlr arg I mean
:S 01:38
prove -e 'perl6 -Ilib' -r t/03-DESTROY.t fails prove -e 'perl6 -Ilib' -vlr t/03-DESTROY.t succceeds 01:39
ugexe lol
eveo "Segmentation fault" ahhhh 01:40
Looks like another face of rt.perl.org/Ticket/Display.html?id...et-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?
if not, could try mentioning it to dogbert17, he's good at getting that info
ugexe it might help if you include in that ticket the output with RAKUDO_MODULE_DEBUG=1 01:54
that should technically be enough to figure out what is going wrong 01:55
for the -Ilib / use lib <lib> thing 01:56
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
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: rt.perl.org/Ticket/Display.html?id...xn-1465483
ugexe the prove thing would be related because -v probably adds a bunch of extra stuff to stderr
eveo actually, seems to consistently segfault like that, after starting 3rd test grup 02:02
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
ugexe yep 02:04
so there should be a difference in RAKUDO_MODULE_DEBUG loading
specifically the precomp-repo it tries to use
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
ugexe its mostly just once proc::async exists for jvm, so hopefully soon 02:09
then zef will switch back to proc::async too, so hopefully less problems all around 02:11
Geth rakudo: MasterDuke17++ created pull request #1098:
Say hash name when assigning value of wrong type
02:48
nqp: 7478e1b389 | (Samantha McVey)++ | tools/build/MOAR_REVISION
[unicode-grant] Bump Moar to get improved support for Prepend/RI

Bump MoarVM to get fully working support for the new Unicode 9.0 property `Prepend` as well as get much better Regional Indicator functionality!
05:18
Ā¦ nqp: version bump brought these changes: github.com/MoarVM/MoarVM/compare/2...-gba6725f3
rakudo/nom: 56e71d5925 | (Samantha McVey)++ | tools/build/NQP_REVISION
[unicode-grant] Bump Moar/NQP to get improved support for Prepend/RI

Bump MoarVM to get fully working support for the new Unicode 9.0 property `Prepend` as well as get much better Regional Indicator functionality!
05:19
rakudo/nom: version bump brought these changes: github.com/perl6/nqp/compare/2017....g7478e1b38
5c56e9e799 | (Elizabeth Mattijsen)++ | 3 files

Spotted by lucasb++
samcv yay 05:20
[Tux] This is Rakudo version 2017.05-394-g56e71d592 built on MoarVM version 2017.05-76-gba6725f3 08:16
csv-ip5xs 2.894
test 13.120
test-t 4.381 - 4.394
csv-parser 13.664
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:08
and Proc::Q sends SIGTERM first and a second later SIGSEGV: github.com/zoffixznet/perl6-Proc-Q...m6#L46-L47 12:09
But that doesn't help, eventhough when I send SIGTERM from htop, the process dies and the toasting run continues then
MasterDuke jnthn: do you have any suggestions for 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
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:22
eveo don't know 12:25
dogbert17 looks a bit odd but I'm probably missing something 12:26
m: Supply.Supply
camelia ( no output )
dogbert17 m: List.List
camelia ( no output )
[Tux] 88.t still not 100% 13:04
Error encoding UTF-8 string: could not encode codepoint 1149193 (0x118909), codepoint out of bounds. Cannot encode higher than 1114111 (0x10FFFF)
in block <unit> at 88.t line 21
cono m: my $x = <a b c a b a>.BagHash; $x.sort({$x{$^a} <=> $x{$^b}}).say 13:52
camelia (b => 2 a => 3 c => 1)
cono is it a bug? 13:53
jnthn cono: Yes, in your code :) 13:56
$^a and $^b are Pair objects, not keys 13:57
m: my $x = <a b c a b a>.BagHash; $x.sort({ $^a.value <=> $^b.value }).say
camelia (c => 1 b => 2 a => 3)
jnthn m: my $x = <a b c a b a>.BagHash; $x.sort(*.value).say # shorter
camelia (c => 1 b => 2 a => 3)
lizmat ^^^ also a lot faster :-) 13:58
as it does a Schwartzian transform under the hood
cono nice, thanks! :) 13:59
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 (c => 1 a => 3 b => 3)
cono wow, even better :) 14:03
cono is it possible to localise Pair in BagHash? something like local $h{key} = 42; Tried temp but doesn't work for me :/ 14:26
lizmat cono: what are you trying to achieve ? 14:29
jnthn m: my %h is BagHash; %h<key> = 42; { temp %h<key> = 69; say %h<key> }; say %h<key> 14:30
camelia 69
42
cono hm.. strange 14:31
thanks, will look why it doesn't work in my code :( 14:32
dogbert17 jnthn: do you know why the signature for Supply.Supply lacks a 'D'? method Supply(Supply:) { self } 14:38
lizmat dogbert17: could be an oversight 14:40
dogbert17 lizmat: I was going to document it but that part confused me so I had to ask 14:41
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:42
dogbert17 m: say Supply.Supply.WHAT 14:43
camelia (Supply)
dogbert17 wonders if the doc should say 'returns the invocant' 14:45
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:46
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:47
dogbert17 eveo: thx for the information 14:58
jnthn m: dd Supply.Supply 14:59
camelia Supply
jnthn I think oversight; it should have the :D
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
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:03
eveo doesn't know which types are container types 15:05
nine eveo: I mean listy and hashy things
dogbert17: no, it never had one. Maybe copy and pasted from .unique? 15:06
dogbert17 nine: thx a lot. I'll fix it 15:08
Geth rakudo/nom: 52d39576f7 | (Elizabeth Mattijsen)++ | 8 files
Make Supply.Supply do the right thing

This also involved making .Supply a multi. This breaks 2 questionable spectests.
15:16
dogbert17 lizmat++ 15:22
Geth roast: 90d148ce42 | (Elizabeth Mattijsen)++ | 2 files
Fix suspicious Supply.(list|sort) tests
15:24
roast/6.c-errata: acc72051f6 | (Elizabeth Mattijsen)++ | 2 files
Fix suspicious Supply.(list|sort) tests
15:26
lizmat afk& 15:27
eveo Retoast on 2017.05-394-g56e71d5 with some minor modifications to toasting to eliminate toast issues: toast.perl6.party/ 16:24
This time 9 burnt modules. Tho some of them I sent PRs for already 16:25
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)."
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:26
+ some modules need C libs that I don't (yet) have installed. 16:27
Geth rakudo: MasterDuke17++ created pull request #1099:
Speed up StrDistance 25%
17:59
BenGoldberg wonders if for (Range) gets optimized into a c-style loop. 18:53
MasterDuke Ranges do get some optimization in Optimize.nqp, but they still end up slower than a c-style loop 18:59
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:05
also, it only works for literal ranges with constant endpoints 19:06
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. 19:23
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 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
dogbert17 m: my $list := <d e f>; sub b(**@b) { @b.perl.say }; b([1, 2]) 20:34
camelia [[1, 2],]
Geth rakudo/nom: 2e041b068f | MasterDuke17++ | src/core/StrDistance.pm
Speed up StrDistance 25%

By using C-style nexted loops instead of X-ing two lists.
22:10
rakudo/nom: 9185fa2c58 | MasterDuke17++ | src/core/StrDistance.pm
Pull array length checks out of the nested loops

A little bit faster. BenGoldberg++
rakudo/nom: bdf2019d49 | lizmat++ (committed using GitHub Web editor) | src/core/StrDistance.pm
Merge pull request #1099 from MasterDuke17/minor_optimization_to_StrDistance

Speed up StrDistance 25%
MasterDuke lizmat: thanks. while you're looking at PRs, have any thoughts/suggestions for github.com/rakudo/rakudo/pull/1098 ? 22:20
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
the other PR was rather simpler :-)
MasterDuke: will look at it tomorrow after some sleep 22:22
MasterDuke heh, no worries
ugh, i only just now spotted the typo in the recent commit message. "nexted loops" 22:23
lizmat m: class A is Int {}; my A(Int) $a = 42 # this is really an NYI, right ? 22:34
camelia 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ā€¦
MasterDuke m: my Int() $a = "2" # similar to this, right? 22:35
camelia 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
lizmat MasterDuke: yeah, A() is the same as A(Any)
MasterDuke huh, thought the non-paramterized coercion threw a NYI 22:36
eveo With the way our current coersers work Int would need an A method. 22:47
m: class A is Int {}; my (A(Int) $a) := \(42) 22:48
camelia Unable to coerce value for '$a' from Int to A; no coercion method defined
in block <unit> at <tmp> line 1
eveo m: use MONKEY; augment class Int { method A { A.new } }; class A is Int {}; my (A(Int) $a) := \(42); dd $a
camelia 5===SORRY!5=== Error while compiling <tmp>
Illegally post-declared type:
A used at line 1
eveo m: use MONKEY; class A {...}; augment class Int { method A { A.new } }; class A is Int {}; my (A(Int) $a) := \(42); dd $a
camelia A $a = 0
eveo m: class abs {}; my (abs(Int) $a) := \(-42); dd $a 22:50
camelia Int $a = 42
eveo hehe
jnthn *sigh* coercion really needs another look 22:51
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)`
d'oh
`value.can('A') ?? value.'A'() !! A.new(value)` I meant :)
Then you just write a constructor taking the appropriate positional in the target. 22:53
lizmat night! 22:55
timotimo that shouldn't be hard to implement, even
night lizmat
eveo night
jnthn 'night lizmat
jnthn gets some rest also 23:14
timotimo me, too