Changes for version 0.9515 - 2022-05-09

  • CHANGE
    • Add cloneable_clone to Point class.
    • Point class has Cloneable interface.
    • Interface can have interface statment.
    • Interface type and callback type can be assign to interface type that has the interface.
    • Interface type and callback type can be assign to callback type that has the callback.
    • Allow type cast from interface type to callback type
    • Allow type cast from callback type to interface type
    • Improve calling method error messages.
    • The "has_impl" operator can check anon method if (has_impl $interface) {
      • }
  • BUG FIX
    • Fix the bug that has_impl can specify not found method.
    • Interface can have interface guarantees
    • Fix the bug that switch statement is wrong behaivior when the count of case statements is greater than 255.
    • Fix the bug that "has_impl" operator can't do precompile.
  • NON BACKWORD COMPATIBLE CHANGES
    • Revert 0.9514 Methods of interfaces must have the names.
    • implement statement is renamed to interface statement.
    • A interface type must have one required method.
    • A callback type must have one required method.
    • A class must have the required methods defined in the interface classes.
    • Remove callback_t. The feature of callback_t is merged into interface_t.
    • Add the following native APIs "free_env_prepared", "get_class_var_id_cache", "get_field_id_cache", "get_method_id_cache" "check_runtime_assignability_array_element", "check_runtime_assignability", "free_env_raw", "new_env_raw", "allocator", "api",
    • Remove SPVM_NATIVE_C_BASIC_TYPE_CATEGORY_CALLBACK
    • Change ID of SPVM_NATIVE_C_BASIC_TYPE_CATEGORY_ANY_OBJECT from 10 to 9
    • Remove "byte_object_basic_type_id" native API. ID 9 is reused by "api" native API.
    • Remove "short_object_basic_type_id" native API. ID 10 is reused by "allocator" native API.
    • Remove "int_object_basic_type_id" native API. ID 11 is reused by "new_env_raw" native API.
    • Remove "long_object_basic_type_id" native API. ID 12 is reused by "free_env_raw" native API.
    • Remove "float_object_basic_type_id" native API. ID 13 is reused by "check_runtime_assignability" native API.
    • Remove "double_object_basic_type_id" native API. ID 14 is reused by "check_runtime_assignability_array_element" native API.
    • Remove "has_callback" native API. ID 106 is reused Y_CALLBACK
    • Change ID of SPVM_NATIVE_C_BASIC_TYPE_CATEGORY_ANY_OBJECT from 10 to 9
    • Remove "byte_object_basic_type_id" native API. ID 9 is reused by "api" native API.
    • Remove "short_object_basic_type_id" native API. ID 10 is reused by "allocator" native API.
    • Remove "int_object_basic_type_id" native API. ID 11 is reused by "new_env_raw" native API.
    • Remove "long_object_basic_type_id" native API. ID 12 is reused by "free_env_raw" native API.
    • Remove "float_object_basic_type_id" native API. ID 13 is reused by "check_runtime_assignability" native API.
    • Remove "double_object_basic_type_id" native API. ID 14 is reused by "check_runtime_assignability_array_element" native API.
    • Remove "has_callback" native API. ID 106 is reused by "is_object_array" native API.
    • Remove "no_symbol_cache_flag" native API. ID 176 is reused by "get_method_id_cache" native API.
    • Remove "set_no_symbol_cache_flag" native API. ID 177 is reused by "get_field_id_cache" native API.
    • Remove "get_class_var_id_cache" native API. ID 178 is reused by "get_class_var_id_cache" native API.
    • "has_implemenet" operator is renamed to "has_impl".

Documentation

SPVM compiler to create exe file
The Command to Generate SPVM Native Modules

Modules

Static Perl Virtual Machine. Fast Calculation, Fast Array Operation, and Easy C/C++ Binding.
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
Configurations of Compile and Link of Native Sources
Configurations of creating excutable files.
Create a Executable File
Object file information
Object file information
Build Utilities
Public APIs of the utility of SPVM Builder
Byte object
Dynamic Byte Array
A Interface Type to Clone a Object
A Callback Type to Clone a Object
A Callback Type for Object Comparation
A Callback Type for byte Comparation
A Callback Type for double Comparation
A Callback Type for float Comparation
A Callback Type for int Comparation
A Callback Type for long Comparation
A Callback Type for short Comparation
A Callback Type for string Comparation
double complex type
float complex type
SPVM Performance Benchmark
SPVM Exchange API
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
SPVM Performance Tutorial
Double object
Dynamic double array
A Callback Type to Check the Object Equality
a callback implementation of EqualityChecker to check if the memory addresses of the two objects are equal.
SPVM Exchange API
Float object
Dynamic float array
SPVM Starndard Functions
Hash Data Structure
Hash entry
Int object
Dynamic int array
Dynamic object array
Long object
Dynamic long array
Point
Regular expression
Regular expression pattern
an interface type for the callback for the regex replacement
Short object
Dynamic short array
String buffer
Dynamic string array
A Interface Type to Stringify a Object
A Callback Yype to Stringify a Object
Time manipulation
Time information
SPVM Unicode Utilities.

Provides

in lib/SPVM/Builder/Generator/Lib.pm

Examples