Skip to content

ArkScript v3.0.11

Compare
Choose a tag to compare
@SuperFola SuperFola released this 21 May 12:39
· 1864 commits to dev since this release

Change Log

3.0.11

Added

  • member function resolve(Args&& args...) to Value, callable by plugins to resolve the value of a function called with specific arguments given by the plugin
  • (fill qu value) create a list of qu values
  • (setListAt list at new-value) modify a list in place and return the new list value
  • adding UTF-8 support in programs (experimental)
  • more benchmarks
  • on error, the VM now display the value of each variable in the current scope
  • added thirdparty/madureira/String, to replace std::string in Ark::internal::Value which was heavy and slower than the new implementation
  • minimizing the size of the usertype

Changed

  • UserType does not need to be given a manually defined type id but relies on typeid(T)
  • performance boost of the VM by using pointers to avoid unecessary copies
  • renaming isNaN to NaN?, isInf to Inf? for uniformisation (see empty?, nil?)
  • renaming CLI feature options:
    • -ffunction-arity-check becomes -ffac, same for the -fno- version
    • -fauthorize-invalid-token-after-paren becomes -faitap, some for the -fno- version
  • improving compiler performances by using const ref when passing nodes around
  • renaming the FFI "builtins" because it's not a FFI but a set of functions using the VM API
  • the VM should display a backtrace even if an unknown error occured
  • transforming inline code from the vm into not inline code when possible to speed compilation, using macros instead of inline functions
  • smaller value class
  • smaller vm frames
  • forked madureira/String and modified it for the needs of the project, added it as a submodule
  • removed the VM pointer from the value class to make it lighter, now the VM is sending a pointer of itself to the C procedures
  • removed const and type from value, now using a uint8_t to store those informations

Removed

  • removed NFT from the internal API to rely only on the value type