-
Notifications
You must be signed in to change notification settings - Fork 30
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
wip: datalog foreign function interface prototype #228
Draft
divarvel
wants to merge
7
commits into
v5
Choose a base branch
from
ffi
base: v5
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Commits on Nov 12, 2024
-
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: - stricter conversions from datalog - feature-gating if possible Open questions: - enum index for the FFI variants (contiguous or not?) - how to provide functions (right now, function pointers: prevent mutability and closing over arguments) - how to provide arguments (right now, datalog::Term, so symbols have to be resolved, and functions returning strings have to register new symbols)
Configuration menu - View commit details
-
Copy full SHA for 3cede37 - Browse repository at this point
Copy the full SHA 3cede37View commit details -
Configuration menu - View commit details
-
Copy full SHA for e0522da - Browse repository at this point
Copy the full SHA e0522daView commit details -
wip: allow closures in external funcs, use builder terms
- using boxed functions instead of function pointers allow capturing the environment - using builder terms instead of datalog terms remove the need for manual symbol management
Configuration menu - View commit details
-
Copy full SHA for 51d246f - Browse repository at this point
Copy the full SHA 51d246fView commit details -
Configuration menu - View commit details
-
Copy full SHA for f6047ec - Browse repository at this point
Copy the full SHA f6047ecView commit details -
Configuration menu - View commit details
-
Copy full SHA for 128c031 - Browse repository at this point
Copy the full SHA 128c031View commit details -
Configuration menu - View commit details
-
Copy full SHA for bf923cb - Browse repository at this point
Copy the full SHA bf923cbView commit details
Commits on Nov 13, 2024
-
Instead of storing strings directly in the ops, do as we do for everything else and use the symbol table. This required duplicating `biscuit_parser::builder::Binary` and `Unary` in the `biscuit_auth::builder` module (which previously used the definitions from the `datalog` module directly). There is a lot of duplication between `biscuit_parser::builder` and `biscuit_auth::builder`, with a circular-ish dependency (biscuit_auth depends on biscuit parser, but code generated by the `ToTokens` impl blocks in biscuit parser depend on `biscuit_auth::builder`).
Configuration menu - View commit details
-
Copy full SHA for 99c0718 - Browse repository at this point
Copy the full SHA 99c0718View commit details
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.