eveo ZofBot: drumroll please! 00:05
ZofBot eveo, Perl 6 code stays "GLOBAL" in that situation
eveo "Status: 36 (0.04%) of modules got burnt."
36 modules work on 2015.05 but not on near-HEAD
barring any flops and bugs in my toaster
MasterDuke and the reverse number? 00:06
eveo 72 (0.09%) of modules
(failed on 2017.05 but work on HEAD)
that % is missing multiplication by 100 00:07
MasterDuke twice as many now work as now fail, better than the other way around 00:17
eveo heh 00:19
Aaand it's up: toast.perl6.party/ 01:20
Powered by Tardigrade \o/
Still need to add a feature where you can examine STDOUT/STDERR of the install session to see why it failed. 01:21
MasterDuke cool. and you plan to run it for every commit? or just once a day? 01:25
eveo Once I figure out what's hanging up the toasting run and it can do a run all on it's on, it'll do it continuously, prioritizing newest commits (and building older ones if there aren't any unbuilt new ones) 01:26
And if all are built, it'll rebuild them (to test for module updates). It'll only be doing all the commits since last release. 01:27
MasterDuke all the modules in the ecosystem? 01:30
eveo Yup
And making it test on more than one OS is also a possibility in the future.
MasterDuke nice
approx how long does a run take? 01:31
eveo ~50 minutes on a 24core/24GB ram box. The continuous runs will run on a 2-core box tho 01:32
MasterDuke oof, that'll probably be a relatively linear slow down, so ~10 hours 01:34
eveo :) 01:35
MasterDuke wonder if you could apply for a grant just to pay for running it on a larger VM? 01:42
eveo meh 01:47
if it does 1 run a day on latest commit that's already more than enough valuable data
MasterDuke true
Geth rakudo: MasterDuke17++ created pull request #1096:
Suggest methods when missing method in optimizer
02:05
rakudo/nom: c249723422 | MasterDuke17++ | 2 files
Suggest methods when missing method in optimizer

Pass the right thing as the invocant so it can be introspected for possible suggestions.
Also add a '!' to the beginning of the name of private methods in the message saying it doesn't exist to be consistent with names in suggestions.
Should finish up resolving
  rt.perl.org/Ticket/Display.html?id=123078
02:10
rakudo/nom: c356d88f94 | (Zoffix Znet)++ (committed using GitHub Web editor) | 2 files
Merge pull request #1096 from MasterDuke17/suggest_methods_when_missing_method_caught_by_optimizer

