docs: New page about ABI versions for parser users

Closes #374.

The statement about the intended backwards compatibility is purely
speculative and provided as a "straw man" to help reviewers come up with
a better description of the intended backwards compatibility.
This commit is contained in:
Antonin Delpeuch 2025-10-26 16:51:08 +01:00 committed by Will Lillis
parent 877782a8a4
commit 55b9a25c84
2 changed files with 20 additions and 0 deletions

View file

@ -15,6 +15,7 @@
- [Predicates and Directives](./using-parsers/queries/3-predicates-and-directives.md)
- [API](./using-parsers/queries/4-api.md)
- [Static Node Types](./using-parsers/6-static-node-types.md)
- [ABI versions](./using-parsers/7-abi-versions.md)
- [Creating Parsers](./creating-parsers/index.md)
- [Getting Started](./creating-parsers/1-getting-started.md)
- [The Grammar DSL](./creating-parsers/2-the-grammar-dsl.md)

View file

@ -0,0 +1,19 @@
# ABI versions
Parsers generated with tree-sitter have an associated ABI version. This version specifies the shape of the C code that they contain, which they expose to applications.
A given version of tree-sitter is only able to load parsers which have certain ABI versions:
| tree-sitter version | Min parser ABI version | Max parser ABI version |
|---------------------|------------------------|------------------------|
| 0.14 | 9 | 9 |
| >=0.15.0, <=0.15.7 | 9 | 10 |
| >=0.15.8, <=0.16 | 9 | 11 |
| 0.17, 0.18 | 9 | 12 |
| >=0.19, <=0.20.2 | 13 | 13 |
| >=0.20.3, <=0.24 | 13 | 14 |
| >=0.25 | 13 | 15 |
Tree-sitter developers aim to maintain compatibility with the previous ABI version at least.
Parser authors are able to specify the ABI version they want to use by specifying it with the `--abi` option of the `tree-sitter generate` command.