llama_cpp 0.21.0 → 0.21.1

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: 691ff52591a63387090485f1d322726b8dc5dc89630cdac4fe2bfcb3372da50d
4
- data.tar.gz: c27f3a43878e787f32eaeaa2538d03dca4e2e3de0484ad2e920ec14826cf6ba5
3
+ metadata.gz: 64aab047f44a9002c5c388f6a774448671d7be9618170310d2b7dd1091a99670
4
+ data.tar.gz: 63f0d908b99a45865a9b9d81ae595adb0d9a1f258976267da3ce5b5df747ae0d
5
5
  SHA512:
6
- metadata.gz: df049a84a78bb2d95cd4fe1f63f05c1bb9f965c0e5c3bfaca9668e98fca0db2eb8d80560ffa819540fa25b0a099a0b2a3feafc85a38d73632f3db79445d19a07
7
- data.tar.gz: d9138045ba1d37dbaab919ea973ef81306dde30dd6d67048660108dd9f90fe1ffe671becd7f295afa2b01150d73269ac045474373c98ff5805ce35c582dd28d4
6
+ metadata.gz: 4f5344b36ff0c0bbd812f25f2b7a897893cb8ffb0700e3f8c23dfbd81cc8b1c4ee1893d5198c74df625fbc3c4c925f32e4c868c60b6ed13e7a5412eef3d9b2b6
7
+ data.tar.gz: dbc8d279a9284ba62786d3c5d267352445814289cb1f8a2268d2bb2ff72a4bc7a2534cb2c4582f945e13a68a645cec51101085203ff6dac1a2b7df6885412398
data/CHANGELOG.md CHANGED
@@ -1,3 +1,11 @@
1
+ ## [[0.21.1](https://github.com/yoshoku/llama_cpp.rb/compare/v0.21.0...v0.21.1)] - 2025-07-19
2
+
3
+ - Change supported llama.cpp version to b5930.
4
+ - Add `n_reused` reader to `LlamaPerfContextData`.
5
+ - Add `llama_vocab_mask` module function.
6
+ - Add `kv_unified` accessor to `LlamaContextParams`.
7
+ - Add `LLAMA_VOCAB_TYPE_PLAMO2` contant.
8
+
1
9
  ## [[0.21.0](https://github.com/yoshoku/llama_cpp.rb/compare/v0.20.4...v0.21.0)] - 2025-07-12
2
10
 
3
11
  - Change supported llama.cpp version to b5870.
@@ -838,6 +838,17 @@ static VALUE llama_context_params_set_swa_full(VALUE self, VALUE swa_full) {
838
838
  return swa_full;
839
839
  }
840
840
 
841
+ static VALUE llama_context_params_get_kv_unified(VALUE self) {
842
+ struct llama_context_params* data = get_llama_context_params(self);
843
+ return data->kv_unified ? Qtrue : Qfalse;
844
+ }
845
+
846
+ static VALUE llama_context_params_set_kv_unified(VALUE self, VALUE kv_unified) {
847
+ struct llama_context_params* data = get_llama_context_params(self);
848
+ data->kv_unified = RTEST(kv_unified) ? true : false;
849
+ return kv_unified;
850
+ }
851
+
841
852
  /* llama_model_quantize_params */