Suggest methods when missing method in optimizer
samcv eveo, you removed WWW::Google::Time but i still seem to be using it fine without it blocking me? do you have more details about why it wsa removed? 02:13
eveo Because the box where I used it heavily on newyears of 2017 is now "blacklisted" by Google. It gives me the captcha on any non-basic query (e.g. "wiki whatever"). 02:15
It's pointless to use for anything other most rudimentary stuff and I have no interest in maintaining software that's against Google's TOS
It = module 02:16
samcv oh. well i'm not blacklisted :\ hm. well i guess i'll just use the repo then
thanks for the info 02:17
eveo It's only a matter of time 'till google's AI gets smarter. The module was fine on 2016 new years party. Now it's smart enough to detect group use. Next, it'll detect when a single person's violating their ToS 02:19
And that captcha is annoying AF. Really good deterrent IMO.
It's not the "click to prove not a robot" but where you have to click all the squares with mountains or store fronts or signs. 02:20
samcv yeah, fair enough
i hate those capchas :(
eveo Looks like the current toast data is a bit bogus. For example, it's listed this module as burnt and this is its install output: gist.github.com/zoffixznet/a78fb39...f4a361d95e 02:27
ugexe just need WWW::MechanicalTurk
eveo heh
I think the db builder looks for string 'FAIL' and here there isn't any, so it thought the module installed fine
MasterDuke can't go off the exit code? 02:28
eveo Probably can 02:29
A task for another day
eveo calls it a day 02:30
ugexe hmm you can probably avoid that problem (getting served invalid json from p6c) and improve performance by disabling auto-update for p6c in zef config 02:34
eveo I'll look into that. Thanks. 02:36
ugexe ecosystem-api.p6c.org/projects.json 02:37
i keep getting json parse errors from ff lol 02:38
thats the real problem
eveo samcv: and well, you could fork it and add to ecosystem and maintain it too 02:40
eveo goes to sleep
ugexe hmm the full error looks like it should have been `note "Failed to update $!name mirror {$_ ~~ JSONException??'Invalid JSON'!!$_}"` 02:45
well maybe not. im trying to figure out why zef is not trying the next mirror (which is *my* copy of th eecosystem which is still valid) 02:49
heh it rendered once out of many retries 02:51
[Tux] This is Rakudo version 2017.05-391-gc356d88f9 built on MoarVM version 2017.05-71-gad6ab26f 07:53
csv-ip5xs 2.916
test 13.420
test-t 4.380 - 4.423
csv-parser 13.481
lizmat Files=1204, Tests=61802, 223 wallclock secs (13.47 usr 5.03 sys + 1359.45 cusr 122.72 csys = 1500.67 CPU) 09:36
eveo booo toaster viewer "leaks" 129MB of RAM on each page load :/ 11:09
I seem to have very bad luck with Perl 6 and web apps. 11:10
jnthn Why "leaks" and not leaks? 11:11
Either it's leaking or it's converging on a suitable amount
eveo Because I'm unsure whether there's not just some piece of code that keeps stuff it's meant to throw away :) 11:12
jnthn That'd still be a leak. :) 11:13
eveo heh
jnthn But yeah, not a VM-level leak.
lizmat perhaps we need an installable Mu.DESTROY to at least keep track of things that *do* get collected :-) 11:14
jnthn lizmat: That's a pretty invasive way to do it, alas, because the moment something has a DESTROY it lives at least one collection longer
--profile=heap and feed it to moar-ha can tell you what is surviving after each collection 11:15
(moar-ha being installed using zef install App::MoarVM::HeapAnalyzer)
129 MB is a huge amount to leak, though o.O 11:17
eveo It's loading a 30MB sqlite db on each load.
maybe something in DBIish 11:18
eveo will look at it later
jnthn Hm, maybe it doesn't release that
dogbert17 o/ 11:24
just noticed that Supply.on-close is not documented in Supply.pod6 11:25
Any suggestions as to what it should say, atm I have: 11:27
method on-close(Supply:D: &on-close --> Supply:D)
Returns a new supply which will run C<&on-close> when ...
"one of its Taps is closed"? 11:29
jnthn Returns a new C<Supply> which will run C<&on-close> whenever a <Tap> of that C<Supply> is closed. This includes if further operations are chained on to the C<Supply> (for example, C<$supply.on-close(&on-close).map(*.uc)>). When using a C<react> or C<supply> block, using the L<CLOSE> phaser is usually a better choice. 11:32
dogbert17 jnthn++, many thanks 11:33
do you remember if you refactored/removed/added more more methods Ć­n 2015, i.e. how correct do you believe that the Sypply docs are? 11:34
jnthn I'd have to go through them, I think that many things have been fixed up though 11:35
I mean, the Supply => Supplier things have been
dogbert17 thanks for looking 11:39
docs have definitely improved, compared to say a year ago, but there are still a few holes here and there (plus 260 doc issues, grr) 11:46
Geth rakudo: MasterDuke17++ created pull request #1097:
Test suggestions of misspelled method names
11:50
rakudo/nom: 9b8d135827 | MasterDuke17++ | t/05-messages/01-errors.t
Test suggestions of misspelled method names
11:54
rakudo/nom: 8b86b50046 | (Zoffix Znet)++ (committed using GitHub Web editor) | t/05-messages/01-errors.t
Merge pull request #1097 from MasterDuke17/test_method_suggestions

