aboutsummaryrefslogtreecommitdiff
path: root/include/openvic-dataloader/detail/pinned_vector.hpp
diff options
context:
space:
mode:
author Spartan322 <Megacake1234@gmail.com>2024-07-02 09:51:59 +0200
committer Spartan322 <Megacake1234@gmail.com>2024-07-05 19:17:25 +0200
commit3eb78b27505b602c1ccfa952c4cc00f942ccb2b9 (patch)
tree457b7fbda6d4470465c05d59b0ca51ed30628640 /include/openvic-dataloader/detail/pinned_vector.hpp
parentdeed8ec0ae23651529a58125012c1b4aab015d02 (diff)
Fix string interning pointer invalidity for ASTsimplify-string-interning
Fix errorneous string intern compare Add symbol interning tests Optimize non-conversion identifier cases Add `File::size()` Add InstanceOf concept Remove `FlatValue::value(const symbol_interner_type&)` Add `AbstractSyntaxTree::intern/intern_cst(lexy::lexeme)` overload Add `DiagnosticLogger::intern/intern_cstr(lexy::lexeme)` overload Use pinned_vector to maintain string interning pointer validity for buffers Add vmcontainer submodule for pinned_vector pinned_vector reserves virtual memory at runtime using OS APIs to maintain pointer validity Remove Exception and RTTI requirement from range-v3 submodule
Diffstat (limited to 'include/openvic-dataloader/detail/pinned_vector.hpp')
-rw-r--r--include/openvic-dataloader/detail/pinned_vector.hpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/include/openvic-dataloader/detail/pinned_vector.hpp b/include/openvic-dataloader/detail/pinned_vector.hpp
new file mode 100644
index 0000000..42a7760
--- /dev/null
+++ b/include/openvic-dataloader/detail/pinned_vector.hpp
@@ -0,0 +1,15 @@
+#pragma once
+
+#include <vmcontainer/detail.hpp>
+#include <vmcontainer/pinned_vector.hpp>
+
+namespace ovdl::detail {
+ static constexpr auto max_elements = mknejp::vmcontainer::max_elements;
+ static constexpr auto max_bytes = mknejp::vmcontainer::max_bytes;
+ static constexpr auto max_pages = mknejp::vmcontainer::max_pages;
+
+ using pinned_vector_traits = mknejp::vmcontainer::pinned_vector_traits;
+
+ template<typename T, typename Traits = pinned_vector_traits>
+ using pinned_vector = mknejp::vmcontainer::pinned_vector<T, Traits>;
+} \ No newline at end of file