ArkScript is a small, fast, functional and scripting language for C++ projects
$repr
macro to get a string representation of a given nodearkscript -f|--format
(= closure1 closure2)
will work only if they have the same fields (name) and if the values match($ name value)
/ ($ name (args args args) body)
/ ($if cond then else)
(import package.sub.file)
arkscript --version
and arkscript --help
now output ArkScript version with the commit hashNodeType::Closure
Utils::digPlaces
and Utils::decPlaces
got removed as they were no longer neededlist:removeAt
, ark
executable now replaced by arkscript
)$repr
macro to get a string representation of a given node(= closure1 closure2)
will work only if they have the same fields (name) and if the values match($ name value)
/ ($ name (args args args) body)
/ ($if cond then else)
(import package.sub.file)
NodeType::Closure
Utils::digPlaces
and Utils::decPlaces
got removed as they were no longer neededlist:removeAt
, ark
executable now replaced by arkscript
)(= closure1 closure2)
will work only if they have the same fields (name) and if the values matchNodeType::Closure
Utils::digPlaces
and Utils::decPlaces
got removed as they were no longer neededlist:removeAt
, ark
executable now replaced by arkscript
)(= closure1 closure2)
will work only if they have the same fields (name) and if the values matchNodeType::Closure
Utils::digPlaces
and Utils::decPlaces
got removed as they were no longer neededlist:removeAt
, ark
executable now replaced by arkscript
)async
and await
builtins
--ast
to generate JSON from the generated abstract syntax treeClosure<1432>
Value VM::resolve(const Value* val, Args&&... args)
std::ostream& operator<<
of the Value, now using the .toString(stream, vm reference)
POP
, removing the last value from the stackArk::State
instead of a raw non-owning pointerARK_PROFILER_MIPS
to toggle instruction per second calculationBetterTypeError
BetterTypeError
has been removed in favor of a type checker using templates and an error generatorVM(State*)
in favor of VM(State&)
page_ptr(int)
in the compiler to replace &page(int)
_u8
and _u16
doc_formatting.first_column
instead of doc_formatting.start_column
when displaying the CLI helpArk/Config.hpp
to Ark/Platform.hpp
using Inst_t = uint8_t
in the compilerArk/Compiler/AST/
Ark/Compiler/Macros/
CValue
to ValTableElem
Compiler/AST
;
ARK_SCOPE_DICHOTOMY
flag so that scopes don't use dichotomic search but a linear one, since it proved to be faster on small sets of values. This goes toward prioritizing small functions, and code being cut in multiple smaller scopesdownload-arkscript.sh
from the repoisFraction
, isInteger
, isFloat
from Ark/Utils.hpp (worked on strings and used regex)Ark::FeatureFunctionArityCheck
was removed, making arity checks mandatory!{if true { !{a 1} !{b 2} }}
is finally workingark
command is now marked as deprecated, in favor of arkscript