diff --git a/CHANGELOG.md b/CHANGELOG.md index ec18773b..b5cc2036 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -101,6 +101,7 @@ - `list:setAt` can work with negative indexes, and is now bound checked - re-enabled the AST optimizer, only used for the main `arkscript` executable (not enabled when embedding arkscript, so that one can grab variables from the VM) - loops have their own scope: variables created inside a loop won't leak outside it +- upgraded fmtlib to 11.1.3-13 ### Removed - removed unused `NodeType::Closure` diff --git a/CMakeLists.txt b/CMakeLists.txt index cfed6a6c..ab7d3954 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -76,6 +76,8 @@ if (CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_CLANG OR APPLE) -fvisibility=hidden -fno-semantic-interposition ) + # set fmtlib visibility to default + target_compile_definitions(ArkReactor PUBLIC FMT_SHARED) if (APPLE) # The standard SSH libraries are depreciate on APPLE. @@ -114,7 +116,8 @@ elseif (MSVC) /wd4267 # disable warning about data loss (size_t -> int) /wd4244 # disable warning about data loss (size_t -> char) /wd4505 # disable warning about unused static function was deleted - /wd4068) # disable warnings about unknown pragmas. + /wd4068 # disable warnings about unknown pragmas. + /utf-8) set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /STACK:8000000") # set stack size to 8MB endif () diff --git a/include/Ark/Compiler/AST/Optimizer.hpp b/include/Ark/Compiler/AST/Optimizer.hpp index 16e4bccc..f702646d 100644 --- a/include/Ark/Compiler/AST/Optimizer.hpp +++ b/include/Ark/Compiler/AST/Optimizer.hpp @@ -16,6 +16,7 @@ #include #include +#include #include #include @@ -25,7 +26,7 @@ namespace Ark::internal * @brief The ArkScript AST optimizer * */ - class Optimizer final : public Pass + class ARK_API Optimizer final : public Pass { public: /** diff --git a/include/Ark/Compiler/Macros/Processor.hpp b/include/Ark/Compiler/Macros/Processor.hpp index 1c1daf0a..8759bd12 100644 --- a/include/Ark/Compiler/Macros/Processor.hpp +++ b/include/Ark/Compiler/Macros/Processor.hpp @@ -12,6 +12,7 @@ #ifndef COMPILER_MACROS_PROCESSOR_HPP #define COMPILER_MACROS_PROCESSOR_HPP +#include #include #include #include @@ -28,7 +29,7 @@ namespace Ark::internal * @brief The class handling the macros definitions and calls, given an AST * */ - class MacroProcessor final : public Pass + class ARK_API MacroProcessor final : public Pass { public: /** diff --git a/include/Ark/Compiler/NameResolution/NameResolutionPass.hpp b/include/Ark/Compiler/NameResolution/NameResolutionPass.hpp index fbf4686c..ba1b0b70 100644 --- a/include/Ark/Compiler/NameResolution/NameResolutionPass.hpp +++ b/include/Ark/Compiler/NameResolution/NameResolutionPass.hpp @@ -16,12 +16,13 @@ #include #include +#include #include #include namespace Ark::internal { - class NameResolutionPass final : public Pass + class ARK_API NameResolutionPass final : public Pass { public: /** diff --git a/include/Ark/Compiler/NameResolution/StaticScope.hpp b/include/Ark/Compiler/NameResolution/StaticScope.hpp index 35f37c44..8874a8e9 100644 --- a/include/Ark/Compiler/NameResolution/StaticScope.hpp +++ b/include/Ark/Compiler/NameResolution/StaticScope.hpp @@ -49,6 +49,13 @@ namespace Ark::internal public: virtual ~StaticScope() = default; + StaticScope() = default; + + StaticScope(const StaticScope&) = delete; + StaticScope& operator=(const StaticScope&) = delete; + StaticScope(StaticScope&&) = default; + StaticScope& operator=(StaticScope&&) = default; + /** * @brief Add a Declaration to the scope, given a mutability status * @param name @@ -95,6 +102,11 @@ namespace Ark::internal public: NamespaceScope(std::string name, bool with_prefix, bool is_glob, const std::vector& symbols); + NamespaceScope(const NamespaceScope&) = delete; + NamespaceScope& operator=(const NamespaceScope&) = delete; + NamespaceScope(NamespaceScope&&) = default; + NamespaceScope& operator=(NamespaceScope&&) = default; + /** * @brief Add a Declaration to the scope, given a mutability status * @param name diff --git a/include/Ark/Compiler/Package/ImportSolver.hpp b/include/Ark/Compiler/Package/ImportSolver.hpp index 5f301cdc..cc5c5b88 100644 --- a/include/Ark/Compiler/Package/ImportSolver.hpp +++ b/include/Ark/Compiler/Package/ImportSolver.hpp @@ -18,6 +18,7 @@ #include #include +#include #include #include #include @@ -25,7 +26,7 @@ namespace Ark::internal { - class ImportSolver final : public Pass + class ARK_API ImportSolver final : public Pass { public: /** diff --git a/include/Ark/Compiler/Pass.hpp b/include/Ark/Compiler/Pass.hpp index 6e364c67..8da3ca28 100644 --- a/include/Ark/Compiler/Pass.hpp +++ b/include/Ark/Compiler/Pass.hpp @@ -11,6 +11,7 @@ #ifndef ARK_COMPILER_PASS_HPP #define ARK_COMPILER_PASS_HPP +#include #include #include @@ -19,7 +20,7 @@ namespace Ark::internal /** * @brief An interface to describe compiler passes */ - class Pass + class ARK_API Pass { public: /** diff --git a/lib/fmt b/lib/fmt index c13753a7..7f769552 160000 --- a/lib/fmt +++ b/lib/fmt @@ -1 +1 @@ -Subproject commit c13753a70cc55f3b1c99fb8f8395e78e5f9cae43 +Subproject commit 7f7695524a4bc3c9b7883afcc86ba61421989b7f