-
Notifications
You must be signed in to change notification settings - Fork 77
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
Fix longjmp marshaling tests, clean up relifting #1023
Conversation
Might be worth doing some of the incremental benchmarks here, if this is very expensive, it might be worth taking steps to avoid relifting where it is not needed due to the current configuration. |
Also we might think about writing a deriver for |
That could be rather error-prone again though. If all possibilities for sub-printables are not accounted for in a particular configuration, it leads to similar hard-to-debug issues.
I'll add it to #31. I started working on it at some point, but it's been in hibernation for a long time. I wanted a more general and maintainable approach than writing a dozen ppx derivers which duplicate large parts of the code just for a different function name/return type/number of arguments/etc. |
Besides just fixing the necessary, this does broader cleanup with the hope to avoid similar issues again.
Changes
Printable.Std.relift
which hides missing definitions.relift
definitions. Some rather core types likeMapDomain
were not relifting their inner components.Printable.StdLeaf
asPrintable.Std
alternative with identityrelift
. This is only to be used with primitive and CIL types which don't contain inner types that could require relifting.Printable.Std.name
, which names everything "std". This makes debugging such issues a total pain, e.g. "lifted std and either std or std option" is completely ineligible. All printables must specify a name explicitly.name
definitions.TODO
relift
s for all other marshaling tests.