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

Module Matching Error #9

Open
hhergeth opened this issue Oct 2, 2022 · 1 comment
Open

Module Matching Error #9

hhergeth opened this issue Oct 2, 2022 · 1 comment

Comments

@hhergeth
Copy link

hhergeth commented Oct 2, 2022

When running tsembind on a js import library generated with embind I am getting the error message "Cannot find module". I printed the key of the only item stored in the registries variable and got this:

[Object: null prototype] {
  memory: Memory [WebAssembly.Memory] {},
  __wasm_call_ctors: [Function: 62],
  free: [Function: 27395],
  malloc: [Function: 27394],
  __indirect_function_table: Table [WebAssembly.Table] {},
  __errno_location: [Function: 27225],
  __em_js____asyncjs__fetch_json_from_url: Global [WebAssembly.Global] {},
  fflush: [Function: 27257],
  saveSetjmp: [Function: 27410],
  __getTypeName: [Function: 27219],
  _embind_initialize_bindings: [Function: 27220],
  setThrew: [Function: 27409],
  emscripten_stack_init: [Function: 28884],
  emscripten_stack_set_limits: [Function: 28885],
  emscripten_stack_get_free: [Function: 28886],
  emscripten_stack_get_base: [Function: 28887],
  emscripten_stack_get_end: [Function: 28888],
  stackSave: [Function: 28881],
  stackRestore: [Function: 28882],
  stackAlloc: [Function: 28883],
  __cxa_is_pointer_type: [Function: 28857],
  __start_em_js: Global [WebAssembly.Global] {},
  __stop_em_js: Global [WebAssembly.Global] {},
  dynCall_ii: [Function: 28889],
  dynCall_dii: [Function: 28890],
  dynCall_vi: [Function: 28891],
  dynCall_iii: [Function: 28892],
  dynCall_viiiiid: [Function: 28893],
  dynCall_viiid: [Function: 28894],
  dynCall_iiiiid: [Function: 28895],
  dynCall_viiii: [Function: 28896],
  dynCall_viii: [Function: 28897],
  dynCall_vii: [Function: 28898],
  dynCall_viiiii: [Function: 28899],
  dynCall_di: [Function: 28900],
  dynCall_v: [Function: 28901],
  dynCall_diiii: [Function: 28902],
  dynCall_viiiiii: [Function: 28903],
  dynCall_iiii: [Function: 28904],
  dynCall_iiiiiii: [Function: 28905],
  dynCall_i: [Function: 28906],
  dynCall_viid: [Function: 28907],
  dynCall_viiiid: [Function: 28908],
  dynCall_iiid: [Function: 28909],
  dynCall_viiiidd: [Function: 28910],
  dynCall_iiiiiid: [Function: 28911],
  dynCall_iiiid: [Function: 28912],
  dynCall_iiiii: [Function: 28913],
  dynCall_iiiiiiii: [Function: 28914],
  dynCall_iiiiii: [Function: 28915],
  dynCall_iiiiidd: [Function: 28916],
  dynCall_diii: [Function: 28917],
  dynCall_vidi: [Function: 28918],
  dynCall_jiji: [Function: 28926],
  dynCall_iidiiii: [Function: 28920],
  dynCall_viijii: [Function: 28927],
  dynCall_iiiiiiiii: [Function: 28922],
  dynCall_iiiiij: [Function: 28928],
  dynCall_iiiiijj: [Function: 28929],
  dynCall_iiiiiijj: [Function: 28930],
  asyncify_start_unwind: [Function: 28933],
  asyncify_stop_unwind: [Function: 28934],
  asyncify_start_rewind: [Function: 28935],
  asyncify_stop_rewind: [Function: 28936],
  asyncify_get_state: [Function: 28937]
}

At the same time the module.asm lookup key is this:

{
  memory: Memory [WebAssembly.Memory] {},
  __wasm_call_ctors: [Function (anonymous)],
  free: [Function (anonymous)],
  malloc: [Function (anonymous)],
  __indirect_function_table: Table [WebAssembly.Table] {},
  __errno_location: [Function (anonymous)],
  __em_js____asyncjs__fetch_json_from_url: Global [WebAssembly.Global] {},
  fflush: [Function (anonymous)],
  saveSetjmp: [Function (anonymous)],
  __getTypeName: [Function (anonymous)],
  _embind_initialize_bindings: [Function (anonymous)],
  setThrew: [Function (anonymous)],
  emscripten_stack_init: [Function (anonymous)],
  emscripten_stack_set_limits: [Function (anonymous)],
  emscripten_stack_get_free: [Function (anonymous)],
  emscripten_stack_get_base: [Function (anonymous)],
  emscripten_stack_get_end: [Function (anonymous)],
  stackSave: [Function (anonymous)],
  stackRestore: [Function (anonymous)],
  stackAlloc: [Function (anonymous)],
  __cxa_is_pointer_type: [Function (anonymous)],
  __start_em_js: Global [WebAssembly.Global] {},
  __stop_em_js: Global [WebAssembly.Global] {},
  dynCall_ii: [Function (anonymous)],
  dynCall_dii: [Function (anonymous)],
  dynCall_vi: [Function (anonymous)],
  dynCall_iii: [Function (anonymous)],
  dynCall_viiiiid: [Function (anonymous)],
  dynCall_viiid: [Function (anonymous)],
  dynCall_iiiiid: [Function (anonymous)],
  dynCall_viiii: [Function (anonymous)],
  dynCall_viii: [Function (anonymous)],
  dynCall_vii: [Function (anonymous)],
  dynCall_viiiii: [Function (anonymous)],
  dynCall_di: [Function (anonymous)],
  dynCall_v: [Function (anonymous)],
  dynCall_diiii: [Function (anonymous)],
  dynCall_viiiiii: [Function (anonymous)],
  dynCall_iiii: [Function (anonymous)],
  dynCall_iiiiiii: [Function (anonymous)],
  dynCall_i: [Function (anonymous)],
  dynCall_viid: [Function (anonymous)],
  dynCall_viiiid: [Function (anonymous)],
  dynCall_iiid: [Function (anonymous)],
  dynCall_viiiidd: [Function (anonymous)],
  dynCall_iiiiiid: [Function (anonymous)],
  dynCall_iiiid: [Function (anonymous)],
  dynCall_iiiii: [Function (anonymous)],
  dynCall_iiiiiiii: [Function (anonymous)],
  dynCall_iiiiii: [Function (anonymous)],
  dynCall_iiiiidd: [Function (anonymous)],
  dynCall_diii: [Function (anonymous)],
  dynCall_vidi: [Function (anonymous)],
  dynCall_jiji: [Function (anonymous)],
  dynCall_iidiiii: [Function (anonymous)],
  dynCall_viijii: [Function (anonymous)],
  dynCall_iiiiiiiii: [Function (anonymous)],
  dynCall_iiiiij: [Function (anonymous)],
  dynCall_iiiiijj: [Function (anonymous)],
  dynCall_iiiiiijj: [Function (anonymous)],
  asyncify_start_unwind: [Function (anonymous)],
  asyncify_stop_unwind: [Function (anonymous)],
  asyncify_start_rewind: [Function (anonymous)],
  asyncify_stop_rewind: [Function (anonymous)],
  asyncify_get_state: [Function (anonymous)]
}

My emscripten is up to date:

emcc --version
emcc (Emscripten gcc/clang-like replacement + linker emulating GNU ld) 3.1.23 (5ae63ce7dd955df449cb419bfe5afc51d1bd57f2)

Sadly my WebAssembly knowledge isn't sufficient to understand how to properly fix this problem. My temporary workaround was to simply use the one and only module stored in the registry, which then resulted in the expected ts bindings.

@ted537
Copy link
Owner

ted537 commented Oct 5, 2022

Hm, it could be that something's changed in a recent embind version - I haven't run this in a while and the features it uses to hook into embind aren't exactly documented / guaranteed to remain stable.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants