0.106 2026-03-10
  [Internal Changes]
    * Use native types in all places.
  [Requirement Changes]
    * Require SPVM 0.990143.
0.105 2025-10-13
  [Internal Changes with Document Changes]
    * Change the following fields
      [Before]
      has colobjs_list : List of R::DataFrame::Column;
      
      [After]
      has colobjs : R::DataFrame::Column[];
  [Changes]
    * Make sure that internal array is fixed length.
    
0.104 2025-10-13
  [Internal Changes]
    * Do internal changes to catch up latest SPVM.
  [Requirement Changes]
    * Require SPVM 0.990102.
0.103 2025-01-28
  [Requirement Changes]
    * Require SPVM 0.990042.
  [Test Improvement]
    * Call Fn#destroy_runtime_permanent_vars method in the end of tests.
0.102 2025-01-14
  [Requirement Changes]
    * Require SPVM 0.990038.
    * Require SPVM::Resource::Eigen 0.003.
    * Require SPVM::Time::Piece 0.004.
  [Bug Fix]
    * Fix a bug that latset linux does not compile Resource::Eigen.
    * Call SPVM::Builder::Util::API::create_make_rule_precompile function in Makefile.PL on precompilation classes.
  [Changes]
    * Load Resource::Eigen.
    * Add version_from R to all classes except for R.
  [Internal Changes]
    * Update .gitignore and MANIFEST.SKIP.
    
0.101003 2024-09-24
  [New Features]
    * Add R::OP::Int#left_shift method.
    * Add R::OP::Int#arithmetic_right_shift method.
    * Add R::OP::Int#logical_right_shift method.
    * Add R::OP::Long#left_shift method.
    * Add R::OP::Long#arithmetic_right_shift method.
    * Add R::OP::Long#logical_right_shift method.
    * Add R::OP::Long#bit_and method.
    * Add R::OP::Long#bit_or method.
    * Add R::OP::Long#bit_not method.
    * Add R::OP::Int#bit_and method.
    * Add R::OP::Int#bit_or method.
    * Add R::OP::Int#bit_not method.
    
    * Add R::NDArray#set_data method.
    * In the following methods, $y_ndarray allows to be a L<scalar|SPVM::R::NDArray/"Scalar">. In that case, each element used in the operation is the element at index 0.
      
      R::OP::Int#add
      R::OP::Int#sub
      R::OP::Int#mul
      R::OP::Int#div
      R::OP::Int#div_u
      R::OP::Int#mod
      R::OP::Int#mod_u
      R::OP::Long#add
      R::OP::Long#sub
      R::OP::Long#mul
      R::OP::Long#div
      R::OP::Long#div_u
      R::OP::Long#mod
      R::OP::Long#mod_u
      R::OP::Float#add
      R::OP::Float#sub
      R::OP::Float#mul
      R::OP::Float#div
      R::OP::Float#pow
      R::OP::Float#reminder
      R::OP::Float#fmod
      R::OP::Double#add
      R::OP::Double#sub
      R::OP::Double#mul
      R::OP::Double#div
      R::OP::Double#pow
      R::OP::Double#reminder
      R::OP::Double#fmod
      R::OP::FloatComplex#add
      R::OP::FloatComplex#sub
      R::OP::FloatComplex#mul
      R::OP::FloatComplex#div
      R::OP::FloatComplex#pow
      R::OP::DoubleComplex#add
      R::OP::DoubleComplex#sub
      R::OP::DoubleComplex#mul
      R::OP::DoubleComplex#div
      R::OP::DoubleComplex#pow
      R::OP::String#cancat
      R::OP::StringBuffer#push
  [Incompatible Changes]
    * scamul and scadiv methods in the following classes are removed. Use mul and div method for scalar multiplication and scalar division.
    
      R::OP::Int
      R::OP::Long
      R::OP::Float
      R::OP::Double
      R::OP::Double
      R::OP::FloatComplex
      R::OP::DoubleComplex
    
0.101002 2024-09-16
  [Internal Changes]
    * Use StringBuffer#cmp method to compares two elements in R::NDArray::StringBuffer#elem_cmp method.
0.101001 2024-09-13
  [Test Improvement]
    * Add tests for R::NDArray::AnyObject.
  [Bug Fix]
    * Fix a bug that R::OP::AnyObject#c method was able to be receive an array object, not only object[].
  [Requirement Changes]
    * Require SPVM 0.990009.
  [Internal Changes]
    * Use Fn#array_length method.
    * Use Fn#get_elem_size method.
    * Use Fn#Fn->get_elem_type_name method.
    * Use Native::MethodCall#new_proto method.
    * Use methods in Complex_2f multi-numeric type.
    * Use methods in Complex_2d multi-numeric type.
    * Remove private methods in R::Util class.
    
0.101 2024-08-21
  [Document Improvement]
    * Add "Features" section.
    * Improve docs.
    
