SPVM 0.9663 is released

yukikimoto

Yuki Kimoto

Posted on November 29, 2022

SPVM 0.9663 is released

SPVM 0.9663 is released.

New Features and Enhancement

Changes

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
Enter fullscreen mode Exit fullscreen mode
💖 💪 🙅 🚩
yukikimoto
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.

Related

SPVM 0.9663 is released
perl SPVM 0.9663 is released

November 29, 2022