The Absurdity of Error HandlingSYCL Erik Tomusk CppCon 2023 October 5, 2023© 2023 Codeplay Software Ltd. Codeplay Corporate Slide 2© 2023 Codeplay Software Ltd. • SYCL is an abstraction layer for running C++ code on accelerators software can cause substantial harm • More on SYCL in room Cottonwood 2/3: 3© 2023 Codeplay Software Ltd. Disclaimer Slide 4 This is a personal presentation. Any views, opinions, or statements represented associated with in a professional or personal capacity, unless explicitly stated© 2023 Codeplay Software Ltd. Outline • Definition of Safety • Definition of Error Handling • Case Study • Why is this Important0 码力 | 43 页 | 1.39 MB | 6 月前3
Six Ways for Implementing Math Expressions Calculatorimplementing math expressions calculator, Amir Kirsh©2021. All rights reserved. IncrediBuild Software Ltd. Incredibuild for Automotive • Infotainment • Instrument cluster • Heads-up-display (HUD) • Telematics/connected0 码力 | 63 页 | 1.85 MB | 6 月前3
A Relaxed Guide to memory_order_relaxedare no racing stores, so the canonical OOTA pattern cannot form. ● Ordering is provided by atomic_thread_fence(). ○ The atomic_thread_fence() calls prevent the canonical OOTA pattern from forming. ● ● There is only one shared object ○ The canonical OOTA pattern requires at least two shared objectsProprietary + Confidential Safe in strict C++20: Unidirectional Data Flow s1 = get_ext_state(1); s2 undefined behavior … if they read a bad value … which they shouldn’t …Proprietary + Confidential Canonical potentially unsafe pattern int r1 =rlx x; if (r1 is bad) bad_behavior(); int r2 =rlx0 码力 | 32 页 | 278.53 KB | 6 月前3
C++20's zone America/Nuuk, relatively newly renamed from America/Godthab ICU • ICU defines "canonical" and "non- canonical" names for time zones. • Contains the recently outdated name America/Godthab instead two different classification systems. So, MSVC STL considers all ICU time zones (canonical and non-canonical) to be time_zones.51 Part VI: Conclusion52 Takeaways • C++20is super cool 0 码力 | 55 页 | 8.67 MB | 6 月前3
Shared Librariesdefinitions can 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. 15foo0 码力 | 69 页 | 1.40 MB | 6 月前3
Conan 1.19 Documentationinstalled in the system in order to operate. Under the hood, Snap is based on SquashFS. Snap is Canonical initiative. Usually, applications are distributed via snapcraft store, but it’s not mandatory. Snap run conan install HelloPy/0.1@memsharded/testing -g virtualenv, however, using the file is the canonical way. The specified virtualenv generator will create an activate script (in Windows activate.bat) method serves to define the “canonical” binary package ID, the identifier of the binary that cor- respond to the input configuration of settins and options. This canonical binary package ID will be always0 码力 | 609 页 | 4.88 MB | 1 年前3
Conan 1.20 Documentationinstalled in the system in order to operate. Under the hood, Snap is based on SquashFS. Snap is Canonical initiative. Usually, applications are distributed via snapcraft store, but it’s not mandatory. Snap run conan install HelloPy/0.1@memsharded/testing -g virtualenv, however, using the file is the canonical way. The specified virtualenv generator will create an activate script (in Windows activate.bat) method serves to define the “canonical” binary package ID, the identifier of the binary that cor- respond to the input configuration of settins and options. This canonical binary package ID will be always0 码力 | 611 页 | 4.89 MB | 1 年前3
Conan 1.21 Documentationinstalled in the system in order to operate. Under the hood, Snap is based on SquashFS. Snap is Canonical initiative. Usually, applications are distributed via snapcraft store, but it’s not mandatory. Snap run conan install HelloPy/0.1@memsharded/testing -g virtualenv, however, using the file is the canonical way. The specified virtualenv generator will create an activate script (in Windows activate.bat) method serves to define the “canonical” binary package ID, the identifier of the binary that corre- spond to the input configuration of settings and options. This canonical binary package ID will be always0 码力 | 621 页 | 4.92 MB | 1 年前3
Conan 1.22 Documentationinstalled in the system in order to operate. Under the hood, Snap is based on SquashFS. Snap is Canonical initiative. Usually, applications are distributed via snapcraft store, but it’s not mandatory. Snap run conan install HelloPy/0.1@memsharded/testing -g virtualenv, however, using the file is the canonical way. The specified virtualenv generator will create an activate script (in Windows activate.bat) method serves to define the “canonical” binary package ID, the identifier of the binary that corre- spond to the input configuration of settings and options. This canonical binary package ID will be always0 码力 | 629 页 | 4.98 MB | 1 年前3
Conan 1.23 Documentationinstalled in the system in order to operate. Under the hood, Snap is based on SquashFS. Snap is Canonical initiative. Usually, applications are distributed via snapcraft store, but it’s not mandatory. Snap run conan install HelloPy/0.1@memsharded/testing -g virtualenv, however, using the file is the canonical way. The specified virtualenv generator will create an activate script (in Windows activate.bat) method serves to define the “canonical” binary package ID, the identifier of the binary that corre- spond to the input configuration of settings and options. This canonical binary package ID will be always0 码力 | 637 页 | 5.04 MB | 1 年前3
共 79 条
- 1
- 2
- 3
- 4
- 5
- 6
- 8