0.100 2024-08-20
  [Major Release]
    * All tests are finished.
    * All documentations are finised.
    * This release is major release. The features are more stable.
  [Document Improvement]
    * Improve docs for R::NDArray::Byte class.
    * Improve docs for R::NDArray::Short class.
    * Improve docs for R::NDArray::Int class.
    * Improve docs for R::NDArray::Long class.
    * Improve docs for R::NDArray::Float class.
    * Improve docs for R::NDArray::Double class.
    * Improve docs for R::NDArray::FloatComplex class.
    * Improve docs for R::NDArray::DoubleComplex class.
    * Improve docs for R::NDArray::AnyObject class.
    * Improve docs for R::NDArray::Sring class.
    * Improve docs for R::NDArray::SringBuffer class.
    * Improve docs for R::NDArray::Time::Piece class.
    * Add docs for R::NDArray::Hash class.
    * Improve docs for R::NDArray class.
  [Incompatible Changes]
    * Remove R::NDArray::Time::Piece#to_long_ndarray method.
  [Changes]
    * Add an exception for R::NDArray#normalize_indexes_product method.
    * R::NDArray#normalize_indexes_product method becomes a public method.
    
0.022 2024-08-13
  [Document Improvement]
    * Add docs for R::OP::Byte class.
    * Add docs for R::OP::Short class.
    * Add docs for R::OP::Int class.
    * Add docs for R::OP::Long class.
    * Add docs for R::OP::Double class.
    * Add docs for R::OP::Float class.
    * Add docs for R::OP::DoubleComplex class.
    * Add docs for R::OP::FloatComplex class.
    * Add docs for R::OP::AnyObject class.
    * Add docs for R::OP::String class.
    * Add docs for R::OP::StringBuffer class.
    * Add docs for R::OP::Time::Piece class.
  [Incompatible Changes]
    * If concatnation C<.> operation throw an exceptions R::OP::String#concat method, the element is set to C<undef>.
    * elem_to_string method in R::OP::String, R::OP::StringBuffer, R::OP::TimePiece, R::OP::AnyObject returns undef instead of "undef" if the input data is undef.
    * Improve R::NDArray::Time::Piece#elem_cmp logic. LONG_MIN is not used.
    * Change an argument of R::NDArray#elem_cmp method and the same methods inf its child classes.
      [Before]
      method elem_cmp : int ($data : object, $a_data_index : int, $b_data_index : int);
      [After]
      method elem_cmp : int ($a_data : object, $a_data_index : int, $b_data : object, $b_data_index : int);
0.021 2024-08-12
  [Test Improvement]
    * Add tests for R::DataFrame.
    * Add tests for R::OP.
  [Changes]
    * Allow R::NDArray#order method to receive non-vector n-dimentional array.
    * Allow R::OP#rep method receive non-vector n-dimentional array.
  [Document Improvement]
    * Add docs for R::DataFrame class.
    * Add docs for R::OP::DataFrame class.
    * Add docs for R::Util class.
    * Add docs for R::OP.
  [Internal Changes]
    * Cleanup exception logic in methods in R::Util class.
    
0.020 2024-08-07
  [Document Improvement]
    * Add docs for R::OP::Matrix::Double class.
    * Add docs for R::OP::Matrix::Float class.
    * Add docs for R::OP::Matrix::DoubleComplex class.
    * Add docs for R::OP::Matrix::FloatComplex class.
    * Fix docs for R::NDArray::DoubleComplex class.
    
  [Exception Message Improvement]
    * Improve exception messages in R::OP::Matrix::Double class.
    * Improve exception messages in R::OP::Matrix::Float class.
    * Improve exception messages in R::OP::Matrix::DoubleComplex class.
    * Improve exception messages in R::OP::Matrix::FloatComplex class.
  
  [New Features]
    * R::DataFrame#slice method sets $colnames arguemnt to all column names if this is not defined.
    * Add R::OP::DataFrame#subset method.
    * Add R::OP::DataFrame#na_omit method.
    
0.019 2024-08-05
  [Bug Fix]
    * Fix a bug that R::OP::Matrix#rbind method does not work well.
    * Fix a bug that R::OP::Matrix::Float#diag method allows only matrix argument.
    * Fix a bug that R::OP::Matrix::FloatComplex#diag method allows only matrix argument.
    * Fix a bug that R::OP::Matrix::DoubleComplex#diag method allows only matrix argument.
    * Fix a bug that R::OP::Matrix::Float#solve method allows determinent 0 matrix argument.
    * Fix a bug that R::OP::Matrix::FloatComplex#solve method allows determinent 0 matrix argument.
    * Fix a bug that R::OP::Matrix::DoubleComplex#solve method allows determinent 0 matrix argument.
    * Fix a bug that R::OP::Matrix::DoubleComplex#det method allows non-square matrix argument.
    * Fix a bug that R::OP::Matrix::DoubleComplex#solve method allows determinent 0 matrix argument.
  [Test Improvement]
    * Add tests for R::OP::Matrix#cbind method.
    * Add tests for R::OP::Matrix#rbind method.
    * Add and cleanup tests for R::OP::Matrix::Double#diag method.
    * Add tests for R::OP::Matrix::Double#slice_diag method.
    * Add tests for R::OP::Matrix::Double#identity method.
    * Add tests for R::OP::Matrix::Double#mul method.
    * Add tests for R::OP::Matrix::Double#t method.
    * Add tests for R::OP::Matrix::Double#det method.
    * Add tests for R::OP::Matrix::Double#solve method.
    * Add tests for R::OP::Matrix::Double#eigen method.
    * Add tests for R::OP::Matrix::Float#diag method.
    * Add tests for R::OP::Matrix::Float#slice_diag method.
    * Add tests for R::OP::Matrix::Float#identity method.
    * Add tests for R::OP::Matrix::Float#mul method.
    * Add tests for R::OP::Matrix::Float#t method.
    * Add tests for R::OP::Matrix::Float#det method.
    * Add tests for R::OP::Matrix::Float#solve method.
    * Add tests for R::OP::Matrix::Float#eigen method.
    * Add tests for R::OP::Matrix::DoubleComplex#slice_diag method.
    * Add tests for R::OP::Matrix::DoubleComplex#identity method.
    * Add tests for R::OP::Matrix::DoubleComplex#mul method.
    * Add tests for R::OP::Matrix::DoubleComplex#t method.
    * Add tests for R::OP::Matrix::DoubleComplex#det method.
    * Add tests for R::OP::Matrix::DoubleComplex#solve method.
    * Add tests for R::OP::Matrix::DoubleComplex#eigen method.
    * Add tests for R::OP::Matrix::FloatComplex#slice_diag method.
    * Add tests for R::OP::Matrix::FloatComplex#identity method.
    * Add tests for R::OP::Matrix::FloatComplex#mul method.
    * Add tests for R::OP::Matrix::FloatComplex#t method.
    * Add tests for R::OP::Matrix::FloatComplex#det method.
    * Add tests for R::OP::Matrix::FloatComplex#solve method.
    * Add tests for R::OP::Matrix::FloatComplex#eigen method.
  [Document Improvement]
    * Add docs for R::OP::Matrix class.
    
0.018 2024-08-03
  [Requirement Changes]
    * Require -std=C++17 in gcc/clang compiler.
  [Test Improvement]
    * Add CIs.
  [Test Bug Fix]
    * Fix bugs that old R::NDArray::Object and R::OP::Object is loaded in test codes.
0.017 2024-08-01
  [Test Improvement]
    * Add many tests.
  [Bug Fix]
    * Fix some bugs.
0.016 2024-07-31
  [Test Improvement]
    * Add many tests.
  [Bug Fix]
    * Fix some bugs.
0.015 2024-07-26
  [Incompatibe Changes]
    * There are some incompatible changes.
  [Bug Fix]
    * Fix some bugs.
  [Test Improvement]
    * Add many tests.
0.014 2024-07-24
  [Incompatibe Changes]
    * There are some incompatible changes.
  [Bug Fix]
    * Fix some bugs.
  [Test Improvement]
    * Add many tests.
0.013 2024-07-23
  [Incompatibe Changes]
    * There are some incompatible changes.
  [Document Improvement]
    * Add some docs.
  [Bug Fix]
    * Fix some bugs.
  [Test Improvement]
    * Add many tests.
0.012 2024-07-17
  [Incompatibe Changes]
    * There are some incompatible changes.
  [Document Improvement]
    * Add some docs.
  [Bug Fix]
    * Fix many bugs.
0.011 2024-07-17
  [Requirement Changes]
    * Require SPVM::Resource::Eigen 0.001.
  [Incompatibe Changes]
    * There are many incompatible changes.
  [Document Improvement]
    * Add some docs.
0.011 2024-07-17
  [Incompatibe Changes]
    * There are many incompatible changes.
  [Document Improvement]
    * Add some docs.
0.010 2024-07-16
  [Incompatibe Changes]
    * There are many incompatible changes.
  [Document Improvement]
    * Add some docs.
0.009 2024-07-15
  [Incompatibe Changes]
    * There are many incompatible changes.
  [Document Improvement]
    * Add some docs.
0.008 2024-07-11
  [Incompatibe Changes]
    * There are many incompatible changes.
  [Document Improvement]
    * Add some docs.
0.007 2024-07-10
  [Incompatibe Changes]
    * There are many incompatible changes.

0.006 2024-07-09
  [Incompatibe Changes]
    * There are many incompatible changes.

0.005 2024-07-08
  [Incompatibe Changes]
    * There are many incompatible changes.

0.004 2024-07-03
  [Incompatibe Changes]
    * There are many incompatible changes.

0.003 2024-07-01
  [Incompatibe Changes]
    * There are many incompatible changes.

0.002 2024-06-28
  [Incompatibe Changes]
    * There are many incompatible changes.
  
0.001 2024-06-26
  [Changes]
    * First developement release. Tests are not yet done. All of method and field definitions in all classes will be changed.
  
