-
-
Notifications
You must be signed in to change notification settings - Fork 18.4k
MacPython linux build failing #34114
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
Comments
These are the commits to pandas from the 1st to the 4th
|
@jbrockmendel or @WillAyd do you haev any guesses on this? Looking at @cython.cdivision
cdef int pqyear(int64_t ordinal, int freq):
cdef:
int year, quarter
get_yq(ordinal, freq, &quarter, &year)
return year Do you know where |
get_yq calls I'll look at this more closely after some caffeine |
Do you know of any reason why the lhs of those assign to array indices? I think more correct to assign to a dereferenced pointer which might get rid of the warning.
…Sent from my iPhone
On May 12, 2020, at 7:31 AM, jbrockmendel ***@***.***> wrote:
get_yq calls quarter[0] = DtoQ_yq(unix_date, &af_info, year) and in DtoQ_yq year is set with year[0] = dts.year
I'll look at this more closely after some caffeine
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.
|
Nvm that’s a Cython requirement.
https://cython.readthedocs.io/en/latest/src/userguide/language_basics.html#types
So probably fine
…Sent from my iPhone
On May 12, 2020, at 8:23 AM, William Ayd ***@***.***> wrote:
Do you know of any reason why the lhs of those assign to array indices? I think more correct to assign to a dereferenced pointer which might get rid of the warning.
Sent from my iPhone
>> On May 12, 2020, at 7:31 AM, jbrockmendel ***@***.***> wrote:
>>
>
> get_yq calls quarter[0] = DtoQ_yq(unix_date, &af_info, year) and in DtoQ_yq year is set with year[0] = dts.year
>
> I'll look at this more closely after some caffeine
>
> —
> You are receiving this because you were mentioned.
> Reply to this email directly, view it on GitHub, or unsubscribe.
|
Why does |
Best guess is thats leftover from a time when division was actually done within pqyear |
Cannot this cause this problem, I mean? |
I don't see how, but you're welcome to try removing it and see if it helps. |
Have no clue in the meantime how to do it with all those azure links at the top, sorry... Just dropped the idea... |
FWIW this is reproducible in the manylinux1_x86_64 docker file. FROM quay.io/pypa/manylinux1_x86_64:latest
RUN git clone --depth=1 https://github.com/pandas-dev/pandas \
&& cd pandas \
&& /opt/python/cp38-cp38/bin/python -m pip install numpy cython python-dateutil pytz
WORKDIR pandas
RUN /opt/python/cp38-cp38/bin/python setup.py build_ext -i I don't really see any differences in the generated C code. I'll try to bisect the changes to see which commit this started failing on. |
Pretty obvious in retrospect: aee8e11 is the first "bad" commit, which elevated warnings to errors. That doesn't help us identify why it's only failing with this version of gcc / whatever else matters. |
There are some other warnings
|
Do you know what Cython version that is using? What's strange to me is that taking say
|
@TomAugspurger do you know how to get the generated hashtable.c file out of the container? Would be helpful to review that alone |
Repurposing this issue for the 32-bit specific build issues now. I've updated the original post. @WillAyd I think you're correct in #34114 (comment). This is from the
and if k != table.n_buckets I've uploaded the generated hashtable.c file to https://gist.github.com/TomAugspurger/1f60b2059a103e6d36c02a0d07200e59 |
In
So
In
So is |
May have fixed the hashtable issues by defining IIUC, we have int _tokenize_helper(parser_t *self, size_t nrows, int all) {
...
int64_t start_lines = self->lines;
but typedef struct parser_t {
...
uint64_t lines; // Number of (good) lines observed
...
|
Nice! I think that change is consistent with other areas in hashing as well.
For the parsing issue *might* be easiest to just make that signed
…Sent from my iPhone
On May 27, 2020, at 11:53 AM, Tom Augspurger ***@***.***> wrote:
May have fixed the hashtable issues by defining k as khiter_t. Some more failures after that.
gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -DNPY_NO_DEPRECATED_API=0 -Ipandas/_libs -I./pandas/_libs/tslibs -I./pandas/_libs -Ipandas/_libs/src/klib -I/opt/python/cp38-cp38/lib/python3.8/site-packages/numpy/core/include -I/opt/python/cp38-cp38/include/python3.8 -c pandas/_libs/src/parser/tokenizer.c -o build/temp.linux-i686-3.8/pandas/_libs/src/parser/tokenizer.o -Werror
pandas/_libs/src/parser/tokenizer.c: In function ‘tokenize_bytes’:
pandas/_libs/src/parser/tokenizer.c:629:39: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
if (line_limit > 0 && self->lines == start_lines + line_limit) { \
^
pandas/_libs/src/parser/tokenizer.c:648:20: note: in expansion of macro ‘END_LINE_STATE’
#define END_LINE() END_LINE_STATE(START_RECORD)
^
pandas/_libs/src/parser/tokenizer.c:760:21: note: in expansion of macro ‘END_LINE’
END_LINE();
^
pandas/_libs/src/parser/tokenizer.c:629:39: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
if (line_limit > 0 && self->lines == start_lines + line_limit) { \
^
pandas/_libs/src/parser/tokenizer.c:648:20: note: in expansion of macro ‘END_LINE_STATE’
#define END_LINE() END_LINE_STATE(START_RECORD)
^
pandas/_libs/src/parser/tokenizer.c:775:21: note: in expansion of macro ‘END_LINE’
END_LINE();
^
pandas/_libs/src/parser/tokenizer.c:629:39: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
if (line_limit > 0 && self->lines == start_lines + line_limit) { \
^
pandas/_libs/src/parser/tokenizer.c:648:20: note: in expansion of macro ‘END_LINE_STATE’
#define END_LINE() END_LINE_STATE(START_RECORD)
^
pandas/_libs/src/parser/tokenizer.c:798:21: note: in expansion of macro ‘END_LINE’
END_LINE();
^
pandas/_libs/src/parser/tokenizer.c:629:39: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
if (line_limit > 0 && self->lines == start_lines + line_limit) { \
^
pandas/_libs/src/parser/tokenizer.c:648:20: note: in expansion of macro ‘END_LINE_STATE’
#define END_LINE() END_LINE_STATE(START_RECORD)
^
pandas/_libs/src/parser/tokenizer.c:840:21: note: in expansion of macro ‘END_LINE’
END_LINE();
^
pandas/_libs/src/parser/tokenizer.c:629:39: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
if (line_limit > 0 && self->lines == start_lines + line_limit) { \
^
pandas/_libs/src/parser/tokenizer.c:648:20: note: in expansion of macro ‘END_LINE_STATE’
#define END_LINE() END_LINE_STATE(START_RECORD)
^
pandas/_libs/src/parser/tokenizer.c:870:29: note: in expansion of macro ‘END_LINE’
END_LINE();
^
pandas/_libs/src/parser/tokenizer.c:629:39: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
if (line_limit > 0 && self->lines == start_lines + line_limit) { \
^
pandas/_libs/src/parser/tokenizer.c:648:20: note: in expansion of macro ‘END_LINE_STATE’
#define END_LINE() END_LINE_STATE(START_RECORD)
^
pandas/_libs/src/parser/tokenizer.c:879:25: note: in expansion of macro ‘END_LINE’
END_LINE();
^
pandas/_libs/src/parser/tokenizer.c:629:39: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
if (line_limit > 0 && self->lines == start_lines + line_limit) { \
^
pandas/_libs/src/parser/tokenizer.c:648:20: note: in expansion of macro ‘END_LINE_STATE’
#define END_LINE() END_LINE_STATE(START_RECORD)
^
pandas/_libs/src/parser/tokenizer.c:916:21: note: in expansion of macro ‘END_LINE’
END_LINE();
^
pandas/_libs/src/parser/tokenizer.c:629:39: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
if (line_limit > 0 && self->lines == start_lines + line_limit) { \
^
pandas/_libs/src/parser/tokenizer.c:648:20: note: in expansion of macro ‘END_LINE_STATE’
#define END_LINE() END_LINE_STATE(START_RECORD)
^
pandas/_libs/src/parser/tokenizer.c:964:21: note: in expansion of macro ‘END_LINE’
END_LINE();
^
pandas/_libs/src/parser/tokenizer.c:629:39: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
if (line_limit > 0 && self->lines == start_lines + line_limit) { \
^
pandas/_libs/src/parser/tokenizer.c:648:20: note: in expansion of macro ‘END_LINE_STATE’
#define END_LINE() END_LINE_STATE(START_RECORD)
^
pandas/_libs/src/parser/tokenizer.c:1031:21: note: in expansion of macro ‘END_LINE’
END_LINE();
^
pandas/_libs/src/parser/tokenizer.c:629:39: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
if (line_limit > 0 && self->lines == start_lines + line_limit) { \
^
pandas/_libs/src/parser/tokenizer.c:648:20: note: in expansion of macro ‘END_LINE_STATE’
#define END_LINE() END_LINE_STATE(START_RECORD)
^
pandas/_libs/src/parser/tokenizer.c:1049:21: note: in expansion of macro ‘END_LINE’
END_LINE();
^
pandas/_libs/src/parser/tokenizer.c:629:39: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
if (line_limit > 0 && self->lines == start_lines + line_limit) { \
^
pandas/_libs/src/parser/tokenizer.c:648:20: note: in expansion of macro ‘END_LINE_STATE’
#define END_LINE() END_LINE_STATE(START_RECORD)
^
pandas/_libs/src/parser/tokenizer.c:1059:21: note: in expansion of macro ‘END_LINE’
END_LINE();
^
pandas/_libs/src/parser/tokenizer.c:629:39: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
if (line_limit > 0 && self->lines == start_lines + line_limit) { \
^
pandas/_libs/src/parser/tokenizer.c:1062:25: note: in expansion of macro ‘END_LINE_STATE’
END_LINE_STATE(EAT_WHITESPACE);
^
pandas/_libs/src/parser/tokenizer.c:644:39: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
if (line_limit > 0 && self->lines == start_lines + line_limit) { \
^
pandas/_libs/src/parser/tokenizer.c:1065:25: note: in expansion of macro ‘END_LINE_AND_FIELD_STATE’
END_LINE_AND_FIELD_STATE(START_FIELD);
^
pandas/_libs/src/parser/tokenizer.c:629:39: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
if (line_limit > 0 && self->lines == start_lines + line_limit) { \
^
pandas/_libs/src/parser/tokenizer.c:1076:25: note: in expansion of macro ‘END_LINE_STATE’
END_LINE_STATE(START_RECORD);
^
pandas/_libs/src/parser/tokenizer.c:1093:41: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
self->lines == start_lines + line_limit) {
^
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.
|
Another one :)
|
Guessing from phone but if those are compared to unsigned integers than probably want to add a U or UL Suffix to the constants
…Sent from my iPhone
On May 27, 2020, at 12:12 PM, Tom Augspurger ***@***.***> wrote:
Another one :)
pandas/_libs/tslibs/period.c:674:9: error: this decimal constant is unsigned only in ISO C90 [-Werror]
{0, 1, 60, 3600, 3600000, 3600000000, 3600000000000},
^
pandas/_libs/tslibs/period.c:1358:3: error: this decimal constant is unsigned only in ISO C90 [-Werror]
__pyx_e_6pandas_5_libs_6tslibs_6period_INT32_MIN = -2147483648L
^
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.
|
There are build failures with the manylinux1 32-bit docker image.
To reproduce
I've uploaded the generated hashtable.c file here.
#34409 fixed the following issues.
https://dev.azure.com/pandas-dev/pandas-wheels/_build/results?buildId=35250&view=logs&j=e9afaa34-1a0f-534e-78fc-fae528ccd915&t=4685e914-c192-594f-c25f-e6cef98b7ba4
https://dev.azure.com/pandas-dev/pandas-wheels/_build/results?buildId=34768&view=results from May 3rd may be the first one with this warning. https://dev.azure.com/pandas-dev/pandas-wheels/_build/results?buildId=34727&view=results from May 2nd built successfully.
The text was updated successfully, but these errors were encountered: