2020: The Year of Sanitizers?nerds… or “How we manage to clang-tidy our whole code base, while maintaining our monthly release cycle” Why Do I Care ? 2020 Victor Ciura | @ciura_victor - 2020: The Year of Sanitizers? https://www Ciura | @ciura_victor - 2020: The Year of Sanitizers? offline (out of the normal compilation cycle) => can take longer to process source code is intimately linked to the used programming language pointers pointer aliasing makes it hard to prove things (alias analysis is hard problem) vicious cycle: type propagation <> alias analysis Static Analysis46 2020 Victor Ciura | @ciura_victor - 2020:0 码力 | 135 页 | 27.77 MB | 6 月前3
Single Producer Single Consumer Lock-free FIFO From the Ground Upcfrasch@Charles-PC:~/cppcon2023/build/debug$ ./fifo1 Fifo1: 7,553,693 ops/s cfrasch@Charles-PC:~/cppcon2023/build/release$ ./fifo1 cfrasch@Charles-PC:~/cppcon2023/build/debug$ ./unitTests --gtest_filter=FifoTest/0.* Running cfrasch@Charles-PC:~/cppcon2023/build/debug$ ./fifo1 Fifo1: 7,553,693 ops/s cfrasch@Charles-PC:~/cppcon2023/build/release$ ./fifo1 What happened? cfrasch@Charles-PC:~/cppcon2023/build/debug$ ./unitTests --gtest_filter=FifoTest/0 (pushCursor_ - popCursor_ != size_) if (pushCursor_ - popCursor_ != size_) happens before release release acquire acquire26 cfrasch@Charles-PC:~/cppcon2023/build/debug$ ./unitTests --gtest_filter=FifoTest/10 码力 | 51 页 | 546.30 KB | 6 月前3
Back to Basics: Smart PointersSupport automatic memory management with reference counting ▪ Are C++ answer to garbage collection ▪ Release the resource if the smart pointer goes out of scope ▪ Are available in four versions raii.cppOverview Can be specialized for arrays: std::unique_ptr7std::unique_ptr Function Description uniq.release() Returns a pointer to the resource and releases it uniq.get() Returns a pointer to the resource Classic problem ▪ If std::shared_ptr builds a cycle, no std::shared_ptr will be deleted automatically Rescue: ▪ std:weak_ptr breaks the cycle 16 Node Node Node NodeCyclic References 17 0 码力 | 30 页 | 625.43 KB | 6 月前3
Modern C++ Tutorial: C++11/14/17/20 On the Flygenerate a xvalue, which is referenced by the moving structure of A (A(A&&)), thus extending the life cycle, and taking the pointer in the rvalue and saving it to obj. In the middle, the pointer to the xvalue corresponding memory of the deleted element. In this case, you need to manually run shrink_to_fit() to release this part of the memory. std::vectorv; std::cout << "size:" << v.size() << std::endl; // deleted. In traditional C++, “remembering” to manually release resources is not always a best practice. Because we are likely to forget to release resources and lead to leakage. So the usual practice is 0 码力 | 92 页 | 1.79 MB | 1 年前3
DEDUCING this PATTERNSbigger fish to fry." Fair enough; we did. The prevailing attitude then was the "tick - tock" release cycle. C++11: big C++14: small (ish?) C++17: big?WORKING THE PROBLEM So I go away and let the issue0 码力 | 126 页 | 5.15 MB | 6 月前3
Data Structures That Make Video Games Go RoundSimple; 2D, 2.5D mostly. ● Single threaded. ● Made from scratch (no game engine). ● Short release cycle. ● Small, by modern standards.Today: ● 3D, Photorealistic, Physics based. ● Multi-threaded0 码力 | 196 页 | 3.03 MB | 6 月前3
Heterogeneous Modern C++ with SYCL 2020l.uws.ac.uk/en/publications/trisycl-for-xilinx-fpga https://www.imaginationtech.com/news/press-release/tensorflow-gets-native-support-for-powervr-gpus-via-optimised-open-source-sycl-libraries/ SYCL support OpenCL to deploy on more devices CPU GPU FPGA AI processors Custom Processors Repeat The Cycle every 1.5-3 years SYCL Future Roadmap (MAY CHANGE) Conformance Tests Working on Implementations0 码力 | 114 页 | 7.94 MB | 6 月前3
Conan 1.56 DocumentationConan Documentation Release 1.56.0 The Conan team Jul 05, 2024 CONTENTS 1 Introduction 3 1.1 Open Source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 950 Index 953 viii Conan Documentation, Release 1.56.0 Conan is a software package manager which is intended for C and C++ developers. Conan is stability, with no breaking changes across all Conan 1.X versions. CONTENTS 1 Conan Documentation, Release 1.56.0 2 CONTENTS CHAPTER ONE INTRODUCTION Conan is a dependency and package manager for C and0 码力 | 963 页 | 7.67 MB | 1 年前3
Conan 1.55 DocumentationConan Documentation Release 1.55.0 The Conan team Jul 05, 2024 CONTENTS 1 Introduction 3 1.1 Open Source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 950 Index 953 viii Conan Documentation, Release 1.55.0 Conan is a software package manager which is intended for C and C++ developers. Conan is stability, with no breaking changes across all Conan 1.X versions. CONTENTS 1 Conan Documentation, Release 1.55.0 2 CONTENTS CHAPTER ONE INTRODUCTION Conan is a dependency and package manager for C and0 码力 | 963 页 | 7.67 MB | 1 年前3
Conan 1.53 DocumentationConan Documentation Release 1.53.0 The Conan team Jul 05, 2024 CONTENTS 1 Introduction 3 1.1 Open Source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 940 Index 943 viii Conan Documentation, Release 1.53.0 Conan is a software package manager which is intended for C and C++ developers. Conan is stability, with no breaking changes across all Conan 1.X versions. CONTENTS 1 Conan Documentation, Release 1.53.0 2 CONTENTS CHAPTER ONE INTRODUCTION Conan is a dependency and package manager for C and0 码力 | 953 页 | 7.64 MB | 1 年前3
共 163 条
- 1
- 2
- 3
- 4
- 5
- 6
- 17













