diff --git a/.gitignore b/.gitignore index 74212767b..55cabc383 100644 --- a/.gitignore +++ b/.gitignore @@ -49,6 +49,7 @@ out/ # Precompiled Headers *.gch *.pch +pch/pch.cpp # Compiled Dynamic libraries *.so diff --git a/CMakeLists.txt b/CMakeLists.txt index 034114657..7593c3dc2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -42,6 +42,15 @@ endif () set(CMAKE_POSITION_INDEPENDENT_CODE ON) +file(GENERATE OUTPUT ${ark_SOURCE_DIR}/pch/pch.cpp CONTENT "") +add_library(PCH OBJECT ${ark_SOURCE_DIR}/pch/pch.cpp) +target_precompile_headers(PCH PRIVATE ${ark_SOURCE_DIR}/pch/pch.hpp) +target_include_directories(PCH PRIVATE ${ark_SOURCE_DIR}/pch) +target_compile_features(PCH PRIVATE cxx_std_20) +if (CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_CLANG OR APPLE) + target_compile_options(PCH PRIVATE -fvisibility=hidden -fno-semantic-interposition -Wno-gnu-label-as-value) +endif() + # files needed for the library ArkReactor file(GLOB_RECURSE SOURCE_FILES ${ark_SOURCE_DIR}/src/arkreactor/*.cpp @@ -49,6 +58,7 @@ file(GLOB_RECURSE SOURCE_FILES add_library(ArkReactor SHARED ${SOURCE_FILES}) enable_lto(ArkReactor) +target_precompile_headers(ArkReactor REUSE_FROM PCH) target_include_directories(ArkReactor PUBLIC ${ark_SOURCE_DIR}/include) @@ -56,7 +66,7 @@ target_compile_features(ArkReactor PRIVATE cxx_std_20) if (ARK_UNITY_BUILD) set_target_properties(ArkReactor PROPERTIES UNITY_BUILD ON UNITY_BUILD_MODE BATCH UNITY_BUILD_BATCH_SIZE 16) - set_source_files_properties(src/arkreactor/VM/VM.cpp PROPERTIES SKIP_UNITY_BUILD_INCLUSION true) + set_source_files_properties(${ark_SOURCE_DIR}/src/arkreactor/VM/VM.cpp PROPERTIES SKIP_UNITY_BUILD_INCLUSION true) endif () if (CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_CLANG OR APPLE) @@ -192,6 +202,7 @@ if (ARK_TESTS) ${ark_SOURCE_DIR}/src/arkscript/JsonCompiler.cpp ${ark_SOURCE_DIR}/src/arkscript/REPL/Utils.cpp) add_executable(unittests ${SOURCES}) + target_precompile_headers(unittests REUSE_FROM PCH) target_include_directories(unittests PUBLIC ${ark_SOURCE_DIR}/tests/unittests) target_include_directories(unittests SYSTEM PUBLIC ${ark_SOURCE_DIR}/lib/dtl/dtl) @@ -261,6 +272,7 @@ if (ARK_BUILD_EXE) add_subdirectory("${ark_SOURCE_DIR}/lib/clipp" EXCLUDE_FROM_ALL) + target_precompile_headers(arkscript REUSE_FROM PCH) target_include_directories(arkscript SYSTEM PUBLIC "${ark_SOURCE_DIR}/lib/clipp/include") target_link_libraries(arkscript PUBLIC ArkReactor replxx clipp) target_compile_features(arkscript PRIVATE cxx_std_20) diff --git a/include/Ark/Builtins/Builtins.hpp b/include/Ark/Builtins/Builtins.hpp index daa934c65..f0d7fad3b 100644 --- a/include/Ark/Builtins/Builtins.hpp +++ b/include/Ark/Builtins/Builtins.hpp @@ -11,8 +11,6 @@ #ifndef ARK_BUILTINS_BUILTINS_HPP #define ARK_BUILTINS_BUILTINS_HPP -#include - #include #include diff --git a/include/Ark/Compiler/AST/BaseParser.hpp b/include/Ark/Compiler/AST/BaseParser.hpp index 10abd1e03..cbeec1b86 100644 --- a/include/Ark/Compiler/AST/BaseParser.hpp +++ b/include/Ark/Compiler/AST/BaseParser.hpp @@ -1,10 +1,6 @@ #ifndef SRC_BASEPARSER_HPP #define SRC_BASEPARSER_HPP -#include -#include -#include - #include #include #include diff --git a/include/Ark/Compiler/AST/Import.hpp b/include/Ark/Compiler/AST/Import.hpp index f25f28992..60c3cf346 100644 --- a/include/Ark/Compiler/AST/Import.hpp +++ b/include/Ark/Compiler/AST/Import.hpp @@ -1,10 +1,6 @@ #ifndef ARK_COMPILER_AST_IMPORT_HPP #define ARK_COMPILER_AST_IMPORT_HPP -#include -#include -#include - #include namespace Ark::internal diff --git a/include/Ark/Compiler/AST/Namespace.hpp b/include/Ark/Compiler/AST/Namespace.hpp index 3e039f680..9c6a4e9cb 100644 --- a/include/Ark/Compiler/AST/Namespace.hpp +++ b/include/Ark/Compiler/AST/Namespace.hpp @@ -1,10 +1,6 @@ #ifndef ARK_COMPILER_AST_NAMESPACE_HPP #define ARK_COMPILER_AST_NAMESPACE_HPP -#include -#include -#include - namespace Ark::internal { class Node; diff --git a/include/Ark/Compiler/AST/Node.hpp b/include/Ark/Compiler/AST/Node.hpp index 61a0c29cb..58b65d4f7 100644 --- a/include/Ark/Compiler/AST/Node.hpp +++ b/include/Ark/Compiler/AST/Node.hpp @@ -11,11 +11,6 @@ #ifndef COMPILER_AST_NODE_HPP #define COMPILER_AST_NODE_HPP -#include -#include -#include -#include - #include #include #include diff --git a/include/Ark/Compiler/AST/Optimizer.hpp b/include/Ark/Compiler/AST/Optimizer.hpp index 93d27835b..60c6d5aae 100644 --- a/include/Ark/Compiler/AST/Optimizer.hpp +++ b/include/Ark/Compiler/AST/Optimizer.hpp @@ -11,10 +11,6 @@ #ifndef COMPILER_AST_OPTIMIZER_HPP #define COMPILER_AST_OPTIMIZER_HPP -#include -#include -#include - #include #include #include diff --git a/include/Ark/Compiler/AST/Parser.hpp b/include/Ark/Compiler/AST/Parser.hpp index 80c4c6d38..15f946632 100644 --- a/include/Ark/Compiler/AST/Parser.hpp +++ b/include/Ark/Compiler/AST/Parser.hpp @@ -18,10 +18,6 @@ #include #include -#include -#include -#include - #include namespace Ark::internal diff --git a/include/Ark/Compiler/AST/Predicates.hpp b/include/Ark/Compiler/AST/Predicates.hpp index 7ccc0dac5..17f24347f 100644 --- a/include/Ark/Compiler/AST/Predicates.hpp +++ b/include/Ark/Compiler/AST/Predicates.hpp @@ -1,9 +1,6 @@ #ifndef SRC_PREDICATES_HPP #define SRC_PREDICATES_HPP -#include -#include - #include namespace Ark::internal diff --git a/include/Ark/Compiler/AST/utf8_char.hpp b/include/Ark/Compiler/AST/utf8_char.hpp index d6affa817..ac70e74f6 100644 --- a/include/Ark/Compiler/AST/utf8_char.hpp +++ b/include/Ark/Compiler/AST/utf8_char.hpp @@ -1,12 +1,6 @@ #ifndef SRC_UTF8_CHAR_HPP #define SRC_UTF8_CHAR_HPP -#include -#include -#include - -#undef max - namespace Ark::internal { class utf8_char_t diff --git a/include/Ark/Compiler/BytecodeReader.hpp b/include/Ark/Compiler/BytecodeReader.hpp index 4fe3d3570..47ac2831c 100644 --- a/include/Ark/Compiler/BytecodeReader.hpp +++ b/include/Ark/Compiler/BytecodeReader.hpp @@ -11,11 +11,6 @@ #ifndef ARK_COMPILER_BYTECODEREADER_HPP #define ARK_COMPILER_BYTECODEREADER_HPP -#include -#include -#include -#include - #include #include #include diff --git a/include/Ark/Compiler/Common.hpp b/include/Ark/Compiler/Common.hpp index 6c54d9462..c034c7cc6 100644 --- a/include/Ark/Compiler/Common.hpp +++ b/include/Ark/Compiler/Common.hpp @@ -11,10 +11,6 @@ #ifndef ARK_COMPILER_COMMON_HPP #define ARK_COMPILER_COMMON_HPP -#include -#include -#include -#include #include namespace Ark diff --git a/include/Ark/Compiler/Instructions.hpp b/include/Ark/Compiler/Instructions.hpp index c381a1cd0..dbf603379 100644 --- a/include/Ark/Compiler/Instructions.hpp +++ b/include/Ark/Compiler/Instructions.hpp @@ -11,8 +11,6 @@ #ifndef ARK_COMPILER_INSTRUCTIONS_HPP #define ARK_COMPILER_INSTRUCTIONS_HPP -#include - namespace Ark::internal { /** diff --git a/include/Ark/Compiler/IntermediateRepresentation/Entity.hpp b/include/Ark/Compiler/IntermediateRepresentation/Entity.hpp index fd9e238e9..388e160b3 100644 --- a/include/Ark/Compiler/IntermediateRepresentation/Entity.hpp +++ b/include/Ark/Compiler/IntermediateRepresentation/Entity.hpp @@ -11,10 +11,6 @@ #ifndef ARK_COMPILER_INTERMEDIATEREPRESENTATION_ENTITY_HPP #define ARK_COMPILER_INTERMEDIATEREPRESENTATION_ENTITY_HPP -#include -#include -#include - #include #include diff --git a/include/Ark/Compiler/IntermediateRepresentation/IRCompiler.hpp b/include/Ark/Compiler/IntermediateRepresentation/IRCompiler.hpp index fc0091566..fb2be8158 100644 --- a/include/Ark/Compiler/IntermediateRepresentation/IRCompiler.hpp +++ b/include/Ark/Compiler/IntermediateRepresentation/IRCompiler.hpp @@ -11,9 +11,6 @@ #ifndef ARK_COMPILER_INTERMEDIATEREPRESENTATION_IRCOMPILER_HPP #define ARK_COMPILER_INTERMEDIATEREPRESENTATION_IRCOMPILER_HPP -#include -#include - #include #include #include diff --git a/include/Ark/Compiler/IntermediateRepresentation/IROptimizer.hpp b/include/Ark/Compiler/IntermediateRepresentation/IROptimizer.hpp index 3117618b6..0272ef060 100644 --- a/include/Ark/Compiler/IntermediateRepresentation/IROptimizer.hpp +++ b/include/Ark/Compiler/IntermediateRepresentation/IROptimizer.hpp @@ -15,9 +15,6 @@ #include #include -#include -#include - namespace Ark::internal { class ARK_API IROptimizer final diff --git a/include/Ark/Compiler/IntermediateRepresentation/InstLoc.hpp b/include/Ark/Compiler/IntermediateRepresentation/InstLoc.hpp index 801f6a463..4c2fce2e0 100644 --- a/include/Ark/Compiler/IntermediateRepresentation/InstLoc.hpp +++ b/include/Ark/Compiler/IntermediateRepresentation/InstLoc.hpp @@ -1,8 +1,6 @@ #ifndef ARK_COMPILER_INTERMEDIATEREPRESENTATION_INSTLOC_HPP #define ARK_COMPILER_INTERMEDIATEREPRESENTATION_INSTLOC_HPP -#include - namespace Ark::internal { // pp (2 bytes), ip (2 bytes), filename id (2 bytes), line (4 bytes) -> 10 bytes per record diff --git a/include/Ark/Compiler/Lowerer/ASTLowerer.hpp b/include/Ark/Compiler/Lowerer/ASTLowerer.hpp index 89532c743..126ac55b9 100644 --- a/include/Ark/Compiler/Lowerer/ASTLowerer.hpp +++ b/include/Ark/Compiler/Lowerer/ASTLowerer.hpp @@ -11,11 +11,6 @@ #ifndef ARK_COMPILER_LOWERER_ASTLOWERER_HPP #define ARK_COMPILER_LOWERER_ASTLOWERER_HPP -#include -#include -#include -#include - #include #include #include diff --git a/include/Ark/Compiler/Lowerer/LocalsLocator.hpp b/include/Ark/Compiler/Lowerer/LocalsLocator.hpp index b4893a488..4c6dc8467 100644 --- a/include/Ark/Compiler/Lowerer/LocalsLocator.hpp +++ b/include/Ark/Compiler/Lowerer/LocalsLocator.hpp @@ -11,10 +11,6 @@ #ifndef ARK_COMPILER_LOWERER_LOCALSLOCATOR_HPP #define ARK_COMPILER_LOWERER_LOCALSLOCATOR_HPP -#include -#include -#include - namespace Ark::internal { class LocalsLocator diff --git a/include/Ark/Compiler/Macros/Executor.hpp b/include/Ark/Compiler/Macros/Executor.hpp index 974b61e6e..41670fd71 100644 --- a/include/Ark/Compiler/Macros/Executor.hpp +++ b/include/Ark/Compiler/Macros/Executor.hpp @@ -11,9 +11,6 @@ #ifndef ARK_COMPILER_EXECUTOR_HPP #define ARK_COMPILER_EXECUTOR_HPP -#include -#include - #include namespace Ark::internal diff --git a/include/Ark/Compiler/Macros/MacroScope.hpp b/include/Ark/Compiler/Macros/MacroScope.hpp index f63b2cf97..5b3cd0d23 100644 --- a/include/Ark/Compiler/Macros/MacroScope.hpp +++ b/include/Ark/Compiler/Macros/MacroScope.hpp @@ -13,9 +13,6 @@ #include -#include -#include - namespace Ark::internal { class MacroScope diff --git a/include/Ark/Compiler/Macros/Processor.hpp b/include/Ark/Compiler/Macros/Processor.hpp index 61be1a941..3835dbe59 100644 --- a/include/Ark/Compiler/Macros/Processor.hpp +++ b/include/Ark/Compiler/Macros/Processor.hpp @@ -16,10 +16,6 @@ #include #include -#include -#include -#include - namespace Ark::internal { class MacroExecutor; diff --git a/include/Ark/Compiler/NameResolution/NameResolutionPass.hpp b/include/Ark/Compiler/NameResolution/NameResolutionPass.hpp index 6d5cc47dc..d42bb6752 100644 --- a/include/Ark/Compiler/NameResolution/NameResolutionPass.hpp +++ b/include/Ark/Compiler/NameResolution/NameResolutionPass.hpp @@ -11,10 +11,6 @@ #ifndef ARK_COMPILER_NAMERESOLUTIONPASS_HPP #define ARK_COMPILER_NAMERESOLUTIONPASS_HPP -#include -#include -#include - #include #include #include diff --git a/include/Ark/Compiler/NameResolution/ScopeResolver.hpp b/include/Ark/Compiler/NameResolution/ScopeResolver.hpp index 8d80d2be9..4e90c33f0 100644 --- a/include/Ark/Compiler/NameResolution/ScopeResolver.hpp +++ b/include/Ark/Compiler/NameResolution/ScopeResolver.hpp @@ -11,12 +11,6 @@ #ifndef ARK_COMPILER_NAMERESOLUTION_SCOPERESOLVER_HPP #define ARK_COMPILER_NAMERESOLUTION_SCOPERESOLVER_HPP -#include -#include -#include -#include -#include - #include namespace Ark::internal diff --git a/include/Ark/Compiler/NameResolution/StaticScope.hpp b/include/Ark/Compiler/NameResolution/StaticScope.hpp index 900e85092..8e099ce86 100644 --- a/include/Ark/Compiler/NameResolution/StaticScope.hpp +++ b/include/Ark/Compiler/NameResolution/StaticScope.hpp @@ -11,13 +11,6 @@ #ifndef ARK_COMPILER_NAMERESOLUTION_STATICSCOPE_HPP #define ARK_COMPILER_NAMERESOLUTION_STATICSCOPE_HPP -#include -#include -#include -#include -#include -#include - #include namespace Ark::internal diff --git a/include/Ark/Compiler/Package/ImportSolver.hpp b/include/Ark/Compiler/Package/ImportSolver.hpp index c76ee773f..70ed00817 100644 --- a/include/Ark/Compiler/Package/ImportSolver.hpp +++ b/include/Ark/Compiler/Package/ImportSolver.hpp @@ -11,12 +11,6 @@ #ifndef ARK_COMPILER_IMPORTSOLVER_HPP #define ARK_COMPILER_IMPORTSOLVER_HPP -#include -#include -#include -#include -#include - #include #include #include diff --git a/include/Ark/Compiler/Serialization/IEEE754Serializer.hpp b/include/Ark/Compiler/Serialization/IEEE754Serializer.hpp index 351cb1359..10d936567 100644 --- a/include/Ark/Compiler/Serialization/IEEE754Serializer.hpp +++ b/include/Ark/Compiler/Serialization/IEEE754Serializer.hpp @@ -1,12 +1,6 @@ #ifndef ARK_COMPILER_SERIALIZATION_IEEE754SERIALIZER_HPP #define ARK_COMPILER_SERIALIZATION_IEEE754SERIALIZER_HPP -#include -#include -#include -#include -#include - namespace Ark::internal::ieee754 { // Narrowing conversion from long long to double, 9223372036854775807 becomes 9223372036854775808. diff --git a/include/Ark/Compiler/Serialization/IntegerSerializer.hpp b/include/Ark/Compiler/Serialization/IntegerSerializer.hpp index 199872753..4fbbecd83 100644 --- a/include/Ark/Compiler/Serialization/IntegerSerializer.hpp +++ b/include/Ark/Compiler/Serialization/IntegerSerializer.hpp @@ -1,10 +1,6 @@ #ifndef ARK_COMPILER_SERIALIZATION_INTEGERSERIALIZER_HPP #define ARK_COMPILER_SERIALIZATION_INTEGERSERIALIZER_HPP -#include -#include -#include - namespace Ark::internal { void serializeToVecLE(std::integral auto number, std::vector& out) diff --git a/include/Ark/Compiler/ValTableElem.hpp b/include/Ark/Compiler/ValTableElem.hpp index c9e7edd79..65d6f8dad 100644 --- a/include/Ark/Compiler/ValTableElem.hpp +++ b/include/Ark/Compiler/ValTableElem.hpp @@ -11,9 +11,6 @@ #ifndef ARK_COMPILER_VALTABLEELEM_HPP #define ARK_COMPILER_VALTABLEELEM_HPP -#include -#include - #include namespace Ark::internal diff --git a/include/Ark/Compiler/Welder.hpp b/include/Ark/Compiler/Welder.hpp index 2a86ef2dd..45c7d7b28 100644 --- a/include/Ark/Compiler/Welder.hpp +++ b/include/Ark/Compiler/Welder.hpp @@ -11,10 +11,6 @@ #ifndef ARK_COMPILER_WELDER_HPP #define ARK_COMPILER_WELDER_HPP -#include -#include -#include - #include #include #include diff --git a/include/Ark/Constants.hpp.in b/include/Ark/Constants.hpp.in index fcc0cbb96..02aba9d51 100644 --- a/include/Ark/Constants.hpp.in +++ b/include/Ark/Constants.hpp.in @@ -11,8 +11,6 @@ #ifndef INCLUDE_ARK_CONSTANTS_HPP_IN #define INCLUDE_ARK_CONSTANTS_HPP_IN -#include - // clang-format off constexpr int ARK_VERSION_MAJOR = @ARK_VERSION_MAJOR@; constexpr int ARK_VERSION_MINOR = @ARK_VERSION_MINOR@; diff --git a/include/Ark/Exceptions.hpp b/include/Ark/Exceptions.hpp index 5b8ac89c5..d3febda51 100644 --- a/include/Ark/Exceptions.hpp +++ b/include/Ark/Exceptions.hpp @@ -11,13 +11,6 @@ #ifndef INCLUDE_ARK_EXCEPTIONS_HPP #define INCLUDE_ARK_EXCEPTIONS_HPP -#include -#include -#include -#include -#include -#include - #include #include diff --git a/include/Ark/Files.hpp b/include/Ark/Files.hpp index 4c1f1c6a6..a1fde6145 100644 --- a/include/Ark/Files.hpp +++ b/include/Ark/Files.hpp @@ -11,11 +11,6 @@ #ifndef INCLUDE_ARK_FILES_HPP #define INCLUDE_ARK_FILES_HPP -#include -#include -#include -#include - namespace Ark::Utils { /** diff --git a/include/Ark/Logger.hpp b/include/Ark/Logger.hpp index 36a7c76b1..c6f718a0c 100644 --- a/include/Ark/Logger.hpp +++ b/include/Ark/Logger.hpp @@ -9,13 +9,7 @@ #ifndef ARK_LOGGER_HPP #define ARK_LOGGER_HPP -#include #include - -#include -#include -#include -#include #include namespace Ark::internal diff --git a/include/Ark/TypeChecker.hpp b/include/Ark/TypeChecker.hpp index acba1442d..63a10f09b 100644 --- a/include/Ark/TypeChecker.hpp +++ b/include/Ark/TypeChecker.hpp @@ -11,11 +11,6 @@ #ifndef INCLUDE_ARK_TYPECHECKER_HPP #define INCLUDE_ARK_TYPECHECKER_HPP -#include -#include -#include -#include - #include #include diff --git a/include/Ark/Utils.hpp b/include/Ark/Utils.hpp index bdc71197e..0e6052283 100644 --- a/include/Ark/Utils.hpp +++ b/include/Ark/Utils.hpp @@ -13,12 +13,6 @@ #include -#include -#include -#include - -#include - namespace Ark::Utils { /** diff --git a/include/Ark/VM/ErrorKind.hpp b/include/Ark/VM/ErrorKind.hpp index d63b52363..878cfebc7 100644 --- a/include/Ark/VM/ErrorKind.hpp +++ b/include/Ark/VM/ErrorKind.hpp @@ -1,9 +1,6 @@ #ifndef ARK_VM_ERRORKIND_HPP #define ARK_VM_ERRORKIND_HPP -#include -#include - namespace Ark::internal { enum class ErrorKind diff --git a/include/Ark/VM/ExecutionContext.hpp b/include/Ark/VM/ExecutionContext.hpp index 6051624b9..430035a74 100644 --- a/include/Ark/VM/ExecutionContext.hpp +++ b/include/Ark/VM/ExecutionContext.hpp @@ -11,11 +11,6 @@ #ifndef ARK_VM_EXECUTIONCONTEXT_HPP #define ARK_VM_EXECUTIONCONTEXT_HPP -#include -#include -#include -#include - #include #include #include diff --git a/include/Ark/VM/Future.hpp b/include/Ark/VM/Future.hpp index 4f349c11f..7bac714bd 100644 --- a/include/Ark/VM/Future.hpp +++ b/include/Ark/VM/Future.hpp @@ -11,9 +11,6 @@ #ifndef ARK_VM_FUTURE_HPP #define ARK_VM_FUTURE_HPP -#include -#include - #include #include diff --git a/include/Ark/VM/Plugin.hpp b/include/Ark/VM/Plugin.hpp index c80c9550a..d2d1bc416 100644 --- a/include/Ark/VM/Plugin.hpp +++ b/include/Ark/VM/Plugin.hpp @@ -21,9 +21,6 @@ # error "Can not identify the platform on which you are running, aborting" #endif -#include -#include - #include namespace Ark::internal diff --git a/include/Ark/VM/ScopeView.hpp b/include/Ark/VM/ScopeView.hpp index 5941d35e1..b6c03aabf 100644 --- a/include/Ark/VM/ScopeView.hpp +++ b/include/Ark/VM/ScopeView.hpp @@ -11,9 +11,6 @@ #ifndef ARK_VM_SCOPE_HPP #define ARK_VM_SCOPE_HPP -#include -#include - #include #include diff --git a/include/Ark/VM/State.hpp b/include/Ark/VM/State.hpp index 8f2635c3a..3d7fc7be2 100644 --- a/include/Ark/VM/State.hpp +++ b/include/Ark/VM/State.hpp @@ -11,10 +11,6 @@ #ifndef ARK_VM_STATE_HPP #define ARK_VM_STATE_HPP -#include -#include -#include -#include #include #include diff --git a/include/Ark/VM/VM.hpp b/include/Ark/VM/VM.hpp index 816fb5bab..fba84118d 100644 --- a/include/Ark/VM/VM.hpp +++ b/include/Ark/VM/VM.hpp @@ -11,14 +11,6 @@ #ifndef ARK_VM_VM_HPP #define ARK_VM_VM_HPP -#include -#include -#include -#include -#include -#include -#include -#include #include #include diff --git a/include/Ark/VM/Value.hpp b/include/Ark/VM/Value.hpp index d36d4fb4c..6d0e52d46 100644 --- a/include/Ark/VM/Value.hpp +++ b/include/Ark/VM/Value.hpp @@ -11,12 +11,6 @@ #ifndef ARK_VM_VALUE_HPP #define ARK_VM_VALUE_HPP -#include -#include -#include -#include -#include - #include #include #include diff --git a/include/Ark/VM/Value/Closure.hpp b/include/Ark/VM/Value/Closure.hpp index 93274b7be..389fa6ec6 100644 --- a/include/Ark/VM/Value/Closure.hpp +++ b/include/Ark/VM/Value/Closure.hpp @@ -11,10 +11,6 @@ #ifndef VM_VALUE_CLOSURE_HPP #define VM_VALUE_CLOSURE_HPP -#include -#include -#include - #include namespace Ark diff --git a/include/Ark/VM/Value/ClosureScope.hpp b/include/Ark/VM/Value/ClosureScope.hpp index 2d5605ffd..2b8ad03be 100644 --- a/include/Ark/VM/Value/ClosureScope.hpp +++ b/include/Ark/VM/Value/ClosureScope.hpp @@ -11,10 +11,6 @@ #ifndef ARK_VM_VALUE_CLOSURESCOPE_HPP #define ARK_VM_VALUE_CLOSURESCOPE_HPP -#include -#include -#include - #include #include diff --git a/include/Ark/VM/Value/UserType.hpp b/include/Ark/VM/Value/UserType.hpp index 9074bce06..2456ff4d1 100644 --- a/include/Ark/VM/Value/UserType.hpp +++ b/include/Ark/VM/Value/UserType.hpp @@ -11,9 +11,6 @@ #ifndef VM_VALUE_USERTYPE_HPP #define VM_VALUE_USERTYPE_HPP -#include -#include - #include namespace Ark diff --git a/include/CLI/Formatter.hpp b/include/CLI/Formatter.hpp index e51232785..dfe9da2d8 100644 --- a/include/CLI/Formatter.hpp +++ b/include/CLI/Formatter.hpp @@ -1,8 +1,6 @@ #ifndef ARK_FORMATTER_HPP #define ARK_FORMATTER_HPP -#include - #include constexpr struct FormatterConfig diff --git a/include/CLI/JsonCompiler.hpp b/include/CLI/JsonCompiler.hpp index bbbe7f4a8..9ca71053c 100644 --- a/include/CLI/JsonCompiler.hpp +++ b/include/CLI/JsonCompiler.hpp @@ -1,10 +1,6 @@ #ifndef CLI_JSONCOMPILER_HPP #define CLI_JSONCOMPILER_HPP -#include -#include -#include - #include #include diff --git a/include/CLI/REPL/Repl.hpp b/include/CLI/REPL/Repl.hpp index da578bef7..05a55f01d 100644 --- a/include/CLI/REPL/Repl.hpp +++ b/include/CLI/REPL/Repl.hpp @@ -11,9 +11,6 @@ #ifndef ARK_REPL_REPL_HPP #define ARK_REPL_REPL_HPP -#include -#include - #include #include diff --git a/include/CLI/REPL/Utils.hpp b/include/CLI/REPL/Utils.hpp index 75ba24e43..b203afa96 100644 --- a/include/CLI/REPL/Utils.hpp +++ b/include/CLI/REPL/Utils.hpp @@ -11,9 +11,6 @@ #ifndef REPL_REPLXX_UTIL_HPP #define REPL_REPLXX_UTIL_HPP -#include -#include - #include namespace Ark::internal diff --git a/include/utf8.hpp b/include/utf8.hpp index 2bb983b42..6b613f248 100644 --- a/include/utf8.hpp +++ b/include/utf8.hpp @@ -1,9 +1,6 @@ #ifndef UTF8_DECODER_H #define UTF8_DECODER_H -#include -#include - namespace utf8 { enum class Utf8Type diff --git a/pch/pch.hpp b/pch/pch.hpp new file mode 100644 index 000000000..493484dae --- /dev/null +++ b/pch/pch.hpp @@ -0,0 +1,41 @@ +#ifndef PCH_HPP +#define PCH_HPP + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#endif // PCH_HPP