wip: datalog foreign function interface prototype
This allows using external functions in datalog.
This makes it easy to provide custom logic without extending the spec for every use-case, at the expense of portability: behaviour is no longer guaranteed to be consistent cross languages, and some languages won’t be able to support it at all (for instance JS as of now).
Todo:
- feature-gating if possible (does it make sense? since it will still impact protobuf serialization)
- samples (if we consider it part of the spec?)
Open questions:
- protobuf enum index for the FFI variants (contiguous or not?)
- should function names be interned as well? they are currently not
Code coverage should be improved by adding samples
CodSpeed Performance Report
Merging #228 will not alter performance
Comparing ffi (a179587) with v5 (e59f41d)
Summary
✅ 12 untouched benchmarks
Codecov Report
Attention: Patch coverage is 75.54180% with 79 lines in your changes missing coverage. Please review.
Project coverage is 65.44%. Comparing base (
796ba5d) to head (a179587). Report is 9 commits behind head on v5.
Additional details and impacted files
@@ Coverage Diff @@
## v5 #228 +/- ##
==========================================
+ Coverage 64.82% 65.44% +0.62%
==========================================
Files 25 25
Lines 6502 6729 +227
==========================================
+ Hits 4215 4404 +189
- Misses 2287 2325 +38
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
🚨 Try these New Features:
- Flaky Tests Detection - Detect and resolve failed and flaky tests
that will be a great tool for future experimentation