Do you mean the parser generator itself (which is written in Rust) segfaults constantly, or the generated parsers (which are in C)?
It's not surprising to me that there are issues with generated parsers, partly because many languages need external scanners to work, which have to be written in C and use a rather clunky API. tree-sitter-javascript also uses an external scanner so you might want to look there for whatever is causing the problem.
It may well have been the scanner that crashed, I was working at a startup and had about a million other things to deal with so I didn't dig into it very long, I just switched to wasm and kept going. (Of course, the wasm bindings are subtly different and similarly lacking in type definitions, so that bit me down the road as well...).
But in general, I'd have to argue that if your "very stable" software requires interfacing with very unstable external tools to work with a very popular language... eliminating that dependency is certainly an area for improvement!
> I'd have to argue that if your "very stable" software requires interfacing with very unstable external tools to work with a very popular language... eliminating that dependency is certainly an area for improvement!
I think you may misunderstand parser generation and what tree sitter does. You can't eliminate external scanners, and there isn't another choice for them than C.
If you were just using an existing parser than you never touched any program written in Rust.
If the only job of the Rust is to create broken C, you'll excuse me if I don't find its stability particularly relevant to the tree-sitter proposition.
And the crash in this case does appear to be a result of a broken Rust-generated parser.c file, not some external tool, but I don't know enough about the project to say for sure.
It's not surprising to me that there are issues with generated parsers, partly because many languages need external scanners to work, which have to be written in C and use a rather clunky API. tree-sitter-javascript also uses an external scanner so you might want to look there for whatever is causing the problem.