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

[DYOD] Add generic implementation of Parallel Inplace Merge Sort #2605

Open
wants to merge 16 commits into
base: master
Choose a base branch
from

Conversation

niklasmohrin
Copy link
Contributor

These changes are extracted into a separate PR from our project work on the window function operator, as discussed with supervisors. The main PR will be opened later :)

I broke down the changes into three clean commits, so that you can keep them if you want, but feel free to squash anyways if you feel like it.

Since this uses span (and other C++20 features) again, gcc-9 doesn't work. Should I also include the commit updating it here, or open another PR, or do something completely different?

@Bouncner
Copy link
Collaborator

Given this list (https://en.cppreference.com/w/cpp/compiler_support), GCC 10 should at least support std::span. Do you know if we need more than GCC 10?

@niklasmohrin
Copy link
Contributor Author

In our intermediate review PR, we got it to get past the span error, but then it gcc-ed on us again with the "control reaches end of non-void function"; I can include the gcc-10 commit here and we can see what happens? (if it works, I can also open another PR and rebase this one)

We want to use features that gcc 9 doesn't support. Commands to
reproduce:

```sh
sed -i 's/gcc-9/gcc-10/g' Jenkinsfile Dockerfile install_dependencies.sh
sed -i 's/g++-9/g++-10/g' Jenkinsfile Dockerfile install_dependencies.sh
sed -i 's/gcc9/gcc10/g' Jenkinsfile Dockerfile install_dependencies.sh
sed -i 's/g++9/g++10/g' Jenkinsfile Dockerfile install_dependencies.sh
```
@niklasmohrin
Copy link
Contributor Author

Okay, works with gcc-10, but somehow clang-11 gives the error member reference base type 'std::span' is not a structure or union when trying to use std::span(something).subspan(anotherthing). Not sure what is going on, the same line seems to work on its own on https://godbolt.org/z/nxnzabxcr 🤔

The full file starts working with clang 13 and breaks for different reasons in clang 11 and 12 on godbolt: https://godbolt.org/z/qdvq61WWs

Command to reproduce:
```bash
sed -i -e 's/clang++-11/clang++-13/g' -e 's/clang-11/clang-13/g' -e 's/clang++11/clang++13/g' -e 's/clang11/clang13/g' Jenkinsfile Dockerfile install_dependencies.sh
```
@niklasmohrin niklasmohrin added the FullCI Run all CI tests (slow, but required for merge) label Aug 17, 2023
@niklasmohrin niklasmohrin force-pushed the parallel-inplace-merge-sort-pr-head branch from 836e9c4 to c6e821c Compare August 24, 2023 09:20
@niklasmohrin niklasmohrin marked this pull request as ready for review August 24, 2023 09:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
FullCI Run all CI tests (slow, but required for merge)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants