Open
Description
Xeus-cpp should be able to attach clang-repl and other plugins such as clad or cppyy. We should investigate and implement plugin-system which is friendly to package managers.
@SylvainCorlay, you had a concrete proposal for directory structure that we wanted to adopt. Could you spell it out here?
Metadata
Metadata
Assignees
Labels
No labels
Activity
SylvainCorlay commentedon Apr 5, 2023
The way I would go about it is the following:
Each clang-repl plugin provides a shared object (dynamic library) installed in the standard location (
$PREFIX/lib
most typically) providing a standardized API, for example aload(xcpp::interpreter&)
free function to be invoked upon starting the plugin.Each plugin gets installed with a "manifest" in
$PREFIX/share/xeus-cpp/plugins.d
in the form of a JSON file providing information about the plugin (the name of the dynamic library to be loaded, and metadata such as a description).This can obviously be a lot more advanced. Plugins can provide more functions, be listed by listing the items in the
plugins.d
directory. Installing a plugin is done by placing files in the installation prefix, so that it can easily be done via a package manager.vgvassilev commentedon Aug 2, 2023
@SylvainCorlay, in our last meeting you said you already had implementation of that system for some other project. If it is open source could you point it to us as it seems that @mvassilev wants to look into this issue.
SylvainCorlay commentedon Aug 2, 2023
Hey @vgvassilev. The timing is almost perfect. @DerThorsten just pushed out the first replease of xplugin.