 Make Successor Build Systems: World Tour of Build SystemsReliable, Fast and Safe Builds Damien co-founder, tipi.build @daminetreg / damien@tipi.build Antonio DevEx Engineer, EngFlow @TheGrizzlyDev / antonio@engflow.comA love ❤ letter to CMakeGiving CMake tackle first Memory Safety Arithmetic SafetySanitizers for C++ builds with CMake github.com/tipi-build/sanitizers-cmakeSanitizers for C++ builds AddressSanitizer (ASan) UndefinedBehaviorSanitizer (UBSsan) decent amount of CPU power Let's look at other build systemsLearning from other build-systemsParallelism How many independent targets can a build system run concurrently at most?Parallelism Level0 码力 | 115 页 | 7.02 MB | 6 月前3 Make Successor Build Systems: World Tour of Build SystemsReliable, Fast and Safe Builds Damien co-founder, tipi.build @daminetreg / damien@tipi.build Antonio DevEx Engineer, EngFlow @TheGrizzlyDev / antonio@engflow.comA love ❤ letter to CMakeGiving CMake tackle first Memory Safety Arithmetic SafetySanitizers for C++ builds with CMake github.com/tipi-build/sanitizers-cmakeSanitizers for C++ builds AddressSanitizer (ASan) UndefinedBehaviorSanitizer (UBSsan) decent amount of CPU power Let's look at other build systemsLearning from other build-systemsParallelism How many independent targets can a build system run concurrently at most?Parallelism Level0 码力 | 115 页 | 7.02 MB | 6 月前3
 Why is my Build so SlowWhy is my build so slow? Sam Privett 12 Disclaimer: The views and opinions expressed in this presentation are solely those of the presenters and do not necessarily represent the views, positions, Visualizing Compilation IntroductionLines of Code ≈ Longer Build Times 8Lines of Code 📈 9Build Times 📈 10Build Times 📈 11Build Times 📈 12Build Times 📈 13Boiling Frog 14Developer Productivity 15 linker, etc) 18Visualization 19 - Interactive Trace Viewer - https://ui.perfetto.dev/ - Can build and run server locally as well - Chrome Event Tracing Format JSON - … and more!20 VisualizationClang0 码力 | 71 页 | 3.96 MB | 6 月前3 Why is my Build so SlowWhy is my build so slow? Sam Privett 12 Disclaimer: The views and opinions expressed in this presentation are solely those of the presenters and do not necessarily represent the views, positions, Visualizing Compilation IntroductionLines of Code ≈ Longer Build Times 8Lines of Code 📈 9Build Times 📈 10Build Times 📈 11Build Times 📈 12Build Times 📈 13Boiling Frog 14Developer Productivity 15 linker, etc) 18Visualization 19 - Interactive Trace Viewer - https://ui.perfetto.dev/ - Can build and run server locally as well - Chrome Event Tracing Format JSON - … and more!20 VisualizationClang0 码力 | 71 页 | 3.96 MB | 6 月前3
 Using Modern C++ to Build XOffsetDatastructureFanchen Su, XOffsetDatastructure, CppCon 2024 41. Title • 1 Long Title: • Using Modern C++ to Build XOffsetDatastructure: A Zero-Encoding and Zero-Decoding High-Performance Serialization Library in Fanchen Su, XOffsetDatastructure, CppCon 2024 51. Title • 1 Long Title: • Using Modern C++ to Build XOffsetDatastructure: A Zero-Encoding and Zero-Decoding High-Performance Serialization Library in illustrated in the diagram, when there's not enough space for an operation, the system automatically triggers a resize. It's important to note that this may cause the entire buffer to be moved in memory. Fanchen0 码力 | 111 页 | 3.03 MB | 6 月前3 Using Modern C++ to Build XOffsetDatastructureFanchen Su, XOffsetDatastructure, CppCon 2024 41. Title • 1 Long Title: • Using Modern C++ to Build XOffsetDatastructure: A Zero-Encoding and Zero-Decoding High-Performance Serialization Library in Fanchen Su, XOffsetDatastructure, CppCon 2024 51. Title • 1 Long Title: • Using Modern C++ to Build XOffsetDatastructure: A Zero-Encoding and Zero-Decoding High-Performance Serialization Library in illustrated in the diagram, when there's not enough space for an operation, the system automatically triggers a resize. It's important to note that this may cause the entire buffer to be moved in memory. Fanchen0 码力 | 111 页 | 3.03 MB | 6 月前3
 Beyond Compilation Databases to Support C++ Modules: Build Databases● 15 years working on build systems and software process ● CMake developer ○ Designing and implementing features, performance improvements ○ Maintaining and improving build systems which use CMake Pushing forward modules support in other build systems ■ xmake ■ bazel 2Outline 1. What are compilation databases? 2. How do modules change the status quo? 3. Build databases 3Compilation Databases: Overview https://clang.llvm.org/docs/JSONCompilationDatabase.html ● Widely used and available ○ Generated by build systems ○ Used by static analysis to know how to analyze sources ○ IDEs to understand how a source0 码力 | 31 页 | 585.05 KB | 6 月前3 Beyond Compilation Databases to Support C++ Modules: Build Databases● 15 years working on build systems and software process ● CMake developer ○ Designing and implementing features, performance improvements ○ Maintaining and improving build systems which use CMake Pushing forward modules support in other build systems ■ xmake ■ bazel 2Outline 1. What are compilation databases? 2. How do modules change the status quo? 3. Build databases 3Compilation Databases: Overview https://clang.llvm.org/docs/JSONCompilationDatabase.html ● Widely used and available ○ Generated by build systems ○ Used by static analysis to know how to analyze sources ○ IDEs to understand how a source0 码力 | 31 页 | 585.05 KB | 6 月前3
 Common Package Specification: Getting Build Tools to Talk to Each OtherA Common Package Specification: Getting Build Tools to Talk to Each Other Lessons Learned From Making Thousands of Binaries Consumable by Any Build System Diego Rodriguez-Losada @ CppCon 2023Outline 3#include Common Package Specification: Getting Build Tools to Talk to Each OtherA Common Package Specification: Getting Build Tools to Talk to Each Other Lessons Learned From Making Thousands of Binaries Consumable by Any Build System Diego Rodriguez-Losada @ CppCon 2023Outline 3#include- int main(void){ … deflateInit(&defstream, Z_BEST_COMPRESSION); Build system scripts Problem definition and scope 1. Define the version to use 2. Define the configuration: (system package manager or language package manager), build from source by the user, with that configuration 4. Pass information to the build system so it can locate and use it successfully 4#include 0 码力 | 94 页 | 1.58 MB | 6 月前3
 How to Build Your First C++ Automated Refactoring Tool - CppCon 2023(const auto& i: arr){ // analyze i } } 78 78 Writing Our Own Tidy CheckReally Cool Stuff You Can Build 79 void OldAPI(int v, int m, int d){ NewAPI(m, v); } void NewAPI(int m, int v); - OldAPI(vel OldAPI(vel, mass, dist); + NewAPI(mass, vel); ABSL_DEPRECATE_AND_INLINE()Really Cool Stuff You Can Build 80 if (absl::GetFlag(FLAGS_Example_for_cpp_con)) { foo(); } else { bar(); } foo();In Conclusion0 码力 | 83 页 | 6.03 MB | 6 月前3 How to Build Your First C++ Automated Refactoring Tool - CppCon 2023(const auto& i: arr){ // analyze i } } 78 78 Writing Our Own Tidy CheckReally Cool Stuff You Can Build 79 void OldAPI(int v, int m, int d){ NewAPI(m, v); } void NewAPI(int m, int v); - OldAPI(vel OldAPI(vel, mass, dist); + NewAPI(mass, vel); ABSL_DEPRECATE_AND_INLINE()Really Cool Stuff You Can Build 80 if (absl::GetFlag(FLAGS_Example_for_cpp_con)) { foo(); } else { bar(); } foo();In Conclusion0 码力 | 83 页 | 6.03 MB | 6 月前3
 Building bridges: Leveraging C++ and ROS for simulators, sensor data and algorithmsis an open-source Robot Operating System 1. A set of software libraries and tools that help you build robot applications that work across a wide variety of robotic platforms 2. Originally developed impact that the order of messages coming from simulator bridge will not be the same sequence which triggers the running ROS application that processes the messages as ROS application is running continuously0 码力 | 38 页 | 2.17 MB | 6 月前3 Building bridges: Leveraging C++ and ROS for simulators, sensor data and algorithmsis an open-source Robot Operating System 1. A set of software libraries and tools that help you build robot applications that work across a wide variety of robotic platforms 2. Originally developed impact that the order of messages coming from simulator bridge will not be the same sequence which triggers the running ROS application that processes the messages as ROS application is running continuously0 码力 | 38 页 | 2.17 MB | 6 月前3
 Powered by AI: A Cambrian Explosion for C++ Software Development Toolsnot something that the SFINAE (Substitution Failure Is Not An Error) mechanism can handle, so it triggers a full-blown compile error instead of simply discarding this instantiation. To fix this, you not something that the SFINAE (Substitution Failure Is Not An Error) mechanism can handle, so it triggers a full-blown compile error instead of simply discarding this instantiation. To fix this, you not something that the SFINAE (Substitution Failure Is Not An Error) mechanism can handle, so it triggers a full-blown compile error instead of simply discarding this instantiation. To fix this, you0 码力 | 128 页 | 23.40 MB | 6 月前3 Powered by AI: A Cambrian Explosion for C++ Software Development Toolsnot something that the SFINAE (Substitution Failure Is Not An Error) mechanism can handle, so it triggers a full-blown compile error instead of simply discarding this instantiation. To fix this, you not something that the SFINAE (Substitution Failure Is Not An Error) mechanism can handle, so it triggers a full-blown compile error instead of simply discarding this instantiation. To fix this, you not something that the SFINAE (Substitution Failure Is Not An Error) mechanism can handle, so it triggers a full-blown compile error instead of simply discarding this instantiation. To fix this, you0 码力 | 128 页 | 23.40 MB | 6 月前3
 Algorithmic Complexitytake into account the inner loops std::vector Algorithmic Complexitytake into account the inner loops std::vector- triggers; triggers.reserve(matrix.rows()); for (const auto& row: matrix) { triggers.push_back(Trigger::create(row)); } 88Algorithmic Complexity 0 码力 | 52 页 | 1.01 MB | 6 月前3
 Extending and Simplifying C++: Thoughts on Pattern Matching using 'is' and 'as', and Can C++ be 10x Simpler & Safer?static_assert(program_violates_type_safety_guarantee Extending and Simplifying C++: Thoughts on Pattern Matching using 'is' and 'as', and Can C++ be 10x Simpler & Safer?static_assert(program_violates_type_safety_guarantee- ); return nonesuch; } as - (42); // triggers static assert as - (42); // works g++-10 Clang-12 MSVC v19.29 84X as T (static_assert issue) as - (x) << std::endl; } else { std::cout << "type not supported!" << std::endl; } } fun(42); // triggers static assert g++-10 Clang-12 MSVC v19.29 85X as T (solution) template< typename C, typename static_assert(program_violates_type_safety_guarantee - ); } else { return as - (x); } } as_ - (42); // triggers static assert as - (42); // returns nonesuch g++-10 Clang-12 MSVC v19.29 878 If you want 0 码力 | 108 页 | 5.08 MB | 6 月前3
共 213 条
- 1
- 2
- 3
- 4
- 5
- 6
- 22
相关搜索词
 MakeSuccessorBuildSystemsWorldTourofWhyismysoSlowUsingModernC++toXOffsetDatastructureBeyondCompilationDatabasesSupportModulesCommonPackageSpecificationGettingToolsTalkEachOtherHowYourFirstAutomatedRefactoringToolCppCon2023BuildingbridgesLeveragingandROSforsimulatorssensordataalgorithmsPoweredbyAICambrianExplosionSoftwareDevelopmentAlgorithmicComplexityExtendingSimplifyingThoughtsonPatternMatchingusingasCanbe10xSimplerSafer














 
 