0.0339 2018-05-26
-
rename Std::Math to Math
-
renmae Std::Time to Time
-
renmae Std::TypeUtil to TypeUtil
-
rename Std::IO to IO
-
rename Std to CORE
-
merged CORE::Time to CORE
-
merged CORE::IO to CORE
-
CORE module is loaded by default
-
CORE functions become static functions
0.0338 2018-05-25
-
add examples
-
add const byte[] type
-
String type become string type to express it is core type.
-
Otring type become object type to express it is core type.
-
string type become syntax sugar of const byte[].
-
string next of end character become '\0'
0.0337 2018-05-24
-
remove jit descriptor
-
add SPVM::JIT moudle
-
JIT compile unit become package
-
implement JIT compile cache system
-
improve test peformance very much
0.0336 2018-05-19
-
fix hash insert and search bug
-
name string is shared intenally
-
only support NetBSD 7+, not support NetBSD 6
0.0335 2018-05-18
-
support multi dimension array initialization
my $nums = [
[1, 2, 3]
,
[4, 5, 6]
];
0.0334 2018-05-07
-
add new array init syntax.
my $nums = [3, 4, 5];
my $nums = [0.1, 0.4, 0.8];
-
remove Std::Number::Util many subtoutines
-
rename Std::Number::Util to Std::TypeUtil
and Std::TypeUtil become C language inttype.h and float.h wrapper
-
remove Std::Array::Util
0.0333 2018-05-05
-
fix array init type bug
-
fix 32bit environment not work bug
0.0332 2018-05-04
-
Cleanup internal ast
0.0331 2018-05-01
-
fix many assign reference count bug.
-
Object type become generic purpose type
-
Object can be assigned any array object
0.0329 2018-04-24
-
use sprintf "%g" format for string conversion
0.0328 2018-04-24
-
Numeric class become not private, and set_value method.
-
add Bool package
-
fix nan test bug
0.0327 2018-04-21
-
fix jit link subroutine name bug
-
only print warning message when SPVM_TEST_ENABLE_WARNINGS is defined
-
double, float string convertion more portable
-
fix windows long constant bug
-
fix windows jit dll file overwritten bug
0.0326 2018-04-20
-
forbidden function call from Perl. All subroutine become method or class method
-
rename Std::Arrays to Std::Array::Util
-
rename Std::Array::Util copy_of_xxx to copy_xxxs
-
rename Std::Array::Util equals_xxx to eq_xxxs
-
fix windows source file reading bug
-
inline source code must be in .inline instead of .native
-
fix temporary directory bug
-
add build directory cleanup logic
0.0325 2018-04-13
-
remove template feature
-
rename Math to Std::Math
-
rename Arrays to Std::Arrays
-
rename Number::Util to Std::Number::Util
-
add some Std::Math functions
-
remove absolute call subroutine syntax
method is only instance method or class method
-
rename CORE to Std
-
need use Std to use print, warn and time
-
use must be in package block
0.0324 2018-04-07
-
implement string convertion
-
implement isa
-
implement string comparison operator
-
fix (term) is not allowed bug
0.0323 2018-04-06
-
fix file empty bug
0.0322 2018-04-04
-
allow numeric type to String convertion
-
remove string concat operator automatical type convertion
-
licence become MIT licence
0.0321 2018-04-02
-
rename Integer package to Int package
-
add Number::Util and move many number util funtions of Byte, Short, Int, Long, Float, Double to Number::Util
-
SPVM all C source file is compiled by -std=c99 option by default
0.0320 2018-03-29
-
add private and public descriptor
-
add private field
-
add private package
-
fix check cast bug
0.0319 2018-03-29
-
add interface descriptor to package declaration
-
fix bug that empty package parsing fail
-
add Object interface
-
add subroutine argument convertion
-
implement interface method call
-
implement check cast
0.0318 2018-03-20
-
field become public by default
-
remove set, get keyword
-
new become public by default
-
add self keyword to represent invocant
-
many module methods become class method
Byte, Short, Integer, Long, Float, Double, Math
0.0317 2018-03-15
-
support escape character \0
-
cleanup leave scope logic
-
numeric variable become local variable in jitcode
0.0316 2018-03-10
-
remove runtime constant_pool
0.0315 2018-03-08
-
add JIT descripter
-
fix manifest not to contain SPVM-* files
0.0314 2018-03-01
-
remove build_shared_lib.pl script
-
fix jit subroutine not called bug
0.0313 2018-02-26
-
fix shared lib dependency bug
-
sub descripter position is changed
before: sub sin : native double ($x : double);
after : native sub sin : double ($x : double);
-
fix windows dll not loading bug
0.0312 2018-02-23
-
fix bug that last statement can't do leave scope logic
0.0311 2018-02-21
-
shared library building temporaly directory is cleaned up in the scope
-
cleanup shared library loading
-
fix exception stack trace subroutine name
-
fix all warnings
0.0310 2018-02-16
-
enum value must be int type
-
remove byte literal b
-
remove short literal s
-
add automatically type convertion to + operator
-
add automatically type convertion to - operator
-
add automatically type convertion to * operator
-
add automatically type convertion to / operator
-
add automatically type convertion to % operator
-
add automatically type convertion to unary -
-
fix unary + bug
-
add automatically type convertion to unary +
-
add automatically type convertion to == operator
-
add automatically type convertion to != operator
-
add automatically type convertion to > operator
-
add automatically type convertion to >= operator
-
add automatically type convertion to < operator
-
add automatically type convertion to <= operator
-
add automatically type convertion to array index
-
add automatically type convertion to lengh of new array
-
add automatically type convertion to ~ operator
-
add automatically type convertion to & operator
-
add automatically type convertion to | operator
-
add automatically type convertion to ^ operator
-
add automatically type convertion to << operator
-
add automatically type convertion to >> operator
-
add automatically type convertion to >>> operator
-
limit <<, >>, >>> right value
-
fix increment, decrelement assignment bug
-
implement float, double increment
-
add automatically type convertion to == operator
0.0309 2018-02-10
-
jit code is called from virtual machine
-
separate tests to succeed tests at less memory environment
0.0308 2018-02-05
-
implement Perl compatible GC system correctory
-
fix eval block stack bug
0.0307 2018-02-01
-
fix print function bug that print line break.
-
remove say relative functions. say, say_xxx, say_xxx_err
-
remove print relative functions. print_xxx, print_xxx_err
-
rename print_err to warn
-
sub definition is changed. sub NAME : RETURN_TYPE ($arg1 : ARG_TYPE1, ...) { }
0.0306 2018-01-23
-
remove SPVM::Debug
-
croak stack trace is on by default
0.0305 2018-01-20
-
fix MANIFEST
-
improve exception logic
0.0304 2018-01-18
-
add jit code in test(jit-spvm.t)
0.0303 2018-01-03
-
fix reference count bug in loop
-
support array initialization in any place.
new int[] { 1, 2, 3} is used in any place.
-
add temporary JIT code for preparation for JIT compile
-
fix assign excecution order
-
fix type inference bug
0.0302 2017-12-07
-
add eval block stack max length
-
fix next statement bug
-
operation code become flexible 1 byte to fixed 64 byte for preparation of JIT compile
0.0301 2017-11-20
-
support relative name subroutine call
sum(0, 1);
At first, current package is searched, next core function
-
rename std package to CORE package
-
package variable must be start upper case
-
lexical variable must be start lower case
-
support relative name package variable
0.03 2017-11-17
-
SPVM VM change Stack Based VM to Register Based VM
This change slow down performance temporary
-
fix bug that my variable type can't be detected.
-
fix my var scope bug
-
fix negate operator bug
-
add complement operator ~
but, this is prepared for JIT compile
0.0284 2017-10-30
-
simplify SPVM internal to implement JIT compile
0.0283 2017-10-23
-
cleanup SPVM modules
-
implement get_type_id correctory
-
change array init syntax
before: my $values : int[] = [1, 2, 3];
after : my $values = new int[] {1, 2, 3};
0.0282 2017-10-23
-
support package variable
0.0281 2017-10-19
-
remove SPVM::new_object
-
remove SPVM::Object::Package::set
-
remove SPVM::Object::Package::get
-
can call method directory from SPVM object
my $object = SPVM::TestCase::new();
$object->set_x_byte($BYTE_MAX);
$object->set_x_short($SHORT_MAX);
-
remove Package->name syntax because Perl subroutine call correspoing to SPVM subroutine call completely
-
remove relative name subroutine call because future keyword adding don't break backward compatible
-
fix method call bug
-
add getter and setter syntax
set x, y;
get x, y;
-
field become private
-
new keyword become private
0.0280 2017-10-13
-
add String type again
-
add Native API new_string
-
add Native API get_string_length
-
add Native API get_string_chars
0.0279 2017-10-12
-
fix catch exception bug that runtime exception can't be cached
0.0278 2017-10-11
-
throw exception when get array length of undef value
-
SPVM::new_xxx_array return undef if argument is undef
-
allow SPVM::call_sub undef argument
-
add std::say_err ($value : byte[]) : native void;
-
add std::say_err_byte ($value : byte) : native void;
-
add std::say_err_short ($value : short) : native void;
-
add std::say_err_int ($value : int) : native void;
-
add std::say_err_long ($value : long) : native void;
-
add std::say_err_float ($value : float) : native void;
-
add std::say_err_double ($value : double) : native void;
-
add std::print_err ($value : byte[]) : native void;
-
add std::print_err_byte ($value : byte) : native void;
-
add std::print_err_short ($value : short) : native void;
-
add std::print_err_int ($value : int) : native void;
-
add std::print_err_long ($value : long) : native void;
-
add std::print_err_float ($value : float) : native void;
-
add std::print_err_double ($value : double) : native void;
-
add std::time()
-
add Array::equals_byte()
-
add Array::equals_short()
-
add Array::equals_int()
-
add Array::equals_long()
-
add Array::equals_float()
-
add Array::equals_double()
0.0277 2017-10-10
-
allow resorved word for subroutine name
-
add Arrays package
-
add Arrays::copy_of_byte
-
add Arrays::copy_of_short
-
add Arrays::copy_of_int
-
add Arrays::copy_of_long
-
add Arrays::copy_of_float
-
add Arrays::copy_of_double
-
fix native subroutine exception bugs
-
array initialization allow all terms, and need type declaration
0.0276 2017-10-05
-
rename back to_array to get_elements
0.0275 2017-10-04
-
fix Math.spvm loading bug
0.0274 2017-10-04
-
add package name check
-
fix enum call bug
0.0273 2017-10-03
-
support octal literal
-
support binary literal
0.0272 2017-09-27
-
add Math::tan function
-
add Math::asin function
-
add Math::acos function
-
add Math::atan function
-
add Math::to_radians function
-
add Byte package
-
add Short package
-
add Integer package
-
add Long package
-
add Float package
-
add Double package
-
fix call native long function bug
-
change byte constatant specifier b to y
124b -> 124y
-
a, b, c, d, e, f become hex character.
0.0271 2017-09-23
-
add Math::cos function
-
add Math::sin function
0.0270 2017-09-22
-
fix 0 length string bug
0.0269 2017-09-21
-
add SPVM::Object::Array::Short::set_data()
-
add SPVM::Object::Array::Int::set_data()
-
add SPVM::Object::Array::Long::set_data()
-
add SPVM::Object::Array::Float::set_data()
-
add SPVM::Object::Array::Double::set_data()
-
add SPVM::Object::Array::Short::to_data()
-
add SPVM::Object::Array::Int::to_data()
-
add SPVM::Object::Array::Long::to_data()
-
add SPVM::Object::Array::Float::to_data()
-
add SPVM::Object::Array::Double::to_data()
-
add SPVM::new_short_array_data()
-
add SPVM::new_int_array_data()
-
add SPVM::new_long_array_data()
-
add SPVM::new_float_array_data()
-
add SPVM::new_double_array_data()
-
add SPVM::Object::Array::Byte::set_elements_range()
-
add SPVM::Object::Array::Short::set_elements_range()
-
add SPVM::Object::Array::Int::set_elements_range()
-
add SPVM::Object::Array::Long::set_elements_range()
-
add SPVM::Object::Array::Float::set_elements_range()
-
add SPVM::Object::Array::Double::set_elements_range()
-
add SPVM::Object::Array::Byte::set_data_range()
-
add SPVM::Object::Array::Short::set_data_range()
-
add SPVM::Object::Array::Int::set_data_range()
-
add SPVM::Object::Array::Long::set_data_range()
-
add SPVM::Object::Array::Float::set_data_range()
-
add SPVM::Object::Array::Double::set_data_range()
-
add SPVM::Object::Array::Byte::to_array_range()
-
add SPVM::Object::Array::Short::to_array_range()
-
add SPVM::Object::Array::Int::to_array_range()
-
add SPVM::Object::Array::Long::to_array_range()
-
add SPVM::Object::Array::Float::to_array_range()
-
add SPVM::Object::Array::Double::to_array_range()
-
add SPVM::Object::Array::Byte::to_data_range()
-
add SPVM::Object::Array::Short::to_data_range()
-
add SPVM::Object::Array::Int::to_data_range()
-
add SPVM::Object::Array::Long::to_data_range()
-
add SPVM::Object::Array::Float::to_data_range()
-
add SPVM::Object::Array::Double::to_data_range()
0.0268 2017-09-19
-
remove string type. SPVM string become byte[].
-
SPVM::new_string_bytes renamed to SPVM::new_byte_array_data and return SPVM::Array::Byte object
-
SPVM::new_string renamed to SPVM::new_byte_array_string and return SPVM::Array::Byte object
-
rename get_elements to to_array
-
rename get_string to to_string
-
rename get_data to to_data
0.0267 2017-09-18
-
add .= operator
0.0266 2017-09-16
-
fix bug that empty string is not used
-
rename SPVM::new_string_raw to SPVM::new_string_bytes
-
implement . operator to concat string
-
renmae println to say
0.0265 2017-09-13
-
fix clang duplicate symbol bug
0.0264 2017-09-12
-
rename Inline to Extension
0.0263 2017-09-12
-
add native INC config
-
add native LIBS config
-
add special assign syntax
+=
-
=
*
=
/=
%=
&=
^=
|=
<<=
>>=
>>>=
-
fix CBuilder config bug
0.0262 2017-09-12
-
fix make dependency
0.0261 2017-09-11
-
remove inline syntax
__INLINE__
__NATIVE__
-
add new runtime compile syntax
Foo.spvm
Foo.native/Foo.c
Foo.native/Foo.config
0.0260 2017-09-08
-
fix windows dll bugs
0.0259 2017-09-06
-
add Math module
-
add Math::sin function
-
add Math->PI constant
-
add Math->E constant
0.0258 2017-09-06
-
fix temporary inline file name.
-
support inline native config
__CONFIG__
-
support inline config following options
CC
CCFLAGS
LD
LDDLFLAGS
OPTIMIZE
0.0257 2017-09-05
-
improve inline native source error message
-
inline source is separated each
0.0256 2017-09-04
-
CBuilder output become quite.
-
Fix some Windows compile error
0.0255 2017-09-04
-
detect automatically inline native function
-
remove SPVM::Inline
0.0254 2017-09-02
-
Support inline native function. implement SPVM::Inline
0.0253 2017-09-01
-
fix exception bugs
0.0252 2017-08-30
-
allow enum last camma
-
allow term last camma
-
allow args last camma
-
allow descripter last camma
-
forbidden double comma
0.0251 2017-08-30
-
fix bug that if package is not exists, compile is ok.
-
implement destructor
sub DESTROY ($self : Foo) : void {
}
0.0250 2017-08-29
-
cleanup runtime
-
cleanup api
-
fix exception some bug
0.0249 2017-08-25
-
string can't convert to byte[]
-
byte[] can't convert to string
-
allow $string->[0] to get byte value
-
improve get_sub_id, get_type_id, get_field_id performance
0.0248 2017-08-19
-
support xs.dll dynamiclin library
-
fix __END__ not used bug
0.0247 2017-08-19
-
Sorry, rename back stdout to std
SPVM only have std package by default and automatically loaded without use std;
-
support dynamic link library
0.0246 2017-08-17
-
array element is initialized by zero.
0.0245 2017-08-16
-
fix get object byte field bug
-
fix set object byte field bug
-
fix bug that compiler can't load source file over 0xFF bytes
0.0244 2017-08-15
-
implement weak reference to resolve recursive reference
weaken $obj->{foo};
-
Field become have any object
0.0243 2017-08-12
-
add SPVM::new_object_array_len function
-
add SPVM::Array::Object::set function
-
add SPVM::Array::Object::get function
0.0242 2017-08-11
-
array malloc length + 1. and last value is 0. This is for C level string API.
-
add debug mode.
use SPVM::Debug;
0.0241 2017-08-08
-
fix void subroutine bug that if return value is not exists, runtime error occur.
0.0240 2017-08-07
-
fix number literal bug that hex number e and E is floating point specifier
-
add byte and short number literal syntax
123b
123s
-
hex number only allow A, B, C, D, E, F because f is used to specify the number is floating point
and b is used to specify the number is byte
-
fix array float store and load bug
-
support underline in number literal
123_123
0xFF_FF
0.0239 2017-08-05
-
cleanup enum internal logic
-
fix clang compiler error
-
fix all warnings
0.0238 2017-08-04
-
Support nested switch statement
0.0237 2017-08-03
-
improve SPVM call_sub performance
0.0236 2017-08-01
-
add __END__
-
SPVM exception can be cached from Perl's eval { ... }
-
fix one character string bug.
0.0235 2017-07-31
-
fix default return value
-
imporve exception message
0.0234 2017-07-29
-
rename malloc to new. you can also define new function for object initialization.
my $obj = new Foo;
my $obj = Foo::new(3);
package Foo {
sub new($var1 : int) {
# ...
return new Foo;
}
}
-
object's fields are initialized by zero.
0.0233 2017-07-28
-
support package template.
-
support over 4G memory allocation
0.0232 2017-07-26
-
add len keyword to get array length
reason is that
foo(@$nums) looks like passing array itself, not array length.
you can use len keyword for readability.
foo(len $nums);
-
Fix bug that error occur when near small base_object_max_byte_size_use_memory_pool is malloced
0.0231 2017-07-25
-
Fix clang compile error
0.0230 2017-07-25
-
Fix POSIX function import bug
-
Package name must be start with upper case. Lowercase is reserved for core package.
-
Add SPVM/stdout.pm as Perl module
0.0229 2017-07-25
-
support array initialization
my $nums = [1, 2, 3];
-
fix memory breaking bug when object is assigned from freelist
0.0228 2017-07-22
-
fix enum constant bug
-
support float enum
-
support double enum
0.0227 2017-07-21
-
fix tests bug
0.0226 2017-07-20
-
fix float convertion bugs
-
fix convert double to short bug
-
fix floating number which don't have point(for example, 346638529e+38) parsing bug.
-
rename std package to stdout
-
fix enum default type. Correct type is int.
-
fix enum { FOO = 1 } syntax.
0.0225 2017-07-19
-
add SPVM::Array::Byte::get_elements method
-
add SPVM::Array::Short::get_elements method
-
add SPVM::Array::Int::get_elements method
-
add SPVM::Array::Long::get_elements method
-
add SPVM::Array::Float::get_elements method
-
add SPVM::Array::Double::get_elements method
0.0224 2017-07-19
-
fix memory leak bugs. fix reference count.
0.0223 2017-07-18
-
fix hash segmentation fault bug when many hash is created.
0.0222 2017-07-18
-
add SPVM::Object::set
-
add SPVM::Object::get
-
rename SPVM::byte_array to SPVM::new_byte_array
-
rename SPVM::short_array to SPVM::new_short_array
-
rename SPVM::int_array to SPVM::new_int_array
-
rename SPVM::long_array to SPVM::new_long_array
-
rename SPVM::float_array to SPVM::new_float_array
-
rename SPVM::double_array to SPVM::new_double_array
-
rename SPVM::string_raw to SPVM::new_string_raw
-
rename SPVM::string to SPVM::new_string
-
rename SPVM::object to SPVM::new_object
0.0221 2017-07-15
-
fix && not working bug
-
fix || not working bug
-
fix ! not working bug
0.0220 2017-07-14
-
Support array return type in SPVM::call_sub
0.0219 2017-07-13
-
Support constant floating point E expression
0.5E3
0.5e3
0.5E+3
0.5e+3
0.5E-3
0.5e-3
-
add SPVM::string function
-
add SPVM::string_raw function
0.0218 2017-07-13
-
Fix float culcuration bugs
-
add SPVM::byte_array, SPVM::short_array, SPVM::long_array, SPVM::float_array, SPVM::double_array function
to create SPVM array object.
0.0217 2017-07-12
-
Support SPVM::int_array([1, 2, 3]) function
This values can be passed to SPVM function.
0.0216 2017-07-12
-
Fix constant sign is not initialized bug
0.0215 2017-07-11
-
Support while (my $var = 3) { ... }
-
Support long min constant -9223372036854775808
-
Fix array malloc bug
0.0214 2017-07-11
-
Fix for statement segmentaion fault bug
-
VAR = TERM return VAR. For example, allow the syntax "if (my $error = $@) { ... }
-
Fix if condition (byte, short, long, float) bugs.
0.0213 2017-07-10
-
Fix MANIFEST
0.0212 2017-07-10
-
Fix hex literal bug. 0xFFFFFFFFFFFFFFFFL is OK.
-
Fix bit shift bugs. <<, >>, >>> work well now.
0.0211 2017-07-08
-
Fix if statement condition not working bugs
-
try { } catch () { } syntax is replaced with eval { }; if ($@) { ... } syntax.
0.0210 2017-07-08
-
Fix reference count bugs
0.0209 2017-07-07
-
len $nums is replaced with @$nums
-
$nums[0] is replaced with $nums->[0]
-
$obj{x} is replaced with $obj->{x}
0.0208 2017-07-06
-
add die logic when 32 bit Perl
-
add several SPVM internal functions
0.0207 2017-06-30
-
Fix amd64 segfault bug.
0.0206 2017-06-20
-
Argument and return value become normal SV which have IV or NV.
# Example
my $total = SPVM::MyModule2::foo(3, 5);
print $total . "\n";
0.0205 2017-06-29
-
Only support 64 bit Perl.
In 32 bit Perl, 64 bit integer is not supported. This means that Perl can not express 64 bit integers on source code.
0.0204 2017-06-28
-
add env interface. This is similar as JAVA JNI
0.0203 2017-06-26
-
build SPVM using same CCFLAG as Perl itself
0.0202 2017-06-25
-
use same CCFLAG in Makefile.PL
0.0201 2017-06-20
-
fix memset 0 bug
0.02 2017-06-20
-
improve XS type convertion logic
0.01 2017-06-17(DEVELOPMENT RELEASE
-
Fisrt development release