Skip to content

tsc-lang-abi-too-new when installing new language #247

@leotrs

Description

@leotrs

I have a tree-sitter parser that I'm trying to add to emacs-tree-sitter. However, when running (tree-sitter-require 'rsm), I get the following error ("rsm" is the name of my language):

Debugger entered--Lisp error: (tsc-lang-abi-too-new 14 (13 . 13) "/home/leo/.tree-sitter/bin/rsm.so")
  tsc--load-language("/home/leo/.tree-sitter/bin/rsm.so" "tree_sitter_rsm" rsm)
  (let ((language (tsc--load-language full-path native-symbol-name lang-symbol))) (let* ((key lang-symbol) (v language)) (condition-case nil (with-no-warnings (map-put! tree-sitter-languages key v nil)) (map-not-inplace (setq tree-sitter-languages (map-insert tree-sitter-languages key v)) v))) language)
  (let* ((lang-name (symbol-name lang-symbol)) (fallback-name (replace-regexp-in-string "-" "_" lang-name)) (native-symbol-name (or native-symbol-name (format "tree_sitter_%s" fallback-name))) (files (if file (list file) (cons lang-name (if (string= lang-name fallback-name) nil (list fallback-name))))) (full-path (seq-some #'(lambda (base-name) (locate-file base-name tree-sitter-load-path tree-sitter-load-suffixes)) files))) (if full-path nil (error "Cannot find shared library for language: %S" lang-symbol)) (let ((language (tsc--load-language full-path native-symbol-name lang-symbol))) (let* ((key lang-symbol) (v language)) (condition-case nil (with-no-warnings (map-put! tree-sitter-languages key v nil)) (map-not-inplace (setq tree-sitter-languages (map-insert tree-sitter-languages key v)) v))) language))
  tree-sitter-load(rsm nil nil)
  (or (alist-get lang-symbol tree-sitter-languages) (tree-sitter-load lang-symbol file native-symbol-name))
  tree-sitter-require(rsm)
  (progn (tree-sitter-require 'rsm))
  elisp--eval-last-sexp(t)
  eval-last-sexp(t)
  eval-print-last-sexp(nil)
  funcall-interactively(eval-print-last-sexp nil)
  command-execute(eval-print-last-sexp)

The only other mention of this error tsc-lang-abi-too-new is here. Following that comment, I downgraded tree-sitter-cli from 0.20 to 0.19.5, and that fixed the issue.

Is there any reason why emacs won't load parsers generated with cli-v0.20? Can we expect this to be solved in the next release? Thanks.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions