Subject: Re: bug#78754: Tree-sitter started versioning their shared library filenames

From: Yuan Fu <[email-masked]>
Date: Tue, 10 Jun 2025 23:47:38 -0700

> On Jun 10, 2025, at 11:52 AM, Peter Oliver <[email-masked]> wrote:
> 
> The Makefiles distributed with Tree-sitter parsers used to install to, say, /usr/lib/libtree-sitter-foo.so.0.0.  Consequently, Emacs currently expects parsers to have names like this.
> 
> Recent Makefiles instead install to /usr/lib/libtree-sitter-foo.so.14.0 or /usr/lib/libtree-sitter-foo.so.15.0 (where 14 or 15 is the Tree-sitter ABI version, taken from LANGUAGE_VERSION in the parser’s src/parser.c).  Emacs should look in these places as well.
> 
> Presumably we should ask the libtree-sitter we’re using what ABI versions it supports, rather than hard-coding 14 and 15.
> 
> -- 
> Peter Oliver

Thanks for the heads-up! I pushed a change to emacs-30 to look for all supported versions. Eg, if the tree-sitter library supports language version 13 to 15, Emacs will try to look for libtree-sitter-foo.so.13.0, libtree-sitter-foo.so.14.0, and libtree-sitter-foo.so.15.0.

Yuan