Open
Description
I need to bump the kotlin tree-sitter version (I'm working on adding support to Cursorless). I just cloned this for the first time, along with a fresh clone of emscripten (which I did activate) and I'm getting the following build failure:
~/projects/vscode-parse-tree$ yarn
yarn install v1.22.22
$ make web-tree-sitter
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 2902k 0 2902k 0 0 3340k 0 --:--:-- --:--:-- --:--:-- 3340k
emcc: error: undefined exported symbol: "__ZNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE9__grow_byEmmmmmm" [-Wundefined] [-Werror]
make: *** [Makefile:59: vendor/web-tree-sitter/README.md] Error 1
error Command failed with exit code 2.
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
I'm doing all this on WSL with an LTS installation of node/npm and a fresh installation of yarn. I see a similar closed bug but I'm not sure what the fix is: #30
Metadata
Metadata
Assignees
Labels
No labels
Activity
wolfmanstout commentedon Jun 10, 2024
Some more investigation indicates that I can reproduce this within a separate tree-sitter clone with ./script/build-wasm, but only if I check out the commit listed in in tree-sitter-version. tree-sitter builds fine at HEAD.
If I update tree-sitter-version here, I hit issues later in the build:
wolfmanstout commentedon Jun 10, 2024
I updated to the latest Ubuntu LTS (22.04.04, Jammy) on WSL, which includes a later Python version (3.10), and the build completes, but only if I update tree-sitter-version (otherwise it fails with the originally reported error). So I guess we could bump the tree-sitter-version and close this out? Not sure what testing needs to be done.
wolfmanstout commentedon Jun 12, 2024
I tried bumping tree-sitter-version to HEAD and Cursorless failed a bunch of tests. I did a little more research to understand why I wasn't able to compile with the current tree-sitter-version. It turns out that each tree-sitter version is only guaranteed to work with a specific emscripten version. If you look at the tree-sitter repository at the pinned version, you can see that version is currently 3.1.37:
https://github.com/tree-sitter/tree-sitter/blob/6bbb50bef8249e6460e7d69e42cc8146622fa4fd/cli/emscripten-version#L1C1-L1C7
Hence, what I did was run:
And now it builds.
I'm not sure what you want to do with this bug. At the very least it seems like a good idea to update the README to explain to users how to find the right emscripten version and activate it.
pokey commentedon Jun 12, 2024
I'm doing the upgrade now; been a battle, but I'm pretty close. Stay tuned
pokey commentedon Jun 12, 2024
(see #84)
wolfmanstout commentedon Jun 13, 2024
Thanks! Still would be good to document the emsdk stuff better so future contributors don't run into the same problems I did. I can send a PR to update the readme if you want.
pokey commentedon Jun 13, 2024
That would be awesome
pokey commentedon Jun 14, 2024
ok we're now on tree-sitter version tree-sitter/tree-sitter@604d38e as of vscode-parse-tree version 0.31.0
pokey commentedon Jun 17, 2024
fwiw looks like that emscripten version file has moved. Here's where it is for the version of tree-sitter we're currently on https://github.com/tree-sitter/tree-sitter/blob/604d38e6b327ed33877e1285680b505b9484a71c/cli/loader/emscripten-version
also just wanted to confirm whether this issue is fixed for you?
wolfmanstout commentedon Jun 17, 2024
Thanks for the heads up about the file move. Yes this issue is fixed for me. Feel free to close now or after I send the docs improvement when I find time.
pokey commentedon Jun 17, 2024
Great. Sure, I'll leave it open until docs fix lands