842
853
  static void llama_model_quantize_params_free(void *ptr) {
843
854
  if (ptr) {
@@ -2940,6 +2951,22 @@ static VALUE rb_llama_vocab_pad(VALUE self, VALUE vocab) {
2940
2951
  return INT2NUM(token);
2941
2952
  }
2942
2953
 
2954
+ /**
2955
+ * @overload llama_vocab_mask(vocab)
2956
+ * @param [LlamaVocab] vocab
2957
+ * @return [Integer]
2958
+ */
2959
+ static VALUE rb_llama_vocab_mask(VALUE self, VALUE vocab) {
2960
+ if (!rb_obj_is_kind_of(vocab, rb_cLlamaVocab)) {
2961
+ rb_raise(rb_eArgError, "vocab must be a LlamaVocab");
2962
+ return Qnil;
2963
+ }
2964
+ llama_vocab_wrapper* vocab_wrapper = get_llama_vocab_wrapper(vocab);
2965
+ const int32_t token = llama_vocab_mask(vocab_wrapper->vocab);
2966
+ RB_GC_GUARD(vocab);
2967
+ return INT2NUM(token);
2968
+ }
2969
+
2943
2970
  /**
2944
2971
  * @overload llama_vocab_get_add_bos
2945
2972
  * @param [LlamaVocab] vocab
@@ -3914,6 +3941,7 @@ static VALUE llama_perf_context_data_alloc(VALUE self) {
3914
3941
  data->t_eval_ms = 0.0;
3915
3942
  data->n_p_eval = 0;
3916
3943
  data->n_eval = 0;
3944
+ data->n_reused = 0;
3917
3945
  return TypedData_Wrap_Struct(self, &llama_perf_context_data_type, data);
3918
3946
  }
3919
3947
 
@@ -3953,6 +3981,11 @@ static VALUE llama_perf_context_data_get_n_eval(VALUE self) {
3953
3981
  return INT2NUM(data->n_eval);
3954
3982
  }
3955
3983
 
3984
+ static VALUE llama_perf_context_data_get_n_reused(VALUE self) {
3985
+ struct llama_perf_context_data* data = get_llama_perf_context_data(self);
3986
+ return INT2NUM(data->n_reused);
3987
+ }
3988
+
3956
3989
  /* struct llama_perf_sampler_data */
3957
3990
  static void llama_perf_sampler_data_free(void* ptr) {
3958
3991
  if (ptr) {
@@ -4154,6 +4187,7 @@ void Init_llama_cpp(void) {
4154
4187
  rb_define_const(rb_mLlamaCpp, "LLAMA_VOCAB_TYPE_WPM", INT2NUM(LLAMA_VOCAB_TYPE_WPM));
4155
4188
  rb_define_const(rb_mLlamaCpp, "LLAMA_VOCAB_TYPE_UGM", INT2NUM(LLAMA_VOCAB_TYPE_UGM));
4156
4189
  rb_define_const(rb_mLlamaCpp, "LLAMA_VOCAB_TYPE_RWKV", INT2NUM(LLAMA_VOCAB_TYPE_RWKV));
4190
+ rb_define_const(rb_mLlamaCpp, "LLAMA_VOCAB_TYPE_PLAMO2", INT2NUM(LLAMA_VOCAB_TYPE_PLAMO2));
4157
4191
  /* llama_rope_type */
4158
4192
  /* Document-const: LlamaCpp::LLAMA_ROPE_TYPE_NONE */
4159
4193
  rb_define_const(rb_mLlamaCpp, "LLAMA_ROPE_TYPE_NONE", INT2NUM(LLAMA_ROPE_TYPE_NONE));
@@ -4746,6 +4780,17 @@ void Init_llama_cpp(void) {
4746
4780
  * @return [Boolean]
4747
4781
  */
4748
4782
  rb_define_method(rb_cLlamaContextParams, "swa_full=", RUBY_METHOD_FUNC(llama_context_params_set_swa_full), 1);
4783
+ /**
4784
+ * Document-method: kv_unified
4785
+ * @return [Boolean]
4786
+ */
4787
+ rb_define_method(rb_cLlamaContextParams, "kv_unified", RUBY_METHOD_FUNC(llama_context_params_get_kv_unified), 0);
4788
+ /**
4789
+ * Document-method: kv_unified=
4790
+ * @param [Boolean] kv_unified
4791
+ * @return [Boolean]
4792
+ */
4793
+ rb_define_method(rb_cLlamaContextParams, "kv_unified=", RUBY_METHOD_FUNC(llama_context_params_set_kv_unified), 1);
4749
4794
  /* TODO: ggml_abort_callback abort_callback */
4750
4795
  /* TODO: void* abort_callback_data */
4751
4796
 
@@ -5248,6 +5293,9 @@ void Init_llama_cpp(void) {
5248
5293
  /* llama_vocab_pad */
5249
5294
  rb_define_module_function(rb_mLlamaCpp, "llama_vocab_pad", rb_llama_vocab_pad, 1);
5250
5295
 
5296
+ /* llama_vocab_mask */
5297
+ rb_define_module_function(rb_mLlamaCpp, "llama_vocab_mask", rb_llama_vocab_mask, 1);
5298
+
5251
5299
  /* llama_vocab_get_add_bos */
5252
5300
  rb_define_module_function(rb_mLlamaCpp, "llama_vocab_get_add_bos", rb_llama_vocab_get_add_bos, 1);
5253
5301
 
@@ -5431,6 +5479,11 @@ void Init_llama_cpp(void) {
5431
5479
  * @return [Integer]
5432
5480
  */
5433
5481
  rb_define_method(rb_cLlamaPerfContextData, "n_eval", RUBY_METHOD_FUNC(llama_perf_context_data_get_n_eval), 0);
5482
+ /**
5483
+ * Document-method: n_reused
5484
+ * @return [Integer]
5485
+ */
5486
+ rb_define_method(rb_cLlamaPerfContextData, "n_reused", RUBY_METHOD_FUNC(llama_perf_context_data_get_n_reused), 0);
5434
5487
 
5435
5488
  /**
5436
5489
  * Document-class: LlamaCpp::LlamaPerfSamplerData
@@ -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.21.0'
6
+ VERSION = '0.21.1'
7
7
 
8
8
  # The supported version of llama.cpp.
9
- LLAMA_CPP_VERSION = 'b5870'
9
+ LLAMA_CPP_VERSION = 'b5930'
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.21.0
4
+ version: 0.21.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - yoshoku