The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

Changes for version 0.0352 - 2018-06-27

  • Separate mortal API and raw API raw API create object which reference count is zero. mortal API create object which refernece count is one and pushed to mortal stack.
    • Mortal API
      • SPVM_RUNTIME_API_new_object SPVM_RUNTIME_API_new_byte_array SPVM_RUNTIME_API_new_short_array SPVM_RUNTIME_API_new_int_array SPVM_RUNTIME_API_new_long_array SPVM_RUNTIME_API_new_float_array SPVM_RUNTIME_API_new_double_array SPVM_RUNTIME_API_new_object_array SPVM_RUNTIME_API_new_multi_array SPVM_RUNTIME_API_new_string SPVM_RUNTIME_API_new_struct
      • Raw API
        • SPVM_RUNTIME_API_new_object_raw SPVM_RUNTIME_API_new_byte_array_raw SPVM_RUNTIME_API_new_short_array_raw SPVM_RUNTIME_API_new_int_array_raw SPVM_RUNTIME_API_new_long_array_raw SPVM_RUNTIME_API_new_float_array_raw SPVM_RUNTIME_API_new_double_array_raw SPVM_RUNTIME_API_new_object_array_raw SPVM_RUNTIME_API_new_multi_array_raw SPVM_RUNTIME_API_new_string_raw SPVM_RUNTIME_API_new_struct_raw
  • Add enter_scope and leave_scope native.h If you use enter_scope, return scope_id. and you create objects, and use leave_scope, objects is automatically released. { // Enter scope int32_t scope_id = env->enter_scope(env);
    • env->new_int_array(env, 3); env->new_int_array(env, 3); env->new_int_array(env, 3);
    • // Leave scope env->leave_scope(env, scope_id);
    • }
  • remove SPVM_NATIVE_SUB macro in spvm_native.h. Native function name become start with SPVM_NATIVE_
    • SPVM_NATIVE_SUB(My__Point__clear)
    • is changed to
      • SPVM_NATIVE_My__Point__clear
  • add SPVM_SUCCESS and SPVM_EXCEPTION macro in native.h SPVM Native Interface must return 0 in success, or 1 in exception, This mean exception flag, but this is little difficult to keep in mind. I add SPVM_SUCCESS and SPVM_EXCEPTION macro. You can use them
    • return SPVM_SUCCESS
    • return SPVM_EXCEPTION;

Documentation

C/C++ Binding using SPVM Extension(BETA before 1.0)
SPVM Standard Functions
SPVM Language
SPVM Native Interface

Modules

Fast array and numeric operation, and provide easy way to C/C++ Binding
Bool Utility
Byte object
SPVM data structure
Array object
Double object
Float object
Int object
Long object
SPVM data structure
Short object

Provides

in lib/SPVM/Build.pm
in lib/SPVM/Build/CBuilder.pm
in lib/SPVM/Build/CBuilder/Native.pm
in lib/SPVM/Build/CBuilder/Precompile.pm
in lib/SPVM/Build/Info.pm
in lib/SPVM/Build/Setting.pm
in lib/SPVM/Build/Util.pm
in lib/SPVM/BuildDir.pm