wgtmac commented on PR #44:
URL: https://github.com/apache/iceberg-cpp/pull/44#issuecomment-2646093255

   I have managed to add `sparrow` as a vendored thirdparty dependency to 
`libiceberg`. However, there are still two issues that break CI:
   
   1. It cannot compile on Windows due to `int128_t` is not supported by MSVC: 
https://github.com/apache/iceberg-cpp/actions/runs/13217571682/job/36898649736?pr=44.
   
   ```
   
D:\a\iceberg-cpp\iceberg-cpp\build\_deps\sparrow-src\include\sparrow\details\3rdparty\large_integers\int128_t.hpp(92,23):
 error C2065: 'int128_t': undeclared identifier 
[D:\a\iceberg-cpp\iceberg-cpp\build\_deps\sparrow-build\sparrow.vcxproj]
     (compiling source file '../sparrow-src/src/array_factory.cpp')
   ```
   
   2. It cannot compile on MacOS with `AppleClang 15.0.0.15000309` since 
Sparrow README recommends `Apple Clang 16 or higher`: 
https://github.com/apache/iceberg-cpp/actions/runs/13217571682/job/36898649906?pr=44.
   
   ```
   [  0%] Building CXX object 
_deps/sparrow-build/CMakeFiles/sparrow.dir/src/array_factory.cpp.o
   In file included from 
/Users/runner/work/iceberg-cpp/iceberg-cpp/build/_deps/sparrow-src/src/array_factory.cpp:17:
   In file included from 
/Users/runner/work/iceberg-cpp/iceberg-cpp/build/_deps/sparrow-src/include/sparrow/layout/decimal_array.hpp:24:
   
/Users/runner/work/iceberg-cpp/iceberg-cpp/build/_deps/sparrow-src/include/sparrow/buffer/u8_buffer.hpp:114:19:
 error: out-of-line definition of 'u8_buffer<T>' does not match any declaration 
in 'u8_buffer<T>'
       u8_buffer<T>::u8_buffer(R&& range)
                     ^~~~~~~~~
   In file included from 
/Users/runner/work/iceberg-cpp/iceberg-cpp/build/_deps/sparrow-src/src/array_factory.cpp:19:
   In file included from 
/Users/runner/work/iceberg-cpp/iceberg-cpp/build/_deps/sparrow-src/include/sparrow/layout/fixed_width_binary_array.hpp:17:
   
/Users/runner/work/iceberg-cpp/iceberg-cpp/build/_deps/sparrow-src/include/sparrow/layout/fixed_width_binary_layout/fixed_width_binary_array.hpp:336:83:
 error: no member named 'join' in namespace 'std::ranges::views'
           auto data_buffer = 
u8_buffer<values_inner_value_type>(std::ranges::views::join(values));
                                                                 
~~~~~~~~~~~~~~~~~~~~^
   
/Users/runner/work/iceberg-cpp/iceberg-cpp/build/_deps/sparrow-src/include/sparrow/layout/fixed_width_binary_layout/fixed_width_binary_array.hpp:481:70:
 error: no member named 'join' in namespace 'std::ranges::views'
           const auto joined_repeated_value_range = 
std::ranges::views::join(my_repeat_view);
                                                    ~~~~~~~~~~~~~~~~~~~~^
   In file included from 
/Users/runner/work/iceberg-cpp/iceberg-cpp/build/_deps/sparrow-src/src/array_factory.cpp:27:
   
/Users/runner/work/iceberg-cpp/iceberg-cpp/build/_deps/sparrow-src/include/sparrow/layout/variable_size_binary_layout/variable_size_binary_array.hpp:455:83:
 error: no member named 'join' in namespace 'std::ranges::views'
           auto data_buffer = 
u8_buffer<values_inner_value_type>(std::ranges::views::join(values));
                                                                 
~~~~~~~~~~~~~~~~~~~~^
   
/Users/runner/work/iceberg-cpp/iceberg-cpp/build/_deps/sparrow-src/include/sparrow/layout/variable_size_binary_layout/variable_size_binary_array.hpp:683:70:
 error: no member named 'join' in namespace 'std::ranges::views'
           const auto joined_repeated_value_range = 
std::ranges::views::join(my_repeat_view);
                                                    ~~~~~~~~~~~~~~~~~~~~^
   5 errors generated.
   ```
   
   There are some other minor issues:
   
   1. It should use `PREPEND` not `APPEND` at this line: 
https://github.com/man-group/sparrow/blob/532bf486243fc396f7a9392820fa7a77071782ad/CMakeLists.txt#L50.
 Otherwise I have to add `list(PREPEND CMAKE_MODULE_PATH 
${CMAKE_CURRENT_BINARY_DIR}/_deps/sparrow-src/cmake)` on my side when using 
`FetchContent` to vendor sparrow to avoid error `include could not find 
requested file: sanitizers`.
   2. It would be good to add a namespace `sparrow::` when installing the 
exported config file at 
https://github.com/man-group/sparrow/blob/532bf486243fc396f7a9392820fa7a77071782ad/CMakeLists.txt#L354.
   
   These are not blocking issues at the moment. I need more time to get 
familiar with its API and best practice. Just want to report what I have found 
so far. @JohanMabille @Alex-PLACET @pitrou


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org
For additional commands, e-mail: issues-h...@iceberg.apache.org

Reply via email to