---
# System prepended metadata

title: Python Component Tooling Meeting 2023-06-08

---

# Python Component Tooling Meeting 2023-06-08

## Agenda
- Guest Languages SIG administrivia
    - Open to moving meeting to friendlier time and/or staggering; need feedback to choose a time
    - Haven't set up shared calendar yet
- Progress on shared-everything linking ([demo](https://github.com/dicej/component-linking-demo))
    - Next steps: dlopen/dlsym support, micro-json proof-of-concept
    - Perhaps Brett could walk us through the process of loading a native extension?
- Next steps on `componentize-py` (updating to new WIT syntax, resources)
- Conformance test and/or demo
- WASIX
- Anything else?

## Notes
- Kevin: original WASIX (not wasmer one) from singlestore adds more POSIX stuff (e.g. stubs) to WASI, and Dan is interested in adding it to wasi-libc
- Brett demos import process for native extensions
    - sys.path is load path
    - import ujson: look at sys.path, check each dir to find ujson.cpython-31-x86_64-linux-gnu.so (or compatible?)
    - dlopen, dlsym PyInit_ujson -- return value defines the module
        - that's the _only_ thing it dlsyms (unless library uses ctypes to do its own dlopen/dlsym)
        - https://docs.python.org/3/extending/extending.html#the-module-s-method-table-and-initialization-function
    - numpy has multiple .so files
        - import numpy.core._umath_tests
        - numpy `__init__` files define `__path__` where libs can be found for each package and subpackage
            - aka `__spec__.submodule_search_locations`
    - https://github.com/python/cpython/blob/4ff5690e591b7d11cf11e34bf61004e2ea58ab3c/Python/dynload_shlib.c#L53
    - https://docs.python.org/3/c-api/module.html#initializing-modules
    - https://docs.python.org/3/extending/extending.html#a-simple-example
    - just care about file name; no need to have content or metadata
    - https://www.tweag.io/blog/2022-03-17-libffi-wasm32/
    - 

## Action Items
- Joel post when2meet link on Zulip for potentially move SIG meeting time
- re-invite Brett and invite Kushal