Connecting User And Library Code
@@@ All of library code is in LibSpace, user code without frame is in UserSpace@@@ As opposed to library sharing entities with other libraries+ @@@ Deducing this removes the need for CRTP2 Slides1. https://godbolt default implementation (something which can be done generally) @@@ All of library code is in LibSpace, user code without frame is in UserSpace1. @@@ Terms: 1. Overload: multiple functions with the same name library code is in LibSpace, user code without frame is in UserSpace 1. Basic: https://godbolt.org/z/nej3977z8@@@ This is done in the lib containing namespace (and not on user space) 2. Partial template0 码力 | 58 页 | 18.82 MB | 5 月前3Tracy: A Profiler You Don't Want to Miss
Profiling Zoo holistic (automatic) issues: information overload; profiling overhead (skew) selective (manual) Sampling callstack snapshot probing system-wide automatic (regular intervals) OS kernel events Profiling Zoo holistic (automatic) issues: information overload; profiling overhead (skew) selective (manual) Sampling callstack snapshot probing system-wide automatic (regular intervals) OS kernel events TracyClient.cpp TracyClient.cpp TracyClient.cpp TracyClient.cpp Behold the Tracy Multiverse! (Tracy Manual, Section 2.1.5)18 Tracy integration across shared libraries tracy (shared library) TracyClient0 码力 | 85 页 | 6.51 MB | 5 月前3Tracy: A Profiler You Don't Want to Miss
Profiling Zoo holistic (automatic) issues: information overload; profiling overhead (skew) selective (manual) Sampling callstack snapshot probing system-wide automatic (regular intervals) OS kernel events Profiling Zoo holistic (automatic) issues: information overload; profiling overhead (skew) selective (manual) Sampling callstack snapshot probing system-wide automatic (regular intervals) OS kernel events ZoneScoped; ... } ... { ZoneScoped; ... } }23 Tracy manual, Section 3.1 Tracy Zoning 101 int foo() { ZoneScoped; ... if (!spoon) { Zo0 码力 | 84 页 | 8.70 MB | 5 月前3Cooperative C++ Evolution
basic_value A copyable type that has public default construction and destruction (generated if not user-written) and no protected or virtual functions value An ordered basic_value Also: weakly_ordered_value partially_ordered_value struct A basic_value with all public members, no virtual functions, and no user- written operator= and a few more...28 C: Special enum language type C++11: extended enum and added enum class + only valid values Automates what we already teach today313233343536 But this is all the user had to write, they could directly express intent Names are powerful: To write a metafunction0 码力 | 85 页 | 5.73 MB | 5 月前3The Most Important Design Guideline is Testability
Knuth on His Testing Methodology I generally get best results by writing a test program that no sane user would ever think of writing. My test programs are intended to break the system, to push it to its 77Rewrite; Power Peg Moved, Not Removed 78Did Not Retest Power Peg 79Deploy Version to Support RLP 80Manual Deployment Mistake 81No Review or Test of Deployment 82RLP Goes Live on 7 Servers 83Power Peg Peg in 2003, dead code still around •Refactored code in 2005 ; moved dead code ; test still pass •Manual deployment ; no review ; no tests •Different components had different view of same thing •email0 码力 | 126 页 | 9.11 MB | 5 月前3Back To Basics: Functional Programming in C++
Definition Specify instructions that manipulate state in order to achieve a goal. C and C++ CPU IKEA manual Jonathan Müller — @foonathan Back to Basics: Functional Programming in C++ CppCon 2024-09-19 2Declarative Composing views does nothing yet. Only iteration will trigger computation. Functional pipeline style; no manual state wrangling. Jonathan Müller — @foonathan Back to Basics: Functional Programming in C++ CppCon 40Composing functions void unsubscribe_from_mailing_list(userID id) { subscriber_list.remove( lookup_user(id).email ); } Jonathan Müller — @foonathan Back to Basics: Functional Programming in C++ CppCon0 码力 | 178 页 | 918.67 KB | 5 月前3Express Your Expectations: A Fast, Compliant JSON Pull Parser for Writing Robust Applications
with JSON DOM parsers json_value is stringly typed, which requires dynamic memory allocation, manual error handling of the JSON content, Jonathan Müller — @foonathan Express your expectations CppCon with JSON DOM parsers json_value is stringly typed, which requires dynamic memory allocation, manual error handling of the JSON content, and is completely unnecessary in most situations! Jonathan Algorithm computes next data when requested by user. struct iterator { T& operator*() const; iterator& operator++(); bool operator==(sentinel) const; }; ??? User is in control. Jonathan Müller — @foonathan0 码力 | 143 页 | 736.91 KB | 5 月前3Conan 1.36 Documentation
custom configuration. 1.5 Stable From Conan 1.0, there is a commitment to stability, not breaking user space while evolving the tool and the platform. This means: • Moving forward to following minor versions System Integrity Protection, pip may fail. Try using virtualenvs, or install with another user $ pip install --user conan. • Some Linux distros, such as Linux Mint, require a restart (shell restart, or logout/system version 1.6 3.1.1 Known installation issues with pip • When Conan is installed with pip install --user, usually a new directory is created for it. However, the directory is not appended automatically 0 码力 | 765 页 | 5.71 MB | 1 年前3Conan 1.35 Documentation
custom configuration. 1.5 Stable From Conan 1.0, there is a commitment to stability, not breaking user space while evolving the tool and the platform. This means: • Moving forward to following minor versions System Integrity Protection, pip may fail. Try using virtualenvs, or install with another user $ pip install --user conan. • Some Linux distros, such as Linux Mint, require a restart (shell restart, or logout/system version 1.6 3.1.1 Known installation issues with pip • When Conan is installed with pip install --user, usually a new directory is created for it. However, the directory is not appended automatically 0 码力 | 759 页 | 5.70 MB | 1 年前3Peering Forward: C++'s Next Decade
fraction (5%? 10%?) of vulnerabilities and other bugs Qualitatively Delivered to existing code with no manual code changes, just a recompile seriousness about adoptability & improving safety of existing basic_value A copyable type that has public default construction and destruction (generated if not user-written) and no protected or virtual functions value An ordered basic_value. Also: weakly_ordered_value basic_value A copyable type that has public default construction and destruction (generated if not user-written) and no protected or virtual functions value An ordered basic_value. Also: weakly_ordered_value0 码力 | 84 页 | 6.21 MB | 5 月前3
共 238 条
- 1
- 2
- 3
- 4
- 5
- 6
- 24