Skip to content
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

dpp: update to 10.0.30. #51144

Closed
wants to merge 1 commit into from

Conversation

JuniorSuperTux
Copy link
Contributor

Testing the changes

  • I tested the changes in this PR: briefly

Local build testing

  • I built this PR locally for my native architecture, x86_64-LIBC

@JuniorSuperTux JuniorSuperTux changed the title dpp: update to 10.0.30 dpp: update to 10.0.30. Jul 8, 2024
@JuniorSuperTux JuniorSuperTux force-pushed the dpp_10.0.30 branch 6 times, most recently from 7f84a44 to eee5b94 Compare July 10, 2024 03:34
@ahesford
Copy link
Member

What's the argument for adding a build option? Options present a terrible user experience and should generally be avoided. Usually, we provide them to:

  1. Allow per-arch customization if some of our supported arches do not support a subset of the lackage features; or
  2. Allow users to manually disable features that might require additional dependencies that they wish to avoid.

As your addition neither depends on the arch nor adds dependencies, I wonder why it isn't just added unconditionally.

@JuniorSuperTux
Copy link
Contributor Author

JuniorSuperTux commented Jul 10, 2024

There were some issue compiling it with coroutine support enabled with gcc 12 which Void was using, and it was fine when compiled against gcc 13. My concern is that some people probably don't want to upgrade their compiler from 12 to 13 just to use this library.

[130/132] Building CXX object library/CMakeFiles/unittest.dir/__/src/unittest/coro.cpp.o
FAILED: library/CMakeFiles/unittest.dir/__/src/unittest/coro.cpp.o 
/usr/bin/g++ -DDPP_BUILD -DDPP_CORO -DDPP_OS=Linux -DDPP_USE_EXTERNAL_JSON -DHAVE_VOICE -DT_AVX2 -I/builddir/dpp-10.0.25/library/../include -I/builddir/dpp-10.0.25/library/../include/dpp -DNDEBUG -fstack-clash-protection -D_FORTIFY_SOURCE=2 -mtune=generic -O2    -ffile-prefix-map=/builddir/dpp-10.0.25/build=. -Wall -Wno-unused-private-field -Wno-psabi -Wempty-body -Wignored-qualifiers -Wimplicit-fallthrough -Wmissing-field-initializers -Wsign-compare -Wtype-limits -Wuninitialized -Wshift-negative-value -pthread -std=gnu++20 -mavx2 -MD -MT library/CMakeFiles/unittest.dir/__/src/unittest/coro.cpp.o -MF library/CMakeFiles/unittest.dir/__/src/unittest/coro.cpp.o.d -o library/CMakeFiles/unittest.dir/__/src/unittest/coro.cpp.o -c /builddir/dpp-10.0.25/src/unittest/coro.cpp
/builddir/dpp-10.0.25/src/unittest/coro.cpp: In lambda function:
/builddir/dpp-10.0.25/src/unittest/coro.cpp:297:34: error: use of deleted function 'dpp::detail::coroutine::coroutine_base<R>::coroutine_base(const dpp::detail::coroutine::coroutine_base<R>&) [with R = void]'
  297 |                         co_await nested1;
      |                                  ^~~~~~~
In file included from /builddir/dpp-10.0.25/library/../include/dpp/coro.h:26,
                 from /builddir/dpp-10.0.25/library/../include/dpp/dispatcher.h:52,
                 from /builddir/dpp-10.0.25/library/../include/dpp/discordclient.h:30,
                 from /builddir/dpp-10.0.25/library/../include/dpp/dpp.h:63,
                 from /builddir/dpp-10.0.25/src/unittest/test.h:27,
                 from /builddir/dpp-10.0.25/src/unittest/coro.cpp:5:
/builddir/dpp-10.0.25/library/../include/dpp/coro/coroutine.h:82:9: note: declared here
   82 |         coroutine_base(const coroutine_base &) = delete;
      |         ^~~~~~~~~~~~~~
/builddir/dpp-10.0.25/src/unittest/coro.cpp:302:34: error: use of deleted function 'dpp::detail::coroutine::coroutine_base<R>::coroutine_base(const dpp::detail::coroutine::coroutine_base<R>&) [with R = void]'
  302 |                         co_await nested2;
      |                                  ^~~~~~~
/builddir/dpp-10.0.25/library/../include/dpp/coro/coroutine.h:82:9: note: declared here
   82 |         coroutine_base(const coroutine_base &) = delete;
      |         ^~~~~~~~~~~~~~
/builddir/dpp-10.0.25/src/unittest/coro.cpp: In function 'dpp::job {anonymous}::async_test()':
/builddir/dpp-10.0.25/src/unittest/coro.cpp:322:48: error: use of deleted function 'dpp::detail::async::async_base<R>::async_base(const dpp::detail::async::async_base<R>&) [with R = int]'
  322 |                         if (int ret = co_await async; ret != 42)
      |                                                ^~~~~
In file included from /builddir/dpp-10.0.25/library/../include/dpp/coro.h:25:
/builddir/dpp-10.0.25/library/../include/dpp/coro/async.h:279:9: note: declared here
  279 |         async_base(const async_base &) = delete;
      |         ^~~~~~~~~~
/builddir/dpp-10.0.25/src/unittest/coro.cpp:336:48: error: use of deleted function 'dpp::detail::async::async_base<R>::async_base(const dpp::detail::async::async_base<R>&) [with R = int]'
  336 |                         if (int ret = co_await async; ret != 69)
      |                                                ^~~~~
/builddir/dpp-10.0.25/library/../include/dpp/coro/async.h:279:9: note: declared here
  279 |         async_base(const async_base &) = delete;
      |         ^~~~~~~~~~
/builddir/dpp-10.0.25/src/unittest/coro.cpp: In lambda function:
/builddir/dpp-10.0.25/src/unittest/coro.cpp:449:78: error: use of deleted function 'dpp::detail::task::task_base<R>::task_base(const dpp::detail::task::task_base<R>&) [with R = dpp::snowflake]'
  449 |                                                 msg_ids[i] = co_await tasks[i];
      |                                                                              ^
In file included from /builddir/dpp-10.0.25/library/../include/dpp/coro.h:28:
/builddir/dpp-10.0.25/library/../include/dpp/coro/task.h:114:9: note: declared here
  114 |         task_base(const task_base &) = delete;
      |         ^~~~~~~~~
/builddir/dpp-10.0.25/src/unittest/coro.cpp:464:104: error: use of deleted function 'dpp::detail::async::async_base<R>::async_base(const dpp::detail::async::async_base<R>&) [with R = dpp::confirmation_callback_t]'
  464 |                                                 dpp::confirmation_callback_t result = co_await reacts[i];
      |                                                                                                        ^
/builddir/dpp-10.0.25/library/../include/dpp/coro/async.h:279:9: note: declared here
  279 |         async_base(const async_base &) = delete;
      |         ^~~~~~~~~~
At global scope:
cc1plus: note: unrecognized command-line option '-Wno-unused-private-field' may have been intended to silence earlier diagnostics
[131/132] Building CXX object library/CMakeFiles/unittest.dir/__/src/unittest/test.cpp.o
ninja: build stopped: subcommand failed.
=> ERROR: dpp-10.0.25_2: do_build: '${make_cmd} ${makejobs} ${make_build_args} ${make_build_target}' exited with 1
=> ERROR:   in do_build() at common/build-style/cmake.sh:94

@ahesford
Copy link
Member

Void's GCC is at version 13, so the package will be built with GCC 13. Supporting builds on GCC 12 is not an issue and there is no need to complicate the template. If coroutine support is useful, just enable it; otherwise, just leave it out.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants