The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

Changes for version 0.9630 - 2022-07-30

  • Bug Fix
    • Fix the bug that SPVM::new_object_array can't receive non-class object.
    • Fix the bug that Fn->sprintf %.3s work well.
  • New Features
    • Add GET_CODE_POINT_ERROR_OVER_STRING_RANGE, GET_CODE_POINT_ERROR_INVALID_UTF8 to Fn class.
    • Add Fn->split_limit.
    • Error::System class becomes a default loaded module.
    • The class id of Error::System become always 2.
    • Add the constant values of the native API SPVM_NATIVE_C_BASIC_TYPE_ID_ERROR_SYSTEM_CLASS SPVM_NATIVE_C_CLASS_ID_ERROR_SYSTEM
    • Add SPVM::new_any_object_array function.
  • Performance fix
    • Fn->join use StringBuffer internally.
    • Improve substr performance.
  • Changes
    • Fn->index, Fn->index_len, Fn->rindex, Fn->rindex_len throw an exception when the arguments are invalid.
    • If the element of the strings of the argument of Fn->join is undef, "" is joined.
    • Fn->ord throws exceptions when the input is undefined or the length is less than 0.
    • Fn->pow, Fn->powi throws exceptions when the arguments are invalid.
    • Fn->join throws exceptions when the arguments are invalid.
    • Improve Fn->substr exception messages.
    • Fn->repeat allows 0 count.
    • Fn->index_len, Fn->contains, Fn->index can check empty string.
    • Improve Fn->to_int_with_base exception message.
    • Improve Fn->to_long_with_base exception message.
    • Fn->contains become the alias for the following code my $ret = Fn->index($string, $substring, 0) >= 0;
    • Excnahge API shows the stack trace when exceptions are thrown
  • Deprecation
    • Fn->trim_ascii_space is renamed to Fn->trim. Fn->trim_ascii_space is deprecated.
    • Fn->get_next_code_point is renamed to Fn->get_code_point. Fn->get_next_code_point is deprecated.
    • Fn->look_next_code_point is renamed to Fn->look_code_point. Fn->look_next_code_point is deprecated.
    • Add Fn->RAND_MAX doc.
  • Document
    • Improve Array class doc.
  • Document Fix
    • Fix Fn->chr doc.
    • Fix Fn->contains doc.
    • Add Fn->is_array doc.
    • Fix the doc that the range of Array->memcpy_(byte|short|int|long|flaot|double|object_address|string_address) is wrong.
    • Fix the doc that the range of Array->copy_range_(byte|short|int|long|flaot|double) is wrong.
    • Fix the doc that the range of Array->memset_(byte|short|int|long|flaot|double|object|string) is wrong.
    • Remove Fn->srpintf doc. This remained wrongly.
    • Remove %U specifier doc. This ramained wrongly.
  • Incompatible Changes
    • Fn->index_len throw exception. The offset + the length specified by the argument must be less than or equal to the length of the string
    • Fn->ord become the following alias
      • my $offset = 0; my $code_point = Fn->get_code_point($string, \$offset);
    • Fn->shorten throw exceptions The string must be defined The length must be greater than or equal to 0
    • Fn->trim throw exceptions The string must be defined
    • Fn->chomp throws exceptions
    • Fn->chompr throws exceptions
    • Sort->sort_(byte|short|int|long|float|double|string|object) throw exceptions The comparator must be defined
  • Bug Fix
    • Fix the bug that Fn->rindex_len, Fn->rindex don't work well.
    • Fix the bug Arrya->memmove_string_address calls Arrya->memmove_object. The correct code call Arrya->memmove_object_address.

Documentation

SPVM compiler to create exe file
Generating SPVM Distribution

Modules

SPVM Language
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 object
Dynamic byte Array
A Interface Type to Clone a Object
Interface Type for the Callback to Clone a Object
Command Line Information
Interface Type for Object Comparation Callback
Interface Type for byte 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 short Comparation Callback
Interface Type for String Comparation Callback
double Complex Type
float Complex Type
$class_name is a SPVM module
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
How to write the native module
How to write the resource module
SPVM Performance Tutorial
Double object
Dynamic double Array
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
System Error
SPVM Exchange API
Float object
Dynamic float Array
SPVM Starndard Functions
Format Utilities
Hash Data Structure
Hash entry
Int object
Dynamic int Array
Dynamic Object Array
Long object
Dynamic long Array
Point
Point 3D
Short object
Dynamic short Array
Sorting Functions
String Buffer
Dynamic string array
A Interface Type to Stringify a Object
Interface Type for Stringing Callback
Time Manipulation
Time information

Examples