Changes for version 0.990142 - 2026-03-09

  • New Features and Future Incompatible Changes
    • Added SPVM_NATIVE_ALLOCATOR, SPVM_NATIVE_STRING_BUFFER, SPVM_NATIVE_COMPILER, SPVM_NATIVE_CLASS_FILE, SPVM_NATIVE_RUNTIME, SPVM_NATIVE_BASIC_TYPE, SPVM_NATIVE_CLASS_VAR, SPVM_NATIVE_FIELD, SPVM_NATIVE_METHOD, SPVM_NATIVE_ARG, and SPVM_NATIVE_MUTEX types to spvm_native.h.
    • #ifdef SPVM_NATIVE_TYPE_STRICT struct spvm_native_allocator; typedef struct spvm_native_allocator SPVM_NATIVE_ALLOCATOR;
      • struct spvm_native_string_buffer; typedef struct spvm_native_string_buffer SPVM_NATIVE_STRING_BUFFER;
      • struct spvm_native_compiler; typedef struct spvm_native_compiler SPVM_NATIVE_COMPILER;
      • struct spvm_native_class_file; typedef struct spvm_native_class_file SPVM_NATIVE_CLASS_FILE;
      • struct spvm_native_runtime; typedef struct spvm_native_runtime SPVM_NATIVE_RUNTIME;
      • struct spvm_native_basic_type; typedef struct spvm_native_basic_type SPVM_NATIVE_BASIC_TYPE;
      • struct spvm_native_class_var; typedef struct spvm_native_class_var SPVM_NATIVE_CLASS_VAR;
      • struct spvm_native_field; typedef struct spvm_native_field SPVM_NATIVE_FIELD;
      • struct spvm_native_method; typedef struct spvm_native_method SPVM_NATIVE_METHOD;
      • struct spvm_native_arg; typedef struct spvm_native_arg SPVM_NATIVE_ARG;
      • struct spvm_native_mutex; typedef struct spvm_native_mutex SPVM_NATIVE_MUTEX;
      • struct spvm_native_opcode; typedef struct spvm_native_opcode SPVM_NATIVE_OPCODE;
      • struct spvm_obj; typedef struct spvm_obj SPVM_OBJ;
      • struct spvm_ref; typedef struct spvm_ref SPVM_REF;
    • #else #define SPVM_NATIVE_ALLOCATOR void #define SPVM_NATIVE_STRING_BUFFER void #define SPVM_NATIVE_COMPILER void #define SPVM_NATIVE_CLASS_FILE void #define SPVM_NATIVE_RUNTIME void #define SPVM_NATIVE_BASIC_TYPE void #define SPVM_NATIVE_CLASS_VAR void #define SPVM_NATIVE_FIELD void #define SPVM_NATIVE_METHOD void #define SPVM_NATIVE_ARG void #define SPVM_NATIVE_MUTEX void #define SPVM_NATIVE_OPCODE void #define SPVM_OBJ void #define SPVM_REF void #endif
      • These types are currently defined as void by default for smooth migration. However, if SPVM_NATIVE_TYPE_STRICT is defined, they become strict pointer types using incomplete struct definitions for better type safety.
      • Future Plans:
      • In a future release, SPVM_NATIVE_TYPE_STRICT will be defined by default.
      • Eventually, the #ifdef switch and the void macro definitions will be removed, leaving only the strict struct-based type definitions.
    • New Features
      • Add the ref and address members to the SPVM_VALUE union with the SPVM_REF* and void* types respectively.
        • union spvm_value { int8_t bval; int16_t sval; int32_t ival; int64_t lval; float fval; double dval; SPVM_OBJ* oval; SPVM_REF* ref; void* address; int8_t* bref; int16_t* sref; int32_t* iref; int64_t* lref; float* fref; double* dref;
        • };

Documentation

Executing SPVM programs
Generating Excutable File
Class Dependencies Analyzer
Generating SPVM Distribution
A tool to list non-core CPAN dependencies recursively.

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
Utility for Analyzing Class Dependencies
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
Script Information
Builder Utilities
Builder Utility APIs
A byte Value as An Object
Dynamic byte Arrays
Callback interface
A Callback Interface for grep Method
A Callback Interface for grep_byte Method
A Callback Interface for grep_double Method
A Callback Interface for grep_float Method
A Callback Interface for grep_int Method
A Callback Interface for grep_long Method
A Callback Interface for grep_short Method
A Callback for The map Method
A Callback for The map_expand Method
Information about a Caller
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
Countable Interface
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
Field Not Specified Errors
Method Call Not Permitted Error
Not Supported Error
System Error
Invalid UTF8 Errors
SPVM Exchange API
A float value as An Object
Dynamic float Arrays
SPVM Starndard Functions
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
List with O(1) deque
SPVM information
Executing Callback at End of Scope
A short Value as An Object
Dynamic short Arrays
Sorting Functions
String Buffers
Dynamic string array
Stringable Interface
Interface Type for Stringing Callback

Provides

in lib/SPVM/Builder/Config/Exe/MSVC.pm
in lib/SPVM/Builder/SPVMArchive.pm
in lib/SPVM/Dist.pm

Examples