The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

Changes for version 0.0382 - 2018-10-29

  • remove no needed runtime type check.
  • change sub signature [before](int)foo(int,int) [after]foo:int(int,int)
  • change field signature [before](int)foo [after]foo:int
  • change package variable signature [before](int)$FOO [after]$FOO:int
  • change get_package_var_id argument, and signature contain only type [before]int32_t SPVM_RUNTIME_API_get_package_var_id(SPVM_ENV* env, const char* package_name, const char* signature); [after]int32_t SPVM_RUNTIME_API_get_package_var_id(SPVM_ENV* env, const char* package_name, const char* package_var_name, const char* signature);
  • change get_field_id argument, and signature contain only type [before]int32_t SPVM_RUNTIME_API_get_field_id(SPVM_ENV* env, const char* package_name, const char* signature); [after]int32_t SPVM_RUNTIME_API_get_field_id(SPVM_ENV* env, const char* package_name, const char* field_name, const char* signature);
  • change get_sub_id argument, and signature contain only type [before]int32_t SPVM_RUNTIME_API_get_sub_id(SPVM_ENV* env, const char* package_name, const char* signature); [after]int32_t SPVM_RUNTIME_API_get_sub_id(SPVM_ENV* env, const char* package_name, const char* sub_name, const char* signature);
  • change get_sub_id_method_call argument, and signature contain only type [before]int32_t SPVM_RUNTIME_API_get_sub_id_method_call(SPVM_ENV* env, void* object, const char* signature); [after]int32_t SPVM_RUNTIME_API_get_sub_id_method_call(SPVM_ENV* env, void* object, const char* field_name, const char* signature);
  • support anon sub my $comparator = sub : int ($self : self, $x1 : object, $x2 : object) { ...; };
  • remove new sub syntax.
  • remove anon package syntax
  • support anon sub capture variable { my $capture1 = 7; my $capture2 = 10; my $anon_sub = [$capture1 : int, $capture2 : int] sub : int ($self : self, $x1 : object, $x2 : object) { print($capture1 . "\n"); print($capture2 . "\n");
    • $self->{capture1} = 5;
    • print($capture1 . "\n");
    • return -1;
    • };
    • $anon_sub->(undef, undef);
    • }

Documentation

C/C++ Binding using SPVM Extension(BETA before 1.0)
SPVM Standard Functions
SPVM Language
SPVM Native Interface
SPVM Perl API
SPVM compiler to create exe file

Modules

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

Provides

in lib/SPVM/Builder.pm
in lib/SPVM/Builder/C.pm
in lib/SPVM/Builder/Exe.pm
in lib/SPVM/BuildDir.pm
in lib/SPVM/PerlAPI.pm