Hi all,
We (the bblfsh core developers) wanted to take an opportunity to tell you about some of the things we are currently working on. If you have interest in these topics, or would like to propose others, we'd also like to hear from you.
This quarter (January to March 2019) we are focusing on:
- C# driver. Since January, we now have a native-mode driver up and running for C# using Roslyn, including semantic annotations.
- Bug fixes and stabilization. We are actively working to fix bugs and usability issues with the daemon (bblfshd), the SDK, and the beta-and-higher released drivers. Feel free to chime in on the GitHub issue trackers if you have any issues that aren't already noted there.
For the rest of 2019 we are also planning to look into the following topics:
- UAST serialization format for on-disk storage. Computing a UAST from scratch can be fairly expensive, particularly for queries involving a large number of files. Allowing UASTs to be cached in a space-efficient manner will allow us to address larger-scale queries without blocking for repeated (expensive) parsing steps.
- Tree-structure diff for UASTs. A number of important data-mining queries require the ability to "diff" the UAST structures for different versions of a file. We are working on an API and implementation to represent and produce such diffs. This is a fairly tricky problem, so there is likely to be some ongoing discussion.
- Dependency indexing. As part of an effort to attach more semantic information to UASTs, the first step is to understand the dependencies between files, packages, and modules. We will start with "coarse-grained" project- and file-level dependencies, and work (eventually) toward language-level cross-references (based on the Kythe project).
- New language drivers. As always, there is a need for ever more language drivers. This is a great opportunity for contributions—if you are interested, please let us know.
We are also looking forward to writing and publishing a more structured Roadmap proposal for the Babelfish project soon, as well as individual design documents. Again, if you have ideas, we welcome your input—either here on the mailing list, on GitHub, or in the #babelfish channel of the
source{d} Community Slack.
Cheers,
–M, on behalf of the core bblfsh maintainers.