You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@arrow.apache.org by Paul Taylor <pt...@gmail.com> on 2019/07/20 03:29:32 UTC

Error building cuDF on new Arrow with std::variant backport

We're updating cuDF to Arrow 0.14 but encountering errors building that 
look related to PR #4259 <https://github.com/apache/arrow/pull/4259>. We 
can build Arrow itself, but we can't build cuDF when we include Arrow 
headers. Using C++ 14 and have tried gcc/g++ 5, 7, and clang.

Has anyone seen these before or know of a fix?

Thanks,

Paul

> /cudf/cpp/build/arrow/install/include/arrow/io/interfaces.h(195): 
> warning: attribute does not apply to any entity
> /cudf/cpp/build/arrow/install/include/arrow/io/interfaces.h(196): 
> warning: attribute does not apply to any entity
> /cudf/cpp/build/arrow/install/include/arrow/io/interfaces.h(195): 
> warning: attribute does not apply to any entity
> /cudf/cpp/build/arrow/install/include/arrow/io/interfaces.h(196): 
> warning: attribute does not apply to any entity
> /cudf/cpp/build/arrow/install/include/arrow/io/interfaces.h(195): 
> warning: attribute does not apply to any entity
> /cudf/cpp/build/arrow/install/include/arrow/io/interfaces.h(196): 
> warning: attribute does not apply to any entity
>
> /cudf/cpp/build/arrow/install/include/arrow/result.h: In member 
> function 'void arrow::Result<T>::AssignVariant(mpark::variant<U, 
> arrow::Status, const char*>&&)':
> /cudf/cpp/build/arrow/install/include/arrow/result.h:292:24: error: 
> expected primary-expression before ',' token
>      variant_.~variant();
>                         ^
> /cudf/cpp/build/arrow/install/include/arrow/result.h:292:32: error: 
> expected primary-expression before ',' token
>      variant_.~variant();
>                                 ^
> /cudf/cpp/build/arrow/install/include/arrow/result.h:292:34: error: 
> expected primary-expression before 'const'
>      variant_.~variant();
>                                   ^
> /cudf/cpp/build/arrow/install/include/arrow/result.h:292:34: error: 
> expected ')' before 'const'
> /cudf/cpp/build/arrow/install/include/arrow/result.h: In member 
> function 'void arrow::Result<T>::AssignVariant(const mpark::variant<U, 
> arrow::Status, const char*>&)':
> /cudf/cpp/build/arrow/install/include/arrow/result.h:305:24: error: 
> expected primary-expression before ',' token
>      variant_.~variant();
>                         ^
> /cudf/cpp/build/arrow/install/include/arrow/result.h:305:32: error: 
> expected primary-expression before ',' token
>      variant_.~variant();
>                                 ^
> /cudf/cpp/build/arrow/install/include/arrow/result.h:305:34: error: 
> expected primary-expression before 'const'
>      variant_.~variant();
>                                   ^
> /cudf/cpp/build/arrow/install/include/arrow/result.h:305:34: error: 
> expected ')' before 'const'


Re: Error building cuDF on new Arrow with std::variant backport

Posted by Keith Kraus <kk...@nvidia.com>.
Just following up in case anyone was following that this turned out to be an NVCC bug that we've reported to the relevant team internally. We moved the `ipc.cu` file to `ipc.cpp` and it works as expected with gcc. Thanks everyone!

-Keith

On 7/22/19, 12:52 PM, "Keith Kraus" <kk...@nvidia.com> wrote:

    We're working on that now, will report back once we have something more concrete to act on. Thanks!
    
    -Keith
    
    On 7/22/19, 12:51 PM, "Antoine Pitrou" <an...@python.org> wrote:
    
        
        Hi Keith,
        
        Can you try to further reduce the reduce your reproducer until you find
        the offending construct?
        
        Regards
        
        Antoine.
        
        
        Le 22/07/2019 à 18:46, Keith Kraus a écrit :
        > I temporarily removed the csr related code that has the namespace clash and confirmed that the same compilation warnings and errors still occur.
        > 
        > On 7/20/19, 1:03 AM, "Micah Kornfield" <em...@gmail.com> wrote:
        > 
        >     The namespace collision is a definite possibility, especially if you are
        >     using g++ which seems to be less smart about inferring types vs methods
        >     than clang is.
        >     
        >     On Fri, Jul 19, 2019 at 9:28 PM Paul Taylor <pt...@gmail.com>
        >     wrote:
        >     
        >     > Hi Micah,
        >     >
        >     > We were able to build Arrow standalone with both c++ 11 and 14, but cuDF
        >     > needs c++ 14.
        >     >
        >     > I found this line[1] in one of our cuda files after sending and realized
        >     > we may have a collision/polluted namespace. Does that sound like a
        >     > possibility?
        >     >
        >     > Thanks,
        >     > Paul
        >     >
        >     > 1.
        >     > https://github.com/rapidsai/cudf/blob/branch-0.9/cpp/src/io/convert/csr/cudf_to_csr.cu#L30
        >     >
        >     > On 7/19/19 8:41 PM, Micah Kornfield wrote:
        >     >
        >     > Hi Paul,
        >     > This actually looks like it might be a problem with arrow-4800.   Did the
        >     > build of arrow use c++14 or c++11?
        >     >
        >     > Thanks,
        >     > Micah
        >     >
        >     > On Friday, July 19, 2019, Paul Taylor <pt...@gmail.com> wrote:
        >     >
        >     >> We're updating cuDF to Arrow 0.14 but encountering errors building that
        >     >> look related to PR #4259 <https://github.com/apache/arrow/pull/4259>. We
        >     >> can build Arrow itself, but we can't build cuDF when we include Arrow
        >     >> headers. Using C++ 14 and have tried gcc/g++ 5, 7, and clang.
        >     >>
        >     >> Has anyone seen these before or know of a fix?
        >     >>
        >     >> Thanks,
        >     >>
        >     >> Paul
        >     >>
        >     >> /cudf/cpp/build/arrow/install/include/arrow/io/interfaces.h(195):
        >     >>> warning: attribute does not apply to any entity
        >     >>> /cudf/cpp/build/arrow/install/include/arrow/io/interfaces.h(196):
        >     >>> warning: attribute does not apply to any entity
        >     >>> /cudf/cpp/build/arrow/install/include/arrow/io/interfaces.h(195):
        >     >>> warning: attribute does not apply to any entity
        >     >>> /cudf/cpp/build/arrow/install/include/arrow/io/interfaces.h(196):
        >     >>> warning: attribute does not apply to any entity
        >     >>> /cudf/cpp/build/arrow/install/include/arrow/io/interfaces.h(195):
        >     >>> warning: attribute does not apply to any entity
        >     >>> /cudf/cpp/build/arrow/install/include/arrow/io/interfaces.h(196):
        >     >>> warning: attribute does not apply to any entity
        >     >>>
        >     >>> /cudf/cpp/build/arrow/install/include/arrow/result.h: In member function
        >     >>> 'void arrow::Result<T>::AssignVariant(mpark::variant<U, arrow::Status,
        >     >>> const char*>&&)':
        >     >>> /cudf/cpp/build/arrow/install/include/arrow/result.h:292:24: error:
        >     >>> expected primary-expression before ',' token
        >     >>>      variant_.~variant();
        >     >>>                         ^
        >     >>> /cudf/cpp/build/arrow/install/include/arrow/result.h:292:32: error:
        >     >>> expected primary-expression before ',' token
        >     >>>      variant_.~variant();
        >     >>>                                 ^
        >     >>> /cudf/cpp/build/arrow/install/include/arrow/result.h:292:34: error:
        >     >>> expected primary-expression before 'const'
        >     >>>      variant_.~variant();
        >     >>>                                   ^
        >     >>> /cudf/cpp/build/arrow/install/include/arrow/result.h:292:34: error:
        >     >>> expected ')' before 'const'
        >     >>> /cudf/cpp/build/arrow/install/include/arrow/result.h: In member function
        >     >>> 'void arrow::Result<T>::AssignVariant(const mpark::variant<U,
        >     >>> arrow::Status, const char*>&)':
        >     >>> /cudf/cpp/build/arrow/install/include/arrow/result.h:305:24: error:
        >     >>> expected primary-expression before ',' token
        >     >>>      variant_.~variant();
        >     >>>                         ^
        >     >>> /cudf/cpp/build/arrow/install/include/arrow/result.h:305:32: error:
        >     >>> expected primary-expression before ',' token
        >     >>>      variant_.~variant();
        >     >>>                                 ^
        >     >>> /cudf/cpp/build/arrow/install/include/arrow/result.h:305:34: error:
        >     >>> expected primary-expression before 'const'
        >     >>>      variant_.~variant();
        >     >>>                                   ^
        >     >>> /cudf/cpp/build/arrow/install/include/arrow/result.h:305:34: error:
        >     >>> expected ')' before 'const'
        >     >>>
        >     >>
        >     >>
        >     >
        >     
        > 
        > 
        > -----------------------------------------------------------------------------------
        > This email message is for the sole use of the intended recipient(s) and may contain
        > confidential information.  Any unauthorized review, use, disclosure or distribution
        > is prohibited.  If you are not the intended recipient, please contact the sender by
        > reply email and destroy all copies of the original message.
        > -----------------------------------------------------------------------------------
        > 
        
    
    


Re: Error building cuDF on new Arrow with std::variant backport

Posted by Keith Kraus <kk...@nvidia.com>.
We're working on that now, will report back once we have something more concrete to act on. Thanks!

-Keith

On 7/22/19, 12:51 PM, "Antoine Pitrou" <an...@python.org> wrote:

    
    Hi Keith,
    
    Can you try to further reduce the reduce your reproducer until you find
    the offending construct?
    
    Regards
    
    Antoine.
    
    
    Le 22/07/2019 à 18:46, Keith Kraus a écrit :
    > I temporarily removed the csr related code that has the namespace clash and confirmed that the same compilation warnings and errors still occur.
    > 
    > On 7/20/19, 1:03 AM, "Micah Kornfield" <em...@gmail.com> wrote:
    > 
    >     The namespace collision is a definite possibility, especially if you are
    >     using g++ which seems to be less smart about inferring types vs methods
    >     than clang is.
    >     
    >     On Fri, Jul 19, 2019 at 9:28 PM Paul Taylor <pt...@gmail.com>
    >     wrote:
    >     
    >     > Hi Micah,
    >     >
    >     > We were able to build Arrow standalone with both c++ 11 and 14, but cuDF
    >     > needs c++ 14.
    >     >
    >     > I found this line[1] in one of our cuda files after sending and realized
    >     > we may have a collision/polluted namespace. Does that sound like a
    >     > possibility?
    >     >
    >     > Thanks,
    >     > Paul
    >     >
    >     > 1.
    >     > https://github.com/rapidsai/cudf/blob/branch-0.9/cpp/src/io/convert/csr/cudf_to_csr.cu#L30
    >     >
    >     > On 7/19/19 8:41 PM, Micah Kornfield wrote:
    >     >
    >     > Hi Paul,
    >     > This actually looks like it might be a problem with arrow-4800.   Did the
    >     > build of arrow use c++14 or c++11?
    >     >
    >     > Thanks,
    >     > Micah
    >     >
    >     > On Friday, July 19, 2019, Paul Taylor <pt...@gmail.com> wrote:
    >     >
    >     >> We're updating cuDF to Arrow 0.14 but encountering errors building that
    >     >> look related to PR #4259 <https://github.com/apache/arrow/pull/4259>. We
    >     >> can build Arrow itself, but we can't build cuDF when we include Arrow
    >     >> headers. Using C++ 14 and have tried gcc/g++ 5, 7, and clang.
    >     >>
    >     >> Has anyone seen these before or know of a fix?
    >     >>
    >     >> Thanks,
    >     >>
    >     >> Paul
    >     >>
    >     >> /cudf/cpp/build/arrow/install/include/arrow/io/interfaces.h(195):
    >     >>> warning: attribute does not apply to any entity
    >     >>> /cudf/cpp/build/arrow/install/include/arrow/io/interfaces.h(196):
    >     >>> warning: attribute does not apply to any entity
    >     >>> /cudf/cpp/build/arrow/install/include/arrow/io/interfaces.h(195):
    >     >>> warning: attribute does not apply to any entity
    >     >>> /cudf/cpp/build/arrow/install/include/arrow/io/interfaces.h(196):
    >     >>> warning: attribute does not apply to any entity
    >     >>> /cudf/cpp/build/arrow/install/include/arrow/io/interfaces.h(195):
    >     >>> warning: attribute does not apply to any entity
    >     >>> /cudf/cpp/build/arrow/install/include/arrow/io/interfaces.h(196):
    >     >>> warning: attribute does not apply to any entity
    >     >>>
    >     >>> /cudf/cpp/build/arrow/install/include/arrow/result.h: In member function
    >     >>> 'void arrow::Result<T>::AssignVariant(mpark::variant<U, arrow::Status,
    >     >>> const char*>&&)':
    >     >>> /cudf/cpp/build/arrow/install/include/arrow/result.h:292:24: error:
    >     >>> expected primary-expression before ',' token
    >     >>>      variant_.~variant();
    >     >>>                         ^
    >     >>> /cudf/cpp/build/arrow/install/include/arrow/result.h:292:32: error:
    >     >>> expected primary-expression before ',' token
    >     >>>      variant_.~variant();
    >     >>>                                 ^
    >     >>> /cudf/cpp/build/arrow/install/include/arrow/result.h:292:34: error:
    >     >>> expected primary-expression before 'const'
    >     >>>      variant_.~variant();
    >     >>>                                   ^
    >     >>> /cudf/cpp/build/arrow/install/include/arrow/result.h:292:34: error:
    >     >>> expected ')' before 'const'
    >     >>> /cudf/cpp/build/arrow/install/include/arrow/result.h: In member function
    >     >>> 'void arrow::Result<T>::AssignVariant(const mpark::variant<U,
    >     >>> arrow::Status, const char*>&)':
    >     >>> /cudf/cpp/build/arrow/install/include/arrow/result.h:305:24: error:
    >     >>> expected primary-expression before ',' token
    >     >>>      variant_.~variant();
    >     >>>                         ^
    >     >>> /cudf/cpp/build/arrow/install/include/arrow/result.h:305:32: error:
    >     >>> expected primary-expression before ',' token
    >     >>>      variant_.~variant();
    >     >>>                                 ^
    >     >>> /cudf/cpp/build/arrow/install/include/arrow/result.h:305:34: error:
    >     >>> expected primary-expression before 'const'
    >     >>>      variant_.~variant();
    >     >>>                                   ^
    >     >>> /cudf/cpp/build/arrow/install/include/arrow/result.h:305:34: error:
    >     >>> expected ')' before 'const'
    >     >>>
    >     >>
    >     >>
    >     >
    >     
    > 
    > 
    > -----------------------------------------------------------------------------------
    > This email message is for the sole use of the intended recipient(s) and may contain
    > confidential information.  Any unauthorized review, use, disclosure or distribution
    > is prohibited.  If you are not the intended recipient, please contact the sender by
    > reply email and destroy all copies of the original message.
    > -----------------------------------------------------------------------------------
    > 
    


