SPVM
view release on metacpan or search on metacpan
https://github.com/yuki-kimoto/SPVM/issues/522
* Fix a bug that the count of memory blocks is wrong.
https://github.com/yuki-kimoto/SPVM/issues/521
* Fix th bug that (mutable string)$object cast does not throw an exception when $object is read-only.
https://github.com/yuki-kimoto/SPVM/issues/565
[Incompatible Changes]
* The fix https://github.com/yuki-kimoto/SPVM/issues/565 cause an incompatible changes.
An exception is thrown if your code contains (mutable string)$object and $object is a read-only string.
[Exception Message Changes]
* Improve exception messeges in Array class.
* Improve exception messeges in Fn class.
* Improve exception messages in spvmcc command.
* Improve an exception message "[An exception thrown in DESTROY method is coverted to a warning]".
[Changes]
* Add $api->set_exception(undef); to a test file generated by spvmdist command.
0.990007 2024-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.
0.990006 2024-05-09
[Feature Improvement]
* Users know caller when a class loading from a Perl script failed.
0.990005 2024-05-07
[New Features]
* Add the following argument native APIs.
int32_t (*is_optional)(void* runtime, void* arg);
SPVM_VALUE (*get_default_value)(void* runtime, void* arg);
* Add the following methods to the Native::Arg class.
is_optional
get_default_value_byte
get_default_value_short
get_default_value_int
get_default_value_long
get_default_value_float
get_default_value_double
get_default_value_object
[Internal Changes]
* Use information of SPVM_RUNTIME_ARG to set default values of optional argument in native method calls.
* Remove the following operation codes.
SPVM_OPCODE_C_ID_GET_STACK_OPTIONAL_BYTE
SPVM_OPCODE_C_ID_GET_STACK_OPTIONAL_SHORT
static method to_code_points : int[] ($string : string)
Converts the $string to the Unicode code points, and returns it.
* Added the to_utf8_chars method in the Fn class.
static method to_utf8_chars : string[] ($string : string);
Converts the $string to UTF-8 characters, and returns it.
* Added the utf8_substr method in the Fn class.
static method utf8_substr : string ($string : string, $utf8_offset : int, $utf8_length = -1 : int);
Gets the substring from the $string. The extracting range of the string is from the $utf8_offset to the position proceeded by the $utf8_length, and returns it.
=head2 to_utf8_chars
static method to_utf8_chars : string[] ($string : string);
Converts the $string to UTF-8 characters, and returns it.
[Exception Message Fix]
* Fixed the exception message of the call_method in the SPVM::ExchangeAPI class.
[Before]
The 2th argument of the "push" method in the "IntList" class must be a number
[After]
The 1th argument of the "push" method in the "IntList" class must be a number
[Doc Simplification]
* Argument names are not wraped by <code></code> tag.
0.9688 2023-01-30
[New Features]
* Added the equals_string_range method in the Fn class.
static method equals_string_range : int ($string1 : string, $string1_offset : int, $string2 : string, $string2_offset : int, $length : int)
[Bug Fix]
* Fixed the bug that the index method in the Fn class returned the wrong result.
{
my $string = "foo,bar,baz,,";
my $substring = ",";
my $offset = 8;
my $found_offset = Fn->index($string, $substring, $offset);
}
0.9687 2022-01-30
[New Features]
* Added the tr method in the Fn class.
static method tr : string ($string : string, $pattern : string, $replace : string);
0.9686 2022-01-27
[Imcompatible Changes]
* Default loaded modules are not binded to Perl implicitly. Explicit importing is needed.
use SPVM 'Int';
[Changes]
* Removed INIT block in the SPVM::Global module. The global API is initialized at runtime when SPVM::api() is called at first.
[Build Process Bug Fix]
* Fixed the bug that the version of SPVM can't be parsed in SPVM.pm file.
0.9685 2022-01-26
[Imcompatible Changes]
* The default beheivior of the split method in the Fn class becomes the same as the split function in Perl.
the split method supports 0 limit and the default becomes 0.
[Before]
static method split : string[] ($separator : string, $string : string, $limit = -1 : int);
[After]
static method split : string[] ($separator : string, $string : string, $limit = 0 : int);
* Removed undocumented temporary added the to_string method in the SPVM::BlessedObject::Array.
[New Features]
* Added the to_strings and to_bins method in the SPVM::BlessedObject::Array.
0.9684 2022-01-24
[New Features]
* Added the api function in the SPVM class.
* Added the feature that creating SVPM::ExchangeAPI object
* Added the SPVM::ExchangeAPI::Class class.
* Added the class method in the SPVM::ExchangeAPI.
* The compile method in the Compiler class support undef class name.
[Bug Fix]
* Fixed the bug that the build_runtime method in the Compiler class can't be called only after the compile method is called.
[Document Change]
* SPVM::Document::ExchangeAPI is rewritten by way to using the SVPM::ExchangeAPI object.
and its content is moved into the document of SPVM and SPVM::ExchangeAPI.
[Deprecation]
The following SPVM::xxx functions are deprecated. These functions will be removed in the future. Use the methods in the L<SPVM::ExchangeAPI> directly.
new_byte_array
new_byte_array_unsigne
new_byte_array_len
new_byte_array_from_bin
new_byte_array_from_string
new_short_array
new_short_array_unsigned
new_short_array_len
new_short_array_from_bin
new_int_array
new_int_array_unsigned
new_int_array_len
new_int_array_from_bin
new_long_array
new_long_array_unsigned
new_long_array_len
new_long_array_from_bin
new_float_array
new_float_array_len
new_float_array_from_bin
new_double_array
new_double_array_len
new_double_array_from_bin
new_string
new_string_from_bin
new_object_array
new_object_array_len
new_any_object_array
new_mulnum_array
new_mulnum_array_from_bin
new_string_array
new_string_array_len
get_exception
set_exception
get_memory_blocks_count
( run in 2.176 seconds using v1.01-cache-2.11-cpan-71847e10f99 )