January 13, 2022 - 6:00 pm CET

Virtual Meetup – Botond Ballo

Abstract

Developers today expect development tools such as editors to offer features based on a semantic-level understanding of their code.

This presentation explores various approaches editors take to provide semantic features, with a focus on the C++ programming language.
Eclipse’s C/C++ Development Tools (CDT) are a classical example of an editor rolling its own semantic understanding of C++. It has served the C++ developer community well, but more recently has lagged behind in support for newer C++ language features.

In recent years, the Language Server Protocol has emerged as a promising technology that decouples components providing semantic language understanding (language servers) from the editors that make use of them (language clients). The C++ community has converged on Clangd as the leading open-source C++ language server implementation.
Providing performant and accurate editor tooling for C++ is particularly challenging, due to the language’s unique features, such as its textual header inclusion model, conditional branches in the preprocessor, and its approach to parameterized code (templates). Clangd makes a number of architectural innovations to tackle these challenges. The C++ community has additional improvements to look forward to in the editor tooling space, both from further enhancements to Clangd’s implementation, as well as benefits to be reaped from new C++ language features such as Modules and Concepts.

Biography

Botond Ballo is a software engineer passionate about C++ and developer tooling.
Botond works for Mozilla on the Firefox web browser’s rendering engine, a large open-source C++ codebase which more recently has also gained components written in Rust. Botond also contracts with Ericsson to work on the Clangd C++ language server, a server-side implementation of the Language Server Protocol which is promising to serve as the basis for the next generation of C++ editor tooling. Botond has previously contributed to the Eclipse C/C++ Developer Tools for several years and is working to apply the insights gained about C++ editor tooling during that process, to his current efforts to improve Clangd. Botond contributes to the Eclipse and LLVM communities under the pseudonym Nathan Ridge.

How to join the event:

To avoid security issues is now necessary to register for the meeting. The registration should be necessary just once and be valid for all the next meetings you will participate in. Follow these steps:

  1. Register yourself to the community on theĀ Homepage
  2. You will receive a confirmation email containing all the information about joining the meeting.
  3. Add to your calendar
  4. Enjoy the talk and, if you feel like, discuss further on the community forum