Re: Error building cuDF on new Arrow with std::variant backport

Posted by Antoine Pitrou <an...@python.org>.
Hi Keith,

Can you try to further reduce the reduce your reproducer until you find
the offending construct?

Regards

Antoine.


Le 22/07/2019 à 18:46, Keith Kraus a écrit :
> I temporarily removed the csr related code that has the namespace clash and confirmed that the same compilation warnings and errors still occur.
> 
> On 7/20/19, 1:03 AM, "Micah Kornfield" <em...@gmail.com> wrote:
> 
>     The namespace collision is a definite possibility, especially if you are
>     using g++ which seems to be less smart about inferring types vs methods
>     than clang is.
>     
>     On Fri, Jul 19, 2019 at 9:28 PM Paul Taylor <pt...@gmail.com>
>     wrote:
>     
>     > Hi Micah,
>     >
>     > We were able to build Arrow standalone with both c++ 11 and 14, but cuDF
>     > needs c++ 14.
>     >
>     > I found this line[1] in one of our cuda files after sending and realized
>     > we may have a collision/polluted namespace. Does that sound like a
>     > possibility?
>     >
>     > Thanks,
>     > Paul
>     >
>     > 1.
>     > https://github.com/rapidsai/cudf/blob/branch-0.9/cpp/src/io/convert/csr/cudf_to_csr.cu#L30
>     >
>     > On 7/19/19 8:41 PM, Micah Kornfield wrote:
>     >
>     > Hi Paul,
>     > This actually looks like it might be a problem with arrow-4800.   Did the
>     > build of arrow use c++14 or c++11?
>     >
>     > Thanks,
>     > Micah
>     >
>     > On Friday, July 19, 2019, Paul Taylor <pt...@gmail.com> wrote:
>     >
>     >> We're updating cuDF to Arrow 0.14 but encountering errors building that
>     >> look related to PR #4259 <https://github.com/apache/arrow/pull/4259>. We
>     >> can build Arrow itself, but we can't build cuDF when we include Arrow
>     >> headers. Using C++ 14 and have tried gcc/g++ 5, 7, and clang.
>     >>
>     >> Has anyone seen these before or know of a fix?
>     >>
>     >> Thanks,
>     >>
>     >> Paul
>     >>
>     >> /cudf/cpp/build/arrow/install/include/arrow/io/interfaces.h(195):
>     >>> warning: attribute does not apply to any entity
>     >>> /cudf/cpp/build/arrow/install/include/arrow/io/interfaces.h(196):
>     >>> warning: attribute does not apply to any entity
>     >>> /cudf/cpp/build/arrow/install/include/arrow/io/interfaces.h(195):
>     >>> warning: attribute does not apply to any entity
>     >>> /cudf/cpp/build/arrow/install/include/arrow/io/interfaces.h(196):
>     >>> warning: attribute does not apply to any entity
>     >>> /cudf/cpp/build/arrow/install/include/arrow/io/interfaces.h(195):
>     >>> warning: attribute does not apply to any entity
>     >>> /cudf/cpp/build/arrow/install/include/arrow/io/interfaces.h(196):
>     >>> warning: attribute does not apply to any entity
>     >>>
>     >>> /cudf/cpp/build/arrow/install/include/arrow/result.h: In member function
>     >>> 'void arrow::Result<T>::AssignVariant(mpark::variant<U, arrow::Status,
>     >>> const char*>&&)':
>     >>> /cudf/cpp/build/arrow/install/include/arrow/result.h:292:24: error:
>     >>> expected primary-expression before ',' token
>     >>>      variant_.~variant();
>     >>>                         ^
>     >>> /cudf/cpp/build/arrow/install/include/arrow/result.h:292:32: error:
>     >>> expected primary-expression before ',' token
>     >>>      variant_.~variant();
>     >>>                                 ^
>     >>> /cudf/cpp/build/arrow/install/include/arrow/result.h:292:34: error:
>     >>> expected primary-expression before 'const'
>     >>>      variant_.~variant();
>     >>>                                   ^
>     >>> /cudf/cpp/build/arrow/install/include/arrow/result.h:292:34: error:
>     >>> expected ')' before 'const'
>     >>> /cudf/cpp/build/arrow/install/include/arrow/result.h: In member function
>     >>> 'void arrow::Result<T>::AssignVariant(const mpark::variant<U,
>     >>> arrow::Status, const char*>&)':
>     >>> /cudf/cpp/build/arrow/install/include/arrow/result.h:305:24: error:
>     >>> expected primary-expression before ',' token
>     >>>      variant_.~variant();
>     >>>                         ^
>     >>> /cudf/cpp/build/arrow/install/include/arrow/result.h:305:32: error:
>     >>> expected primary-expression before ',' token
>     >>>      variant_.~variant();
>     >>>                                 ^
>     >>> /cudf/cpp/build/arrow/install/include/arrow/result.h:305:34: error:
>     >>> expected primary-expression before 'const'
>     >>>      variant_.~variant();
>     >>>                                   ^
>     >>> /cudf/cpp/build/arrow/install/include/arrow/result.h:305:34: error:
>     >>> expected ')' before 'const'
>     >>>
>     >>
>     >>
>     >
>     
> 
> 
> -----------------------------------------------------------------------------------
> This email message is for the sole use of the intended recipient(s) and may contain
> confidential information.  Any unauthorized review, use, disclosure or distribution
> is prohibited.  If you are not the intended recipient, please contact the sender by
> reply email and destroy all copies of the original message.
> -----------------------------------------------------------------------------------
> 

Re: Error building cuDF on new Arrow with std::variant backport

Posted by Keith Kraus <kk...@nvidia.com>.
I temporarily removed the csr related code that has the namespace clash and confirmed that the same compilation warnings and errors still occur.

On 7/20/19, 1:03 AM, "Micah Kornfield" <em...@gmail.com> wrote:

    The namespace collision is a definite possibility, especially if you are
    using g++ which seems to be less smart about inferring types vs methods
    than clang is.
    
    On Fri, Jul 19, 2019 at 9:28 PM Paul Taylor <pt...@gmail.com>
    wrote:
    
    > Hi Micah,
    >
    > We were able to build Arrow standalone with both c++ 11 and 14, but cuDF
    > needs c++ 14.
    >
    > I found this line[1] in one of our cuda files after sending and realized
    > we may have a collision/polluted namespace. Does that sound like a
    > possibility?
    >
    > Thanks,
    > Paul
    >
    > 1.
    > https://github.com/rapidsai/cudf/blob/branch-0.9/cpp/src/io/convert/csr/cudf_to_csr.cu#L30
    >
    > On 7/19/19 8:41 PM, Micah Kornfield wrote:
    >
    > Hi Paul,
    > This actually looks like it might be a problem with arrow-4800.   Did the
    > build of arrow use c++14 or c++11?
    >
    > Thanks,
    > Micah
    >
    > On Friday, July 19, 2019, Paul Taylor <pt...@gmail.com> wrote:
    >
    >> We're updating cuDF to Arrow 0.14 but encountering errors building that
    >> look related to PR #4259 <https://github.com/apache/arrow/pull/4259>. We
    >> can build Arrow itself, but we can't build cuDF when we include Arrow
    >> headers. Using C++ 14 and have tried gcc/g++ 5, 7, and clang.
    >>
    >> Has anyone seen these before or know of a fix?
    >>
    >> Thanks,
    >>
    >> Paul
    >>
    >> /cudf/cpp/build/arrow/install/include/arrow/io/interfaces.h(195):
    >>> warning: attribute does not apply to any entity
    >>> /cudf/cpp/build/arrow/install/include/arrow/io/interfaces.h(196):
    >>> warning: attribute does not apply to any entity
    >>> /cudf/cpp/build/arrow/install/include/arrow/io/interfaces.h(195):
    >>> warning: attribute does not apply to any entity
    >>> /cudf/cpp/build/arrow/install/include/arrow/io/interfaces.h(196):
    >>> warning: attribute does not apply to any entity
    >>> /cudf/cpp/build/arrow/install/include/arrow/io/interfaces.h(195):
    >>> warning: attribute does not apply to any entity
    >>> /cudf/cpp/build/arrow/install/include/arrow/io/interfaces.h(196):
    >>> warning: attribute does not apply to any entity
    >>>
    >>> /cudf/cpp/build/arrow/install/include/arrow/result.h: In member function
    >>> 'void arrow::Result<T>::AssignVariant(mpark::variant<U, arrow::Status,
    >>> const char*>&&)':
    >>> /cudf/cpp/build/arrow/install/include/arrow/result.h:292:24: error:
    >>> expected primary-expression before ',' token
    >>>      variant_.~variant();
    >>>                         ^
    >>> /cudf/cpp/build/arrow/install/include/arrow/result.h:292:32: error:
    >>> expected primary-expression before ',' token
    >>>      variant_.~variant();
    >>>                                 ^
    >>> /cudf/cpp/build/arrow/install/include/arrow/result.h:292:34: error:
    >>> expected primary-expression before 'const'
    >>>      variant_.~variant();
    >>>                                   ^
    >>> /cudf/cpp/build/arrow/install/include/arrow/result.h:292:34: error:
    >>> expected ')' before 'const'
    >>> /cudf/cpp/build/arrow/install/include/arrow/result.h: In member function
    >>> 'void arrow::Result<T>::AssignVariant(const mpark::variant<U,
    >>> arrow::Status, const char*>&)':
    >>> /cudf/cpp/build/arrow/install/include/arrow/result.h:305:24: error:
    >>> expected primary-expression before ',' token
    >>>      variant_.~variant();
    >>>                         ^
    >>> /cudf/cpp/build/arrow/install/include/arrow/result.h:305:32: error:
    >>> expected primary-expression before ',' token
    >>>      variant_.~variant();
    >>>                                 ^
    >>> /cudf/cpp/build/arrow/install/include/arrow/result.h:305:34: error:
    >>> expected primary-expression before 'const'
    >>>      variant_.~variant();
    >>>                                   ^
    >>> /cudf/cpp/build/arrow/install/include/arrow/result.h:305:34: error:
    >>> expected ')' before 'const'
    >>>
    >>
    >>
    >
    


