daphne-eu / daphne

DAPHNE: An Open and Extensible System Infrastructure for Integrated Data Analysis Pipelines
Apache License 2.0
67 stars 62 forks source link

No more workarounds for string ops, enabled through guarded instantiation of unary/binary ops #795

Closed pdamme closed 2 months ago

pdamme commented 3 months ago

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):

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.