llama_cpp 0.20.0 → 0.20.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 33d3b46593a1ee0950c7f86ffe802f5841e8e065bc2bdf7d9679dcff37dbe06b
4
- data.tar.gz: 117eba5fa85437e8cd0bb8767090bf63b4e72e523f96e8cf539a9ddf2cd15195
3
+ metadata.gz: 28d21cfaf9a14c0796cac348176745618950a8a50c6697a97038c164901dbb2b
4
+ data.tar.gz: e3ad3a9ae3b7de6817ac3095d09139656f87eba715818849cfef8e6860d112fd
5
5
  SHA512:
6
- metadata.gz: '0825dfa498b5a6616bebacb1b7aeec03db58b2ea992cafeebf4fc3e7553fbd2d30c6d14fda80caee8d303b84dfe447429a720add1c028eac17a16778c311d218'
7
- data.tar.gz: 3b29add60fe63985974daa34b2e1d6a198688d83b495e6fe5381ca97074752f526a2900ae0e85c298a89d80f723c662d685fdefd74814ef956bd54567ef83c5b
6
+ metadata.gz: f5c78500983f3363357be99de9968105c4f13ee1d4fd6709473624dcc752fa80d356d7b43422a61392da67f89dd6f906829bfb45b6aa243af997e7b147775c68
7
+ data.tar.gz: 5c8861198147c411374acd9fea4aa959f8c225516b1858e81640d6b5460ea0239af2fb24d13832f82d0aa647623097a2603904e7943cfa39baefbdfc53c4c149
data/CHANGELOG.md CHANGED
@@ -1,3 +1,26 @@
1
+ ## [[0.20.2](https://github.com/yoshoku/llama_cpp.rb/compare/v0.20.1...v0.20.2)] - 2025-06-07
2
+
3
+ - Change supported llama.cpp version to b5600
4
+ - Add `llama_model_n_swa` module function.
5
+ - Add `llama_model_n_cls_out` module function.
6
+ - Add `llama_model_cls_label` module function.
7
+ - Add `LlamaMemoryT` class.
8
+ - Add `llama_memory_clear` module function.
9
+ - Add `llama_memory_seq_rm` module function.
10
+ - Add `llama_memory_seq_cp` module function.
11
+ - Add `llama_memory_seq_keep` module function.
12
+ - Add `llama_memory_seq_add` module function.
13
+ - Add `llama_memory_seq_div` module function.
14
+ - Add `llama_memory_seq_pos_min` module function.
15
+ - Add `llama_memory_seq_pos_max` module function.
16
+ - Add `llama_memory_can_shift?` module function.
17
+ - Add `llama_get_memory` module function.
18
+
19
+ ## [[0.20.1](https://github.com/yoshoku/llama_cpp.rb/compare/v0.20.0...v0.20.1)] - 2025-05-31
20
+
21
+ - Change supported llama.cpp version to b5530
22
+ - Add `llama_max_parallel_sequences` module function.
23
+
1
24
  ## [[0.20.0](https://github.com/yoshoku/llama_cpp.rb/compare/v0.19.6...v0.20.0)] - 2025-05-23
2
25
 
3
26
  - Change supported llama.cpp version to b5460
@@ -10,6 +10,7 @@ VALUE rb_cLlamaContextParams;
10
10
  VALUE rb_cLlamaModelQuantizeParams;
11
11
  VALUE rb_cLlamaLogitBias;
12
12
  VALUE rb_cLlamaAdapterLora;
13
+ VALUE rb_cLlamaMemoryT;
13
14
  VALUE rb_cLlamaKvCache;
14
15
  VALUE rb_cLlamaTokenDataArray;
15
16
  VALUE rb_cLlamaBatch;
@@ -1322,6 +1323,14 @@ static VALUE rb_llama_max_devices(VALUE self) {
1322
1323
  return SIZET2NUM(llama_max_devices());
1323
1324
  }
1324
1325
 
