SPVM 0.9676がリリースされました

SPVM 0.9676がリリースされました。

新機能と強化点


変更点

0.9676 2022-01-03
  [新機能]
    * ネイティブAPIの下記の定数値を追加しました。

      1 SPVM_NATIVE_C_TYPE_FLAG_REF
      2 SPVM_NATIVE_C_TYPE_FLAG_MUTABLE
    * 下記のネイティブAPIを追加しました。
      void* (*get_compile_type_name_raw)(SPVM_ENV* env, SPVM_VALUE* stack, int32_t basic_type_id, int32_t dimension, int32_t flag);
      void* (*get_compile_type_name)(SPVM_ENV* env, SPVM_VALUE* stack, int32_t basic_type_id, int32_t dimension, int32_t flag);
    * get_method_is_enumランタイムネイティブAPIを追加しました。

      int32_t SPVM_API_RUNTIME_get_method_is_enum(SPVM_RUNTIME* runtime, int32_t method_id);
    * 下記のランタイムネイティブAPIを追加しました。

      int32_t (*get_type_flag)(SPVM_RUNTIME* runtime, int32_t type_id);

  [警告修正]
    * FreeBSD上の下記の警告を修正しました。
        warning: logical not is only applied to the left hand side of this comparison [-Wlogical-not-parentheses]
      if (!strcmp(dumpc, "undef") == 0) {
  [互換性のないバグ修正]
    * get_type_name_rawおよびget_type_nameネイティブAPIのSPVMオブジェクトの返り値の型を修正しました。
      [修正前]
      byte[]

      [修正後]
      string

    * concat_rawおよびconcatネイティブAPIのSPVMオブジェクトの返り値の型を修正しました。
      [修正前]
      byte[]

      [修正後]
      string

    * new_string_nolen_rawおよびnew_string_nolenネイティブAPIのSPVMオブジェクトの返り値の型を修正しました。
      [修正前]
      byte[]

      [修正後]
      string

  [テスト改善]
    * get_class_parent_class_id、get_method_required_args_length、get_method_required_args_lengthランタイムネイティブAPIのテストを追加しました。
  [例外メッセージ改善]
    * Exchange APIの例外メッセージを改善しました。

全画面モードに入る 全画面モードを終了

プログラミング初心者のために


SPVMとは何か?

SPVMは静的型付けプログラミング言語で、Perl/CPANからインストールできます。

SPVMの将来性はどうか?

バイオテクノロジー、AI/ML、Apple/iPhone/iPadアプリ、Google/Androidアプリ、IoTデバイス、コネクテッドカー、スマートデバイス、スマートホームなどの分野で成長が期待されています。

これは、SPVMがクロスプラットフォームに対応した実行ファイルの作成を容易にし、配列計算とC/C++との連携を容易にするためです。

こちらの記事はdev.toの良い記事を日本人向けに翻訳しています。
https://dev.to/yukikimoto/spvm-09676-is-released-j4k