Skip to content
This repository was archived by the owner on Sep 30, 2024. It is now read-only.

Highlighting: add tree-sitter support for the most common programming languages #47571

Merged
merged 21 commits into from
Feb 27, 2023

Conversation

olafurpg
Copy link
Member

@olafurpg olafurpg commented Feb 13, 2023

Previously, we only supported Syntect syntax highlighting for C# and Scala. This PR adds tree-sitter support for more languages (JS, TS, C, C++, Java, Ruby, Rust, and Python), which should both improve performance and produce higher quality highlighting.

Down the road, we can start emitting symbol data alongside highlighting to unblock other features like rendering stable symbol-based URLs for "Copy link".

Follow-up items:

  • Update highlights.scm to only use SCIP SyntaxKind names. For example, we should replace all @variable with @identifier.
  • Update SCIP SyntaxKind to include: IdentifierField, IdentifierMacro. See added TODOs in highlights.scm for a few other cases where our current kinds may not be good enough.
  • Start emitting IdentifierLocal based on locals.scm queries
  • Update SCIP to rename IdentifierKeyword into Keyword.

Test plan

See updated snapshot tests.

@olafurpg olafurpg requested a review from tjdevries February 13, 2023 21:12
@cla-bot cla-bot bot added the cla-signed label Feb 13, 2023
@olafurpg olafurpg changed the title Highlighting: add tree-sitter support for JavaScript and TypeScript Highlighting: add tree-sitter support for JavaScript, TypeScript, and Java Feb 14, 2023
@github-actions
Copy link
Contributor

Problem: the label i-acknowledge-this-goes-into-the-release is absent.
👉 What to do: we're in the next Sourcegraph release code freeze period. If you are 100% sure your changes should get released or provide no risk to the release, add the label your PR with i-acknowledge-this-goes-into-the-release.

@olafurpg olafurpg changed the title Highlighting: add tree-sitter support for JavaScript, TypeScript, and Java Highlighting: add tree-sitter support for the most common programming languages Feb 15, 2023
@github-actions
Copy link
Contributor

Problem: the label i-acknowledge-this-goes-into-the-release is absent.
👉 What to do: we're in the next Sourcegraph release code freeze period. If you are 100% sure your changes should get released or provide no risk to the release, add the label your PR with i-acknowledge-this-goes-into-the-release.

@github-actions
Copy link
Contributor

Problem: the label i-acknowledge-this-goes-into-the-release is absent.
👉 What to do: we're in the next Sourcegraph release code freeze period. If you are 100% sure your changes should get released or provide no risk to the release, add the label your PR with i-acknowledge-this-goes-into-the-release.
When does the freeze end? The code freeze is active until 2023-02-22 at 23:59 UTC.

@tjdevries
Copy link
Contributor

ok, after those comments I think it looks good to me!

Copy link
Contributor

@tjdevries tjdevries left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

feel free to merge after comments. nice!!

@olafurpg olafurpg force-pushed the olafurpg/ts-symbols branch from f6dc291 to 3405724 Compare February 21, 2023 18:25
@olafurpg
Copy link
Member Author

This PR is ready to merge once main is unblocked

@olafurpg
Copy link
Member Author

@tjdevries Any idea why CI is failing with this error?

#15 447.6   error occurred: Failed to find tool. Is `c++` installed?

@olafurpg olafurpg force-pushed the olafurpg/ts-symbols branch 2 times, most recently from 8c406ca to fb414e3 Compare February 23, 2023 13:17
@olafurpg olafurpg enabled auto-merge (squash) February 23, 2023 13:26
auto-merge was automatically disabled February 23, 2023 15:46

Merge could not be authorized

@olafurpg
Copy link
Member Author

The CI is failing with a new error after I added c++ to the image https://buildkite.com/sourcegraph/sourcegraph/builds/201141#01867e6d-83f9-4103-9076-d2593e22e093/6-526

process didn't exit successfully: `/repo/target/release/deps/sg_syntax-5cf5a6539ac70d00` (signal: 11, SIGSEGV: invalid memory reference)

I'm unable to reproduce locally on macOS, the command cargo test --release --workspace passes.

@tjdevries
Copy link
Contributor

hmm, that's pretty weird -- maybe somehow old version of rust in the ci images? I can try and take a look tomorrow

@olafurpg
Copy link
Member Author