1326
+ /**
1327
+ * @overload llama_max_parallel_sequences
1328
+ * @return [Integer]
1329
+ */
1330
+ static VALUE rb_llama_max_parallel_sequences(VALUE self) {
1331
+ return SIZET2NUM(llama_max_parallel_sequences());
1332
+ }
1333
+
1325
1334
  /**
1326
1335
  * @overload llama_supports_mmap?
1327
1336
  * @return [Boolean]
@@ -1544,6 +1553,20 @@ static VALUE rb_llama_model_n_head_kv(VALUE self, VALUE model) {
1544
1553
  return INT2NUM(llama_model_n_head_kv(model_wrapper->model));
1545
1554
  }
1546
1555
 
1556
+ /**
1557
+ * @overload llama_model_n_swa(model)
1558
+ * @param [LlamaModel] model
1559
+ * @return [Integer]
1560
+ */
1561
+ static VALUE rb_llama_model_n_swa(VALUE self, VALUE model) {
1562
+ if (!rb_obj_is_kind_of(model, rb_cLlamaModel)) {
1563
+ rb_raise(rb_eArgError, "model must be a LlamaModel");
1564
+ return Qnil;
1565
+ }
1566
+ llama_model_wrapper* model_wrapper = get_llama_model_wrapper(model);
1567
+ return INT2NUM(llama_model_n_swa(model_wrapper->model));
1568
+ }
1569
+
1547
1570
  /**
1548
1571
  * @overload llama_model_rope_freq_scale_train(model)
1549
1572
  * @param [LlamaModel] model
@@ -1558,6 +1581,41 @@ static VALUE rb_llama_model_rope_freq_scale_train(VALUE self, VALUE model) {
1558
1581
  return DBL2NUM(llama_model_rope_freq_scale_train(model_wrapper->model));
1559
1582
  }
1560
1583
 
1584
+ /**
1585
+ * @overload llama_model_n_cls_out(model)
1586
+ * @param [LlamaModel] model
1587
+ * @return [Integer]
1588
+ */
1589
+ static VALUE rb_llama_model_n_cls_out(VALUE self, VALUE model) {
1590
+ if (!rb_obj_is_kind_of(model, rb_cLlamaModel)) {
1591
+ rb_raise(rb_eArgError, "model must be a LlamaModel");
1592
+ return Qnil;
1593
+ }
1594
+ llama_model_wrapper* model_wrapper = get_llama_model_wrapper(model);
1595
+ return UINT2NUM(llama_model_n_cls_out(model_wrapper->model));
1596
+ }
1597
+
1598
+ /**
1599
+ * @overload llama_model_cls_label(model, id)
1600
+ * @param [LlamaModel] model
1601
+ * @param [Integer] id
1602
+ * @return [Integer]
1603
+ */
1604
+ static VALUE rb_llama_model_cls_label(VALUE self, VALUE model, VALUE id) {
1605
+ if (!rb_obj_is_kind_of(model, rb_cLlamaModel)) {
1606
+ rb_raise(rb_eArgError, "model must be a LlamaModel");
1607
+ return Qnil;
1608
+ }
1609
+ if (!RB_INTEGER_TYPE_P(id)) {
1610
+ rb_raise(rb_eArgError, "id must be an Integer");
1611
+ return Qnil;
1612
+ }
1613
+ llama_model_wrapper* model_wrapper = get_llama_model_wrapper(model);
1614
+ const char* str = llama_model_cls_label(model_wrapper->model, NUM2UINT(id));
1615
+ RB_GC_GUARD(model);
1616
+ return rb_utf8_str_new_cstr(str);
1617
+ }
1618
+
1561
1619
  /**
1562
1620
  * @overload llama_vocab_type(vocab)
1563
1621
  * @param [LlamaVocab] vocab
@@ -1845,6 +1903,239 @@ static VALUE rb_llama_adapter_lora_free(VALUE self, VALUE adapter) {
1845
1903
  return Qnil;
1846
1904
  }
1847
1905
 
1906
+ /* llama_memory_t wrapper */
1907
+ typedef struct {
1908
+ struct llama_memory_t* memory;
1909
+ } llama_memory_t_wrapper;
1910
+
1911
+ static void llama_memory_t_wrapper_free(void *ptr) {
1912
+ llama_memory_t_wrapper* memory_wrapper = (llama_memory_t_wrapper*)ptr;
1913
+ if (memory_wrapper) {
1914
+ if (memory_wrapper->memory != NULL) {
1915
+ llama_memory_clear(memory_wrapper->memory);
1916
+ memory_wrapper->memory = NULL;
1917
+ }
1918
+ }
1919
+ if (ptr) {
1920
+ ruby_xfree(ptr);
1921
+ }
1922
+ }
1923
+
1924
+ static size_t llama_memory_t_wrapper_size(const void *ptr) {
1925
+ return sizeof(*((llama_memory_t_wrapper*)ptr));
1926
+ }
1927
+
1928
+ static rb_data_type_t llama_memory_t_wrapper_data_type = {
1929
+ "LlamaMemory",
1930
+ { NULL,
1931
+ llama_memory_t_wrapper_free,
1932
+ llama_memory_t_wrapper_size },
1933
+ NULL,
1934
+ NULL,
1935
+ RUBY_TYPED_FREE_IMMEDIATELY
1936
+ };
1937
+
1938
+ static VALUE llama_memory_t_wrapper_alloc(VALUE self) {
1939
+ llama_memory_t_wrapper* data = (llama_memory_t_wrapper*)ruby_xmalloc(sizeof(llama_memory_t_wrapper));
1940
+ data->memory = NULL;
1941
+ return TypedData_Wrap_Struct(self, &llama_memory_t_wrapper_data_type, data);
1942
+ }
1943
+
1944
+ static llama_memory_t_wrapper* get_llama_memory_t_wrapper(VALUE self) {
1945
+ llama_memory_t_wrapper* data = NULL;
1946
+ TypedData_Get_Struct(self, llama_memory_t_wrapper, &llama_memory_t_wrapper_data_type, data);
1947
+ return data;
1948
+ }
1949
+
1950
+ static VALUE rb_llama_memory_clear(VALUE self, VALUE memory) {
1951
+ if (!rb_obj_is_kind_of(memory, rb_cLlamaMemoryT)) {
1952
+ rb_raise(rb_eArgError, "memory must be a LlamaMemoryT");
1953
+ return Qnil;
1954
+ }
1955
+ llama_memory_t_wrapper* memory_wrapper = get_llama_memory_t_wrapper(memory);
1956
+ llama_memory_clear(memory_wrapper->memory);
1957
+ RB_GC_GUARD(memory);
1958
+ return Qnil;
1959
+ }
1960
+
1961
+ static VALUE rb_llama_memory_seq_rm(VALUE self, VALUE memory, VALUE seq_id, VALUE p0, VALUE p1) {
1962
+ if (!rb_obj_is_kind_of(memory, rb_cLlamaMemoryT)) {
1963
+ rb_raise(rb_eArgError, "memory must be a LlamaMemoryT");
1964
+ return Qnil;
1965
+ }
1966
+ if (!RB_INTEGER_TYPE_P(seq_id)) {
1967
+ rb_raise(rb_eArgError, "seq_id must be an Integer");
1968
+ return Qnil;
1969
+ }
1970
+ if (!RB_INTEGER_TYPE_P(p0)) {
1971
+ rb_raise(rb_eArgError, "p0 must be an Integer");
1972
+ return Qnil;
1973
+ }
1974
+ if (!RB_INTEGER_TYPE_P(p1)) {
1975
+ rb_raise(rb_eArgError, "p1 must be an Integer");
1976
+ return Qnil;
1977
+ }
1978
+ llama_memory_t_wrapper* memory_wrapper = get_llama_memory_t_wrapper(memory);
1979
+ const bool res = llama_memory_seq_rm(memory_wrapper->memory, NUM2INT(seq_id), NUM2INT(p0), NUM2INT(p1));
1980
+ RB_GC_GUARD(memory);
1981
+ return res ? Qtrue : Qfalse;
1982
+ }
1983
+
1984
+ static VALUE rb_llama_memory_seq_cp(VALUE self, VALUE memory, VALUE seq_id_src, VALUE seq_id_dst, VALUE p0, VALUE p1) {
1985
+ if (!rb_obj_is_kind_of(memory, rb_cLlamaMemoryT)) {
1986
+ rb_raise(rb_eArgError, "memory must be a LlamaMemoryT");
1987
+ return Qnil;
1988
+ }
1989
+ if (!RB_INTEGER_TYPE_P(seq_id_src)) {
1990
+ rb_raise(rb_eArgError, "seq_id_src must be an Integer");
1991
+ return Qnil;
1992
+ }
1993
+ if (!RB_INTEGER_TYPE_P(seq_id_dst)) {
1994
+ rb_raise(rb_eArgError, "seq_id_dst must be an Integer");
1995
+ return Qnil;
1996
+ }
1997
+ if (!RB_INTEGER_TYPE_P(p0)) {
1998
+ rb_raise(rb_eArgError, "p0 must be an Integer");
1999
+ return Qnil;
2000
+ }
2001
+ if (!RB_INTEGER_TYPE_P(p1)) {
2002
+ rb_raise(rb_eArgError, "p1 must be an Integer");
2003
+ return Qnil;
2004
+ }
2005
+ llama_memory_t_wrapper* memory_wrapper = get_llama_memory_t_wrapper(memory);
2006
+ llama_memory_seq_cp(memory_wrapper->memory, NUM2INT(seq_id_src), NUM2INT(seq_id_dst), NUM2INT(p0), NUM2INT(p1));
2007
+ RB_GC_GUARD(memory);
2008
+ return Qnil;
2009
+ }
2010
+
2011
+ static VALUE rb_llama_memory_seq_keep(VALUE self, VALUE memory, VALUE seq_id) {
2012
+ if (!rb_obj_is_kind_of(memory, rb_cLlamaMemoryT)) {
2013
+ rb_raise(rb_eArgError, "memory must be a LlamaMemoryT");
2014
+ return Qnil;
2015
+ }
2016
+ if (!RB_INTEGER_TYPE_P(seq_id)) {
2017
+ rb_raise(rb_eArgError, "seq_id must be an Integer");
2018
+ return Qnil;
2019
+ }
2020
+ llama_memory_t_wrapper* memory_wrapper = get_llama_memory_t_wrapper(memory);
2021
+ llama_memory_seq_keep(memory_wrapper->memory, NUM2INT(seq_id));
2022
+ RB_GC_GUARD(memory);
2023
+ return Qnil;
2024
+ }
2025
+
2026
+ static VALUE rb_llama_memory_seq_add(VALUE self, VALUE memory, VALUE seq_id, VALUE p0, VALUE p1, VALUE delta) {
2027
+ if (!rb_obj_is_kind_of(memory, rb_cLlamaMemoryT)) {
2028
+ rb_raise(rb_eArgError, "memory must be a LlamaMemoryT");
2029
+ return Qnil;
2030
+ }
2031
+ if (!RB_INTEGER_TYPE_P(seq_id)) {
2032
+ rb_raise(rb_eArgError, "seq_id must be an Integer");
2033
+ return Qnil;
2034
+ }
2035
+ if (!RB_INTEGER_TYPE_P(p0)) {
2036
+ rb_raise(rb_eArgError, "p0 must be an Integer");
2037
+ return Qnil;
2038
+ }
2039
+ if (!RB_INTEGER_TYPE_P(p1)) {
2040
+ rb_raise(rb_eArgError, "p1 must be an Integer");
2041
+ return Qnil;
2042
+ }
2043
+ if (!RB_INTEGER_TYPE_P(delta)) {
2044
+ rb_raise(rb_eArgError, "delta must be an Integer");
2045
+ return Qnil;
2046
+ }
2047
+ llama_memory_t_wrapper* memory_wrapper = get_llama_memory_t_wrapper(memory);
2048
+ llama_memory_seq_add(memory_wrapper->memory, NUM2INT(seq_id), NUM2INT(p0), NUM2INT(p1), NUM2INT(delta));
2049
+ RB_GC_GUARD(memory);
2050
+ return Qnil;
2051
+ }
2052
+
2053
+ static VALUE rb_llama_memory_seq_div(VALUE self, VALUE memory, VALUE seq_id, VALUE p0, VALUE p1, VALUE d) {
2054
+ if (!rb_obj_is_kind_of(memory, rb_cLlamaMemoryT)) {
2055
+ rb_raise(rb_eArgError, "memory must be a LlamaMemoryT");
2056
+ return Qnil;
2057
+ }
2058
+ if (!RB_INTEGER_TYPE_P(seq_id)) {
2059
+ rb_raise(rb_eArgError, "seq_id must be an Integer");
2060
+ return Qnil;
2061
+ }
2062
+ if (!RB_INTEGER_TYPE_P(p0)) {
2063
+ rb_raise(rb_eArgError, "p0 must be an Integer");
2064
+ return Qnil;
2065
+ }
2066
+ if (!RB_INTEGER_TYPE_P(p1)) {
2067
+ rb_raise(rb_eArgError, "p1 must be an Integer");
2068
+ return Qnil;
2069
+ }
2070
+ if (!RB_INTEGER_TYPE_P(d)) {
2071
+ rb_raise(rb_eArgError, "d must be an Integer");
2072
+ return Qnil;
2073
+ }
2074
+ llama_memory_t_wrapper* memory_wrapper = get_llama_memory_t_wrapper(memory);
2075
+ llama_memory_seq_div(memory_wrapper->memory, NUM2INT(seq_id), NUM2INT(p0), NUM2INT(p1), NUM2INT(d));
2076
+ RB_GC_GUARD(memory);
2077
+ return Qnil;
2078
+ }
2079
+
2080
+ static VALUE rb_llama_memory_seq_pos_min(VALUE self, VALUE memory, VALUE seq_id) {
2081
+ if (!rb_obj_is_kind_of(memory, rb_cLlamaMemoryT)) {
2082
+ rb_raise(rb_eArgError, "memory must be a LlamaMemoryT");
2083
+ return Qnil;
2084
+ }
2085
+ if (!RB_INTEGER_TYPE_P(seq_id)) {
2086
+ rb_raise(rb_eArgError, "seq_id must be an Integer");
2087
+ return Qnil;
2088
+ }
2089
+ llama_memory_t_wrapper* memory_wrapper = get_llama_memory_t_wrapper(memory);
2090
+ llama_pos pos_min = llama_memory_seq_pos_min(memory_wrapper->memory, NUM2INT(seq_id));
2091
+ RB_GC_GUARD(memory);
2092
+ return INT2NUM(pos_min);
2093
+ }
2094
+
2095
+ static VALUE rb_llama_memory_seq_pos_max(VALUE self, VALUE memory, VALUE seq_id) {
2096
+ if (!rb_obj_is_kind_of(memory, rb_cLlamaMemoryT)) {
2097
+ rb_raise(rb_eArgError, "memory must be a LlamaMemoryT");
2098
+ return Qnil;
2099
+ }
2100
+ if (!RB_INTEGER_TYPE_P(seq_id)) {
2101
+ rb_raise(rb_eArgError, "seq_id must be an Integer");
2102
+ return Qnil;
2103
+ }
2104
+ llama_memory_t_wrapper* memory_wrapper = get_llama_memory_t_wrapper(memory);
2105
+ llama_pos pos_max = llama_memory_seq_pos_max(memory_wrapper->memory, NUM2INT(seq_id));
2106
+ RB_GC_GUARD(memory);
2107
+ return INT2NUM(pos_max);
2108
+ }
2109
+
2110
+ static VALUE rb_llama_memory_can_shift(VALUE self, VALUE memory) {
2111
+ if (!rb_obj_is_kind_of(memory, rb_cLlamaMemoryT)) {
2112
+ rb_raise(rb_eArgError, "memory must be a LlamaMemoryT");
2113
+ return Qnil;
2114
+ }
2115
+ llama_memory_t_wrapper* memory_wrapper = get_llama_memory_t_wrapper(memory);
2116
+ const bool can_shift = llama_memory_can_shift(memory_wrapper->memory);
2117
+ RB_GC_GUARD(memory);
2118
+ return can_shift ? Qtrue : Qfalse;
2119
+ }
2120
+
2121
+ /**
2122
+ * @overload llama_get_memory(context)
2123
+ * @param [LlamaContext] context
2124
+ * @return [LlamaMemoryT]
2125
+ */
2126
+ static VALUE rb_llama_get_memory(VALUE self, VALUE ctx) {
2127
+ if (!rb_obj_is_kind_of(ctx, rb_cLlamaContext)) {
2128
+ rb_raise(rb_eArgError, "ctx must be a LlamaContext");
2129
+ return Qnil;
2130
+ }
2131
+ llama_context_wrapper* context_wrapper = get_llama_context_wrapper(ctx);
2132
+ llama_memory_t memory = llama_get_memory(context_wrapper->context);
2133
+ llama_memory_t_wrapper* memory_wrapper = (llama_memory_t_wrapper*)ruby_xmalloc(sizeof(llama_memory_t_wrapper));
2134
+ memory_wrapper->memory = memory;
2135
+ RB_GC_GUARD(ctx);
2136
+ return TypedData_Wrap_Struct(rb_cLlamaMemoryT, &llama_memory_t_wrapper_data_type, memory_wrapper);
2137
+ }
2138
+
1848
2139
  /* llama_kv_cache wrapper */