-----------------------------------------------------------------------------------
This email message is for the sole use of the intended recipient(s) and may contain
confidential information.  Any unauthorized review, use, disclosure or distribution
is prohibited.  If you are not the intended recipient, please contact the sender by
reply email and destroy all copies of the original message.
-----------------------------------------------------------------------------------

Re: Error building cuDF on new Arrow with std::variant backport

Posted by Micah Kornfield <em...@gmail.com>.
The namespace collision is a definite possibility, especially if you are
using g++ which seems to be less smart about inferring types vs methods
than clang is.

On Fri, Jul 19, 2019 at 9:28 PM Paul Taylor <pt...@gmail.com>
wrote:

> Hi Micah,
>
> We were able to build Arrow standalone with both c++ 11 and 14, but cuDF
> needs c++ 14.
>
> I found this line[1] in one of our cuda files after sending and realized
> we may have a collision/polluted namespace. Does that sound like a
> possibility?
>
> Thanks,
> Paul
>
> 1.
> https://github.com/rapidsai/cudf/blob/branch-0.9/cpp/src/io/convert/csr/cudf_to_csr.cu#L30
>
> On 7/19/19 8:41 PM, Micah Kornfield wrote:
>
> Hi Paul,
> This actually looks like it might be a problem with arrow-4800.   Did the
> build of arrow use c++14 or c++11?
>
> Thanks,
> Micah
>
> On Friday, July 19, 2019, Paul Taylor <pt...@gmail.com> wrote:
>
>> We're updating cuDF to Arrow 0.14 but encountering errors building that
>> look related to PR #4259 <https://github.com/apache/arrow/pull/4259>. We
>> can build Arrow itself, but we can't build cuDF when we include Arrow
>> headers. Using C++ 14 and have tried gcc/g++ 5, 7, and clang.
>>
>> Has anyone seen these before or know of a fix?
>>
>> Thanks,
>>
>> Paul
>>
>> /cudf/cpp/build/arrow/install/include/arrow/io/interfaces.h(195):
>>> warning: attribute does not apply to any entity
>>> /cudf/cpp/build/arrow/install/include/arrow/io/interfaces.h(196):
>>> warning: attribute does not apply to any entity
>>> /cudf/cpp/build/arrow/install/include/arrow/io/interfaces.h(195):
>>> warning: attribute does not apply to any entity
>>> /cudf/cpp/build/arrow/install/include/arrow/io/interfaces.h(196):
>>> warning: attribute does not apply to any entity
>>> /cudf/cpp/build/arrow/install/include/arrow/io/interfaces.h(195):
>>> warning: attribute does not apply to any entity
>>> /cudf/cpp/build/arrow/install/include/arrow/io/interfaces.h(196):
>>> warning: attribute does not apply to any entity
>>>
>>> /cudf/cpp/build/arrow/install/include/arrow/result.h: In member function
>>> 'void arrow::Result<T>::AssignVariant(mpark::variant<U, arrow::Status,
>>> const char*>&&)':
>>> /cudf/cpp/build/arrow/install/include/arrow/result.h:292:24: error:
>>> expected primary-expression before ',' token
>>>      variant_.~variant();
>>>                         ^
>>> /cudf/cpp/build/arrow/install/include/arrow/result.h:292:32: error:
>>> expected primary-expression before ',' token
>>>      variant_.~variant();
>>>                                 ^
>>> /cudf/cpp/build/arrow/install/include/arrow/result.h:292:34: error:
>>> expected primary-expression before 'const'
>>>      variant_.~variant();
>>>                                   ^
>>> /cudf/cpp/build/arrow/install/include/arrow/result.h:292:34: error:
>>> expected ')' before 'const'
>>> /cudf/cpp/build/arrow/install/include/arrow/result.h: In member function
>>> 'void arrow::Result<T>::AssignVariant(const mpark::variant<U,
>>> arrow::Status, const char*>&)':
>>> /cudf/cpp/build/arrow/install/include/arrow/result.h:305:24: error:
>>> expected primary-expression before ',' token
>>>      variant_.~variant();
>>>                         ^
>>> /cudf/cpp/build/arrow/install/include/arrow/result.h:305:32: error:
>>> expected primary-expression before ',' token
>>>      variant_.~variant();
>>>                                 ^
>>> /cudf/cpp/build/arrow/install/include/arrow/result.h:305:34: error:
>>> expected primary-expression before 'const'
>>>      variant_.~variant();
>>>                                   ^
>>> /cudf/cpp/build/arrow/install/include/arrow/result.h:305:34: error:
>>> expected ')' before 'const'
>>>
>>
>>
>

