Code Generation from Unified Robot Description Format for Accelerated Roboticsimprovements of more than 500x overthe state-of-the-art Compilertakes in standard Unified Robot Description Format (URDF) files and generates optimized code Setup data structure to optimize SIMD execution Skip0 码力 | 93 页 | 9.29 MB | 6 月前3
Implementing C++ Modules: Lessons Learned, Lessons AbandonedCppCon 2021 Independently developed libraries Linker error: duplicate definition for exported symbols ‘f()’, needed by ‘lib_m1()’ and ‘lib_m2()’. Non-compositional semanticsStrong Module Ownership ▪ The MSVC toolset relies on the Abstract Semantics Graph (ASG) of a TU, persisted in the IFC format, Binary Module Interface (BMI)! – ASG contains all meaningful semantics information from the input symbol – The linker must build two sets: ▪ References to external linkage symbols ▪ Definitions of external linkage symbols – For external linkage names the “great hunt” begins… – If two definitions0 码力 | 53 页 | 1.33 MB | 6 月前3
A (Short) Tour of C++ Modulescomposition Visibility of Identifiers vs. Reachability of Declarations Relationships, linkage and linker symbols Modules in practice Moving towards modules (by example) Imports are different! Is it worth it namespace name '::A' is attached to the global module, as it is oblivious of module boundaries 21LINKER SYMBOLS export module mod3; int foo(); // module linkage, attached to module 'mod3' namespace 'mod3' return foo(); } } // namespace A 1 2 3 4 5 6 7 8 9 Strong ownership model, the linker symbols of exported names contain the module name they are attached to e.g. msvc Benefit: Identical0 码力 | 62 页 | 4.20 MB | 6 月前3
Shared Librariesaddresses as resolved by the loader … … … https://learn.microsoft.com/en-us/windows/win32/debug/pe-format#the-idata-section 10 * Actually in section .rdata… .idata lib1: f1, f2, f3 lib2: g1, g2, g3 `global' can not be used when making a shared object; recompile with -fPIC • -fpic vs –fpie: • EXE symbols are relocatable but NOT interposable. Interprocedural optimizations apply. 24Lazy Binding (a linking against an import library • Minor optimization that happens in Release anyway • Most symbols are neither. exe ... call f() ... .idata dll1: __imp_f f(): jmp __imp_f() 41Symbol Visibility0 码力 | 69 页 | 1.40 MB | 6 月前3
Exploration of Strongly-typed Units: A Case Study from Digital Audiodefined on the slide ●hello, units using namespace mp_units::si::unit_symbols; using namespace mp_units::international::unit_symbols; constexpr quantity v1 = 110 * (km / h); // 110 km/h constexpr quantity : named_unit<"16th", mag* EigthNote> {} SixteenthNote; // ... }namespace ni::unit_symbols { inline constexpr auto n_wd = 3 * HalfNote; inline constexpr auto n_w = WholeNote; inline constexpr constexpr auto n_8th = EigthNote; inline constexpr auto n_16th = SixteenthNote; }namespace ni::unit_symbols { inline constexpr auto n_wd = 3 * HalfNote; inline constexpr auto n_w = WholeNote; inline constexpr 0 码力 | 106 页 | 5.66 MB | 6 月前3
Dynamically Loaded Libraries Outside the StandardCppCon 2021 | • Portable Executable format (PE) – exe, dll, etc. on Windows • Executable and Linkable Format (ELF) – for UNIX and UNIX-like OS • Mach Object file format (Mach-O) – executable, dylib, bundle if any call failed APIs: Win3211 CppCon 2021 | • dumpbin /exports repromath.dll Checkout what symbols are exported13 CppCon 2021 | double x[] = {1., 2., 3.}; double y[] = {4., -5., 6.}; auto lib = of the last error in dl APIs: POSIX15 CppCon 2021 | • objdump -T librepromath.so Checkout what symbols are exported17 CppCon 2021 | double x[] = {1., 2., 3.}; double y[] = {4., -5., 6.}; auto lib =0 码力 | 100 页 | 3.98 MB | 6 月前3
Compile-Time Compression and Resource Generation with C++20config_register.ld main.o objdump -ds config.out 8 . 10/ $ ./build.sh config.out: file format elf64-x86-64 Contents of section .config_registers: 0100 fd000002 fc000003 minimum metadata size 10 . 3/ $ objdump -s --section=.compressedmap example example: file format elf64-x86-64 Contents of section .compressedmap: 20c0 00000000 00000000 01000000 00000000 01006400 ' ( d 10 . 4/ Huffman coding (overview) Optimal encoding given the list of symbols and their frequency symbols are all characters in all strings Uses a min-heap priority_queue to build a tree bottom0 码力 | 59 页 | 1.86 MB | 6 月前3
Back to Basics: The structure of a Programnamespace wikipedia { class article { public: std::string format(); // symbol: _ZN9wikipedia7article6formatB5cxx11Ev }; } std::string format(std::string const& fmt, int64_t val); // symbol: _Z6form to find their symbols • It determines a set of all symbols that are used by the program • It resolves references to internal and external symbols • It assigns addresses to the symbols representing functions0 码力 | 64 页 | 390.34 KB | 6 月前3
Shared Libraries and Where To Find ThemAllows or disallows undefined symbols in shared libraries. This switch is similar to --no-undefined except that it determines the behaviour when the undefined symbols are in a shared does not affect how undefined symbols in regular object files are handled. The default behaviour is to report errors for any undefined symbols referenced in shared libraries dependencies / missing symbols libfoo.so libbar.so libmylib.so Linux ✅❓Indirect dependencies / missing symbols libfoo.so libbar.so libmylib.so macOS: errorIndirect dependencies / missing symbols libfoo.so libbar0 码力 | 94 页 | 6.49 MB | 6 月前3
Exceptional C++specified/returned if the ContextFlags word // contains the flag CONTEXT_EXTENDED_REGISTERS. // The format and contexts are processor specific BYTE ExtendedRegisters[MAXIMUM_SUPPORTED_EXTENSION]; swprintf_s(buf, MSG_BUFFER_LEN, L"%hs (0x%.8x) at address " ADDRESS_FORMAT SW_EOL, "ACCESS_VIOLATION", EXCEPTION_ACCESS_VIOLATION, aE wchar_t buf[MSG_BUFFER_LEN]; swprintf_s(buf, MSG_BUFFER_LEN, L"(0x%.8x) at address " ADDRESS_FORMAT SW_EOL, aExceptionInfo->ExceptionRecord->ExceptionCode, aExceptionIn0 码力 | 113 页 | 24.39 MB | 6 月前3
共 179 条
- 1
- 2
- 3
- 4
- 5
- 6
- 18
相关搜索词
CodeGenerationfromUnifiedRobotDescriptionFormatforAcceleratedRoboticsImplementingC++ModulesLessonsLearnedAbandonedShortTourofSharedLibrariesExplorationStronglytypedUnitsCaseStudyDigitalAudioDynamicallyLoadedOutsidetheStandardCompileTimeCompressionandResourcewith20BacktoBasicsThestructureProgramWhereToFindThemExceptional













