-
Notifications
You must be signed in to change notification settings - Fork 919
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
[FEA] Split experimental/row_operators.cuh
#11012
Comments
Tag directly related devs: @devavret @jrhemstad @bdice. |
The only reason it was one monolithic header is because it was a replacement of the single |
Then the hashing header can just include the equality header. Some source files just need equality comparison. Wait: Using each other table? Then I'm not sure... |
This idea seems fine to me. We'll want to make sure that the designs stay parallel (wherever possible) despite being in separate files. |
Thanks all. Then I'll go ahead and do this split. Will have a PR up shortly. |
I'm fine with this, but let's wait on splitting them up until we are ready to move them out of "experimental". Then we can split them as we move their namespaces. |
This issue has been labeled |
I believe that addressing this is blocked on #11844, or at least should be conditioned on addressing that issue. Once the newer comparators are used everywhere, we can remove the old comparators and move the new ones into the places that we want them. |
@vyasr @bdice @ttnghia @GregoryKimball I am about to go ahead and start on this issue, please let me know your thoughts. I prefer breaking these up as:
The reason I prefer to split them up this way is that we will be mirroring the sub-directory structure with the namespaces. Any common code can be present in Furthermore, in my PR I will add some redundancy if any code in |
I have a slight preference for subdirectories over underscores as well, and I am fine with the temporary duplication. |
This proposal sounds fine to me. Roughly how far are we from migrating entirely to "experimental" comparators? Are there any hard cases left, or are all the remaining instances relatively straightforward? |
@bdice there are a couple of hard cases left. The most notorious one being joins. The actual update is easy, of course, but it's going to be difficult testing each and every single join for nested types in terms of it being a mechanical, time consuming process. That being said, I'm hoping we can drop experimental by the very end of 23.04 release, or very start of 23.06 release. |
So you're proposing:
instead of
Then what other files will be in these directories ( |
@ttnghia no other files for now, but giving us the option to have comparator-specific files to put in these sub-directories in the future.
I suggest this because the namespacing is super confusing right now. |
The namespace does not always align with directories. You can see many files like |
That is a specific structure of the Alternatively, I would also be okay with While I have been doing these updates to the experimental API, I always forget what the actual namespace of the comparators are because they don't make any sense when it comes to the directory/file naming. |
Currently,
experimental/row_operators.cuh
file is huge: over 1200LOC and is growing. Including the entire file into a source file that only uses a small part of it is burdensome. I also feel dizzy while navigating it trying to find a struct/function of interest.We should split it up (and re-organize files) into separate files like:
experimental/row_operators/common.cuh
experimental/row_operators/lexicographic.cuh
experimental/row_operators/equality.cuh
experimental/row_operators/hashing.cuh
The text was updated successfully, but these errors were encountered: