11#ifndef INCLUDE_ARK_CONSTANTS_HPP_IN
12#define INCLUDE_ARK_CONSTANTS_HPP_IN
25#define ARK_COMPILER "AppleClang"
26#define ARK_BUILD_DATE "2026-01-02T18:07:37Z"
27#define ARK_CACHE_DIRNAME "__arkscript__"
28#define ARK_NO_NAME_FILE "FILE"
30#if defined(_WIN32) || defined(_WIN64)
31# define ARK_PLATFORM_NAME "Windows"
32#elif defined(__APPLE__) || defined(__MACH__)
33# define ARK_PLATFORM_NAME "Mac OSX"
34#elif defined(__linux__)
35# define ARK_PLATFORM_NAME "Linux"
36#elif defined(__FreeBSD__)
37# define ARK_PLATFORM_NAME "FreeBSD"
38#elif defined(__unix) || defined(__unix__)
39# define ARK_PLATFORM_NAME "Unix"
41# define ARK_PLATFORM_NAME "Other"
constexpr std::string_view ARK_VERSION
constexpr int ARK_VERSION_MAJOR
constexpr int ARK_VERSION_PATCH
constexpr std::string_view ARK_FULL_VERSION
constexpr int ARK_VERSION_MINOR
constexpr uint16_t DefaultFeatures
constexpr uint16_t FeatureImportSolver
constexpr std::size_t VMStackSize
constexpr uint16_t FeatureIROptimizer
constexpr uint16_t MaxValue16Bits
constexpr std::size_t MaxNestedNodes
Maximum number of nodes that can be nested while parsing code.
constexpr uint16_t FeatureMacroProcessor
constexpr std::size_t MaxMacroProcessingDepth
Controls the number of recursive calls to MacroProcessor::processNode.
constexpr std::size_t ScopeStackSize
constexpr uint16_t FeatureTestFailOnException
This feature should only be used in tests, to disable diagnostics generation and enable exceptions to...
constexpr std::size_t MaxMacroUnificationDepth
Controls the number of recursive calls to MacroProcessor::unify.
constexpr std::size_t VMOverflowBufferSize
Additional number of elements the stack can tolerate.
constexpr std::size_t VMStackSizeWithOverflowBuffer
Exceeding VMStackSize, even if we are below VMStackSizeWithOverflowBuffer, means we stack overflowed.
constexpr uint16_t FeatureASTOptimizer
This is disabled so that embedding ArkScript does not prune nodes from the AST ; it is active in the ...
constexpr uint16_t FeatureDumpIR
constexpr uint16_t FeatureNameResolver