Allow tohil to work with statically linked Python interpreter #91
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.
In order to support a statically linked Python a few conditional checks were added at the configure step, and instead of using dlopen, the Python module is statically initialized.
This allows for a tohil Tcl extension to bundle Python with it, providing a mechanism to deploy Python outside of a system level while still providing the Tcl-Python interoperability.
My goal is to follow up on this pull request with support for a custom module loader which supports loading Python modules using the Tcl Virtual Filesystem (VFS) C API. This will allow Python modules to be bundled using starpacks, zip files, or on the network as users see fit. Where it relates to the static build is allowing a Tcl kit to bundle: (1) a working python interpreter that is statically linked to the tohil extension; and (2) a mechanism to resolve all required Python modules from within a Tclkit VFS. This will allow for a self-contained Python application, including a working TKinter, which is not supported by the official Python freeze mechanism.