The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

Changes for version 0.990007 - 2023-09-02

  • New Features
    • Add StringBuffer#clone method.
    • Add Fn#is_any_numeric_array method.
    • Add Fn#array_length method.
    • Add Fn#get_elem_size method.
    • Add Fn#get_elem_type_name method.
    • Add Fn#print_stderr method.
    • Add Fn#say_stderr method.
  • Document Fix
    • Fix links in docs for Fn class.
    • Fix the definition of length native API.
      • Before
        • int32_t (*length)(SPVM_ENV*, void* array);
      • After
        • int32_t (*length)(SPVM_ENV* env, SPVM_VALUE* stack, void* object);
        • And improve the docs.
  • Document Changes
    • "=head1 Inheritance" is changed to "=head1 Super Class".
  • Changes
    • "=head1 Inheritance" outputted by spvmdist command is changed to "=head1 Super Class".
    • Add "=head1 See Also" section to the output from spvmdist command.
    • Improve "Description" outputted from spmvdist command.
    • Add commented meta-spec "release_status" option to Makefile.PL outputted from spvmdist command.
    • "the foo type" in docs, exception messages, compilation messages are changed to "foo type".
    • The type conversion from float constant to double is allowed.
  • Exception Message Changes
    • Improve exception messages outputted from spvmdist command.
    • The heading of a compilation error message is changed from [Compile Error] to [Compilation Error]
    • Improve exception messages in operators.
    • Improve exception messages in the instance method call.
  • Test Improvement
    • Add a test for Fn#split method when a input is an empty string.
    • Clean up tests for array operations.
    • Clean up tests for type cast.
  • Bug Fix
    • Fix a bug mention by "Segfault:compile_type_name" https://github.com/yuki-kimoto/SPVM/issues/554.
    • Fix a bug that wrong static method call cause an segmentation fault.
    • Fix a bug that the compile error message of 256 or more characters is cut off.
    • Fix a bug that constant narrowing conversion causes a compilation error in the distribute type is a numeric array type.
      • https://github.com/yuki-kimoto/SPVM/issues/560
  • Complilation Message Improvement
    • Use field notation "MyClass#foo field" in compilation error messages.
    • Use class variable notation "MyClass#$Foo class variable" in compilation error messages.
    • Use method notation "MyClass#foo method" in compilation error messages.
  • Bug Fix with Incompatible Changes
    • There are some imcompatible changes in is_type operator to fix the following bug.
      • https://github.com/yuki-kimoto/SPVM/issues/545
      • For this, is_type operator must check runtime type instead of compile-time type if TYPE is an object type including object[].
      • And if TYPE is any object type(object), an compilation error occurs.
  • Incompatible Changes
    • warn operator output a stack trace even if the end of the input string is "\n". Along with this, the same change occurs in warn Native API.
      • The reason of this change is that debugging data with trailing \n does not show a stack trace.
      • We will add Fn#print_stderr and Fn#say_stderr to achieve the original behavior, no stack trace, of warn operator.

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
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
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
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