Skip to content
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

Split guile-gi into parser and runtime #139

Open
spk121 opened this issue May 29, 2023 · 0 comments
Open

Split guile-gi into parser and runtime #139

spk121 opened this issue May 29, 2023 · 0 comments
Labels
enhancement New feature or request

Comments

@spk121
Copy link
Owner

spk121 commented May 29, 2023

libguile-gi.so should not link to a specific version of GObject / GLib, since there is no guarantee that a user will be loading a GObject-using library that links to the same version of GObject that libguile-gi.so did. When those versions differ, pointers and pointer-like numbers like GType can be incorrect. It should wait for the user to load a GObject-using library, then dlopen GObject/GLib.

That can't happen because libguile-gi links to libgirepository which itself links to a specific version of GObject/GLib.

So, split guile-gi into a parser and a runtime. The parser can use libgirepository to create information that describes how to bind a GObject library. The runtime should parse that information and otherwise avoid libgirepository completely.

Basically this is just creating a guile-gi specific intermediate data that acts like GIR XML, without the overhead of parsing large XML files at runtime.

See bug #96
See discussion #133

@spk121 spk121 added the enhancement New feature or request label May 29, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

When branches are created from issues, their pull requests are automatically linked.

1 participant