Add noexcept to all constructors to explicitly state no exception thrown #44#411
Add noexcept to all constructors to explicitly state no exception thrown #44#411axsaucedo merged 3 commits intoKomputeProject:masterfrom
Conversation
|
@axsaucedo I prepared this PR for #44 but I think there is a design problem to do this. I found this in the failed test because now Memory fails, throws an exception but it gets converted to a segfault in the Tensor class (as it should be). However, I do not feel right to delete the test for the Tensor/Memory data to be >0 in size or delete the check inside of the tensor. However, I also do not feel this to be completely right, and as the tensor size should be constant I feel that it should be possible to check it, and (this is really a stretch) I feel that this could be possible at compile time through templates, although I am not sure. What do you suggest? |
1969b2a to
2dc1f95
Compare
Signed-off-by: Andrea Calabrese <andrea.calabrese@amarulasolutions.com> Signed-off-by: Andrea Calabrese <andrea1995.c@live.com>
Signed-off-by: Andrea Calabrese <andrea.calabrese@amarulasolutions.com> Signed-off-by: Andrea Calabrese <andrea1995.c@live.com>
Signed-off-by: Andrea Calabrese <andrea.calabrese@amarulasolutions.com> Signed-off-by: Andrea Calabrese <andrea1995.c@live.com>
|
Thank you for the contribution @ThePseudo ! Additionally I agree with your comments; to be honest it's been well overdue to properly think about having a better custom exception handling approach, as currently there's quite a few situations where the program exits where a domain-specific exception would be better handled.
Based on that let me know and we can merge this one to approach separate. |
|
Hi @axsaucedo, I think it is possible to merge this one. I was experimenting with the other solution and I don't like where it was going: basically it would become a template hell, which would even be ok by me, but everything becoming statically decided does not work for everything (memory usage would be decided at compile time, basically). |
In regards to this PR looks good to go, thanks for the contribution |
…own KomputeProject#44 (KomputeProject#411) * Sequence con/destructor is noexcept Signed-off-by: Andrea Calabrese <andrea.calabrese@amarulasolutions.com> Signed-off-by: Andrea Calabrese <andrea1995.c@live.com> * Operations are noexcept Signed-off-by: Andrea Calabrese <andrea.calabrese@amarulasolutions.com> Signed-off-by: Andrea Calabrese <andrea1995.c@live.com> * Algorithm is noexcept Signed-off-by: Andrea Calabrese <andrea.calabrese@amarulasolutions.com> Signed-off-by: Andrea Calabrese <andrea1995.c@live.com> --------- Signed-off-by: Andrea Calabrese <andrea.calabrese@amarulasolutions.com> Signed-off-by: Andrea Calabrese <andrea1995.c@live.com> Signed-off-by: evanokeeffe <evan.okeeffe@tas-2.com>
* add datatype enum to python module (#404) * add datatype enum to python module Signed-off-by: koubaa <koubaa@github.com> * add datatype enum to python module Signed-off-by: koubaa <koubaa@github.com> * add doc Signed-off-by: koubaa <koubaa@github.com> --------- Signed-off-by: koubaa <koubaa@github.com> Co-authored-by: koubaa <koubaa@github.com> Signed-off-by: evanokeeffe <evan.okeeffe@tas-2.com> * Add noexcept to all constructors to explicitly state no exception thrown #44 (#411) * Sequence con/destructor is noexcept Signed-off-by: Andrea Calabrese <andrea.calabrese@amarulasolutions.com> Signed-off-by: Andrea Calabrese <andrea1995.c@live.com> * Operations are noexcept Signed-off-by: Andrea Calabrese <andrea.calabrese@amarulasolutions.com> Signed-off-by: Andrea Calabrese <andrea1995.c@live.com> * Algorithm is noexcept Signed-off-by: Andrea Calabrese <andrea.calabrese@amarulasolutions.com> Signed-off-by: Andrea Calabrese <andrea1995.c@live.com> --------- Signed-off-by: Andrea Calabrese <andrea.calabrese@amarulasolutions.com> Signed-off-by: Andrea Calabrese <andrea1995.c@live.com> Signed-off-by: evanokeeffe <evan.okeeffe@tas-2.com> * Remove copy operations from classes in Kompute (#412) * Operations are non-copy As for Issue #20, operations should be non-copy. Instead of creating a base NonCopyable class, I prefer to keep this inside the classes themselves, so that we do not create new inherited structures. Signed-off-by: Andrea Calabrese <andrea.calabrese@amarulasolutions.com> Signed-off-by: Andrea Calabrese <andrea1995.c@live.com> * Make Algorithm uncopyable Same as previous commit Signed-off-by: Andrea Calabrese <andrea.calabrese@amarulasolutions.com> Signed-off-by: Andrea Calabrese <andrea1995.c@live.com> * Image is non-copy Signed-off-by: Andrea Calabrese <andrea.calabrese@amarulasolutions.com> Signed-off-by: Andrea Calabrese <andrea1995.c@live.com> * Manager is non-copy Signed-off-by: Andrea Calabrese <andrea.calabrese@amarulasolutions.com> Signed-off-by: Andrea Calabrese <andrea1995.c@live.com> * Memory is non-copy Signed-off-by: Andrea Calabrese <andrea.calabrese@amarulasolutions.com> Signed-off-by: Andrea Calabrese <andrea1995.c@live.com> * Sequence is non-copy Signed-off-by: Andrea Calabrese <andrea.calabrese@amarulasolutions.com> Signed-off-by: Andrea Calabrese <andrea1995.c@live.com> * Tensor is non-copy Signed-off-by: Andrea Calabrese <andrea.calabrese@amarulasolutions.com> Signed-off-by: Andrea Calabrese <andrea1995.c@live.com> --------- Signed-off-by: Andrea Calabrese <andrea.calabrese@amarulasolutions.com> Signed-off-by: Andrea Calabrese <andrea1995.c@live.com> Signed-off-by: evanokeeffe <evan.okeeffe@tas-2.com> * Fix noexcept missing from OpMemoryBarrier (#413) Signed-off-by: Alejandro Saucedo <alejandro.saucedo@zalando.de> Signed-off-by: evanokeeffe <evan.okeeffe@tas-2.com> * 414 support for 1 4 headers (#415) * Added guard for vk 1.4 headers Signed-off-by: Alejandro Saucedo <alejandro.saucedo@zalando.de> * CI test for 1.4 compatibility Signed-off-by: Alejandro Saucedo <alejandro.saucedo@zalando.de> CI test for 1.4 compatibility Signed-off-by: Alejandro Saucedo <alejandro.saucedo@zalando.de> CI test for 1.4 compatibility Signed-off-by: Alejandro Saucedo <alejandro.saucedo@zalando.de> CI test for 1.4 compatibility Signed-off-by: Alejandro Saucedo <alejandro.saucedo@zalando.de> CI test for 1.4 compatibility Signed-off-by: Alejandro Saucedo <alejandro.saucedo@zalando.de> CI test for 1.4 compatibility Signed-off-by: Alejandro Saucedo <alejandro.saucedo@zalando.de> Updated cast to match vk namespace Signed-off-by: Alejandro Saucedo <alejandro.saucedo@zalando.de> Updated cast to match vk namespace Signed-off-by: Alejandro Saucedo <alejandro.saucedo@zalando.de> * Updated debugMessageCallback func to vk:: ns Signed-off-by: Alejandro Saucedo <alejandro.saucedo@zalando.de> * Updated debugMessageCallback func to vk:: ns Signed-off-by: Alejandro Saucedo <alejandro.saucedo@zalando.de> --------- Signed-off-by: Alejandro Saucedo <alejandro.saucedo@zalando.de> Signed-off-by: evanokeeffe <evan.okeeffe@tas-2.com> * Fix syntax error (MSVC) in Manager.cpp (#418) Change VKAPI_PTR to VKAPI_ATTR Tested only on: MSVC version: `Microsoft (R) C/C++ Optimizing Compiler Version 19.43.34808 for x86` VulkanSDK version: 1.4.309.0 Latest kompute commit: 299b11f Signed-off-by: jamorphy <maps@jax2.net> Signed-off-by: evanokeeffe <evan.okeeffe@tas-2.com> * Fix compile error in android (#423) Signed-off-by: zlaazlaa <2889827787@qq.com> Signed-off-by: evanokeeffe <evan.okeeffe@tas-2.com> * Make spdlog and fmt mutually exclusive and support -Werror=missing-braces (#419) * Update bin2h.cmake to avoid -Werror=missing-braces Signed-off-by: zachferguson <zach.ferguson@clo3d.com> Signed-off-by: Zachary Ferguson <zach.ferguson@clo3d.com> * Use the fmt inside spdlog if using spdlog Signed-off-by: zachferguson <zach.ferguson@clo3d.com> Signed-off-by: Zachary Ferguson <zach.ferguson@clo3d.com> * Fix python build by linking fmt when KOMPUTE_OPT_LOG_LEVEL_DISABLED Signed-off-by: Zachary Ferguson <zach.ferguson@clo3d.com> --------- Signed-off-by: zachferguson <zach.ferguson@clo3d.com> Signed-off-by: Zachary Ferguson <zach.ferguson@clo3d.com> Signed-off-by: evanokeeffe <evan.okeeffe@tas-2.com> * Add missing eDeviceAndHost MemoryType to the Python Bindings (#424) * Add eDeviceAndHost to Python bindings for MemoryTypes. Update docstrings so that the build works. Signed-off-by: Robert Quill <robert.quill@imgtec.com> * Typo fix Signed-off-by: Robert Quill <robert.quill@imgtec.com> --------- Signed-off-by: Robert Quill <robert.quill@imgtec.com> Signed-off-by: evanokeeffe <evan.okeeffe@tas-2.com> * feat: Add log library linking to Android build (#428) Signed-off-by: zlaazlaa <2889827787@qq.com> Signed-off-by: evanokeeffe <evan.okeeffe@tas-2.com> * Fix python SpecConst and PushConst bugs (#430) * Fix push const inconsistent type bug Signed-off-by: Alejandro Saucedo <alejandro.saucedo@zalando.de> * Fix push const bug Signed-off-by: Alejandro Saucedo <alejandro.saucedo@zalando.de> * Added test to consts Signed-off-by: Alejandro Saucedo <alejandro.saucedo@zalando.de> * Added tests for const types@ Signed-off-by: Alejandro Saucedo <alejandro.saucedo@zalando.de> * Added test to consts Signed-off-by: Alejandro Saucedo <alejandro.saucedo@zalando.de> * Added test to consts Signed-off-by: Alejandro Saucedo <alejandro.saucedo@zalando.de> * Added test to consts Signed-off-by: Alejandro Saucedo <alejandro.saucedo@zalando.de> --------- Signed-off-by: Alejandro Saucedo <alejandro.saucedo@zalando.de> Signed-off-by: evanokeeffe <evan.okeeffe@tas-2.com> * Update Python Matmul examples (#434) * feat: Add utility function to compile GLSL source to SPIR-V Signed-off-by: n-jay <nuwanjayawardene@gmail.com> * refactor: Replace kp.Shader.compile_source with utility function compile_source Signed-off-by: n-jay <nuwanjayawardene@gmail.com> --------- Signed-off-by: n-jay <nuwanjayawardene@gmail.com> Signed-off-by: evanokeeffe <evan.okeeffe@tas-2.com> * update internal gtest to v1.17.0 (#437) Signed-off-by: Matthias Möller <m_moeller@live.de> Signed-off-by: evanokeeffe <evan.okeeffe@tas-2.com> * Fix incorrect creation of python arrays in Tensor.data (#440) Previously the Python array would just be filled with the first element of the data repeated to fill the array. Fixes a number of the Python tests. Signed-off-by: Robert Quill <robert.quill@imgtec.com> Signed-off-by: evanokeeffe <evan.okeeffe@tas-2.com> * Updated to pybind 3.0.0 (#431) Signed-off-by: Alejandro Saucedo <alejandro.saucedo@zalando.de> Signed-off-by: evanokeeffe <evan.okeeffe@tas-2.com> * Clarify status of llama.cpp in README (#446) Updated description for llama.cpp to indicate it is now decommissioned. Signed-off-by: Alejandro Saucedo <alejandro.saucedo@zalando.de> Signed-off-by: evanokeeffe <evan.okeeffe@tas-2.com> * adding kompute example using debug printf Signed-off-by: evanokeeffe <evan.okeeffe@tas-2.com> * adding link to the draft article Signed-off-by: evanokeeffe <evan.okeeffe@tas-2.com> * Updating the readme for the debug statement example Signed-off-by: evanokeeffe <evan.okeeffe@tas-2.com> * Adding in the example shader, gitignore targets it so needed to force in Signed-off-by: evanokeeffe <evan.okeeffe@tas-2.com> * Modifying the comment to include bytes in the comment on message length Signed-off-by: evanokeeffe <evan.okeeffe@tas-2.com> * Correcting the readme for spelling mistakes in vulkan_ext_printf Signed-off-by: evanokeeffe <evan.okeeffe@tas-2.com> * Fix family queue selection in tests (#448) * checks if given family queue has compute capability Signed-off-by: Matthias Möller <m_moeller@live.de> * test will search for queues with compute capabilities Signed-off-by: Matthias Möller <m_moeller@live.de> --------- Signed-off-by: Matthias Möller <m_moeller@live.de> Signed-off-by: evanokeeffe <evan.okeeffe@tas-2.com> * removes compile definition defining for spdlog target (#449) spdlog is not build when the CMake option "KOMPUTE_OPT_USE_BUILT_IN_SPDLOG" is set to false. When activating spdlog for logging via CMake option "KOMPUTE_OPT_USE_SPDLOG", CMake will deliver an error, as the current CMake file tries to add a definition to the spdlog target. Defining the compiler definition "SPDLOG_ACTIVE_LEVEL" has no effect on spdlog itself, it just has an effect on spdlog target consumers. Therefore, it can be removed so that the project can be build with the mentioned CMake options. Signed-off-by: Matthias Möller <m_moeller@live.de> Signed-off-by: evanokeeffe <evan.okeeffe@tas-2.com> * adding kompute example using debug printf Signed-off-by: evanokeeffe <evan.okeeffe@tas-2.com> * adding link to the draft article Signed-off-by: evanokeeffe <evan.okeeffe@tas-2.com> * Updating the readme for the debug statement example Signed-off-by: evanokeeffe <evan.okeeffe@tas-2.com> --------- Signed-off-by: koubaa <koubaa@github.com> Signed-off-by: evanokeeffe <evan.okeeffe@tas-2.com> Signed-off-by: Andrea Calabrese <andrea.calabrese@amarulasolutions.com> Signed-off-by: Andrea Calabrese <andrea1995.c@live.com> Signed-off-by: Alejandro Saucedo <alejandro.saucedo@zalando.de> Signed-off-by: jamorphy <maps@jax2.net> Signed-off-by: zlaazlaa <2889827787@qq.com> Signed-off-by: zachferguson <zach.ferguson@clo3d.com> Signed-off-by: Zachary Ferguson <zach.ferguson@clo3d.com> Signed-off-by: Robert Quill <robert.quill@imgtec.com> Signed-off-by: n-jay <nuwanjayawardene@gmail.com> Signed-off-by: Matthias Möller <m_moeller@live.de> Co-authored-by: Mohamed Koubaa <koubaa.m@gmail.com> Co-authored-by: koubaa <koubaa@github.com> Co-authored-by: Andrea Calabrese <18246320+ThePseudo@users.noreply.github.com> Co-authored-by: Alejandro Saucedo <axsauze@gmail.com> Co-authored-by: jamorphy <148006242+jamorphy@users.noreply.github.com> Co-authored-by: zlaa <72907523+zlaazlaa@users.noreply.github.com> Co-authored-by: Zachary Ferguson <zy.fergus@gmail.com> Co-authored-by: Robert Quill <robert.quill@imgtec.com> Co-authored-by: Nuwan Jayawardene <nuwanjayawardene@gmail.com> Co-authored-by: Matthias Möller <m_moeller@live.de> Co-authored-by: evanokeeffe <evan.okeeffe@tas-2.com>
In this PR, I add noexcept to all constructors that are noexcept