Test suggestions of misspelled method names
lizmat afk until much later& 11:57
dogbert17 there was a discussion a couple of days ago wrt 'redo' started by juerd. He pointed out that the example docs.perl6.org/syntax/redo was broken. Should I change it to : 12:18
loop {
my $x = prompt("Enter a number");
redo unless $x ~~ /\d+/;
last;
}
or is this not idiomatic enough?
eveo last if ... 12:21
It'll redo automatically 12:22
Which makes it a bad example for redo, I guess :)
dogbert17 :)
Geth roast: 4bfd6d2374 | MasterDuke17++ | S32-exceptions/misc.t
X::Method::NotFound shouldn't die with no message

For RT #131492
12:57
synopsebot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=131492
dogbert17 travis seems to suck today 13:06
speaking of Supplies, I saw that jnthn had written another excellent piece of documentation wrt Supply.migrate (github.com/perl6/doc/issues/1344). Guess we should add that to Supply.pod6 :) 13:08
AlexDaniel MasterDuke++ 13:47
m: say ā€˜fooā€™.starts-wizh(ā€˜fā€™) 13:48
camelia No such method 'starts-wizh' for invocant of type 'Str'. Did you mean 'starts-with'?
in block <unit> at <tmp> line 1
AlexDaniel \o/
eveo m: dd "".split("=", 2) Ā«||=Ā« '' 14:11
camelia Non ast passed to WANTED: NQPMu
Non ast passed to WANTED: NQPMu
Weird node in analyze: NQPMu
===SORRY!===
Unknown QAST node type NQPMu
eveo rt.perl.org/Ticket/Display.html?id=131552 14:12
m: dd "".split("=", 2) Z||= '' 14:13
camelia ===SORRY!===
Cannot find method 'ann' on object of type NQPMu
AlexDaniel at least it says ā€œsorryā€ :) 14:21
eveo Detail views with STDERR/STDOUT are now available for toaster toast.perl6.party/ 14:26
And yeah, I mixed up args when toasting and STDERR/STDOUT are swapped ATM 14:27
Looks like a lot of burnt toast is because when I toasted 2015.05 the ecosystem JSON issue happened and those registered as Succ incorrectly
ZofBot: time to re-toast!
ZofBot eveo, Cannot resolve caller rt107638(1); none of these signatures match:
eveo Anyone got .cpanreporter/config.ini file for Zef::CPANReporter ? Would be nice to send reports while toasting, but ATM it just tells me it couldn't send a report 14:46
ugexe email_from=foo@bar.com 14:48
eveo That's it? 14:58
Then maybe that PR that just got merged should instead die/warn saying "Found no email in your config file" 14:59
Damn. Having no luck finding which modules beg for github password when installing :/ 15:00
and more importantly why, so I could avoid it :/
ugexe the 'why' is because the source-url is wrong almost always 15:02
eveo Wrong how? I dumped source URLs from ecosystem json and failing to find any modules that beg for passwords based on differnet types of source urls 15:03
ugexe i just added a default email of email_from=anon@mailinator.com and added a die if .cpanreporter/config.ini exists but is missing email_from= 15:04
git clone github.com/far/shit
asks for credentials
eveo Oh, awesome. ugexe++ 15:05
mst ugexe: being able to identify which smoker is which and contact the author is important 15:09
ugexe: please don't add that default
eveo Well, `git clone github.com/z/z` does ask me for pass, but I can't find any module that causes it with for i in $(perl6 -MWWW -e '.say for jget("ecosystem-api.p6c.org/projects.json...source> || .<source-url>}).grep: {.so and .starts-with: "http"}' | sort); do echo "Trying '$i'"; git clone $i; done 15:15
ugexe well you'd have to test the git:// ones as well 15:16
but s{git://}{}
also i think it asks for a pass if you exceed your request limit 15:17
eveo Oh, yeah, finally got a match. github.com/Altai-man/perl6-Slang-Kazu 15:18
ugexe ok so no default email, but it will die and tell you it cant find email_from... in ~/.cpantesters/config.ini 15:19
s/cpantesters/cpanreporter/ 15:20
mst ugexe: that would be much better, I think 15:22
dogbert17 sigh, can't get any doc changes past travis due to timeouts 16:14
does Supply.skip(<number>) return a Supply that will throw away the first <number> messages that it receives instead of emitting them? 16:50
b2gills m: for 1..5 { .say; redo if $_ == 2 && ++$ < 3 } 17:05
camelia 1
2
2
2
3
4
5
ugexe m: my $supplier = Supplier.new; my $supply = $supplier.Supply; $supply = $supply.skip(3); $supply.tap({ say $_ }); $supply.skip(3); $supplier.emit($_) for 1..10; # dogbert17 looks like it 17:07
camelia 4
5
6
7
8
9
10
dogbert17 ugexe: thanks, then I can write some docs for it and hope that Travis won't bog down again :) 17:08
ugexe: what do you think of this? gist.github.com/dogbert17/18e2818e...823397a70c 17:11
hmm, guess I should remove the second '$supply.skip(3);' 17:14
dogbert17 does that 17:15
ugexe $supply = $supply.skip(3); probably isn't the idiomatic way to do it, i just did it that way to show it wasn't a setter (with some extra code not in that example) 17:19
$supply .= skip(3), or my $supply = $supplier.Supply.skip(3) could arguably be used as well 17:20
dogbert17 I just commited it but do you think we should change the code example? 17:21
ugexe i'd just use whatever style is used by the other examples for Supply docs (which i dont know what that is) 17:24
dogbert17 ugexe: agreed 17:26
eveo Well, sent PRs for all 4-6 repos that had wrong URL that caused github to wait for pass and worked around it in the mean time with echo -e '#!/usr/bin/env perl6\nsay 42' > ~/bin/fake-ask-pass; chmod +x ~/bin/fake-ask-pass; echo 'export GIT_ASKPASS=~/bin/fake-ask-pass' >> ~/.bashrc 17:36
Pretty sure there are more wrong source URLs, but they didn't ask for passes and just failed 17:37
b2gills: was there an issue in that code? 17:50
b2gills no "redo" discussion from earlier
eveo Ah
dogbert17 bgills: can I steal your example for the docs? 17:51
b2gills It was meant more as inspiration for someone other than me to come up with something better, but I don't care, use it 17:53
dogbert17 cool, I'll put it in the docs for redo a little later unless your example do inspire someone to come up with something that's even better 17:57
eveo ugexe: does zef use ecosystem-api.p6c.org/projects.json ? Like that exact URL? I'm still getting JSON errors, even tho I made ecosystem writer write that file atomically :/ 18:01
ugexe yeah 18:06
i could not reproduce the problem with zef yesterday, even though firefox tells me there are errors parsing the json
eveo ugexe: how to turn autoupdate for p6c from command line? 18:07
turn off I mean
ugexe you cant, you have to `zef --help` and edit the config file shown
eveo OK
Thanks.
ugexe i *think* the ecosystem json is so big that the 5 second timeout is no longer enough to load it all 18:10
in that case switching the mirrors to use my ecosystem would work 18:12
eveo I'm running 40 zef procs at the same time BTW
eveo looks over some of the module failures in current toasting run 18:44
Looks like it needs to do three passes or something. 1 run -> take all failed and run them again -> repeat 1 more time -> the failures we currently have are most likely real failure and aren't just flops 18:45
Like DBIish failed due to NativeHelpers::Blob failure which is "The spawned command 'gcc -shared -fPIC -O3 -DNDEBUG -Wl,-rpath,"//home/cpan/toaster/build/nom/install/lib" -lm -lpthread -lrt -ldl -o lib02-cstruct.so 02-cstruct.o' exited unsuccessfully" 18:46
But the toaster itself is using DBIish that was successfully installed on the same rakudo commit on the same box already
heh, looks like this toaster doubles as a stresstester for zef too. Got a billion failures with "Must specify something as a path: did you mean '.' for the current directory? 18:58
in code at /home/cpan/toaster/build/nom/install/share/perl6/site/sources/517DB792F23156A0B0853D9058EA87B5266F5E7F (Zef::Repository::LocalCache) line 29
"
eveo turns off cache and tries again
looks like there's a race or something with cpan mirror update too gist.github.com/zoffixznet/964c8c2...e7689294ac 19:20
eveo turns that off as well
ugexe probably need to add file locking to reading/writing ecosystem index files 19:37
eveo Wonder what's causing dep resolution failure like this one gist.github.com/zoffixznet/0d60a0d...c886a12344 20:03
A few modules have that issue yet install just fine outside the toaster and also I notice it doesn't actually say which dep failed to resolve 20:04
Or this no extracting backend available error, despite the URL being just a plain http gist.github.com/zoffixznet/ebe7081...b685dd2c55 20:05
ohhhh 20:06
hm, nope. Thought it was a wrong URL that asked a pass, but it's right 20:07
fails on my other box too
ugexe it should say which dependencies were missing 20:09
github.com/ugexe/zef/blob/master/l...t.pm6#L155
same with the extraction error... its missing the "Maybe you need to enable one of the following backends: ..." message 20:10
Test::Spintax might be failing because its source-url does not start with git:// or end with .git 20:11
eveo ah
ugexe github.com/daleevans/perl6-Text-Sp.../4/commits :P 20:14
eveo oh heh 20:15
.ask tony-o tony-o/perl6-http-server-threaded and perl6/perl6-http-server-async appear to be the same module. Should one of them be removed from the ecosystem? 20:20
yoleaux eveo: I'll pass your message to tony-o.
ugexe thats confusing because thats two different modules. but yeah i understand both he and the perl6/ repo now contain both of those modules 20:30
Geth nqp/master: 11 commits pushed by pmurias++
review: github.com/perl6/nqp/compare/3f0b6...0898da50d7
22:01
nqp: 0eaf3cb8c0 | pmurias++ | src/vm/js/nqp-runtime/io.js
[js] Make stderr actually write to stderr
22:02
nqp: 8ec5932b6b | pmurias++ | src/vm/js/nqp-runtime/code-ref.js
[js] Make nqp::istype work on a CodeRef
eveo sweet. Blocked a couple of modules that were hanging toast run and just completed a run on HEAD + 2017.05, with double-retesting of failures, and the run took 159656.13user 5954.85system 2:53:43elapsed 1588%CPU (0avgtext+0avgdata 1245832maxresident)k 23:34
jnthn eveo++ 23:37
MasterDuke very cool
eveo db on site updated: toast.perl6.party/
17 burnt modules. That should be fairly accurate 23:38
jnthn "burnt" :D 23:40
eveo burnt toast :)
jnthn I was wondering why you were calling it toaster
Now it all makes sense :D
eveo because smoking is bad for you, so toasting :)
toasting =~= testing
jnthn mmmm...toasties 23:41
toast.perl6.party/module?module=Lo...3-g8b86b50 I think I know how to fix next week :)
eveo ok 23:42
jnthn (IO::Handle refactor fallout) 23:43
Given basically the entire internals of I/O handles changed in this release, I'm kinda relieved the fallout from that hasn't been bigger. :)
eveo Yeah :)
jnthn toast.perl6.party/module?module=Au...3-g8b86b50 looks IO-ish too, but maybe more in the bits you were twiddling with 23:44
eveo hm, weird this one says it's already installed: toast.perl6.party/module?module=Te...it=2017.05 'cause I'm using per-commit temp dir github.com/zoffixznet/perl6-Toaste...er.pm6#L48 and per-module `-to=` zef dir github.com/zoffixznet/perl6-Toaste...er.pm6#L61 23:45
ah, but not changing the dir when retrying previous failures. 23:50
jnthn Rest time here; 'night 23:53
eveo night 23:54