Changes for version 0.9696 - 2023-03-22

  • New Features
    • Added the dump method in the SPVM::ExchangeAPI class.
  • Document Fix
    • Fixed the doc. The set_exception method in the SPVM::ExchangeAPI can't receive a string.
    • Fixed the doc of the converson of the string Argument in SPVM::ExchangeAPI. Explicite using SvPV for conversion.
    • Fixed the doc of the new_any_object_array. This was new_options wrongly.
  • Exception Message Improvement
    • Improved the new_string method in the SPVM::ExchangeAPI class.
    • Improved the new_string_from_bin method in the SPVM::ExchangeAPI class.
  • Incompatible Changes
    • The new_string method in the SPVM::ExchangeAPI can receive undef.
    • The new_string_from_bin method in the SPVM::ExchangeAPI can receive undef.
    • The new_string_from_bin in the SPVM::ExchangeAPI is the same as the new_string method.
    • Removed deprecated SPVM functions. This is now used from SPVM::Exchange::API.
      • new_byte_array
      • new_byte_array_unsigne
      • new_byte_array_len
      • new_byte_array_from_bin
      • new_byte_array_from_string
      • new_short_array
      • new_short_array_unsigned
      • new_short_array_len
      • new_short_array
      • new_short_array_unsigned
      • new_short_array_len
      • new_short_array_from_bin
      • new_int_array
      • new_int_array_unsigned
      • new_int_array_len
      • new_int_array_from_bin
      • new_long_array
      • new_long_array_unsigned
      • new_long_array_len
      • new_long_array_from_bin
      • new_float_array
      • new_float_array_len
      • new_float_array_from_bin
      • new_double_array
      • new_double_array_len
      • new_double_array_from_bin
      • new_string
      • new_string_from_bin
      • new_object_array
      • new_object_array_len
      • new_any_object_array
      • new_mulnum_array
      • new_mulnum_array_from_bin
      • new_string_array
      • new_string_array_len
      • get_exception
      • set_exception
      • get_memory_blocks_count
      • call_method
      • new_address_object
    • Removed deprecated pointer_t class descriptor. This is now used as pointer descriptor.
    • Removed the new_byte_array_from_string method in the SPVM::Exchange::API.
    • Removed the new_string_from_bin method in the SPVM::Exchange::API.
    • The new_byte_array method in the SPVM::ExchangeAPI throw an exception when the element is a reference.
    • The new_byte_array_unsigned in the SPVM::ExchangeAPI throw an exception when the element is a reference.
    • The new_short_array method in the SPVM::ExchangeAPI throw an exception when the element is a reference.
    • The new_short_array_unsigned in the SPVM::ExchangeAPI throw an exception when the element is a reference.
    • The new_short_array_from_bin in the SPVM::ExchangeAPI throw an exception when the binary is not divisible by 2.
    • The new_short_array_from_bin in the SPVM::ExchangeAPI throw an exception when the array is undef.
    • The new_int_array method in the SPVM::ExchangeAPI throw an exception when the element is a reference.
    • The new_int_array_unsigned in the SPVM::ExchangeAPI throw an exception when the element is a reference.
    • The new_int_array_from_bin in the SPVM::ExchangeAPI throw an exception when the binary is not divisible by 4.
    • The new_int_array_from_bin in the SPVM::ExchangeAPI throw an exception when the array is undef.
    • The new_long_array method in the SPVM::ExchangeAPI throw an exception when the element is a reference.
    • The new_long_array_unsigned in the SPVM::ExchangeAPI throw an exception when the element is a reference.
    • The new_long_array_from_bin in the SPVM::ExchangeAPI throw an exception when the binary is not divisible by 8.
    • The new_long_array_from_bin in the SPVM::ExchangeAPI throw an exception when the array is undef.
    • The new_float_array method in the SPVM::ExchangeAPI throw an exception when the element is a reference.
    • The new_float_array_from_bin in the SPVM::ExchangeAPI throw an exception when the binary is not divisible by 4.
    • The new_float_array_from_bin in the SPVM::ExchangeAPI throw an exception when the array is undef.
    • The new_double_array method in the SPVM::ExchangeAPI throw an exception when the element is a reference.
    • The new_double_array_from_bin in the SPVM::ExchangeAPI throw an exception when the binary is not divisible by 8.
    • The new_double_array_from_bin in the SPVM::ExchangeAPI throw an exception when the array is undef.
    • The new_string_array method in the SPVM::ExchangeAPI throws an exception when the element is a reference.
  • Bug Fix
    • Fixed the bugs that exchange API call_method can't receive string number such as "8" if the type is numeric.
    • Fixed the bugs that exchange API call_method can't receive string number such as "8" if the type is numeric reference.
    • Fixed the return type of the get_anon_class_names in the Runtime class
      • Before
        • method get_anon_class_names : string ($class_name : string);
      • After
        • method get_anon_class_names : string[] ($class_name : string);
  • Changes
    • Added a warning when non-number-like value is passed to numeric argument in Excahnge API call_method.
  • Exception Message Improvement
    • Improved exception messages in SPVM::ExchangeAPI.

Documentation

SPVM compiler to create exe file
Generating SPVM Distribution

Modules

SPVM Language
Address
Array Utilities
Blessed object base class
Array based blessed object
Class based blessed object
String based blessed object
Bool object
Build SPVM program
SPVM Builder Public APIs
Compiler and Linker of Native Sources
Link Information
Configurations of Compile and Link of Native Sources
Configurations of creating excutable files.
Create a Executable File
Library Information
Link Information
Object file information
Resourceurations of Compile and Link of Native Sources
Build Utilities
Public APIs of the utility of SPVM Builder
Byte Class
Dynamic byte Array
Interface Type to Clone Object
Interface Type for the Callback to Clone a Object
Command Line Information
Interface Type for Object Comparation Callback
Interface Type for double Comparation Callback
Interface Type for float Comparation Callback
Interface Type for int Comparation Callback
Interface Type for long Comparation Callback
Interface Type for String Comparation Callback
Compiler
double Complex Type
float Complex Type
SPVM Performance Benchmark
SPVM Exchange API
SPVM Language Specification
SPVM Language Specification
SPVM Standard Modules
SPVM Native APIs
SPVM Allocator Native APIs
SPVM Compiler Native APIs
SPVM Precompile Native APIs
SPVM Runtime Native APIs
SPVM String Buffer Native APIs
How to write the native module
How to write the resource module
SPVM Performance Tutorial
Double Class
Dynamic double Array
Execution Environment
Interface Type for Object Equality Checking Callback
a callback implementation of EqualityChecker to check if the memory addresses of the two objects are equal.
Error
Not Supported Error
System Error
SPVM Exchange API
Float Class
Dynamic float Array
SPVM Starndard Functions
Format Utilities
Hash Data Structure
Hash entry
Int Class
Dynamic int Array
Dynamic Object Array
Long Class
Dynamic long Array
Point
Point 3D
Runtime
Executing Handler at End of Scope
Handler of Scope::Guard
Short Class
Dynamic short Array
Sorting Functions
Call Stack
String Buffer
Dynamic string array
A Interface Type to Stringify a Object
Interface Type for Stringing Callback
Time Manipulation
struct tm in C language

Provides

in lib/SPVM/Builder/Compiler.pm
in lib/SPVM/Builder/Env.pm
in lib/SPVM/Builder/Runtime.pm
in lib/SPVM/Builder/Stack.pm
in lib/SPVM/Builder/Compiler/Util.pm
in lib/SPVM/Dist.pm
in lib/SPVM/Global.pm

Examples