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 |