I bumped the rust image to the latest alpine3.14 tag that I could find, which is rust 1.61.0, while our .tool-versions is 1.62.0. Let's see if that helps.

@olafurpg olafurpg enabled auto-merge (squash) February 24, 2023 07:37
Previously, we only supported Syntect syntax highlighting for TypeScript
and JavaScript. This PR adds tree-sitter support for those languages,
which should both have more reliable performance and produce higher
quality highlighting.

Down the road, we can start emitting symbol data alongside highlighting
to unblock other features like rendering stable symbol-based URLs for
"Copy link".
@olafurpg olafurpg force-pushed the olafurpg/ts-symbols branch from 16188be to e386293 Compare February 24, 2023 07:39
@olafurpg
Copy link
Member Author

I'm able to reproduce the CI failures locally with

cd docker-images/syntax-highlighter
docker build .

I tried to upgrade to the latest rust image rust:1.67.1-alpine3.17@sha256:8269a16b3eaf33893cc00ea0650b4a4e8323f9a459ce0b527b630310dafbf6ee but got another cryptic error about cc linking

#12 503.4 error: linking with `cc` failed: exit status: 1
#12 503.4   |
#12 503.4   = note: "cc" "/usr/local/rustup/toolchains/1.62-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/self-contained/crt1.o" "/usr/local/rustup/toolchains/1.62-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/self-contained/crti.o" "/usr/local/rustup/toolchains/1.62-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/self-contained/crtbegin.o" "/tmp/rustcgAa2Da/symbols.o" "/repo/target/release/deps/sg_syntax-d085fabc52120ac5.sg_syntax.d3fff0e7-cgu.0.rcgu.o" "/repo/target/release/deps/sg_syntax-d085fabc52120ac5.sg_syntax.d3fff0e7-cgu.1.rcgu.o" "/repo/target/release/deps/sg_syntax-d085fabc52120ac5.sg_syntax.d3fff0e7-cgu.10.rcgu.o" "/repo/target/release/deps/sg_syntax-d085fabc52120ac5.sg_syntax.d3fff0e7-cgu.11.rcgu.o" "/repo/target/release/deps/sg_syntax-d085fabc52120ac5.sg_syntax.d3fff0e7-cgu.12.rcgu.o" "/repo/target/release/deps/sg_syntax-d085fabc52120ac5.sg_syntax.d3fff0e7-cgu.13.rcgu.o" "/repo/target/release/deps/sg_syntax-d085fabc52120ac5.sg_syntax.d3fff0e7-cgu.14.rcgu.o" "/repo/target/release/deps/sg_syntax-d085fabc52120ac5.sg_syntax.d3fff0e7-cgu.15.rcgu.o" "/repo/target/release/deps/sg_syntax-d085fabc52120ac5.sg_syntax.d3fff0e7-cgu.2.rcgu.o" "/repo/target/release/deps/sg_syntax-d085fabc52120ac5.sg_syntax.d3fff0e7-cgu.3.rcgu.o" "/repo/target/release/deps/sg_syntax-d085fabc52120ac5.sg_syntax.d3fff0e7-cgu.4.rcgu.o" "/repo/target/release/deps/sg_syntax-d085fabc52120ac5.sg_syntax.d3fff0e7-cgu.5.rcgu.o" "/repo/target/release/deps/sg_syntax-d085fabc52120ac5.sg_syntax.d3fff0e7-cgu.6.rcgu.o" "/repo/target/release/deps/sg_syntax-d085fabc52120ac5.sg_syntax.d3fff0e7-cgu.7.rcgu.o" "/repo/target/release/deps/sg_syntax-d085fabc52120ac5.sg_syntax.d3fff0e7-cgu.8.rcgu.o" "/repo/target/release/deps/sg_syntax-d085fabc52120ac5.sg_syntax.d3fff0e7-cgu.9.rcgu.o" "/repo/target/release/deps/sg_syntax-d085fabc52120ac5.3f6oy7fpjaa714oa.rcgu.o" "-Wl,--as-needed" "-L" "/repo/target/release/deps" "-L" "/repo/target/release/build/onig_sys-701f09c124098bf6/out" "-L" "/repo/target/release/build/tree-sitter-98224313d676eafb/out" "-L" "/repo/target/release/build/tree-sitter-c-d33a34a8c053be58/out" "-L" "/repo/target/release/build/tree-sitter-c-sharp-c8a62c253896a888/out" "-L" "/repo/target/release/build/tree-sitter-cpp-a2324356bf72dd9a/out" "-L" "/repo/target/release/build/tree-sitter-cpp-a2324356bf72dd9a/out" "-L" "/repo/target/release/build/tree-sitter-go-d28c3524779b41f9/out" "-L" "/repo/target/release/build/tree-sitter-java-9f6dd459efbbab9a/out" "-L" "/repo/target/release/build/tree-sitter-javascript-eed9a5ba413cc029/out" "-L" "/repo/target/release/build/tree-sitter-jsonnet-0d34a1dac8d7166f/out" "-L" "/repo/target/release/build/tree-sitter-python-dc3b302f76481702/out" "-L" "/repo/target/release/build/tree-sitter-python-dc3b302f76481702/out" "-L" "/repo/target/release/build/tree-sitter-ruby-44d2a71807854cfb/out" "-L" "/repo/target/release/build/tree-sitter-ruby-44d2a71807854cfb/out" "-L" "/repo/target/release/build/tree-sitter-rust-bbb155c54297fee2/out" "-L" "/repo/target/release/build/tree-sitter-scala-f0fdd82e83b5bd54/out" "-L" "/repo/target/release/build/tree-sitter-sql-81c3ea2ed5402612/out" "-L" "/repo/target/release/build/tree-sitter-typescript-6743119c21d6f0c5/out" "-L" "/repo/target/release/build/tree-sitter-xlsg-de163c6f5bd75212/out" "-L" "/usr/local/rustup/toolchains/1.62-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib" "-Wl,-Bstatic" "/repo/target/release/deps/libtree_sitter_typescript-23a8452cd0462e58.rlib" "/repo/target/release/deps/libtree_sitter_xlsg-c3aae9b8d9351dd4.rlib" "/repo/target/release/deps/libtree_sitter_sql-971c9440ed682479.rlib" "/repo/target/release/deps/libtree_sitter_scala-45cb4018e45bd07d.rlib" "/repo/target/release/deps/libtree_sitter_rust-7ec5f6485e1a4d51.rlib" "/repo/target/release/deps/libtree_sitter_ruby-8cd2592df8d70ca5.rlib" "/repo/target/release/deps/libtree_sitter_python-5c2633b92eedba26.rlib" "/repo/target/release/deps/libtree_sitter_jsonnet-e75c033213af5d47.rlib" "/repo/target/release/deps/libtree_sitter_javascript-73431b1364663306.rlib" "/repo/target/release/deps/libtree_sitter_java-62636c1c55e00c3f.rlib" "/repo/target/release/deps/libtree_sitter_go-b978c1c0c1f5e9a0.rlib" "/repo/target/release/deps/libtree_sitter_c_sharp-94ff4592cc7aaa96.rlib" "/repo/target/release/deps/libtree_sitter_cpp-585f8b7b85941418.rlib" "/repo/target/release/deps/libtree_sitter_c-00179ffe4fe2215d.rlib" "/repo/target/release/deps/libinsta-4cc652e81019279d.rlib" "/repo/target/release/deps/libserde_yaml-8f8c7bfed6068d9c.rlib" "/repo/target/release/deps/libconsole-128f24e83f51a049.rlib" "/repo/target/release/deps/libterminal_size-4767727d44057a7b.rlib" "/repo/target/release/deps/libsimilar-07f1f74c782ff7aa.rlib" "/usr/local/rustup/toolchains/1.62-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/libtest-7a75af0767e477e3.rlib" "/usr/local/rustup/toolchains/1.62-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/libgetopts-93fc84698fc91d4a.rlib" "/usr/local/rustup/toolchains/1.62-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/libunicode_width-5f225e0ee24baeac.rlib" "/usr/local/rustup/toolchains/1.62-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/librustc_std_workspace_std-0025b56ea74fbcf0.rlib" "/repo/target/release/deps/libpretty_assertions-1a6e75832340623c.rlib" "/repo/target/release/deps/libdiff-034b5e723dc40c66.rlib" "/repo/target/release/deps/libansi_term-af02e944e2befc85.rlib" "/repo/target/release/deps/libscip-0248f997f20a9ed5.rlib" "/repo/target/release/deps/libtree_sitter_highlight-c1acb6b2ba0eaaf0.rlib" "/repo/target/release/deps/libtree_sitter-ae7eddab7ca7f22c.rlib" "/repo/target/release/deps/libregex-4809e0720d603d5d.rlib" "/repo/target/release/deps/libaho_corasick-df04cc3c8ff8e7d7.rlib" "/repo/target/release/deps/libsyntect-6ab4a1abc8a42abc.rlib" "/repo/target/release/deps/libonig-0b4c367b7cdc335b.rlib" "/repo/target/release/deps/libonig_sys-031166a0b09af20c.rlib" "/repo/target/release/deps/libyaml_rust-f784a98e52a8aa0c.rlib" "/repo/target/release/deps/liblinked_hash_map-20b345c6556bf537.rlib" "/repo/target/release/deps/libregex_syntax-d578c15391030a13.rlib" "/repo/target/release/deps/libwalkdir-aa356152c35e3b4f.rlib" "/repo/target/release/deps/libsame_file-fa780e2f510604eb.rlib" "/repo/target/release/deps/libbitflags-50ca89219fe929e7.rlib" "/repo/target/release/deps/libplist-3af696d0ba7b960f.rlib" "/repo/target/release/deps/libline_wrap-2014ec01a350ef4c.rlib" "/repo/target/release/deps/libsafemem-dc788ae3c41fe812.rlib" "/repo/target/release/deps/libxml-4edd3b5a5b5df473.rlib" "/repo/target/release/deps/libflate2-b03cd820a1617501.rlib" "/repo/target/release/deps/libminiz_oxide-530f23d832fd91d3.rlib" "/repo/target/release/deps/libadler-d9903a70b8fe2565.rlib" "/repo/target/release/deps/libcrc32fast-fd2793399ffd8692.rlib" "/repo/target/release/deps/libbincode-b191c6b47380d09f.rlib" "/repo/target/release/deps/librocket-4f43549cd9e6b13a.rlib" "/repo/target/release/deps/libatty-f62beacd7a7b9d81.rlib" "/repo/target/release/deps/libtempfile-71cf2329d65891c7.rlib" "/repo/target/release/deps/libfastrand-ca5f4c9cb436c60a.rlib" "/repo/target/release/deps/libremove_dir_all-a59ddaf9f1f9ad42.rlib" "/repo/target/release/deps/libserde_json-11cb0af947140380.rlib" "/repo/target/release/deps/libryu-63006b7c84b2f41a.rlib" "/repo/target/release/deps/librocket_http-cca71bcc3b6df383.rlib" "/repo/target/release/deps/libcookie-e5f8c961664ec03c.rlib" "/repo/target/release/deps/libhkdf-1679d810527d5515.rlib" "/repo/target/release/deps/libhmac-7b66f4ac53a6b0aa.rlib" "/repo/target/release/deps/libsha2-37ec4f3bb12146b5.rlib" "/repo/target/release/deps/libdigest-d1fb0de1a620545d.rlib" "/repo/target/release/deps/libblock_buffer-02718768d99a106f.rlib" "/repo/target/release/deps/libcrypto_common-4228a2bdc98c3d4b.rlib" "/repo/target/release/deps/libaes_gcm-649f1c4079b92aca.rlib" "/repo/target/release/deps/libghash-f9a6b73424acf4de.rlib" "/repo/target/release/deps/libpolyval-a6a18904d032a486.rlib" "/repo/target/release/deps/libuniversal_hash-75fe9eefbbede8b2.rlib" "/repo/target/release/deps/libsubtle-272da777095f4685.rlib" "/repo/target/release/deps/libctr-7971f6cb2b52a068.rlib" "/repo/target/release/deps/libaes-6ec7af8ecf371b85.rlib" "/repo/target/release/deps/libopaque_debug-16c4aa578b6819aa.rlib" "/repo/target/release/deps/libcipher-e6c9ea7ac83b2af4.rlib" "/repo/target/release/deps/libaead-98cdcaf8dd8ba550.rlib" "/repo/target/release/deps/libgeneric_array-9ed65de01c11e7da.rlib" "/repo/target/release/deps/libtypenum-d438b61a11ffe9e7.rlib" "/repo/target/release/deps/libbase64-d8449e5a246313f5.rlib" "/repo/target/release/deps/librand-e162b84696a0fb3f.rlib" "/repo/target/release/deps/librand_chacha-f0772f68af2573d4.rlib" "/repo/target/release/deps/libppv_lite86-521a278a0d93081f.rlib" "/repo/target/release/deps/librand_core-16b1d96d8de15e1c.rlib" "/repo/target/release/deps/libgetrandom-ec7e3a068515709c.rlib" "/repo/target/release/deps/libstable_pattern-c5c38a804eae6156.rlib" "/repo/target/release/deps/libref_cast-a645c0ac5ef5050f.rlib" "/repo/target/release/deps/libpercent_encoding-3af8c3a5809c6d29.rlib" "/repo/target/release/deps/libhyper-baaf5d2c3aa2ce97.rlib" "/repo/target/release/deps/libh2-59d53e4a6d3e42f1.rlib" "/repo/target/release/deps/libtokio_util-36e3956f3c2ee5b1.rlib" "/repo/target/release/deps/libtower_service-6f2898cd154ed154.rlib" "/repo/target/release/deps/libtracing-baef746aa646434f.rlib" "/repo/target/release/deps/libtracing_core-7c174eb6c8ef5de8.rlib" "/repo/target/release/deps/liblazy_static-295160efa262fc24.rlib" "/repo/target/release/deps/libhttp_body-0553d0cf371103a0.rlib" "/repo/target/release/deps/libhttpdate-2c1f32e672a4e062.rlib" "/repo/target/release/deps/libmulter-225e9086de9a0c42.rlib" "/repo/target/release/deps/libmime-dcb758b780c5a68a.rlib" "/repo/target/release/deps/libtokio_util-4451302f97480e81.rlib" "/repo/target/release/deps/libhttparse-42e3e306cf5e8bc1.rlib" "/repo/target/release/deps/libspin-f52354399d33938f.rlib" "/repo/target/release/deps/libencoding_rs-703600071586e967.rlib" "/repo/target/release/deps/libhttp-c8d3a580e3564a0d.rlib" "/repo/target/release/deps/libfnv-66763b52e39c1f59.rlib" "/repo/target/release/deps/libindexmap-aa1577cc1546b4d9.rlib" "/repo/target/release/deps/libhashbrown-290251bce9b6a64b.rlib" "/repo/target/release/deps/libeither-b54a9abbdb0ee800.rlib" "/repo/target/release/deps/libtokio_stream-67d87295e93af2d2.rlib" "/repo/target/release/deps/libatomic-ec3c0e7f3fa6e389.rlib" "/repo/target/release/deps/libstate-5644df68ab392dd4.rlib" "/repo/target/release/deps/libparking_lot-adfcc98cc4586020.rlib" "/repo/target/release/deps/libparking_lot_core-2893f7cb96074abb.rlib" "/repo/target/release/deps/libsmallvec-b0351e6ef9e95f52.rlib" "/repo/target/release/deps/liblock_api-caead2a73b64dc55.rlib" "/repo/target/release/deps/libscopeguard-af463fe02eca2b9e.rlib" "/repo/target/release/deps/libubyte-c5bc505bcfd0ef8a.rlib" "/repo/target/release/deps/libtime-86599d8e328dce0f.rlib" "/repo/target/release/deps/libitoa-9c16e02d5b3d6088.rlib" "/repo/target/release/deps/libfigment-d671adb8a21ccea1.rlib" "/repo/target/release/deps/libtoml-00caa8328450a612.rlib" "/repo/target/release/deps/libuncased-83bf1324b1c63987.rlib" "/repo/target/release/deps/libpear-7deba85e29959110.rlib" "/repo/target/release/deps/libinlinable_string-282ecbf9c3434444.rlib" "/repo/target/release/deps/libserde-dac8dcb075385e45.rlib" "/repo/target/release/deps/libtokio-6dfced13d603481f.rlib" "/repo/target/release/deps/libsignal_hook_registry-cb7acacdcbeeb583.rlib" "/repo/target/release/deps/libnum_cpus-a99bc6d528e255d8.rlib" "/repo/target/release/deps/libsocket2-83fe4ab2f1f34a41.rlib" "/repo/target/release/deps/libbytes-365efa4248f1b775.rlib" "/repo/target/release/deps/libmio-2f056ffb39fedaf1.rlib" "/repo/target/release/deps/liblibc-2400883f2678424b.rlib" "/repo/target/release/deps/liblog-6f66ced43a245c8e.rlib" "/repo/target/release/deps/libcfg_if-c034c7af8fe16338.rlib" "/repo/target/release/deps/libfutures-2c4895353d5c3f0b.rlib" "/repo/target/release/deps/libfutures_executor-96c1fb0b43d1c716.rlib" "/repo/target/release/deps/libfutures_util-ccb0f5ee48f848db.rlib" "/repo/target/release/deps/libmemchr-da40b7f6463e8061.rlib" "/repo/target/release/deps/libfutures_io-30ce95ab1cc01005.rlib" "/repo/target/release/deps/libslab-5860183909ff6a65.rlib" "/repo/target/release/deps/libfutures_channel-4c88410ebbb56acf.rlib" "/repo/target/release/deps/libpin_project_lite-2f39130d15a1f4ac.rlib" "/repo/target/release/deps/libfutures_sink-56107e3013ac8590.rlib" "/repo/target/release/deps/libfutures_task-4896d062e109a065.rlib" "/repo/target/release/deps/libpin_utils-58d56bb91d4714c5.rlib" "/repo/target/release/deps/libasync_stream-132801302871501d.rlib" "/repo/target/release/deps/libfutures_core-7932247aaaf11f21.rlib" "/repo/target/release/deps/libyansi-841aa68631546437.rlib" "/repo/target/release/deps/libprotobuf-5c53e11c66acbeb4.rlib" "/repo/target/release/deps/libprotobuf_support-828b34cb4ea8d57a.rlib" "/repo/target/release/deps/libthiserror-3d2af625145ba404.rlib" "/repo/target/release/deps/libonce_cell-a2f5255b99712230.rlib" "-Wl,--start-group" "/usr/local/rustup/toolchains/1.62-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/libstd-02d93f39ea80c989.rlib" "/usr/local/rustup/toolchains/1.62-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/libpanic_unwind-689d0a9c2eca58b6.rlib" "/usr/local/rustup/toolchains/1.62-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/libobject-220d95266bc37c0b.rlib" "/usr/local/rustup/toolchains/1.62-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/libmemchr-8d9327a7c93a2c81.rlib" "/usr/local/rustup/toolchains/1.62-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/libaddr2line-b28e615e26724062.rlib" "/usr/local/rustup/toolchains/1.62-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/libgimli-c1ef154125dd6069.rlib" "/usr/local/rustup/toolchains/1.62-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/librustc_demangle-cbe515a1f227bceb.rlib" "/usr/local/rustup/toolchains/1.62-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/libstd_detect-188796f0cc453cc1.rlib" "/usr/local/rustup/toolchains/1.62-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/libhashbrown-86c1895aadf36891.rlib" "/usr/local/rustup/toolchains/1.62-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/libminiz_oxide-e0d2bc376054812a.rlib" "/usr/local/rustup/toolchains/1.62-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/libadler-10d3b397101b2381.rlib" "/usr/local/rustup/toolchains/1.62-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/librustc_std_workspace_alloc-6b783b728bb675ac.rlib" "/usr/local/rustup/toolchains/1.62-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/libunwind-c3acab90458e760a.rlib" "-lunwind" "/usr/local/rustup/toolchains/1.62-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/libcfg_if-be685a75057d60ea.rlib" "/usr/local/rustup/toolchains/1.62-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/liblibc-29c50c82233c0db7.rlib" "-lc" "/usr/local/rustup/toolchains/1.62-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/liballoc-e3c71ab46c563381.rlib" "/usr/local/rustup/toolchains/1.62-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/librustc_std_workspace_core-160e4cee98850e94.rlib" "/usr/local/rustup/toolchains/1.62-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/libcore-ba779adaa81f1cd7.rlib" "-Wl,--end-group" "/usr/local/rustup/toolchains/1.62-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/libcompiler_builtins-636f1f774ea0846b.rlib" "-Wl,-Bdynamic" "-lstdc++" "-lstdc++" "-lstdc++" "-Wl,--eh-frame-hdr" "-Wl,-znoexecstack" "-nostartfiles" "-L" "/usr/local/rustup/toolchains/1.62-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib" "-L" "/usr/local/rustup/toolchains/1.62-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/self-contained" "-o" "/repo/target/release/deps/sg_syntax-d085fabc52120ac5" "-Wl,--gc-sections" "-static" "-no-pie" "-Wl,-zrelro,-znow" "-Wl,-O1" "-nodefaultlibs" "/usr/local/rustup/toolchains/1.62-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/self-contained/crtend.o" "/usr/local/rustup/toolchains/1.62-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/self-contained/crtn.o"
#12 503.4   = note: /usr/lib/gcc/aarch64-alpine-linux-musl/12.2.1/../../../../aarch64-alpine-linux-musl/bin/ld: /repo/target/release/deps/libtree_sitter-ae7eddab7ca7f22c.rlib(lib.o): in function `ts_subtree_retain':
#12 503.4           lib.c:(.text.ts_subtree_retain+0x24): undefined reference to `__aarch64_ldadd4_sync'
#12 503.4           /usr/lib/gcc/aarch64-alpine-linux-musl/12.2.1/../../../../aarch64-alpine-linux-musl/bin/ld: /repo/target/release/deps/libtree_sitter-ae7eddab7ca7f22c.rlib(lib.o): in function `ts_subtree_release':
#12 503.4           lib.c:(.text.ts_subtree_release+0x2c): undefined reference to `__aarch64_ldadd4_sync'
#12 503.4           /usr/lib/gcc/aarch64-alpine-linux-musl/12.2.1/../../../../aarch64-alpine-linux-musl/bin/ld: lib.c:(.text.ts_subtree_release+0xf4): undefined reference to `__aarch64_ldadd4_sync'
#12 503.4           collect2: error: ld returned 1 exit status

@varungandhi-src
Copy link
Contributor

@olafurpg maybe passing this environment variable while building the C code may be helpful: rust-lang/git2-rs#706 (comment)

auto-merge was automatically disabled February 24, 2023 13:07

Merge could not be authorized

@olafurpg olafurpg force-pushed the olafurpg/ts-symbols branch from c460cc3 to 9cbef72 Compare February 27, 2023 07:14
@olafurpg olafurpg force-pushed the olafurpg/ts-symbols branch from 780711c to cb67af1 Compare February 27, 2023 07:47
@olafurpg olafurpg merged commit bcfa9fd into main Feb 27, 2023
@olafurpg olafurpg deleted the olafurpg/ts-symbols branch February 27, 2023 08:34
@varungandhi-src
Copy link
Contributor

Temporarily restoring the branch so I can repro the problem.

@varungandhi-src varungandhi-src restored the olafurpg/ts-symbols branch February 27, 2023 09:24
olafurpg referenced this pull request Feb 28, 2023
Highlighthing is timing out for Ruby, C++, and Python, on
sourcegraph.com because we're trying to highlight these languages with
tree-sitter when syntax-highlighter has no tree-sitter support for those
languages. The grammars for these languages depend on C++ code that we weren't
able to build in CI so we removed them last minute before merging
the PR that added tree-sitter highligting for Java, TypeScript,
JavaScript, and Rust. https://github.com/sourcegraph/sourcegraph/pull/47571
olafurpg referenced this pull request Feb 28, 2023
Highlighthing is timing out for Ruby, C++, and Python, on
sourcegraph.com because we're trying to highlight these languages with
tree-sitter when syntax-highlighter has no tree-sitter support for those
languages. The grammars for these languages depend on C++ code that we
weren't able to build in CI so we removed them last minute before
merging the PR that added tree-sitter highligting for Java, TypeScript,
JavaScript, and Rust.
https://github.com/sourcegraph/sourcegraph/pull/47571

## Test plan

Manually tested that the blob view no longer times out after these
changes. We need to add regression testing for all the main languages to
prevent this kind of error from happening again.

<!-- All pull requests REQUIRE a test plan:
https://docs.sourcegraph.com/dev/background-information/testing_principles
-->
@olafurpg olafurpg deleted the olafurpg/ts-symbols branch March 1, 2023 15:15
olafurpg referenced this pull request Mar 6, 2023
Follow-up from https://github.com/sourcegraph/sourcegraph/pull/47571 now
that we can use grammars with C++ dependencies.

Example Ruby highlighting

![CleanShot 2023-03-04 at 13 02
32@2x](https://user-images.githubusercontent.com/1408093/222900091-6e9fe60b-2edf-4ede-ae95-966b4166013f.png)

Example Python highlighting

![CleanShot 2023-03-04 at 13 03
52@2x](https://user-images.githubusercontent.com/1408093/222900100-070c59fe-48b3-44a2-a5aa-aa0be277107c.png)


## Test plan

Updated snapshots.

<!-- All pull requests REQUIRE a test plan:
https://docs.sourcegraph.com/dev/background-information/testing_principles
-->
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants