-
Notifications
You must be signed in to change notification settings - Fork 14
Make Python magic optional #26
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
Comments
@SylvainCorlay thanks for the suggestion! Can you elaborate a little more? cc: @ioanaif |
I think that making CPython a dependency, and baking in the Python magic complicates packaging signicantly. I would rather like a very minimal (yet extensible) C++ kernel.
|
Do you have an example where we can learn and package it in a similar way? |
The way I would go about it is the following:
void* handle = dlopen("plugin.so");
if (handle != NULL)
{
func* load = dlsym(handle, "load");
if (load != NULL)
{
int ret = load();
return 0;
}
}
return 1; This can obviously be a lot more advanced. Plugins can provide more functions, be listed by listing the items in the |
So basically you need a tiny library for abstracting the way you dynamically load libraries. Things to decide before starting to design one (or using an laready existing one such as https://github.com/gazebosim/gz-plugin):
|
It would be great if the Python magic was a plugin, so that we don't need CPython to build xeus-clang.
A byproduct of requiring CPython is that conda-forge needs to make variants of the build for all supported versions of Python.
The text was updated successfully, but these errors were encountered: