David Nadlinger
May 27 @ 2:30 PM
Duration: 50 minutes
Talk type: Presentation
Level: Intermediate
Slides
Video
Abstract: D is a native language that aims for minimal system requirements. However, to support some of our modern features such as modules and garbage collection, we need a certain amount of additional runtime library magic. While this is hardly visible to the end user in most cases, it becomes painfully obvious once the goal is to do runtime loading of shared libraries, run D in an embedded environment, or port it to a new platform. This talk will provide an in-depth look at what makes your D programs tick under the hood, allowing you to better understand its runtime characteristics and providing a jump start for tailoring the runtime to the needs of your specific environment.
There has been a lot of interest in areas related to the D runtime system lately: Embedded programming, where additional baggage is shunned. Shared library support, where the moving parts of several D objects need to be coordinated. While this has also been reflected in the past DConf schedules, the past material mainly tackles the topic from an end-user perspective, ignoring the actual inner workings. But during my previous porting work, I would have often found a comprehensive overview of the druntime internals helpful.
The aim of this talk is to provide that overview. Not only will it be a useful resource for people who are wanting to bring D to new platforms, it will also be of interest to those curious about the technical details in the general D community. By answering questions such as:
It will provide a common grounds for many recurring discussions in the community.
Speaker Bio: When David is not working on Quantum Computing at ETH Zurich, he is an avid advocate of open source software with a particular interest in compilers and languages. David is a member of the D core team and one of the main authors and former maintainer of LDC. Among other things, he ported LDC to MinGW, implemented Linux shared library support for it, and started work on ARM support. David is also a committer to mingw-w64, KDE, SWIG and several other projects.