Yuki Kimoto
Posted on November 29, 2022
SPVM 0.9663 is released.
New Features and Enhancement
0.9663 2022-11-29
[Changes]
* Add the following file to the MANIFEST.SKIP that is generated by the spvmdist command.
^cpanm$
* The version of the module file that is generated by the spvmdist command is not outputted
when the --only-lib-files option is specified.
[New Features]
* Added the follwoing opitonal arguments to the push method in the StringBuffer class.
[Before]
method push : void ($string : string);
[After]
method push : void ($string : string, $offset = 0 : int, $length = -1 : int);
And added the some exceptions. See the doc.
Adds a C<$string> from the C<$offset> to the position proceeded by the C<$length> after the end of the string in the string buffer.
Exceptions:
The C<$string> must be defined.
The C<$offset> must be greater than or equal to 0.
The C<$offset> + C<$length> must be less than or equal to the length of the C<$string>.
* Added the follwoing method to the Hash class.
method clone : Hash ();
method to_array : object[] ($sort = 0 : int);
method delete_or_default_byte : int ($key : string, $default : int);
method delete_or_default_short : int ($key : string, $default : int);
method delete_or_default_int : int ($key : string, $default : int);
method delete_or_default_long : long ($key : string, $default : long);
method delete_or_default_float : float ($key : string, $default : float);
method delete_or_default_double : double ($key : string, $default : double);
method delete_or_default_string : string ($key : string, $default : string);
method delete_or_default : object ($key : string, $default : object);
* Added the Cloneable interface to tha Hash class.
[Imcompatible New Features]
* The octal escape character \000 and \o{} is added.
\000 got to be interpreted \o{00} instead of "\0" . "00"
* The \0 becomes the feature of the octal escape character.
[Internal Non-Affecting Changes]
* Fixed the bug that MyTest::compile_ok and MyTest::compile_not_ok can't create the multi-level directory.
[Compilation And Runtime Error Message Improvement]
* Notation of class names, method names, field names, and class variable names in compilation and runtime error messages has been unified.
The \"%s\" class.
The \"%s\" method.
The \"%s\" instance method.
The \"%s\" class method.
The \"%s\" field.
The \"%s\" class variable.
[Exception Error Message Improvement]
* The notation of the arguments in the exception messages is unified.
The $foo
[Bug Fix]
* Fixed the bug that the interface of the parent class is not recognized.
* Fiexd the bug that The checking of the required method doesn't see the super class
https://github.com/yuki-kimoto/SPVM/issues/246
* Fixed the bug that when searching field doesn't found in the super class, eternal loop occur.
https://github.com/yuki-kimoto/SPVM/issues/249
* The bug that original exception is overwriten by destructor exception
https://github.com/yuki-kimoto/SPVM/issues/253
* Fixed the bug that Windows I/O binary mode in spvmcc command.
[Incompatible Bug Fix]
* Fixed the bug that Format->sprintf "%p" output differs Linux and Windows. "0x" is added to the output on Windows.
[New Features]
* The method can have the more optional arguments than the arguments of the interface method.
* Added the following methods to the Fn class.
static method sizeof_native_int : int ();
static method sizeof_native_pointer : int ();
static method init_string : void ($string : mutable string, $ascii_code = 0 : int, $offset = 0 : int, $length = -1 : int);
[Imcompatible Changes]
* The field in the "foo" class with the same name as the "MyClass\" field in the parent class cannot be defined.
[Exception Message Improvement]
Improve the following message.
[Before]
(An exception thrown in the DESTROY method is converted to a warning)%s\n
[After]
[The following exception is coverted to a warning because it is thrown in the DESTROY method]\n%s\n
💖 💪 🙅 🚩
Yuki Kimoto
Posted on November 29, 2022
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.