1849
2140
  typedef struct {
1850
2141
  struct llama_kv_cache* kv_cache;
@@ -4684,6 +4975,9 @@ void Init_llama_cpp(void) {
4684
4975
  /* llama_max_devices */
4685
4976
  rb_define_module_function(rb_mLlamaCpp, "llama_max_devices", rb_llama_max_devices, 0);
4686
4977
 
4978
+ /* llama_max_parallel_sequences */
4979
+ rb_define_module_function(rb_mLlamaCpp, "llama_max_parallel_sequences", rb_llama_max_parallel_sequences, 0);
4980
+
4687
4981
  /* llama_supports_mmap */
4688
4982
  rb_define_module_function(rb_mLlamaCpp, "llama_supports_mmap?", rb_llama_supports_mmap, 0);
4689
4983
 
@@ -4714,6 +5008,9 @@ void Init_llama_cpp(void) {
4714
5008
  /* llama_get_kv_self */
4715
5009
  rb_define_module_function(rb_mLlamaCpp, "llama_get_kv_self", rb_llama_get_kv_self, 1);
4716
5010
 
5011
+ /* llama_get_memory */
5012
+ rb_define_module_function(rb_mLlamaCpp, "llama_get_memory", rb_llama_get_memory, 1);
5013
+
4717
5014
  /* llama_pooling_type */
4718
5015
  rb_define_module_function(rb_mLlamaCpp, "llama_pooling_type", rb_llama_pooling_type, 1);
4719
5016
 
@@ -4738,9 +5035,18 @@ void Init_llama_cpp(void) {
4738
5035
  /* llama_model_n_head_kv */
4739
5036
  rb_define_module_function(rb_mLlamaCpp, "llama_model_n_head_kv", rb_llama_model_n_head_kv, 1);
4740
5037
 
5038
+ /* llama_model_n_swa */
5039
+ rb_define_module_function(rb_mLlamaCpp, "llama_model_n_swa", rb_llama_model_n_swa, 1);
5040
+
4741
5041
  /* llama_model_rope_freq_scale_train */
4742
5042
  rb_define_module_function(rb_mLlamaCpp, "llama_model_rope_freq_scale_train", rb_llama_model_rope_freq_scale_train, 1);
4743
5043
 
5044
+ /* llama_model_n_cls_out */
5045
+ rb_define_module_function(rb_mLlamaCpp, "llama_model_n_cls_out", rb_llama_model_n_cls_out, 1);
5046
+
5047
+ /* llama_model_cls_label */
5048
+ rb_define_module_function(rb_mLlamaCpp, "llama_model_cls_label", rb_llama_model_cls_label, 2);
5049
+
4744
5050
  /* llama_vocab_type */
4745
5051
  rb_define_module_function(rb_mLlamaCpp, "llama_vocab_type", rb_llama_vocab_type, 1);
4746
5052
 
@@ -4796,6 +5102,40 @@ void Init_llama_cpp(void) {
4796
5102
 
4797
5103
  /* TODO: llama_apply_adapter_cvec */
4798
5104
 
5105
+ /**
5106
+ * Document-class: LlamaCpp::LlamaMemoryT
5107
+ * "struct llama_memory_t" wrapper class
5108
+ */
5109
+ rb_cLlamaMemoryT = rb_define_class_under(rb_mLlamaCpp, "LlamaMemoryT", rb_cObject);
5110
+ rb_define_alloc_func(rb_cLlamaMemoryT, llama_memory_t_wrapper_alloc);
5111
+
5112
+ /* llama_memory_clear */
5113
+ rb_define_module_function(rb_mLlamaCpp, "llama_memory_clear", rb_llama_memory_clear, 1);
5114
+
5115
+ /* llama_memory_seq_rm */
5116
+ rb_define_module_function(rb_mLlamaCpp, "llama_memory_seq_rm", rb_llama_memory_seq_rm, 4);
5117
+
5118
+ /* llama_memory_seq_cp */
5119
+ rb_define_module_function(rb_mLlamaCpp, "llama_memory_seq_cp", rb_llama_memory_seq_cp, 5);
5120
+
5121
+ /* llama_memory_seq_keep */
5122
+ rb_define_module_function(rb_mLlamaCpp, "llama_memory_seq_keep", rb_llama_memory_seq_keep, 2);
5123
+
5124
+ /* llama_memory_seq_add */
5125
+ rb_define_module_function(rb_mLlamaCpp, "llama_memory_seq_add", rb_llama_memory_seq_add, 5);
5126
+
5127
+ /* llama_memory_seq_div */
5128
+ rb_define_module_function(rb_mLlamaCpp, "llama_memory_seq_div", rb_llama_memory_seq_div, 5);
5129
+
5130
+ /* llama_memory_seq_pos_min */
5131
+ rb_define_module_function(rb_mLlamaCpp, "llama_memory_seq_pos_min", rb_llama_memory_seq_pos_min, 2);
5132
+
5133
+ /* llama_memory_seq_pos_max */
5134
+ rb_define_module_function(rb_mLlamaCpp, "llama_memory_seq_pos_max", rb_llama_memory_seq_pos_max, 2);
5135
+
5136
+ /* llama_memory_can_shift */
5137
+ rb_define_module_function(rb_mLlamaCpp, "llama_memory_can_shift?", rb_llama_memory_can_shift, 1);
5138
+
4799
5139
  /**
4800
5140
  * Document-class: LlamaCpp::LlamaKvCache
4801
5141
  * "struct llama_kv_cache" wrapper class
@@ -3,8 +3,8 @@
3
3
  # llama_cpp.rb provides Ruby bindings for the llama.cpp.
4
4
  module LlamaCpp
5
5
  # The version of llama_cpp.rb you install.
6
- VERSION = '0.20.0'
6
+ VERSION = '0.20.2'
7
7
 
8
8
  # The supported version of llama.cpp.
9
- LLAMA_CPP_VERSION = 'b5460'
9
+ LLAMA_CPP_VERSION = 'b5600'
10
10
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: llama_cpp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.20.0
4
+ version: 0.20.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - yoshoku
@@ -49,7 +49,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
49
49
  - !ruby/object:Gem::Version
50
50
  version: '0'
51
51
  requirements: []
52
- rubygems_version: 3.6.9
52
+ rubygems_version: 3.6.7
53
53
  specification_version: 4
54
54
  summary: Ruby bindings for the llama.cpp.
55
55
  test_files: []