Тёмный

The Challenges of Implementing the C Standard Library in C++ - Siva Chandra Reddy - CppNow 2023 

CppNow
Подписаться 30 тыс.
Просмотров 4,4 тыс.
50% 1

www.cppnow.org​
/ cppnow
---
The Challenges of Implementing the C Standard Library in C++ - Siva Chandra Reddy - CppNow 2023
Slides: github.com/boostcon
---
We kicked-off LLVM's libc project (libc.llvm.org) over three years ago with certain grand goals of making all of it instrumentable with sanitizers, employ modern software development practices while keeping it as modular and configurable as possible. One very interesting decision we took was to implement the libc, a C standard library, in the C++ language. We did not mean or intend to stick to a small C like subset of the C++ language. In fact, the only restriction we imposed was to not use virtual functions. This talk is a demonstration of how we have successfully implemented a C library in pure C++ using modern C++ idioms, constructs and language features. We will show how we have successfully avoided the use of assembly language to implement the startup subsystem of the libc in pure C++. We will show how we have implemented memory routines in C++ while still matching or bettering the performance of hand-crafted assembly implementations of other C standard library implementations. Some of our techniques in the early stages were hacky but have evolved over the years to be more principled. We will show how we were able to eliminate the early hacky solutions and replace them with more maintainable and scalable practices. We will also demonstrate how we use modern C++ idioms for tasks like memory allocations, memory de-allocations etc.
To use C++ to implement a C library was a challenge that we posed to ourselves and pulled it off. With this talk, we intend to share what we have learn't while demonstrating the practical utility of modern C++ constructs in implementing simple, maintainable, and production ready code.
---
Siva Chandra Reddy
Siva Chandra Reddy is a software engineer at Google working on the C++ compiler toolchain team. For most of his professional career, he has worked on various open source and proprietary compiler toolchain systems. He has contributed to GCC, GDB and various LLVM projects with LLVM's libc being his primary focus in the last three years. He holds a master's degree in computer science and a bachelor's degree in electrical engineering.
---
Video Sponsors: think-cell and Bloomberg Engineering
Audience Audio Sponsors: Innoplex and Maryland Research Institute
---
Videos Filmed & Edited By Bash Films: bashfilms.com/
RU-vid Channel Managed & Optimized By Digital Medium Ltd: events.digital-medium.co.uk
---
CppNow 2024
www.cppnow.org​
/ cppnow
---
#boost #cpp #softwaredevelopment

Наука

Опубликовано:

 

6 июл 2023

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 5   
@kevinjoseph8119
@kevinjoseph8119 11 месяцев назад
This was very informative on how C++ can be used in constrained environments. constexpr for the win.
@uvuvwevwevweossaswithglasses
@uvuvwevwevweossaswithglasses 11 месяцев назад
Excellent talk. Very interesting stuff and approach to implement libc
@BoostCon
@BoostCon 11 месяцев назад
Your comment is much appreciated, thank you.
@TristanWalter
@TristanWalter 5 месяцев назад
What’s up with the audio? So much cracking and some metal clunking noises. Very distracting
@Wimpielef
@Wimpielef 2 месяца назад
I think the hoody and/or badge are scraping against the microphone
Далее
SIMD Libraries in C++ - Jeff Garland - CppNow 2023
1:30:07
Keynote: Optimizing for Change - Ben Deane - CppNorth 2023
1:24:24
2022 LLVM Dev Mtg: Using LLVM's libc
44:29
Просмотров 2,6 тыс.
YOTAPHONE 2 - СПУСТЯ 10 ЛЕТ
15:13
Просмотров 147 тыс.
Asus  VivoBook Винда за 8 часов!
1:00
Просмотров 1,2 млн