Code Analysis++https://www.meetup.com/St-Petersburg-CPP-User- Group/ ● C++ Russia: https://cppconf.ru/en/Why Code Analysis?Software QualityReadability Maintainability tools fuzzer battery life Repeatable tests Undefined Behavior – Fun with NULL pointers, part 1: https://lwn.net/Articles/342330/Why code analysis – ● Improve software quality ● Lower developer frustration ● Avoid UBLanguageLanguage helps Built-in compiler check ○ Current LLVM implementation gives 5% overhead ○ Annotations to help analysis: gsl::SharedOwner, gsl::Owner, gsl::Pointer void sample1() { int* p = nullptr; {0 码力 | 61 页 | 2.70 MB | 6 月前3
From Eager Futures/Promises to Lazy Continuations: Evolving an Actor Library Based on Lessons LearnedFrom Eager Futures/Promises to Lazy Continuations Evolving an Actor Library Based on Lessons Learned from Large-Scale Deployments Benjamin Hindman @benh CppCon 2021prologue ● past life at UC Continuation{std::move(url), std::move(body), std::move(k)}; }lazy continuations auto k = http::Post(url, body, /* k' */); ● resulting type is the “computational graph”lazy continuations auto k = http::Post(url, body body, /* k' */); k.Start(); ● resulting type is the “computational graph” ● the graph is lazy, i.e., nothing has started when we get it (tradeoff for dynamic allocation) and must be explicitly startedlazy0 码力 | 264 页 | 588.96 KB | 6 月前3
Finding Bugs using Path-Sensitive Static AnalysisFinding Bugs using Path-Sensitive Static Analysis Gábor Horváth Gabor.Horvath@microsoft.com @XazaxHunWelcome to CppCon 2021! Join #visual_studio channel on CppCon Discord https://aka.ms/cppcon/discord latest announcements Take our survey https://aka.ms/cppconAgenda • Intro to path-sensitive static analysis • Path-sensitive checks in MSVC • A look under the hood • Upcoming features • Lessons learned2012 -> Unknown p -> Null p -> MaybeNull p -> MaybeNull Warning Unknown Null NotNull MaybeNull Analysis state Transition semi-lattice• Some paths are infeasible: • Not taking branch 1, but taking branch0 码力 | 35 页 | 14.13 MB | 6 月前3
Julia 1.11.4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432 33.5 Memory allocation analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433 33.6 External Profiling . . . . . . . . . . . . . . . . . . . . . . . 1366 73 Future 1368 74 Interactive Utilities 1369 75 Lazy Artifacts 1379 76 LibCURL 1380 77 LibGit2 1381 78 Dynamic Linker 1429 79 Linear Algebra 1433 assignment list is suffixed by ... (known as slurping), then it will be assigned a collection or lazy iterator of the remaining elements of the right-hand side iterator: julia> a, b... = "hello" "hello"0 码力 | 2007 页 | 6.73 MB | 3 月前3
Julia 1.11.5 Documentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432 33.5 Memory allocation analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433 33.6 External Profiling . . . . . . . . . . . . . . . . . . . . . . . 1366 73 Future 1368 74 Interactive Utilities 1369 75 Lazy Artifacts 1379 76 LibCURL 1380 77 LibGit2 1381 78 Dynamic Linker 1429 79 Linear Algebra 1433 assignment list is suffixed by ... (known as slurping), then it will be assigned a collection or lazy iterator of the remaining elements of the right-hand side iterator: julia> a, b... = "hello" "hello"0 码力 | 2007 页 | 6.73 MB | 3 月前3
Julia 1.11.6 Release Notes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432 33.5 Memory allocation analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433 33.6 External Profiling . . . . . . . . . . . . . . . . . . . . . . . 1366 73 Future 1368 74 Interactive Utilities 1369 75 Lazy Artifacts 1379 76 LibCURL 1380 77 LibGit2 1381 78 Dynamic Linker 1429 79 Linear Algebra 1433 assignment list is suffixed by ... (known as slurping), then it will be assigned a collection or lazy iterator of the remaining elements of the right-hand side iterator: julia> a, b... = "hello" "hello"0 码力 | 2007 页 | 6.73 MB | 3 月前3
julia 1.13.0 DEV. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437 33.6 Memory allocation analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443 33.7 External Profiling . . Faces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1437 77 Lazy Artifacts 1440 78 LibCURL 1441 79 LibGit2 1442 80 Dynamic Linker 1490 81 Linear Algebra 1494 assignment list is suffixed by ... (known as slurping), then it will be assigned a collection or lazy iterator of the remaining elements of the right-hand side iterator: julia> a, b... = "hello" "hello"0 码力 | 2058 页 | 7.45 MB | 3 月前3
Julia 1.12.0 RC1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438 33.6 Memory allocation analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444 33.7 External Profiling . . Faces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1435 77 Lazy Artifacts 1438 78 LibCURL 1439 79 LibGit2 1440 80 Dynamic Linker 1488 81 Linear Algebra 1492 assignment list is suffixed by ... (known as slurping), then it will be assigned a collection or lazy iterator of the remaining elements of the right-hand side iterator: julia> a, b... = "hello" "hello"0 码力 | 2057 页 | 7.44 MB | 3 月前3
Julia 1.12.0 Beta4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437 33.6 Memory allocation analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443 33.7 External Profiling . . Faces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1434 77 Lazy Artifacts 1437 78 LibCURL 1438 79 LibGit2 1439 80 Dynamic Linker 1487 81 Linear Algebra 1491 assignment list is suffixed by ... (known as slurping), then it will be assigned a collection or lazy iterator of the remaining elements of the right-hand side iterator: julia> a, b... = "hello" "hello"0 码力 | 2057 页 | 7.44 MB | 3 月前3
Julia 1.12.0 Beta3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437 33.6 Memory allocation analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443 33.7 External Profiling . . Faces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1434 77 Lazy Artifacts 1437 78 LibCURL 1438 79 LibGit2 1439 80 Dynamic Linker 1487 81 Linear Algebra 1491 assignment list is suffixed by ... (known as slurping), then it will be assigned a collection or lazy iterator of the remaining elements of the right-hand side iterator: julia> a, b... = "hello" "hello"0 码力 | 2057 页 | 7.44 MB | 3 月前3
共 1000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 100













