Kajetan Johannes Hammerle hai 1 semana
pai
achega
b22ace3807

+ 1 - 0
CMakeLists.txt

@@ -28,6 +28,7 @@ set(SRC_MODULES
     "modules/Random.cppm"
     "modules/ReadLine.cppm"
     "modules/Terminal.cppm"
+    "modules/TerminalConstants.cppm"
     "modules/Test.cppm"
     "modules/Thread.cppm"
     "modules/ToString.cppm"

+ 3 - 0
modules/ArrayList.cppm

@@ -1,6 +1,7 @@
 module;
 
 #include <cassert>
+#include <new>
 
 export module Core.ArrayList;
 
@@ -8,6 +9,8 @@ import Core.AlignedData;
 import Core.Meta;
 import Core.Types;
 
+export using ::operator new;
+
 export namespace Core {
     template<typename T, size_t N>
     class ArrayList final {

+ 4 - 0
modules/Components.cppm

@@ -2,10 +2,14 @@ module;
 
 export module Core.Components;
 
+export import Core.Utility;
+
 import Core.HashMap;
 import Core.List;
 import Core.Meta;
 
+export using ::operator new;
+
 export namespace Core {
     using Entity = size_t;
 

+ 3 - 1
modules/HashMap.cppm

@@ -3,14 +3,16 @@ module;
 export module Core.HashMap;
 
 export import Core.Types;
+export import Core.Utility;
 
 import Core.List;
 import Core.ToString;
-import Core.Utility;
 import Core.AlignedData;
 import Core.Math;
 import Core.Meta;
 
+export using ::operator new;
+
 export template<typename T>
 concept Hashable = requires(const T& t) { t.hashCode(); };
 export template<typename T>

+ 4 - 1
modules/List.cppm

@@ -5,12 +5,15 @@ module;
 
 export module Core.List;
 
+export import Core.Utility;
+
 import Core.AlignedData;
 import Core.Math;
 import Core.Meta;
-import Core.Utility;
 import Core.ToString;
 
+export using ::operator new;
+
 export namespace Core {
     template<typename T>
     class List final {

+ 1 - 1
modules/Logger.cppm

@@ -5,7 +5,7 @@ module;
 
 export module Core.Logger;
 
-import Core.Terminal;
+import Core.TerminalConstants;
 import Core.Meta;
 import Core.ToString;
 

+ 4 - 0
modules/Queue.cppm

@@ -1,12 +1,16 @@
 module;
 
 #include <cassert>
+#include <new>
 
 export module Core.Queue;
 
 import Core.AlignedData;
 import Core.ToString;
 import Core.Meta;
+import Core.Utility;
+
+export using ::operator new;
 
 export namespace Core {
     template<typename T, size_t N>

+ 0 - 69
modules/Terminal.cppm

@@ -4,76 +4,7 @@ export module Core.Terminal;
 
 export import Core.Vector;
 
-#define ESC "\33["
-
 export namespace Core {
-    namespace Terminal {
-        inline constexpr const char RESET[] = ESC "0m";
-        inline constexpr const char BOLD[] = ESC "1m";
-        // foreground colors
-        inline constexpr const char FG_BLACK[] = ESC "30m";
-        inline constexpr const char FG_RED[] = ESC "31m";
-        inline constexpr const char FG_GREEN[] = ESC "32m";
-        inline constexpr const char FG_YELLOW[] = ESC "33m";
-        inline constexpr const char FG_BLUE[] = ESC "34m";
-        inline constexpr const char FG_MAGENTA[] = ESC "35m";
-        inline constexpr const char FG_CYAN[] = ESC "36m";
-        inline constexpr const char FG_WHITE[] = ESC "37m";
-        inline constexpr const char FG_BRIGHT_BLACK[] = ESC "90m";
-        inline constexpr const char FG_BRIGHT_RED[] = ESC "91m";
-        inline constexpr const char FG_BRIGHT_GREEN[] = ESC "92m";
-        inline constexpr const char FG_BRIGHT_YELLOW[] = ESC "93m";
-        inline constexpr const char FG_BRIGHT_BLUE[] = ESC "94m";
-        inline constexpr const char FG_BRIGHT_MAGENTA[] = ESC "95m";
-        inline constexpr const char FG_BRIGHT_CYAN[] = ESC "96m";
-        inline constexpr const char FG_BRIGHT_WHITE[] = ESC "97m";
-        // background colors
-        inline constexpr const char BG_BLACK[] = ESC "40m";
-        inline constexpr const char BG_RED[] = ESC "41m";
-        inline constexpr const char BG_GREEN[] = ESC "42m";
-        inline constexpr const char BG_YELLOW[] = ESC "43m";
-        inline constexpr const char BG_BLUE[] = ESC "44m";
-        inline constexpr const char BG_MAGENTA[] = ESC "45m";
-        inline constexpr const char BG_CYAN[] = ESC "46m";
-        inline constexpr const char BG_WHITE[] = ESC "47m";
-        inline constexpr const char BG_BRIGHT_BLACK[] = ESC "100m";
-        inline constexpr const char BG_BRIGHT_RED[] = ESC "101m";
-        inline constexpr const char BG_BRIGHT_GREEN[] = ESC "102m";
-        inline constexpr const char BG_BRIGHT_YELLOW[] = ESC "103m";
-        inline constexpr const char BG_BRIGHT_BLUE[] = ESC "104m";
-        inline constexpr const char BG_BRIGHT_MAGENTA[] = ESC "105m";
-        inline constexpr const char BG_BRIGHT_CYAN[] = ESC "106m";
-        inline constexpr const char BG_BRIGHT_WHITE[] = ESC "107m";
-        // keycodes
-        inline constexpr const unsigned long KEY_UNKNOWN = 0x1'0000'0000lu;
-        // default keycodes
-        inline constexpr const unsigned long KEY_ARROW_LEFT = 0x1'0000'0001lu;
-        inline constexpr const unsigned long KEY_ARROW_RIGHT = 0x1'0000'0002lu;
-        inline constexpr const unsigned long KEY_ARROW_UP = 0x1'0000'0003lu;
-        inline constexpr const unsigned long KEY_ARROW_DOWN = 0x1'0000'0004lu;
-        inline constexpr const unsigned long KEY_DELETE = 0x1'0000'0005lu;
-        inline constexpr const unsigned long KEY_F1 = 0x1'0000'0006lu;
-        inline constexpr const unsigned long KEY_F2 = 0x1'0000'0007lu;
-        inline constexpr const unsigned long KEY_F3 = 0x1'0000'0008lu;
-        inline constexpr const unsigned long KEY_F4 = 0x1'0000'0009lu;
-        inline constexpr const unsigned long KEY_F5 = 0x1'0000'000Alu;
-        inline constexpr const unsigned long KEY_F6 = 0x1'0000'000Blu;
-        inline constexpr const unsigned long KEY_F7 = 0x1'0000'000Clu;
-        inline constexpr const unsigned long KEY_F8 = 0x1'0000'000Dlu;
-        inline constexpr const unsigned long KEY_F9 = 0x1'0000'000Elu;
-        inline constexpr const unsigned long KEY_F10 = 0x1'0000'000Flu;
-        inline constexpr const unsigned long KEY_F11 = 0x1'0000'0010lu;
-        inline constexpr const unsigned long KEY_F12 = 0x1'0000'0011lu;
-        inline constexpr const unsigned long KEY_PAGE_UP = 0x1'0000'0012lu;
-        inline constexpr const unsigned long KEY_PAGE_DOWN = 0x1'0000'0013lu;
-        inline constexpr const unsigned long KEY_HOME = 0x1'0000'0014lu;
-        inline constexpr const unsigned long KEY_END = 0x1'0000'0015lu;
-        // key modifiers
-        inline constexpr const unsigned long KEY_CTRL = 0x2'0000'0000lu;
-        inline constexpr const unsigned long KEY_SHIFT = 0x4'0000'0000lu;
-        inline constexpr const unsigned long KEY_ALT = 0x8'0000'0000lu;
-    }
-
     void enterAlternativeTerminal();
     void leaveAlternativeTerminal();
     IntVector2 getTerminalSize();

+ 76 - 0
modules/TerminalConstants.cppm

@@ -0,0 +1,76 @@
+module;
+
+export module Core.TerminalConstants;
+
+export import Core.Vector;
+
+#define ESC "\33["
+
+export namespace Core {
+    namespace Terminal {
+        inline constexpr const char RESET[] = ESC "0m";
+        inline constexpr const char BOLD[] = ESC "1m";
+        // foreground colors
+        inline constexpr const char FG_BLACK[] = ESC "30m";
+        inline constexpr const char FG_RED[] = ESC "31m";
+        inline constexpr const char FG_GREEN[] = ESC "32m";
+        inline constexpr const char FG_YELLOW[] = ESC "33m";
+        inline constexpr const char FG_BLUE[] = ESC "34m";
+        inline constexpr const char FG_MAGENTA[] = ESC "35m";
+        inline constexpr const char FG_CYAN[] = ESC "36m";
+        inline constexpr const char FG_WHITE[] = ESC "37m";
+        inline constexpr const char FG_BRIGHT_BLACK[] = ESC "90m";
+        inline constexpr const char FG_BRIGHT_RED[] = ESC "91m";
+        inline constexpr const char FG_BRIGHT_GREEN[] = ESC "92m";
+        inline constexpr const char FG_BRIGHT_YELLOW[] = ESC "93m";
+        inline constexpr const char FG_BRIGHT_BLUE[] = ESC "94m";
+        inline constexpr const char FG_BRIGHT_MAGENTA[] = ESC "95m";
+        inline constexpr const char FG_BRIGHT_CYAN[] = ESC "96m";
+        inline constexpr const char FG_BRIGHT_WHITE[] = ESC "97m";
+        // background colors
+        inline constexpr const char BG_BLACK[] = ESC "40m";
+        inline constexpr const char BG_RED[] = ESC "41m";
+        inline constexpr const char BG_GREEN[] = ESC "42m";
+        inline constexpr const char BG_YELLOW[] = ESC "43m";
+        inline constexpr const char BG_BLUE[] = ESC "44m";
+        inline constexpr const char BG_MAGENTA[] = ESC "45m";
+        inline constexpr const char BG_CYAN[] = ESC "46m";
+        inline constexpr const char BG_WHITE[] = ESC "47m";
+        inline constexpr const char BG_BRIGHT_BLACK[] = ESC "100m";
+        inline constexpr const char BG_BRIGHT_RED[] = ESC "101m";
+        inline constexpr const char BG_BRIGHT_GREEN[] = ESC "102m";
+        inline constexpr const char BG_BRIGHT_YELLOW[] = ESC "103m";
+        inline constexpr const char BG_BRIGHT_BLUE[] = ESC "104m";
+        inline constexpr const char BG_BRIGHT_MAGENTA[] = ESC "105m";
+        inline constexpr const char BG_BRIGHT_CYAN[] = ESC "106m";
+        inline constexpr const char BG_BRIGHT_WHITE[] = ESC "107m";
+        // keycodes
+        inline constexpr const unsigned long KEY_UNKNOWN = 0x1'0000'0000lu;
+        // default keycodes
+        inline constexpr const unsigned long KEY_ARROW_LEFT = 0x1'0000'0001lu;
+        inline constexpr const unsigned long KEY_ARROW_RIGHT = 0x1'0000'0002lu;
+        inline constexpr const unsigned long KEY_ARROW_UP = 0x1'0000'0003lu;
+        inline constexpr const unsigned long KEY_ARROW_DOWN = 0x1'0000'0004lu;
+        inline constexpr const unsigned long KEY_DELETE = 0x1'0000'0005lu;
+        inline constexpr const unsigned long KEY_F1 = 0x1'0000'0006lu;
+        inline constexpr const unsigned long KEY_F2 = 0x1'0000'0007lu;
+        inline constexpr const unsigned long KEY_F3 = 0x1'0000'0008lu;
+        inline constexpr const unsigned long KEY_F4 = 0x1'0000'0009lu;
+        inline constexpr const unsigned long KEY_F5 = 0x1'0000'000Alu;
+        inline constexpr const unsigned long KEY_F6 = 0x1'0000'000Blu;
+        inline constexpr const unsigned long KEY_F7 = 0x1'0000'000Clu;
+        inline constexpr const unsigned long KEY_F8 = 0x1'0000'000Dlu;
+        inline constexpr const unsigned long KEY_F9 = 0x1'0000'000Elu;
+        inline constexpr const unsigned long KEY_F10 = 0x1'0000'000Flu;
+        inline constexpr const unsigned long KEY_F11 = 0x1'0000'0010lu;
+        inline constexpr const unsigned long KEY_F12 = 0x1'0000'0011lu;
+        inline constexpr const unsigned long KEY_PAGE_UP = 0x1'0000'0012lu;
+        inline constexpr const unsigned long KEY_PAGE_DOWN = 0x1'0000'0013lu;
+        inline constexpr const unsigned long KEY_HOME = 0x1'0000'0014lu;
+        inline constexpr const unsigned long KEY_END = 0x1'0000'0015lu;
+        // key modifiers
+        inline constexpr const unsigned long KEY_CTRL = 0x2'0000'0000lu;
+        inline constexpr const unsigned long KEY_SHIFT = 0x4'0000'0000lu;
+        inline constexpr const unsigned long KEY_ALT = 0x8'0000'0000lu;
+    }
+}

+ 1 - 1
modules/Test.cppm

@@ -6,7 +6,7 @@ module;
 export module Core.Test;
 
 import Core.Logger;
-import Core.Terminal;
+import Core.TerminalConstants;
 import Core.ToString;
 
 #define SOURCE const std::source_location& l = std::source_location::current()

+ 2 - 0
modules/Utility.cppm

@@ -18,6 +18,8 @@ export void* operator new(size_t count, const std::source_location& l);
 export void* operator new[](size_t count, const std::source_location& l);
 #endif
 
+export using ::operator new;
+
 export namespace Core {
     template<typename T, typename C = int>
     C popCount(const T& t) {

+ 1 - 0
src/ReadLine.cpp

@@ -13,6 +13,7 @@ import Core.Logger;
 import Core.Queue;
 import Core.Thread;
 import Core.Terminal;
+import Core.TerminalConstants;
 import Core.Types;
 import Core.Unicode;
 

+ 1 - 0
src/Terminal.cpp

@@ -8,6 +8,7 @@ module;
 
 module Core.Terminal;
 
+import Core.TerminalConstants;
 import Core.Array;
 import Core.Logger;
 import Core.Unicode;

+ 1 - 1
test/modules/ColorTests.cpp

@@ -8,7 +8,7 @@ template class Core::Color<2>;
 template class Core::Color<3>;
 template class Core::Color<4>;
 
-const float eps = 0.0001f;
+static const float eps = 0.0001f;
 
 static void testColor1() {
     Core::Color1 c(36);

+ 1 - 0
test/modules/TerminalTests.cpp

@@ -7,6 +7,7 @@ module Tests;
 import Core.Clock;
 import Core.Logger;
 import Core.Terminal;
+import Core.TerminalConstants;
 import Core.Test;
 import Core.Vector;
 import Core.Types;

+ 1 - 1
test/modules/VectorTests.cpp

@@ -8,7 +8,7 @@ import Core.Test;
 import Core.Vector;
 import Core.ToString;
 
-const float eps = 0.0001f;
+static const float eps = 0.0001f;
 
 using V3 = Core::Vector3;
 using I3 = Core::IntVector3;