Загрузка...

Eliminating C++ Undefined Behavior, Plug-in Contract Violation, Intel Assumptions in Legacy Codebase

https://audio.dev/ -- @audiodevcon

Case Study: Eliminating C++ Undefined Behavior, Plug-in Contract Violations, and Intel Assumptions in a Legacy Codebase - Russell McClellan - ADC22

For large C++ audio-plugin codebases, adding support for a new platform (such as Apple Silicon/ARM) can be a scary, expensive endeavor. One of the biggest causes for alarm is C++ undefined behavior (UB), which is an unfortunate part of many legacy codebases. After a brief review of what undefined behavior (UB) is we will discuss what issues it can cause and why it should be avoided. We'll also discuss how paying attention to the details of audio plug-in format "contracts", particularly in regards to threading, can simplify the process of supporting new platforms and new DAWs. Finally, we’ll go over the specific cultural and tooling initiatives we used to eliminate bad behavior in our audio plug-in codebase, including how we used static analysis, plug-in validators, and clang runtime sanitizers to identify and address issues.

Slides: https://data.audio.dev/talks/2022/case-study-eliminating-cpp-undefined-behavior-plug-in-contract-violations-and-intel-assumptions-in-a-legacy-codebase/slides.pdf
_

Russell McClellan
Soundwide
_

Streamed & Edited by Digital Medium Ltd - online.digital-medium.co.uk
_

Organized and produced by JUCE: https://juce.com/
_

Special thanks to the ADC22 Team:

Lina Berzinskas
Sophie Carus
Derek Heimlich
Andrew Kirk
Bobby Lombardi
Tom Poole
Ralph Richbourg
Jim Roper
Jonathan Roper

#audiodevcon #audiodev #cpp

Видео Eliminating C++ Undefined Behavior, Plug-in Contract Violation, Intel Assumptions in Legacy Codebase канала ADC - Audio Developer Conference
Яндекс.Метрика
Все заметки Новая заметка Страницу в заметки
Страницу в закладки Мои закладки
На информационно-развлекательном портале SALDA.WS применяются cookie-файлы. Нажимая кнопку Принять, вы подтверждаете свое согласие на их использование.
О CookiesНапомнить позжеПринять