Changes for version 0.990025 - 2023-10-25

  • Test Improvement
    • Add tests for NaN comparison and NaN condition evaluation.
  • New Features
    • Add as_bool operator.
    • Add is_numeric_type type native API.
    • Add is_class_type type native API.
  • Internal Changes
    • SPVM_OP_C_ID_BOOL is renamed to SPVM_OP_C_ID_CONDITION_EVALUATION.
  • Exception Message Improvement
    • Improve exception messages in Hash class.
  • Changes
    • Hash#get_int method can get a value from Byte, Short, Int object.
    • Hash#get_short method can get a value from Byte, Short object.
    • Hash#get_long method can get a value from Byte, Short, Int, Long object.
  • Bug Fix
    • Fix a bug that get_type_width type native API did not work well when the argument type is a multi-numeric reference type.
  • Changes
    • Improve the type check of the invocant in get_field_byte_by_name native API. The invocant must be a class type.
    • Improve the type check of the invocant in get_field_short_by_name native API. The invocant must be a class type.
    • Improve the type check of the invocant in get_field_int_by_name native API. The invocant must be a class type.
    • Improve the type check of the invocant in get_field_long_by_name native API. The invocant must be a class type.
    • Improve the type check of the invocant in get_field_double_by_name native API. The invocant must be a class type.
    • Improve the type check of the invocant in get_field_object_by_name native API. The invocant must be a class type.
    • Improve the type check of the invocant in set_field_byte_by_name native API. The invocant must be a class type.
    • Improve the type check of the invocant in set_field_short_by_name native API. The invocant must be a class type.
    • Improve the type check of the invocant in set_field_int_by_name native API. The invocant must be a class type.
    • Improve the type check of the invocant in set_field_long_by_name native API. The invocant must be a class type.
    • Improve the type check of the invocant in set_field_float_by_name native API. The invocant must be a class type.
    • Improve the type check of the invocant in set_field_double_by_name native API. The invocant must be a class type.
    • Improve the type check of the invocant in set_field_object_by_name native API. The invocant must be a class type.
  • Changes with Potentially Incompatible Change
    • Improve the type check of the field in get_field_byte_by_name native API. The field must be byte type.
    • Improve the type check of the field in get_field_short_by_name native API. The field must be within short type.
    • Improve the type check of the field in get_field_int_by_name native API. The field must be within int type.
    • Improve the type check of the field in get_field_long_by_name native API. The field must be within long type.
    • Improve the type check of the field in get_field_float_by_name native API. The field must be within float type.
    • Improve the type check of the field in get_field_double_by_name native API. The field must be within double type.
    • Improve the type check of the field in get_field_object_by_name native API. The field must be an object type.
    • Improve the type check of the field in get_field_object_ref_by_name native API. The field must be an object type.
    • Improve the type check of the field in set_field_byte_by_name native API. The field must be byte or large type.
    • Improve the type check of the field in set_field_short_by_name native API. The field must be short or large type.
    • Improve the type check of the field in set_field_int_by_name native API. The field must be int or large type.
    • Improve the type check of the field in set_field_long_by_name native API. The field must be long or large type.
    • Improve the type check of the field in set_field_float_by_name native API. The field must be float or large type.
    • Improve the type check of the field in set_field_double_by_name native API. The field must be double or large type.
    • Improve the type check of the field in set_field_object_by_name native API. The field must be an object type.
    • Improve the type check of the class_var in get_class_var_byte_by_name native API. The class variable must be byte type.
    • Improve the type check of the class_var in get_class_var_short_by_name native API. The class variable must be within short type.
    • Improve the type check of the class_var in get_class_var_int_by_name native API. The class variable must be within int type.
    • Improve the type check of the class_var in get_class_var_long_by_name native API. The class variable must be within long type.
    • Improve the type check of the class_var in get_class_var_float_by_name native API. The class variable must be within float type.
    • Improve the type check of the class_var in get_class_var_double_by_name native API. The class variable must be within double type.
    • Improve the type check of the class_var in get_class_var_double_by_name native API. The class variable must be an object type.
    • Improve the type check of the class_var in set_class_var_byte_by_name native API. The class variable must be byte or larger type.
    • Improve the type check of the class_var in set_class_var_short_by_name native API. The class variable must be short or larger type.
    • Improve the type check of the class_var in set_class_var_int_by_name native API. The class variable must be int or larger type.
    • Improve the type check of the class_var in set_class_var_long_by_name native API. The class variable must be long or larger type.
    • Improve the type check of the class_var in set_class_var_float_by_name native API. The class variable must be float or larger type.
    • Improve the type check of the class_var in set_class_var_double_by_name native API. The class variable must be double type.
    • Improve the type check of the class_var in set_class_var_double_by_name native API. The class variable must be an object type.

Documentation

Executing SPVM programs
Generating Excutable File
Generating SPVM Distribution

Modules

The SPVM Language
Address
Array Utilities
SPVM object
A Boolean value as An Object
Build Dynamic Libraries for SPVM Distribution
Builder APIs
Compilation and Link of Native Class
Compiler Information
Config for Compiling and Linking Native Classes
Excutable File Config
Config Information
Creating Executable File
Library Information for A Linker
Linker Information
Basic Type Native APIs
Class File Native APIs
Compiler Native APIs
Runtime Environment
Method Native APIs
Object File Information
Builder Utilities
Builder Utility APIs
A byte Value as An Object
Dynamic byte Arrays
Callback interface
A Callback for The grep Method
A Callback for The map Method
A Callback for The map_expand Method
Interface Type to Clone Object
Interface Type for the Callback to Clone a Object
Command Line Information
Comparable Interface
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 Documents
Environment Variables
SPVM Language Specification
Classes in the SPVM Language
Exception Handling in the SPVM Language
Garbage Collection in the SPVM Language
Operators in the SPVM Language
Statements in the SPVM Language
Syntax Parsing in the SPVM Language
System Setting in the SPVM Language
Tokenization in the SPVM Language
Types in the SPVM Language
SPVM Standard Modules
Allocator Native APIs
Basic Type Native APIs
Class File Native APIs
Class Variable Native APIs
String Buffer Native APIs
A double value as An Object
Dynamic double Arrays
EqualityCheckable Interface
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
A float value as An Object
Dynamic float Arrays
SPVM Starndard Functions
For Only Resource Tests
Format Utilities
SPVM Global Instance
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
An int value as An Object
Dynamic int Arrays
Dynamic Object Array
A long value as An Object
Dynamic long Arrays
Getting the current native environment, stack, runtime, compiler.
Native APIs
Information of Arguments
Information of Basic Types
Information of Class Files
Information of Class Variables
Native::Compiler
Constant Values in Native APIs
Runtime Environment
Information of Fields
Information of Methods
Native::Runtime
Call Native::Stack
Pack and Unpack Operations
A Specifier for a pack/unpack Template.
Point
Point 3D
Executing Callback at End of Scope
A short Value as An Object
Dynamic short Arrays
Sorting Functions
String Buffers
Dynamic string array
A Interface Type to Stringify a Object
Interface Type for Stringing Callback

Provides

in lib/SPVM/Dist.pm

Examples