-
-
Notifications
You must be signed in to change notification settings - Fork 18.4k
Windows CI #23182
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Windows CI #23182
Conversation
https://dev.azure.com/pandas-dev/pandas/_build/results?buildId=1261&view=logs I cancelled the other builds. |
ci/azure-windows-36.yaml
Outdated
- matplotlib | ||
- numexpr | ||
- numpy=1.14* | ||
- openpyxl=2.5.5 | ||
- pyarrow | ||
- pyarrow=0.9.0 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I could reproduce #23180 and the first fix I tried (boost-cpp<1.67
) worked. Pinning pyarrow
is probably not gonna change things, because the offending error happens with 0.9.0
anyway.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
https://repo.continuum.io/pkgs/main/win-64/ has a package for pyarrow 0.9.0. I'm hoping that removing feather-format will keep us in main, not not conda-forge for these packages.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
But, if this fails I'll try pinning to boost-cpp<1.67
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It failed. Trying a boost-cpp pin now.
Welp, the arrow failure seems to be fixed (thanks @h-vetinari) But now I think our old friend #21786 is back perhaps?
cc @chris-b1. |
Codecov Report
@@ Coverage Diff @@
## master #23182 +/- ##
=======================================
Coverage 92.19% 92.19%
=======================================
Files 169 169
Lines 50956 50956
=======================================
Hits 46977 46977
Misses 3979 3979
Continue to review full report at Codecov.
|
I think https://dev.azure.com/pandas-dev/pandas/_settings/agentqueues?queueId=3&_a=details may have the details of that worker, if that means anything to anyone. |
So the Regarding the |
Do pragmas get included in the code generated by Cython? Based on some limited testing / searching, I don't think they do... Regardless, I thought #21813 that, so maybe it's a different issue. |
c512f42 is a bit of a hammer. I don't intend to actually merge it. |
Remaining failures should be solved with:
c512f42 did work, but then that points to the same underlying error as in #21786, no? |
There's likely a little performance cost, because the call to isnan won't
be inlined, but otherwise might need to be applied everywhere.
…On Tue, Oct 16, 2018, 3:04 PM Tom Augspurger ***@***.***> wrote:
c512f42
<c512f42>
did work, but then that points to the same underlying error as in #21786
<#21786>, no?
Seems like it. @chris-b1 <https://github.com/chris-b1> is there a reason
you applied the isnan fix only in those places? Is using it everywhere
like I did a bad idea?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#23182 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AB1b_GBXGpt4pkQYlWisi0xSguOCcSD2ks5uljvJgaJpZM4XeZIq>
.
|
So, this (possible) perf hit would be on all platforms correct, not just windows with MSVC_VER < 1800? (How) do we know that the compiler doesn't inline it? I assume you discovered that when debugging originally... I'll try to be a bit more surgical in where we apply it |
Locally, with these changes
so that's not a great solution... Is there a way to define a function (or macro?) that winds up as if x == x on non-windows machines, and as the more complicated |
@TomAugspurger : Can't you leverage the pragma's used in cmath.h? |
I'm not sure. And I'm not sure how to convince the compiler that it should be inlined. |
Trying out 29f392c, but I don't know C / C++ so thoughts from others would be appreciated. I'm running ASV over the rolling benchmarks now. |
A couple questions: I see some new warnings in the build logs
I suppose it's fine, but should I explicitly cast the int to float first? |
ASV with this version looks a bit better maybe. Re-running those slow ones, to see if it's just noise.
|
- fastparquet | ||
- feather-format | ||
- matplotlib | ||
- numexpr | ||
- numpy=1.14* | ||
- openpyxl=2.5.5 | ||
- parquet-cpp | ||
- pyarrow | ||
- pytables |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could you try vc=14.0
(without the pragma stuff)? the last working build had that, while the newer ones have 14.1
. Plus, the notna
definition still didn't fix the errors in the WinPy36 build.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
the notna definition still didn't fix the errors in the WinPy36 build.
29f392c had a bug (not
isn't valid C++).
I think this turned up a real bug that's hitting users / will hit users, depending on how things are compiled. Probably best to fix it.
No changes on |
I think the MSVC versions this is being applied to is incorrect. The CI failure is on Version: VisualStudio/15.8.5+28010.2036. According to https://stackoverflow.com/a/70630/1889400, that's |
I guess I had a slight different fix in mind than @chris-b1. I'd like to replace all uses of On the versions affected by the bug, (MSVC 1910 through 1915?), we would need that to be On the versions not affected by the bug (other platforms, older MSVC, and in a future patched MSVC), that would be just So I'm thinking #if defined(_MSC_VER) && (_MSC_VER >= 1900) && (_MSC_VER < 2000)
#include <cmath>
namespace std {
__inline int isnan(double x) { return _isnan(x); }
__inline int signbit(double num) { return _copysign(1.0, num) < 0; }
__inline int notnan(double x) { return not isnan(x); }
}
#else
#include <cmath>
namespace std {
__inline int notnan(double x) { return x == x; }
}
#endif
#endif I'm not sure we even need the |
0b7dc84 attempts that. Reminder that I don't know what I'm doing here, and I don't have a windows machine, so this should get a close look from the experts :) |
Latest tries to work around
|
The azure 36 build passed. @chris-b1 do you have time today to take a look at the changes? |
Thanks for grinding through this, I'll have time to look later this
afternoon
…On Wed, Oct 17, 2018, 8:57 AM Tom Augspurger ***@***.***> wrote:
The azure 36 build passed. @chris-b1 <https://github.com/chris-b1> do you
have time today to take a look at the changes?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#23182 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AB1b_HtfUL7ujKuDrK8RFmc8y8qZ-Pugks5ulzcwgaJpZM4XeZIq>
.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me, I'll open a f/u issue for the MSVC bug
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice!
cc @jreback
Merging in a couple hours if no objections (cc @jreback if you haven't had a look yet) |
this was fine |
xref #23180
Trying to ensure we get the pyarrow from main, not conda-forge.