Changes for version 0.9659 - 2022-10-28

  • Test Improvement
    • Added the tests of opcodes.
  • Internal Changes without Effects
    • Renamed SPVM_OPCODE_C_ID_INIT_UNDEF to SPVM_OPCODE_C_ID_INIT_OBJECT
    • Removed SPVM_OPCODE_C_ID_MOVE_UNDEF because it is the same as SPVM_OPCODE_C_ID_INIT_OBJECT.
    • Renamed SPVM_OPCODE_C_ID_TYPE_CONVERSION_CONDITIONAL_xxx to SPVM_OPCODE_C_ID_BOOL_CONVERSION_xxx.
    • Renamed SPVM_OPCODE_C_ID_NEW_MULTI_ARRAY to SPVM_OPCODE_C_ID_NEW_MULDIM_ARRAY.
  • Changes
    • The reference type can be used in the == and != operator.
    • The reference type can be used in bool conversion such as "if ($ref) { }"
  • Incompatible Changes
    • In Windows the stdout, stderr, stdin of the executable file that is generated by spvmcc command becomes binary mode. The following codes are added to the main function of the executable file. #ifdef _WIN32 _setmode(stdout, _O_BINARY); _setmode(stderr, _O_BINARY); _setmode(stdin, _O_BINARY); #endif
      • The document is added to SPVM::Document::Language.
      • =head1 Standard IO
      • C<stdin>, C<stdout>, C<stderr> in C<C language> is set to the binary mode on all systems.
      • This means the escape character of the string literal C<"\n"> is not coverted to C<"\r\n"> when it is got from C<stdin> and it is printed to C<stdout> and C<stderr>.
      • C<stdin>, C<stdout>, C<stderr> can be changed to the text mode using the L<native module|SPVM::Document::NativeModule>, but don't do that.

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 Class
Dynamic byte Array
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 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 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 Class
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
Not Supported Error
System Error
SPVM Exchange API
Float Class
Dynamic float Array
SPVM Starndard Functions
Format Utilities
Hash Data Structure
Hash entry
Int Class
Dynamic int Array
Dynamic Object Array
Long Class
Dynamic long Array
Point
Point Interface
Point 3D
Executing Handler at End of Scope
Handler of Scope::Guard
Short Class
Dynamic short Array
Sorting Functions
String Buffer
Dynamic string array
A Interface Type to Stringify a Object
Interface Type for Stringing Callback
Time Manipulation
struct tm in C language

Examples