Make Successor Build Systems: World Tour of Build Systems
Reliable, 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 | 5 月前3Why is my Build so Slow
Why 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 | 5 月前3Using Modern C++ to Build XOffsetDatastructure
Fanchen 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 in0 码力 | 111 页 | 3.03 MB | 5 月前3Beyond 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 | 5 月前3Common Package Specification: Getting Build Tools to Talk to Each Other
A 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#includeint 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 | 5 月前3How 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 | 5 月前3Cetting Started with C++
for learning modern C++ 05Tools for your platform Build & project systems Editors & IDEs Compiler toolchainsTools for your platform Build & project systems Editors & IDEs Compiler toolchainsEditor compiler toolchain and other build environment tools Sometimes focused on specific target environments Usually extensible, but often not needed Often extensible… Build system knowledge Invoking compiler 0 5 10 15 20 25 30 35 40 https://visualstudio.microsoft.com Host: Windows only Easily build on Linux with Windows Subsystem for Linux (WSL) Comes in 3 editions: Community, Professional, Enterprise0 码力 | 95 页 | 4.71 MB | 5 月前3Performance Matters
gle gle gle gle gle gle gle gle gle gle gle gle gle gle gle gle gle gle gle Ogle is totally disrup?ng image search.gle gle loading… Ogle is too slow!found 8,000,000 similar images This is also Luke optimizations with STABILIZER first, build benchmarks with STABILIZERBuild programs with STABILIZER > szc main.c> szc main.c Build programs with STABILIZER> szc main.c -Rcode Build programs with STABILIZER> STABILIZER> szc main.c -Rcode -Rheap -Rstack Build programs with STABILIZER now run the benchmarks0% 10% 20% 30% 40% 85.0 87.5 90.0 92.5 95.0 Time (s) Percent of Observed Runtimes Run benchmarks as0 码力 | 197 页 | 11.90 MB | 5 月前3Secrets of C++ Scripting Bindings
2008 - Created SWIG Starter Kit SWIG is great for binding to other languages, but requires a second build step (Side note: this project launched my contracting career) I convinced myself I could do something You’ll understand one possible solution 3. You’ll be able to pick up from the simple example and build your own simple scripting tool 9 . 2Copyright Jason Turner @le�icus emptycrate.com/idocpp Code compile? add("print", +[](std::string input) { puts(input.c_str()); }); } https://godbolt.org/z/WbM5nG9er 19 . 2Copyright Jason Turner @le�icus emptycrate.com/idocpp Registering All The Functions 10 码力 | 177 页 | 1.65 MB | 5 月前3Irksome C++
programmer for over 60 years, programming in C++ since 1982. • Experienced in industry, academia, consul,ng, and research: � Founded a Computer Science Dept.; served as Professor and Dept. Head; taught and � Re?red from the Scien?fic Compu?ng Division at Fermilab, with specialty in C++ programming and in-house consul?ng. • Not dead! ☺ — s,ll doing training & consul,ng. (Email me!) 2 Copyright © 2022-2024 Irksome? • abrasive • aggrava*ng • angering • annoying • bi*ng • bothersome • bra1sh • bra2y • burdensome • carking • chafing • discomfor*ng • displeasing • disquie*ng • distrac*ve • distressing0 码力 | 15 页 | 3.03 MB | 5 月前3
共 202 条
- 1
- 2
- 3
- 4
- 5
- 6
- 21