picanumber / yapp

A parallel pipeline for stream processing
Apache License 2.0
61 stars 6 forks source link

Error in compilation #17

Open Wkkkkk opened 4 weeks ago

Wkkkkk commented 4 weeks ago

Hi, thanks for sharing this interesting project.

While trying it out, there was one error in instantiating last_type_impl as follows.

In file included from 
../yapp/test/test_pipeline.cpp:2:
../yapp/include/yap/pipeline.h:123:30: error: no member named 'type' in 'yap::detail::last_type_impl<std::tuple<>>'
  122 |               std::make_unique<typename detail::last_type_impl<
      |                                         ~~~~~~~~~~~~~~~~~~~~~~~
  123 |                   stages_t>::type::element_type>(std::forward<F>(fun)))))
      |                   ~~~~~~~~~~~^
/Users/kunwu/Workspace/playground/HelloCpp/HelloConcurrentCpp/yapp/include/yap/pipeline.h:303:12: note: in instantiation of function template specialization 'yap::Pipeline<>::Pipeline<(lambda at /Users/kunwu/Workspace/playground/HelloCpp/HelloConcurrentCpp/yapp/test/test_pipeline.cpp:47:21) &, void, unsigned int>' requested here
  303 |     return Pipeline(std::move(pl), std::forward<F>(transform));

It'd be very nice to hear from you and see if this could be fixed.

picanumber commented 3 days ago

Hello, could you share your compiler version and OS ?

Wkkkkk commented 1 day ago

Hi, I run Clang 16.0 on MacOS 15.1. Here are the logs from CMake and make.

➜  build git:(main) cmake ..
CMake Warning (dev) at CMakeLists.txt:8 (project):
  cmake_minimum_required() should be called prior to this top-level project()
  call.  Please see the cmake-commands(7) manual for usage documentation of
  both commands.
This warning is for project developers.  Use -Wno-dev to suppress it.

-- The CXX compiler identification is AppleClang 16.0.0.16000026
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE  
-- The C compiler identification is AppleClang 16.0.0.16000026
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Found Python: /opt/homebrew/Frameworks/Python.framework/Versions/3.12/bin/python3.12 (found version "3.12.6") found components: Interpreter 
-- Configuring done (13.7s)
-- Generating done (0.1s)
-- Build files have been written to: /Users/kunwu/Workspace/playground/yapp/build

➜  build git:(main) make
[  3%] Building CXX object examples/basic/CMakeFiles/use_non_copyable_type.dir/use_non_copyable_type.cpp.o
/Users/kunwu/Workspace/playground/yapp/examples/basic/use_non_copyable_type.cpp:30:30: warning: lambda capture 'val' is not used [-Wunused-lambda-capture]
   30 |     static auto generator = [val = 1]() mutable {
      |                              ^~~~~~~
In file included from /Users/kunwu/Workspace/playground/yapp/examples/basic/use_non_copyable_type.cpp:1:
/Users/kunwu/Workspace/playground/yapp/include/yap/pipeline.h:123:30: error: no member named 'type' in 'yap::detail::last_type_impl<std::tuple<>>'
  122 |               std::make_unique<typename detail::last_type_impl<
      |                                         ~~~~~~~~~~~~~~~~~~~~~~~
  123 |                   stages_t>::type::element_type>(std::forward<F>(fun)))))
      |                   ~~~~~~~~~~~^
/Users/kunwu/Workspace/playground/yapp/include/yap/pipeline.h:303:12: note: in instantiation of function template specialization 'yap::Pipeline<>::Pipeline<(lambda at /Users/kunwu/Workspace/playground/yapp/examples/basic/use_non_copyable_type.cpp:35:29) &, void, NoCopy>' requested here
  303 |     return Pipeline(std::move(pl), std::forward<F>(transform));
      |            ^
/Users/kunwu/Workspace/playground/yapp/include/yap/pipeline.h:123:30: error: no member named 'type' in 'yap::detail::last_type_impl<std::tuple<>>'
  122 |               std::make_unique<typename detail::last_type_impl<
      |                                         ~~~~~~~~~~~~~~~~~~~~~~~
  123 |                   stages_t>::type::element_type>(std::forward<F>(fun)))))
      |                   ~~~~~~~~~~~^
/Users/kunwu/Workspace/playground/yapp/include/yap/pipeline.h:303:12: note: in instantiation of function template specialization 'yap::Pipeline<>::Pipeline<(lambda at /Users/kunwu/Workspace/playground/yapp/examples/basic/use_non_copyable_type.cpp:42:24) &>' requested here
  303 |     return Pipeline(std::move(pl), std::forward<F>(transform));
      |            ^
1 warning and 2 errors generated.
make[2]: *** [examples/basic/CMakeFiles/use_non_copyable_type.dir/use_non_copyable_type.cpp.o] Error 1
make[1]: *** [examples/basic/CMakeFiles/use_non_copyable_type.dir/all] Error 2
make: *** [all] Error 2

➜  build git:(main) /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ -v
Apple clang version 16.0.0 (clang-1600.0.26.4)
Target: arm64-apple-darwin24.1.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin