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

Getting "TypeError: unhashable type: 'IDLCallbackType'" when attempting to build #326

Open
maxbbb opened this issue Aug 14, 2020 · 4 comments

Comments

@maxbbb
Copy link

maxbbb commented Aug 14, 2020

Hello,

When I do a clean install and follow the build instructions, I'm receiving this error after running cmake --build builds

[  0%] Building CXX object bullet/src/LinearMath/CMakeFiles/LinearMath.dir/btAlignedAllocator.o
[  1%] Building CXX object bullet/src/LinearMath/CMakeFiles/LinearMath.dir/btConvexHull.o
[  1%] Building CXX object bullet/src/LinearMath/CMakeFiles/LinearMath.dir/btConvexHullComputer.o
[  2%] Building CXX object bullet/src/LinearMath/CMakeFiles/LinearMath.dir/btGeometryUtil.o
[  2%] Building CXX object bullet/src/LinearMath/CMakeFiles/LinearMath.dir/btPolarDecomposition.o
[  3%] Building CXX object bullet/src/LinearMath/CMakeFiles/LinearMath.dir/btQuickprof.o
[  3%] Building CXX object bullet/src/LinearMath/CMakeFiles/LinearMath.dir/btSerializer.o
[  5%] Building CXX object bullet/src/LinearMath/CMakeFiles/LinearMath.dir/btVector3.o
[  5%] Linking CXX static library libLinearMath.a
[  5%] Built target LinearMath
Scanning dependencies of target ammo-bindings
[  6%] Generating ammo bindings
Traceback (most recent call last):
  File "/Users/kanethomas/dev-projects/emsdk/upstream/emscripten/tools/webidl_binder.py", line 57, in <module>
    data = p.finish()
  File "/Users/kanethomas/dev-projects/emsdk/upstream/emscripten/third_party/WebIDL.py", line 4983, in finish
    if p not in seen:
TypeError: unhashable type: 'IDLCallbackType'
make[2]: *** [glue.cpp] Error 1
make[1]: *** [CMakeFiles/ammo-bindings.dir/all] Error 2
make: *** [all] Error 2

I've built in the past with the old build system, and curiously the first time I tried building with the new build system I did not receive this error, but the next time I tried to build I did. I thought it was due to changes I had made to the IDL but I tried with a fresh install and still no luck. I tried completely deleting both cmake and emsdk but that also didn't help. Also tried on a few previous versions of emsdk to see if it was due to a recent change or something. Last resort tried on a new machine that didn't have cmake or emsdk and got the same issue.

Versions if they're relevant
emcc: 2.0.0
python: 3.6.1
cmake: 3.18.1

Any help with this would be greatly appreciated.

@maxbbb
Copy link
Author

maxbbb commented Aug 18, 2020

If anyone has any ideas on what could be causing this would appreciate even just some direction if it's a local setup issue, not familiar with emscripten and couldn't really find anything online about this type of error.

@ianpurvis
Copy link
Collaborator

Hi, sorry I am just reading this now. I've seen this error as well and was able to recreate it in the CI builds for #327 .

I'm not sure, but it seems like python 3 hashing behavior breaks the WebIDL Binder. I think we're going to need @kripken to help get it fixed on the emscripten side. You should be able to avoid this by downgrading to emsdk < 2.0 and using python < 3.0. Let me know if you have any build issues from there!

@maxbbb
Copy link
Author

maxbbb commented Aug 20, 2020

So actually I went ahead and integrated your patch for the setInternalTickCallback from #329 and everything is good now rather than downgrading emsdk and python. Thank you for your help!!

@ianpurvis
Copy link
Collaborator

Awesome!

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