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 |