No more workarounds for string ops, enabled through guarded instantiation of unary/binary ops #795
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR is a step towards extensible value types in DAPHNE. Ultimately, we want to support a rich set of custom value types and reuse/instantiate the existing kernels for them without extra implementation effort. Enabling this requires, besides other things, making some pieces of the code base more general.
This PR addresses one concrete example: elementwise unary and binary operations. Currently one quickly runs into C++ compilation problems when instantiating these kernels for non-numeric value types (e.g., string or any custom non-numeric value type in the future).
The PR contains two commits (see the commit messages for more details):
StringEqOp
,ConcatOp
) and uses the originally intended elementwise binary ops (EwEqOp
,EwConcatOp
) instead. Doing that becomes possible through the first commit.The commits in this PR are intended to be rebased and merged, to better reflect the individual changes.
As this PR makes some general (but simple) changes to the elementwise unary/binary kernels, I'd like to make everyone interested aware. Comments are welcome, but I'm not asking for a detailed review. This PR can be merged after the v0.3 release.