Changes for version 0.989064 - 2023-12-20

  • Exception Message Fix and Improvement
    • Fix and improve the exception messages in the get_(byte|short|int|long|float|double|string) methods in the Hash class.
  • New Features
    • Add the following method to the Hash class.
      • get_or_default_byte get_or_default_short get_or_default_int get_or_default_long get_or_default_float get_or_default_double get_or_default_string get_or_default
    • Add the following method to the Native class.
      • get_current_runtime get_current_compiler
    • The is_type operator can receive non-object types.
    • Add the repeat_string method to the Array class.
  • Document Improvement
    • Improve the doc of the Cloneable interface.
  • Changes
    • Add "Details", "Interfaces", "Enumerations" sections to the doc generated by the spvmdist command.
    • "of L<SPVM>" in the doc generated by the spvmdist command is changed to "in L<SPVM">.
    • Change the beheivior of the isa operator. If the right type is object[], a compilation time type check is performed.
    • The default buffer length of the strerror_string, strerror, strerror_string_nolen, strerror_nolen native APIs becomes 128.
    • errno is set to an appropriate value if the strerror_string, strerror, strerror_string_nolen, strerror_nolen native APIs failed.
    • The strerror_string, strerror, strerror_string_nolen, strerror_nolen native APIs does not return NULL.
  • Bug Fix
    • Fix the bug that '+' in 1234+ is parsed as the part of numeric literal.
    • Fix the bug of types of optional arguments.
    • Fix the bug that deep recursion cause a segfault.
  • Incompatible Changes
    • Remove the deprecated new_memory_stack native API.
    • Remove the deprecated free_memory_stack native API.
    • The % operator returns modulo instead of C remainder. This is the same as the Perl's % beheivor. int32_t ret = in1 % in2; if ((in1 < 0) != (in2 < 0) && ret) { ret += in2; }
    • The remui operator is renamed to the mod_uint operator.
    • The remul operator is renamed to the mod_ulong operator.
    • The depth of the recursive calls becomes from 10000 to 1000.
  • Language Specification Changes
    • The % operator is called the modulo operator.

Documentation

Generating Excutable File
Generating SPVM Distribution

Modules

SPVM Language
Address
Array Utilities
SPVM object
Bool object
Build Dynamic Libraries for SPVM Distribution
Defining Public Functions of SPVM::Builder
Compilation and Link of Native Class
Compilation Information
SPVM Builder Compiler
Configurations of creating excutable files.
SPVM Builder Environment
Creating Executable File
Library Information
Link Information
Object File Information
SPVM Builder Runtime
SPVM Builder Stack
Builder Utilities
Defining Public Functions of SPVM::Builder::Util
The byte Object
Dynamic byte Array
Callback interface
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
double Complex Type
float Complex Type
SPVM Exchange API
SPVM Language Specification
SPVM Language Specification
SPVM Standard Modules
Allocator Native APIs
Basic Type Native APIs
Class File Native APIs
Class Variable Native APIs
Class File Native APIs
String Buffer Native APIs
Document of Native Class
How to write the resource class
The double Object
Dynamic double Array
Renamed
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
Compilation Errors
Not Supported Error
System Error
Invalid UTF8 Errors
SPVM Exchange API
The float Object
Dynamic float Array
SPVM Starndard Functions
Format Utilities
SPVM Global Instance for Perl Interpreter
Hash (Associative Array)
Hash entry
Immutable byte Array
Immutable double Array
Immutable float Array
Immutable int Array
Immutable long Array
Immutable short Array
Immutable string array
The int Object
Dynamic int Array
Dynamic Object Array
The long Object
Dynamic long Array
Getting the current native environment, stack, runtime, compiler.
Information of Arguments
Information of Basic Types
Information of Class Files
Information of Class Variables
Native::Compiler
Execution Native::Environment
Information of Fields
Information of Methods
Native::Runtime
Call Native::Stack
Point
Point 3D
Renamed
Executing Callback at End of Scope
The short Class
Dynamic short Array
Sorting Functions
Renamed
String Buffer
Dynamic string array
A Interface Type to Stringify a Object
Interface Type for Stringing Callback

Provides

in lib/SPVM/Dist.pm

Examples