DEV Community

Yuki Kimoto
Yuki Kimoto

Posted on

3

SPVM 0.9667 is released

SPVM 0.9667 is released.

New Features and Enhancement

Changes

0.9667 2022-12-17
  [New Features]
    * Added the following native API.

      int32_t (*get_field_id_static)(SPVM_ENV* env, SPVM_VALUE* stack, const char* class_name, const char* field_name);
  [Changes]
    * Getting and setting field in precompiled modules use env->get_field_id_static instead of env->get_field_id.
  [Incompatible Changes]
    * Renamed the following runtime native APIs
      -  void* object_header_byte_size;
      +  void* object_header_size;

    * Renamed the following native APIs
      -  void* object_header_byte_size;
      +  void* object_header_size;

      -  int32_t (*get_elem_byte_size)(SPVM_ENV* env, SPVM_VALUE* stack, void* array);
      +  int32_t (*get_elem_size)(SPVM_ENV* env, SPVM_VALUE* stack, void* array);
    * Changed the definitions of the following native APIs.
      -  int32_t (*get_basic_type_id)(SPVM_ENV* env, const char* basic_type_name);
      -  int32_t (*get_field_id)(SPVM_ENV* env, void* object, const char* field_name);
      -  int32_t (*get_field_offset)(SPVM_ENV* env, int32_t field_id);
      -  int32_t (*get_class_var_id)(SPVM_ENV* env, const char* class_name, const char* class_var_name);
      -  int32_t (*get_class_method_id)(SPVM_ENV* env, const char* class_name, const char* method_name);
      -  int32_t (*get_instance_method_id)(SPVM_ENV* env, void* object, const char* method_name);

      +  int32_t (*get_basic_type_id)(SPVM_ENV* env, SPVM_VALUE* stack, const char* basic_type_name);
      +  int32_t (*get_field_id)(SPVM_ENV* env, SPVM_VALUE* stack, void* object, const char* field_name);
      +  int32_t (*get_field_offset)(SPVM_ENV* env, SPVM_VALUE* stack, int32_t field_id);
      +  int32_t (*get_class_var_id)(SPVM_ENV* env, SPVM_VALUE* stack, const char* class_name, const char* class_var_name);
      +  int32_t (*get_class_method_id)(SPVM_ENV* env, SPVM_VALUE* stack, const char* class_name, const char* method_name);
      +  int32_t (*get_instance_method_id)(SPVM_ENV* env, SPVM_VALUE* stack, void* object, const char* method_name);
  [Runtime Exception Message Improvement]
    * Improved exception messages.
      [After]
      "The %s field is not found"
      "The %s class method in the %s class is not found"
      "The object must be defined"
      "The type dimension of the object must be equal to 0"
      "The %s instance method is not found in the %s class or its super class"
      "The %s class is not loaded"
      "The type dimension of the object must be equal to 0"
      "The %s field is not found in the %s class or its super class"
      "The %s class variable in the %s class is not found"
Enter fullscreen mode Exit fullscreen mode

For Programming Beginners

What Is SPVM?

SPVM is a static typed programming language that can be installed from Perl/CPAN.

How potential dose SPVM have?

Growth is expected in the fields of Bio Tech, AI/ML, Apple/iPhone/iPad Apps, Google/Android Apps, IoT Device, Connected Car, Smart Device, Smart Home, etc.

This is because SPVM can produce an executable file that supports cross platforms and make easy to calculate arrays and bind C/C++

Image of Timescale

🚀 pgai Vectorizer: SQLAlchemy and LiteLLM Make Vector Search Simple

We built pgai Vectorizer to simplify embedding management for AI applications—without needing a separate database or complex infrastructure. Since launch, developers have created over 3,000 vectorizers on Timescale Cloud, with many more self-hosted.

Read full post →

Top comments (0)

Image of Docusign

🛠️ Bring your solution into Docusign. Reach over 1.6M customers.

Docusign is now extensible. Overcome challenges with disconnected products and inaccessible data by bringing your solutions into Docusign and publishing to 1.6M customers in the App Center.

Learn more