Changes for version 0.989084 - 2023-03-07
- New Features
- Add -B and --build-dir to the spvm command.
- Add the --config-argv option to the spvmcc command.
- Add the --config-argv-option option to the spvmcc command.
- Incompatible Changes and New Features
- The string-to-byte type conversion is added.
- The string-to-short type conversion is added.
- The string-to-int type conversion is added.
- The string-to-long type conversion is added.
- The string-to-float type conversion is added.
- The string-to-double type conversion is added.
- Incompatible Changes
- An argument of the load_config method in the SPVM::Builder::Config class is changed.
- Before
- my $config = $config->load_config($config_file, @argv);
- After
- my $config = $config->load_config($config_file, $argv);
- Before
- An argument of the load_base_config method in the SPVM::Builder::Config class is changed.
- Before
- my $config = $config->load_base_config($config_file, @argv);
- After
- my $config = $config->load_base_config($config_file, $argv);
- Before
- An argument of the load_mode_config method in the SPVM::Builder::Config class is changed.
- Before
- my $config = $config->load_mode_config($config_file, $mode, @argv);
- After
- my $config = $config->load_mode_config($config_file, $mode, $argv);
- Before
- The spvmcc command must be given the -o, --output option.
- An argument of the load_config method in the SPVM::Builder::Config class is changed.
- Incompatible Changes and Breaking Binary Compatibility
- The length operator returns 0 if the operand is undef.
- Changes
- Chaingin --optimize option in the spvmcc command is detected.
- Internal Changes
- mode changes in the spvmcc command are detected by --mode option.
- Fix Bug
- Fix the bug that if spvmcc mode and optimize does not work in compiling native classes and precompilation classes.
- Fix the bug that the string-to-byte[] type conversion cause segfault when the operand is undef.
Documentation
Executing SPVM programs
Generating Excutable File
Generating SPVM Distribution
Modules
SPVM Language
Address
Array Utilities
SPVM object
SPVM Array
SPVM Class
SPVM string
A Boolean value as An Object
Build Dynamic Libraries for SPVM Distribution
Builder APIs
Compilation and Link of Native Class
Compiler Information
SPVM Builder Compiler
Config for Compiling and Linking Native Classes
Excutable File Config
SPVM Builder Environment
Creating Executable File
Library Information for A Linker
Linker Information
Object File Information
Resource
SPVM Builder Runtime
SPVM Builder Stack
Builder Utilities
Builder Utility APIs
A byte Value as An Object
Dynamic byte Arrays
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 Documents
Environment Variables
SPVM Language Specification
Class Definition in SPVM Language
Exception Handling in SPVM Language
Garbage Collection in SPVM Language
Operators in SPVM Language
Statements in SPVM Language
Syntax Parsing in SPVM Language
System Setting in SPVM Language
Lexical Tokenization in SPVM Language
Types in SPVM Language
SPVM Standard Modules
Native APIs
Allocator Native APIs
Argument Native APIs
Basic Type Native APIs
Class File Native APIs
Class Variable Native APIs
Compiler Native APIs
Field Native APIs
Internal Native APIs
Method Native APIs
Mutex Native APIs
Runtime Native APIs
String Buffer Native APIs
Type Native APIs
Native Classes
Resource
A double value as An Object
Dynamic double Arrays
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
Class Object
Error Code
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.
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
Method Call
Native::Runtime
Call Native::Stack
Point
Point 3D
Renamed
Executing Callback at End of Scope
A short Value as An Object
Dynamic short Arrays
Sorting Functions
Renamed
String Buffers
Dynamic string array
A Interface Type to Stringify a Object
Interface Type for Stringing Callback
Mutex
Provides
in lib/SPVM/Dist.pm
Examples
- examples/doc/tutorial/basic/lib/SPVM/MyMath.spvm
- examples/doc/tutorial/basic/sum.pl
- examples/doc/tutorial/precompile/lib/SPVM/MyMath.spvm
- examples/doc/tutorial/precompile/sum_precompile.pl
- examples/native/bind_clib/bind_clib.pl
- examples/native/bind_clib/lib/SPVM/BindCLib.c
- examples/native/bind_clib/lib/SPVM/BindCLib.config
- examples/native/bind_clib/lib/SPVM/BindCLib.native/include/bind_clib.h
- examples/native/bind_clib/lib/SPVM/BindCLib.native/src/bind_clib.c
- examples/native/bind_clib/lib/SPVM/BindCLib.spvm
- examples/native/cuda_add/cuda_add.pl
- examples/native/cuda_add/lib/SPVM/MyAdd.config
- examples/native/cuda_add/lib/SPVM/MyAdd.cu
- examples/native/cuda_add/lib/SPVM/MyAdd.native/include/cuda_array_culc.h
- examples/native/cuda_add/lib/SPVM/MyAdd.native/src/cuda_array_culc.cu
- examples/native/cuda_add/lib/SPVM/MyAdd.spvm
- examples/native/eigen/README
- examples/native/gsl/lib/SPVM/MyGSL.c
- examples/native/gsl/lib/SPVM/MyGSL.config
- examples/native/gsl/lib/SPVM/MyGSL.spvm
- examples/native/gsl/mygsl.pl
- examples/native/opencv/resize/lib/SPVM/MyOpenCVResize.config
- examples/native/opencv/resize/lib/SPVM/MyOpenCVResize.cpp
- examples/native/opencv/resize/lib/SPVM/MyOpenCVResize.spvm
- examples/native/opencv/resize/linux-pengin-output.png
- examples/native/opencv/resize/linux-pengin.png
- examples/native/opencv/resize/opencv_resize.pl
- examples/native/openmp/lib/SPVM/MyOpenMP.c
- examples/native/openmp/lib/SPVM/MyOpenMP.config
- examples/native/openmp/lib/SPVM/MyOpenMP.spvm
- examples/native/openmp/openmp.pl
- examples/native/zlib/lib/SPVM/MyZlib.c
- examples/native/zlib/lib/SPVM/MyZlib.config
- examples/native/zlib/lib/SPVM/MyZlib.spvm
- examples/native/zlib/zlib.pl
- examples/spvmcc/basic/README.txt
- examples/spvmcc/basic/SPVM/MyApp.spvm
- examples/spvmcc/basic/myapp