Re: Error building cuDF on new Arrow with std::variant backport

Posted by Paul Taylor <pt...@gmail.com>.
Hi Micah,

We were able to build Arrow standalone with both c++ 11 and 14, but cuDF 
needs c++ 14.

I found this line[1] in one of our cuda files after sending and realized 
we may have a collision/polluted namespace. Does that sound like a 
possibility?

Thanks,
Paul

1. 
https://github.com/rapidsai/cudf/blob/branch-0.9/cpp/src/io/convert/csr/cudf_to_csr.cu#L30

On 7/19/19 8:41 PM, Micah Kornfield wrote:
> Hi Paul,
> This actually looks like it might be a problem with arrow-4800.   Did 
> the build of arrow use c++14 or c++11?
>
> Thanks,
> Micah
>
> On Friday, July 19, 2019, Paul Taylor <ptaylor.apache@gmail.com 
> <ma...@gmail.com>> wrote:
>
>     We're updating cuDF to Arrow 0.14 but encountering errors building
>     that look related to PR #4259
>     <https://github.com/apache/arrow/pull/4259
>     <https://github.com/apache/arrow/pull/4259>>. We can build Arrow
>     itself, but we can't build cuDF when we include Arrow headers.
>     Using C++ 14 and have tried gcc/g++ 5, 7, and clang.
>
>     Has anyone seen these before or know of a fix?
>
>     Thanks,
>
>     Paul
>
>         /cudf/cpp/build/arrow/install/include/arrow/io/interfaces.h(195):
>         warning: attribute does not apply to any entity
>         /cudf/cpp/build/arrow/install/include/arrow/io/interfaces.h(196):
>         warning: attribute does not apply to any entity
>         /cudf/cpp/build/arrow/install/include/arrow/io/interfaces.h(195):
>         warning: attribute does not apply to any entity
>         /cudf/cpp/build/arrow/install/include/arrow/io/interfaces.h(196):
>         warning: attribute does not apply to any entity
>         /cudf/cpp/build/arrow/install/include/arrow/io/interfaces.h(195):
>         warning: attribute does not apply to any entity
>         /cudf/cpp/build/arrow/install/include/arrow/io/interfaces.h(196):
>         warning: attribute does not apply to any entity
>
>         /cudf/cpp/build/arrow/install/include/arrow/result.h: In
>         member function 'void
>         arrow::Result<T>::AssignVariant(mpark::variant<U,
>         arrow::Status, const char*>&&)':
>         /cudf/cpp/build/arrow/install/include/arrow/result.h:292:24:
>         error: expected primary-expression before ',' token
>              variant_.~variant();
>                                 ^
>         /cudf/cpp/build/arrow/install/include/arrow/result.h:292:32:
>         error: expected primary-expression before ',' token
>              variant_.~variant();
>           ^
>         /cudf/cpp/build/arrow/install/include/arrow/result.h:292:34:
>         error: expected primary-expression before 'const'
>              variant_.~variant();
>             ^
>         /cudf/cpp/build/arrow/install/include/arrow/result.h:292:34:
>         error: expected ')' before 'const'
>         /cudf/cpp/build/arrow/install/include/arrow/result.h: In
>         member function 'void arrow::Result<T>::AssignVariant(const
>         mpark::variant<U, arrow::Status, const char*>&)':
>         /cudf/cpp/build/arrow/install/include/arrow/result.h:305:24:
>         error: expected primary-expression before ',' token
>              variant_.~variant();
>                                 ^
>         /cudf/cpp/build/arrow/install/include/arrow/result.h:305:32:
>         error: expected primary-expression before ',' token
>              variant_.~variant();
>           ^
>         /cudf/cpp/build/arrow/install/include/arrow/result.h:305:34:
>         error: expected primary-expression before 'const'
>              variant_.~variant();
>             ^
>         /cudf/cpp/build/arrow/install/include/arrow/result.h:305:34:
>         error: expected ')' before 'const'
>
>


