 Shared Libraries1Terminology • Shared Library: • Shared Object, Dynamic Object, Dynamic Shared Object (DSO), Dynamic Load Library (DLL), Dynamic Shared Library • Binary: • Executable / Shared Library , Component cause ODR violation errors. • Speculated motivation: • In the elden days the canonical example of shared-lib was libc. Users may reasonably wish to override implementations. 15foo Library Search Order After exe, before any lib 16 exe lib1 lib2 lib3 lib4 lib5 preload_lib1C++ Implication #1: Can a shared-library symbol be overridden from an executable? • Windows: • No. • Linux: • Yes. • Mac: •0 码力 | 69 页 | 1.40 MB | 6 月前3 Shared Libraries1Terminology • Shared Library: • Shared Object, Dynamic Object, Dynamic Shared Object (DSO), Dynamic Load Library (DLL), Dynamic Shared Library • Binary: • Executable / Shared Library , Component cause ODR violation errors. • Speculated motivation: • In the elden days the canonical example of shared-lib was libc. Users may reasonably wish to override implementations. 15foo Library Search Order After exe, before any lib 16 exe lib1 lib2 lib3 lib4 lib5 preload_lib1C++ Implication #1: Can a shared-library symbol be overridden from an executable? • Windows: • No. • Linux: • Yes. • Mac: •0 码力 | 69 页 | 1.40 MB | 6 月前3
 Shared Libraries and Where To Find ThemShared Libraries and Where to Find Them R&D Team Lead, JFrogIntroduction From the point of view of a C++ developer, compiled code typically ends up in either: ● The executables themselves ● Static Static libraries ● Shared libraries Libraries* are a vehicle for “reusable” code code that can be invoked by other libraries or applications (even from other languages) * libraries: not defined by the standard meanings…How developers deal with shared librariesAbout this talk ● What this talk covers: ○ WHEN shared libraries are needed ○ WHICH programs needs to locate shared libraries ○ TOOLS to query, troubleshoot0 码力 | 94 页 | 6.49 MB | 6 月前3 Shared Libraries and Where To Find ThemShared Libraries and Where to Find Them R&D Team Lead, JFrogIntroduction From the point of view of a C++ developer, compiled code typically ends up in either: ● The executables themselves ● Static Static libraries ● Shared libraries Libraries* are a vehicle for “reusable” code code that can be invoked by other libraries or applications (even from other languages) * libraries: not defined by the standard meanings…How developers deal with shared librariesAbout this talk ● What this talk covers: ○ WHEN shared libraries are needed ○ WHICH programs needs to locate shared libraries ○ TOOLS to query, troubleshoot0 码力 | 94 页 | 6.49 MB | 6 月前3
 generic graph librariescomputing, including systems, programming languages, software [tile] DB libraries, and large-scale graph analytics. Open-source software projects resulting from his work include practical (concrete) problems -theory reuse *,Goes hand-in-glove with goals of generic software libraries Graphs Are Ubiduitous SS Degrees of Kevin Bacon) 。Towards standardization 。Lessons Learned Generic Programming and Generic Libraries *,Generic programming is a sub-discipline of computer science that deals with finding abstract0 码力 | 76 页 | 6.59 MB | 6 月前3 generic graph librariescomputing, including systems, programming languages, software [tile] DB libraries, and large-scale graph analytics. Open-source software projects resulting from his work include practical (concrete) problems -theory reuse *,Goes hand-in-glove with goals of generic software libraries Graphs Are Ubiduitous SS Degrees of Kevin Bacon) 。Towards standardization 。Lessons Learned Generic Programming and Generic Libraries *,Generic programming is a sub-discipline of computer science that deals with finding abstract0 码力 | 76 页 | 6.59 MB | 6 月前3
 Reflection Based Libraries to Look Forward To1Reflection based libraries to look forward to Saksham Sharma CppCon 2024 2Director, Quant Research Tech at Tower Research Capital High frequency trading firm based out of NYC Develop low latency other languages (Go, Python, Java) Reflection in C++ as per P2996 Syntax and examples Reflection libraries! Python bindings ABI hashing (boost::abi_hash?) A duck-typed std::any (boost::virtual_any?) general-purpose / boilerplate-reducing libraries Solve multiple pain-points through a single feature The hallmark of a useful language feature Reflection libaries! 40Libraries would require fewer redundant0 码力 | 118 页 | 14.33 MB | 6 月前3 Reflection Based Libraries to Look Forward To1Reflection based libraries to look forward to Saksham Sharma CppCon 2024 2Director, Quant Research Tech at Tower Research Capital High frequency trading firm based out of NYC Develop low latency other languages (Go, Python, Java) Reflection in C++ as per P2996 Syntax and examples Reflection libraries! Python bindings ABI hashing (boost::abi_hash?) A duck-typed std::any (boost::virtual_any?) general-purpose / boilerplate-reducing libraries Solve multiple pain-points through a single feature The hallmark of a useful language feature Reflection libaries! 40Libraries would require fewer redundant0 码力 | 118 页 | 14.33 MB | 6 月前3
 Dynamically Loaded Libraries Outside the Standard2021 Dynamically Loaded Libraries Outside the Standard 2021/10/29 Zhihao Yuan Dynamically Loaded Libraries Outside the Standard2021 Dynamically Loaded Libraries Outside the Standard 2021/10/29 Zhihao Yuan- 3 CppCon 2021 | • Dynamic-link library (.dll) • Dynamic shared object (.so) • Mach-O dynamic bundles at runtime • dlopen() APIs works with both dynamic libraries and bundles • Prior to Mac OS X 10.5, dlclose() does not unload dynamic libraries Example: NSBundle7 CppCon 2021 | • Portable Executable reference count of a loaded module Loaded libraries are reference countedCppCon 2021 Different Levels of Dynamic20 CppCon 2021 | • Level 0: Dependent libraries How dynamic is dynamic?21 CppCon 2021 | 0 码力 | 100 页 | 3.98 MB | 6 月前3
 Making Libraries Consumable for Non-C++ Developersorg/ Garbage collection is really “automatic memory management”. - Reference counted - C++ – std::shared_ptr Making Libraries Consumable for Non-C++ Developersorg/ Garbage collection is really “automatic memory management”. - Reference counted - C++ – std::shared_ptr- - Python - Objective-C (manual or automatic – see ARC) - Swift - COM – AddRef()/Release() C# has fixed keyword. • Conforming JVM implementations have the option.Memory model Control of “shared” memory needs to be documented and/or agreed upon. GCs make this far more complicated since they DoTheThing(in BlubT b); Result: Windows – everything passed. Linux – everything failed. Why?Making Libraries Consumable for Non-C++ Developers Aaron R Robinson arobins@microsoft.com https://github. 0 码力 | 29 页 | 1.21 MB | 6 月前3
 The Beman Project: Bringing Standard Libraries to the Next LevelThe Beman Project Bringing Standard Libraries to the Next Level David Sankel | Principal Scientist Software Technology Lab Image generated with Adobe FireflyWhere does the standard come from?BristolBristol© Rights Reserved. “ Support the efficient design and adoption of the highest quality C++ standard libraries” – Beman project mission 17 David Sankel Richard Powell© 2024 Adobe. All Rights Reserved. “ “ Support the efficient design and adoption of the highest quality C++ standard libraries through implementation experience” – Beman project mission 18 David Sankel Richard Powell© 2024 Adobe. All0 码力 | 53 页 | 7.38 MB | 6 月前3 The Beman Project: Bringing Standard Libraries to the Next LevelThe Beman Project Bringing Standard Libraries to the Next Level David Sankel | Principal Scientist Software Technology Lab Image generated with Adobe FireflyWhere does the standard come from?BristolBristol© Rights Reserved. “ Support the efficient design and adoption of the highest quality C++ standard libraries” – Beman project mission 17 David Sankel Richard Powell© 2024 Adobe. All Rights Reserved. “ “ Support the efficient design and adoption of the highest quality C++ standard libraries through implementation experience” – Beman project mission 18 David Sankel Richard Powell© 2024 Adobe. All0 码力 | 53 页 | 7.38 MB | 6 月前3
 Libraries: A First Step Toward Standard C++ Dependency Management1October 3, 2023 2 Libraries: A First Step Toward Standard C++ Dependency Management Bret Brown, C++ Infrastructure Lead, Bloomberg Bill Hoffman, CTO, KitwareHello! Welcome! Bret Brown C++ Infrastructure Metadata file(s) to declare those contents ● Modest tool interop requirements In short, declaring libraries installed on a filesystem 6Goals ● ✓ A first step towards a robust packaging ecosystem ● ✓ Explicit too hard Q: Which of these do you find frustrating about C++ development? ● 82% – Managing the libraries my application depends on ● 80% – Build times ● 71% – Setting up CI pipelines from scratch ●0 码力 | 82 页 | 4.21 MB | 6 月前3 Libraries: A First Step Toward Standard C++ Dependency Management1October 3, 2023 2 Libraries: A First Step Toward Standard C++ Dependency Management Bret Brown, C++ Infrastructure Lead, Bloomberg Bill Hoffman, CTO, KitwareHello! Welcome! Bret Brown C++ Infrastructure Metadata file(s) to declare those contents ● Modest tool interop requirements In short, declaring libraries installed on a filesystem 6Goals ● ✓ A first step towards a robust packaging ecosystem ● ✓ Explicit too hard Q: Which of these do you find frustrating about C++ development? ● 82% – Managing the libraries my application depends on ● 80% – Build times ● 71% – Setting up CI pipelines from scratch ●0 码力 | 82 页 | 4.21 MB | 6 月前3
 Lock-Free Atomic Shared Pointers Without a Split Reference Count? It Can Be Done!danielanderson.net What we’ll learn today • How shared_ptr is implemented under the hood • Atomics and concurrency patterns • How existing atomic<shared_ptr> are implemented (the split reference count used for • You’ve heard of shared_ptr Things we won’t cover • Alias pointers, weak pointers4 Daniel Anderson -- danielanderson.net What we’ll learn today • How shared_ptr is implemented under the the hood • Atomics and concurrency patterns • How existing atomic<shared_ptr> are implemented (the split reference count technique) • Deferred reclamation, i.e., garbage collection in C++ Some assumed0 码力 | 45 页 | 5.12 MB | 6 月前3 Lock-Free Atomic Shared Pointers Without a Split Reference Count? It Can Be Done!danielanderson.net What we’ll learn today • How shared_ptr is implemented under the hood • Atomics and concurrency patterns • How existing atomic<shared_ptr> are implemented (the split reference count used for • You’ve heard of shared_ptr Things we won’t cover • Alias pointers, weak pointers4 Daniel Anderson -- danielanderson.net What we’ll learn today • How shared_ptr is implemented under the the hood • Atomics and concurrency patterns • How existing atomic<shared_ptr> are implemented (the split reference count technique) • Deferred reclamation, i.e., garbage collection in C++ Some assumed0 码力 | 45 页 | 5.12 MB | 6 月前3
 Writing Python Bindings for C++ Libraries: Easy-to-use Performance(IPython) ○ Jupyter notebooks provide a great research environment ○ Very mature open source libraries for various domains Why C++? ● We’re at CppCon :) Why Python? Why C++?● Why? ○ Avoid reimplementing Performance ○ Back and forth with user’s python code ○ Interoperability with data structures in Python - shared memory space ● How? ○ Python/C API ○ Cython ○ Numba / PyPy ○ Boost::Python ○ Pybind11 ○ cppyy "cy.h": int cpp_increment(int x) def cy_increment(x): return cpp_increment(x)Various libraries to “speed up” python Focus of this talkPerformanceSome perf numbers: per increment runtime Take0 码力 | 118 页 | 2.18 MB | 6 月前3 Writing Python Bindings for C++ Libraries: Easy-to-use Performance(IPython) ○ Jupyter notebooks provide a great research environment ○ Very mature open source libraries for various domains Why C++? ● We’re at CppCon :) Why Python? Why C++?● Why? ○ Avoid reimplementing Performance ○ Back and forth with user’s python code ○ Interoperability with data structures in Python - shared memory space ● How? ○ Python/C API ○ Cython ○ Numba / PyPy ○ Boost::Python ○ Pybind11 ○ cppyy "cy.h": int cpp_increment(int x) def cy_increment(x): return cpp_increment(x)Various libraries to “speed up” python Focus of this talkPerformanceSome perf numbers: per increment runtime Take0 码力 | 118 页 | 2.18 MB | 6 月前3
共 284 条
- 1
- 2
- 3
- 4
- 5
- 6
- 29
相关搜索词
 SharedLibrariesandWhereToFindThemgenericgraphlibrariesReflectionBasedtoLookForwardDynamicallyLoadedOutsidetheStandardMakingConsumableforNonC++DevelopersTheBemanProjectBringingNextLevelFirstStepTowardDependencyManagementLockFreeAtomicPointersWithoutSplitReferenceCountItCanBeDoneWritingPythonBindingsEasyusePerformance