Re: Error building cuDF on new Arrow with std::variant backport

Posted by Micah Kornfield <em...@gmail.com>.
Hi Paul,
This actually looks like it might be a problem with arrow-4800.   Did the
build of arrow use c++14 or c++11?

Thanks,
Micah

On Friday, July 19, 2019, Paul Taylor <pt...@gmail.com> wrote:

> We're updating cuDF to Arrow 0.14 but encountering errors building that
> look related to PR #4259 <https://github.com/apache/arrow/pull/4259>. We
> can build Arrow itself, but we can't build cuDF when we include Arrow
> headers. Using C++ 14 and have tried gcc/g++ 5, 7, and clang.
>
> Has anyone seen these before or know of a fix?
>
> Thanks,
>
> Paul
>
> /cudf/cpp/build/arrow/install/include/arrow/io/interfaces.h(195):
>> warning: attribute does not apply to any entity
>> /cudf/cpp/build/arrow/install/include/arrow/io/interfaces.h(196):
>> warning: attribute does not apply to any entity
>> /cudf/cpp/build/arrow/install/include/arrow/io/interfaces.h(195):
>> warning: attribute does not apply to any entity
>> /cudf/cpp/build/arrow/install/include/arrow/io/interfaces.h(196):
>> warning: attribute does not apply to any entity
>> /cudf/cpp/build/arrow/install/include/arrow/io/interfaces.h(195):
>> warning: attribute does not apply to any entity
>> /cudf/cpp/build/arrow/install/include/arrow/io/interfaces.h(196):
>> warning: attribute does not apply to any entity
>>
>> /cudf/cpp/build/arrow/install/include/arrow/result.h: In member function
>> 'void arrow::Result<T>::AssignVariant(mpark::variant<U, arrow::Status,
>> const char*>&&)':
>> /cudf/cpp/build/arrow/install/include/arrow/result.h:292:24: error:
>> expected primary-expression before ',' token
>>      variant_.~variant();
>>                         ^
>> /cudf/cpp/build/arrow/install/include/arrow/result.h:292:32: error:
>> expected primary-expression before ',' token
>>      variant_.~variant();
>>                                 ^
>> /cudf/cpp/build/arrow/install/include/arrow/result.h:292:34: error:
>> expected primary-expression before 'const'
>>      variant_.~variant();
>>                                   ^
>> /cudf/cpp/build/arrow/install/include/arrow/result.h:292:34: error:
>> expected ')' before 'const'
>> /cudf/cpp/build/arrow/install/include/arrow/result.h: In member function
>> 'void arrow::Result<T>::AssignVariant(const mpark::variant<U,
>> arrow::Status, const char*>&)':
>> /cudf/cpp/build/arrow/install/include/arrow/result.h:305:24: error:
>> expected primary-expression before ',' token
>>      variant_.~variant();
>>                         ^
>> /cudf/cpp/build/arrow/install/include/arrow/result.h:305:32: error:
>> expected primary-expression before ',' token
>>      variant_.~variant();
>>                                 ^
>> /cudf/cpp/build/arrow/install/include/arrow/result.h:305:34: error:
>> expected primary-expression before 'const'
>>      variant_.~variant();
>>                                   ^
>> /cudf/cpp/build/arrow/install/include/arrow/result.h:305:34: error:
>> expected ')' before 'const'
>>
>
>