llama_cpp 0.25.7 → 0.28.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: d7536ad36c9f8f4998efe084da775b0421aa789131dd834b568741f8c074c818
4
- data.tar.gz: ba281b4ed8dd4b4e6168c1dcf66ef8542ccf5425236eda8a6c38a1b590625925
3
+ metadata.gz: 53c9355352c9ef5fe64fd761f0ac33ff4966a92e753fa1a60a8c477b2e0f7194
4
+ data.tar.gz: 391826211e106323b684a38ea67bd7c446f8fec5eb1b3f0af02ff110298baf76
5
5
  SHA512:
6
- metadata.gz: d4468fb76be404fd0b207f3a0456704e61671577678cbc2d129cda67479e85e9fb21a415ba53dd0869e301b0d7399f6abc43bcb2c460da17062a69c52021422a
7
- data.tar.gz: f598bfdfb6655893c2e6c2ca66130355c505f9966fe651b9c59081de24d95cf87b40c87a7e7eb8d29b6052348e70456a5e3837bf6082f115ea1a485a5166bc1f
6
+ metadata.gz: acd2678b5e508a86909561ae9f7440710e516fa9d241bb746771c990d034dbac31a3de95813b9876861a4459f824c6f4ea89399cbe7c7dc6e6bf8d9ad3a20fac
7
+ data.tar.gz: 05717ebcd77750c112ce1f77edfb2906846f12e0e8b321488e271737c858f3fa7c576da6675bd851cc2ec5af24fd26f35596fe24bb7aae6303e3d2cf05c0cb8d
data/CHANGELOG.md CHANGED
@@ -1,3 +1,39 @@
1
+ ## [[0.28.1](https://github.com/yoshoku/llama_cpp.rb/compare/v0.28.0...v0.28.1)] - 2026-09-05
2
+
3
+ - Change supported llama.cpp version to v0.4.0.
4
+ - Add `LLAMA_LAZY_MODE_OFF` constant value.
5
+ - Add `LLAMA_LAZY_MODE_AUTO` constant value.
6
+ - Add `LLAMA_LAZY_MODE_ON` constant value.
7
+ - Add `max_buf_size` accessor to `LlamaModelQuantizeParams`.
8
+
9
+ ## [[0.28.0](https://github.com/yoshoku/llama_cpp.rb/compare/v0.27.0...v0.28.0)] - 2026-08-23
10
+
11
+ - Change supported llama.cpp version to v0.2.0.
12
+ - Add `LLAMA_LOAD_MODE_AUTO` constant value.
13
+ - Add `n_outputs_max_per_seq` accessor to `LlamaContextParams`.
14
+ - Add `llama_version` module function to `LlamaCpp`.
15
+ - Add `llama_sampler_copy` module function to `LlamaCpp`.
16
+
17
+ ## [[0.27.0](https://github.com/yoshoku/llama_cpp.rb/compare/v0.26.0...v0.27.0)] - 2026-08-08
18
+
19
+ - Change supported llama.cpp version to b10310.
20
+ - Add `n_vocab` argument to `llama_sampler_init_penaltie` module function.
21
+ - Add `load_mtp` accessor to LlamaModelParams.
22
+
23
+ ## [[0.26.0](https://github.com/yoshoku/llama_cpp.rb/compare/v0.25.7...v0.26.0)] - 2026-08-01
24
+
25
+ - Change supported llama.cpp version to b10210.
26
+ - Remove `use_mmap` accessor from LlamaModelParams.
27
+ - Remove `use_direct_io` accessor from LlamaModelParams.
28
+ - Remove `use_mlock` accessor from LlamaModelParams.
29
+ - Add `LLAMA_LOAD_MODE_NONE` constant value.
30
+ - Add `LLAMA_LOAD_MODE_MMAP` constant value.
31
+ - Add `LLAMA_LOAD_MODE_MLOCK` constant value.
32
+ - Add `LLAMA_LOAD_MODE_MMAP_MLOCK` constant value.
33
+ - Add `LLAMA_LOAD_MODE_DIRECT_IO` constant value.
34
+ - Add `llama_load_mode_name` module function to `LlamaCpp`.
35
+ - Add `llama_load_mode_from_str` module function to `LlamaCpp`.
36
+
1
37
  ## [[0.25.7](https://github.com/yoshoku/llama_cpp.rb/compare/v0.25.6...v0.25.7)] - 2026-07-11
2
38
 
3
39
  - Change supported llama.cpp version to b9950.
@@ -6,8 +42,8 @@
6
42
  ## [[0.25.6](https://github.com/yoshoku/llama_cpp.rb/compare/v0.25.5...v0.25.6)] - 2026-07-04
7
43
 
8
44
  - Change supported llama.cpp version to b9860.
9
- - Add `llama_model_ftype` module function to `LlamaCpp`.
10
- - Add `llama_ftype_name` module function to `LlamaCpp`.
45
+ - Add `llama_model_ftype` module function to `LlamaCpp`.
46
+ - Add `llama_ftype_name` module function to `LlamaCpp`.
11
47
 
12
48
  ## [[0.25.5](https://github.com/yoshoku/llama_cpp.rb/compare/v0.25.4...v0.25.5)] - 2026-06-27
13
49
 
@@ -498,39 +498,6 @@ static VALUE llama_model_params_set_vocab_only(VALUE self, VALUE vocab_only) {
498
498
  return vocab_only;
499
499
  }
500
500
 
501
- static VALUE llama_model_params_get_use_mmap(VALUE self) {
502
- struct llama_model_params* data = get_llama_model_params(self);
503
- return data->use_mmap ? Qtrue : Qfalse;
504
- }
505
-
506
- static VALUE llama_model_params_set_use_mmap(VALUE self, VALUE use_mmap) {
507
- struct llama_model_params* data = get_llama_model_params(self);
508
- data->use_mmap = RTEST(use_mmap) ? true : false;
509
- return use_mmap;
510
- }
511
-
512
- static VALUE llama_model_params_get_use_direct_io(VALUE self) {
513
- struct llama_model_params* data = get_llama_model_params(self);
514
- return data->use_direct_io ? Qtrue : Qfalse;
515
- }
516
-
517
- static VALUE llama_model_params_set_use_direct_io(VALUE self, VALUE use_direct_io) {
518
- struct llama_model_params* data = get_llama_model_params(self);
519
- data->use_direct_io = RTEST(use_direct_io) ? true : false;
520
- return use_direct_io;
521
- }
522
-
523
- static VALUE llama_model_params_get_use_mlock(VALUE self) {
524
- struct llama_model_params* data = get_llama_model_params(self);
525
- return data->use_mlock ? Qtrue : Qfalse;
526
- }
527
-
528
- static VALUE llama_model_params_set_use_mlock(VALUE self, VALUE use_mlock) {
529
- struct llama_model_params* data = get_llama_model_params(self);
530
- data->use_mlock = RTEST(use_mlock) ? true : false;
531
- return use_mlock;
532
- }
533
-
534
501
  static VALUE llama_model_params_get_check_tensors(VALUE self) {
535
502
  struct llama_model_params* data = get_llama_model_params(self);
536
503
  return data->check_tensors ? Qtrue : Qfalse;
@@ -575,6 +542,17 @@ static VALUE llama_model_params_set_no_alloc(VALUE self, VALUE no_alloc) {
575
542
  return no_alloc;
576
543
  }
577
544
 
545
+ static VALUE llama_model_params_get_load_mtp(VALUE self) {
546
+ struct llama_model_params* data = get_llama_model_params(self);
547
+ return data->load_mtp ? Qtrue : Qfalse;
548
+ }
549
+
550
+ static VALUE llama_model_params_set_load_mtp(VALUE self, VALUE load_mtp) {
551
+ struct llama_model_params* data = get_llama_model_params(self);
552
+ data->load_mtp = RTEST(load_mtp) ? true : false;
553
+ return load_mtp;
554
+ }
555
+
578
556
  /* struct llama_context_params */
579
557
  static void llama_context_params_free(void *ptr) {
580
558
  if (ptr) {
@@ -674,6 +652,17 @@ static VALUE llama_context_params_set_n_outputs_max(VALUE self, VALUE n_outputs_
674
652
  return n_outputs_max;
675
653
  }
676
654
 
655
+ static VALUE llama_context_params_get_n_outputs_max_per_seq(VALUE self) {
656
+ struct llama_context_params* data = get_llama_context_params(self);
657
+ return UINT2NUM(data->n_outputs_max_per_seq);
658
+ }
659
+
660
+ static VALUE llama_context_params_set_n_outputs_max_per_seq(VALUE self, VALUE n_outputs_max_per_seq) {
661
+ struct llama_context_params* data = get_llama_context_params(self);
662
+ data->n_outputs_max_per_seq = NUM2UINT(n_outputs_max_per_seq);
663
+ return n_outputs_max_per_seq;
664
+ }
665
+
677
666
  static VALUE llama_context_params_get_n_threads(VALUE self) {
678
667
  struct llama_context_params* data = get_llama_context_params(self);
679
668
  return INT2NUM(data->n_threads);
@@ -1164,6 +1153,17 @@ static VALUE llama_model_quantize_params_set_dry_run(VALUE self, VALUE dry_run)
1164
1153
  return dry_run;
1165
1154
  }
1166
1155
 
1156
+ static VALUE llama_model_quantize_params_get_max_buf_size(VALUE self) {
1157
+ llama_model_quantize_params* data = get_llama_model_quantize_params(self);
1158
+ return SIZET2NUM(data->max_buf_size);
1159
+ }
1160
+
1161
+ static VALUE llama_model_quantize_params_set_max_buf_size(VALUE self, VALUE max_buf_size) {
1162
+ llama_model_quantize_params* data = get_llama_model_quantize_params(self);
1163
+ data->max_buf_size = NUM2SIZET(max_buf_size);
1164
+ return max_buf_size;
1165
+ }
1166
+
1167
1167
  /* llama_logit_bias */
1168
1168
  static void llama_logit_bias_free(void *ptr) {
1169
1169
  if (ptr) {
@@ -1329,6 +1329,15 @@ static llama_adapter_lora_wrapper* get_llama_adapter_lora_wrapper(VALUE self) {
1329
1329
  return data;
1330
1330
  }
1331
1331
 
1332
+ /**
1333
+ * @overload llama_version
1334
+ * @return [String]
1335
+ */
1336
+ static VALUE rb_llama_version(VALUE self) {
1337
+ const char* version = llama_version();
1338
+ return rb_utf8_str_new_cstr(version);
1339
+ }
1340
+
1332
1341
  /**
1333
1342
  * @overload llama_backend_init
1334
1343
  * @return [NilClass]
@@ -3585,6 +3594,29 @@ static VALUE rb_llama_sampler_clone(VALUE self, VALUE sampler) {
3585
3594
  return TypedData_Wrap_Struct(rb_cLlamaSampler, &llama_sampler_data_type, clone);
3586
3595
  }
3587
3596
 
3597
+ /**
3598
+ * @overload llama_sampler_copy(src, dst)
3599
+ * @param [LlamaSampler] src
3600
+ * @param [LlamaSampler] dst
3601
+ * @return [NilClass]
3602
+ */
3603
+ static VALUE rb_llama_sampler_copy(VALUE self, VALUE src, VALUE dst) {
3604
+ if (!rb_obj_is_kind_of(src, rb_cLlamaSampler)) {
3605
+ rb_raise(rb_eArgError, "src must be a LlamaSampler");
3606
+ return Qnil;
3607
+ }
3608
+ if (!rb_obj_is_kind_of(dst, rb_cLlamaSampler)) {
3609
+ rb_raise(rb_eArgError, "dst must be a LlamaSampler");
3610
+ return Qnil;
3611
+ }
3612
+ struct llama_sampler* src_ = get_llama_sampler(src);
3613
+ struct llama_sampler* dst_ = get_llama_sampler(dst);
3614
+ llama_sampler_copy(src_, dst_);
3615
+ RB_GC_GUARD(src);
3616
+ RB_GC_GUARD(dst);
3617
+ return Qnil;
3618
+ }
3619
+
3588
3620
  /**
3589
3621
  * @overload llama_sampler_free(sampler)
3590
3622
  * @param [LlamaSampler] sampler
@@ -3964,13 +3996,18 @@ static VALUE rb_llama_sampler_init_grammar(VALUE self, VALUE vocab, VALUE gramma
3964
3996
 
3965
3997
  /**
3966
3998
  * @overload llama_sampler_init_penalties(penalty_last_n, penalty_repeat, penalty_freq, penalty_present)
3999
+ * @param [Integer] n_vocab
3967
4000
  * @param [Integer] penalty_last_n
3968
4001
  * @param [Float] penalty_repeat
3969
4002
  * @param [Float] penalty_freq
3970
4003
  * @param [Float] penalty_present
3971
4004
  * @return [LlamaSampler]
3972
4005
  */
3973
- static VALUE rb_llama_sampler_init_penalties(VALUE self, VALUE penalty_last_n, VALUE penalty_repeat, VALUE penalty_freq, VALUE penalty_present) {
4006
+ static VALUE rb_llama_sampler_init_penalties(VALUE self, VALUE n_vocab, VALUE penalty_last_n, VALUE penalty_repeat, VALUE penalty_freq, VALUE penalty_present) {
4007
+ if (!RB_INTEGER_TYPE_P(n_vocab)) {
4008
+ rb_raise(rb_eArgError, "n_vocab must be an Integer");
4009
+ return Qnil;
4010
+ }
3974
4011
  if (!RB_INTEGER_TYPE_P(penalty_last_n)) {
3975
4012
  rb_raise(rb_eArgError, "penalty_last_n must be an Integer");
3976
4013
  return Qnil;
@@ -3987,7 +4024,7 @@ static VALUE rb_llama_sampler_init_penalties(VALUE self, VALUE penalty_last_n, V
3987
4024
  rb_raise(rb_eArgError, "penalty_present must be a Float");
3988
4025
  return Qnil;
3989
4026
  }
3990
- struct llama_sampler* sampler = llama_sampler_init_penalties(NUM2INT(penalty_last_n), NUM2DBL(penalty_repeat), NUM2DBL(penalty_freq), NUM2DBL(penalty_present));
4027
+ struct llama_sampler* sampler = llama_sampler_init_penalties(NUM2INT(n_vocab), NUM2INT(penalty_last_n), NUM2DBL(penalty_repeat), NUM2DBL(penalty_freq), NUM2DBL(penalty_present));
3991
4028
  return TypedData_Wrap_Struct(rb_cLlamaSampler, &llama_sampler_data_type, sampler);
3992
4029
  }
3993
4030
 
@@ -4356,6 +4393,31 @@ static VALUE rb_llama_flash_attn_type_name(VALUE self, VALUE flash_attn_type) {
4356
4393
  return rb_utf8_str_new_cstr(name);
4357
4394
  }
4358
4395
 
4396
+ /**
4397
+ * @overload llama_load_mode_name(load_mode)
4398
+ * @param [Integer] load_mode
4399
+ * @return [String]
4400
+ */
4401
+ static VALUE rb_llama_load_mode_name(VALUE self, VALUE load_mode) {
4402
+ if (!RB_INTEGER_TYPE_P(load_mode)) {
4403
+ rb_raise(rb_eArgError, "load_mode must be an Integer");
4404
+ return Qnil;
4405
+ }
4406
+ const char* name = llama_load_mode_name((enum llama_load_mode)NUM2INT(load_mode));
4407
+ return rb_utf8_str_new_cstr(name);
4408
+ }
4409
+
4410
+ static VALUE rb_llama_load_mode_from_str(VALUE self, VALUE str) {
4411
+ if (!RB_TYPE_P(str, T_STRING)) {
4412
+ rb_raise(rb_eArgError, "str must be a String");
4413
+ return Qnil;
4414
+ }
4415
+ const char* str_ = StringValueCStr(str);
4416
+ enum llama_load_mode load_mode = llama_load_mode_from_str(str_);
4417
+ RB_GC_GUARD(str);
4418
+ return INT2NUM(load_mode);
4419
+ }
4420
+
4359
4421
  /* MAIN */
4360
4422
  void Init_llama_cpp(void) {
4361
4423
  char tmp[12];
@@ -4524,6 +4586,19 @@ void Init_llama_cpp(void) {
4524
4586
  rb_define_const(rb_mLlamaCpp, "LLAMA_SPLIT_MODE_LAYER", INT2NUM(LLAMA_SPLIT_MODE_LAYER));
4525
4587
  rb_define_const(rb_mLlamaCpp, "LLAMA_SPLIT_MODE_ROW", INT2NUM(LLAMA_SPLIT_MODE_ROW));
4526
4588
  rb_define_const(rb_mLlamaCpp, "LLAMA_SPLIT_MODE_TENSOR", INT2NUM(LLAMA_SPLIT_MODE_TENSOR));
4589
+ /* llama_load_type */
4590
+ /* Document-const: LlamaCpp::LLAMA_LOAD_MODE_NONE */
4591
+ rb_define_const(rb_mLlamaCpp, "LLAMA_LOAD_MODE_NONE", INT2NUM(LLAMA_LOAD_MODE_NONE));
4592
+ rb_define_const(rb_mLlamaCpp, "LLAMA_LOAD_MODE_AUTO", INT2NUM(LLAMA_LOAD_MODE_AUTO));
4593
+ rb_define_const(rb_mLlamaCpp, "LLAMA_LOAD_MODE_MMAP", INT2NUM(LLAMA_LOAD_MODE_MMAP));
4594
+ rb_define_const(rb_mLlamaCpp, "LLAMA_LOAD_MODE_MLOCK", INT2NUM(LLAMA_LOAD_MODE_MLOCK));
4595
+ rb_define_const(rb_mLlamaCpp, "LLAMA_LOAD_MODE_MMAP_MLOCK", INT2NUM(LLAMA_LOAD_MODE_MMAP_MLOCK));
4596
+ rb_define_const(rb_mLlamaCpp, "LLAMA_LOAD_MODE_DIRECT_IO", INT2NUM(LLAMA_LOAD_MODE_DIRECT_IO));
4597
+ /* llama_lazy_mode */
4598
+ /* Document-const: LlamaCpp::LLAMA_LAZY_MODE_OFF */
4599
+ rb_define_const(rb_mLlamaCpp, "LLAMA_LAZY_MODE_OFF", INT2NUM(LLAMA_LAZY_MODE_OFF));
4600
+ rb_define_const(rb_mLlamaCpp, "LLAMA_LAZY_MODE_AUTO", INT2NUM(LLAMA_LAZY_MODE_AUTO));
4601
+ rb_define_const(rb_mLlamaCpp, "LLAMA_LAZY_MODE_ON", INT2NUM(LLAMA_LAZY_MODE_ON));
4527
4602
  /* llama_context_type */
4528
4603
  /* Document-const: LlamaCpp::LLAMA_CONTEXT_TYPE_DEFAULT */
4529
4604
  rb_define_const(rb_mLlamaCpp, "LLAMA_CONTEXT_TYPE_DEFAULT", INT2NUM(LLAMA_CONTEXT_TYPE_DEFAULT));
@@ -4730,39 +4805,6 @@ void Init_llama_cpp(void) {
4730
4805
  * @return [Boolean]
4731
4806
  */
4732
4807
  rb_define_method(rb_cLlamaModelParams, "vocab_only=", RUBY_METHOD_FUNC(llama_model_params_set_vocab_only), 1);
4733
- /**
4734
- * Document-method: use_mmap
4735
- * @return [Boolean]
4736
- */
4737
- rb_define_method(rb_cLlamaModelParams, "use_mmap", RUBY_METHOD_FUNC(llama_model_params_get_use_mmap), 0);
4738
- /**
4739
- * Document-method: use_mmap=
4740
- * @param [Boolean] use_mmap
4741
- * @return [Boolean]
4742
- */
4743
- rb_define_method(rb_cLlamaModelParams, "use_mmap=", RUBY_METHOD_FUNC(llama_model_params_set_use_mmap), 1);
4744
- /**
4745
- * Document-method: use_direct_io
4746
- * @return [Boolean]
4747
- */
4748
- rb_define_method(rb_cLlamaModelParams, "use_direct_io", RUBY_METHOD_FUNC(llama_model_params_get_use_direct_io), 0);
4749
- /**
4750
- * Document-method: use_direct_io=
4751
- * @param [Boolean] use_direct_io
4752
- * @return [Boolean]
4753
- */
4754
- rb_define_method(rb_cLlamaModelParams, "use_direct_io=", RUBY_METHOD_FUNC(llama_model_params_set_use_direct_io), 1);
4755
- /**
4756
- * Document-method: use_mlock
4757
- * @return [Boolean]
4758
- */
4759
- rb_define_method(rb_cLlamaModelParams, "use_mlock", RUBY_METHOD_FUNC(llama_model_params_get_use_mlock), 0);
4760
- /**
4761
- * Document-method: use_mlock=
4762
- * @param [Boolean] use_mlock
4763
- * @return [Boolean]
4764
- */
4765
- rb_define_method(rb_cLlamaModelParams, "use_mlock=", RUBY_METHOD_FUNC(llama_model_params_set_use_mlock), 1);
4766
4808
  /**
4767
4809
  * Document-method: check_tensors
4768
4810
  * @return [Boolean]
@@ -4807,6 +4849,17 @@ void Init_llama_cpp(void) {
4807
4849
  * @return [Boolean]
4808
4850
  */
4809
4851
  rb_define_method(rb_cLlamaModelParams, "no_alloc=", RUBY_METHOD_FUNC(llama_model_params_set_no_alloc), 1);
4852
+ /**
4853
+ * Document-method: load_mtp
4854
+ * @return [Boolean]
4855
+ */
4856
+ rb_define_method(rb_cLlamaModelParams, "load_mtp", RUBY_METHOD_FUNC(llama_model_params_get_load_mtp), 0);
4857
+ /**
4858
+ * Document-method: load_mtp=
4859
+ * @param [Boolean] load_mtp_
4860
+ * @return [Boolean]
4861
+ */
4862
+ rb_define_method(rb_cLlamaModelParams, "load_mtp=", RUBY_METHOD_FUNC(llama_model_params_set_load_mtp), 1);
4810
4863
 
4811
4864
  /* TODO: struct llama_sampler_seq_config */
4812
4865
 
@@ -4882,6 +4935,17 @@ void Init_llama_cpp(void) {
4882
4935
  * @return [Integer]
4883
4936
  */
4884
4937
  rb_define_method(rb_cLlamaContextParams, "n_outputs_max=", RUBY_METHOD_FUNC(llama_context_params_set_n_outputs_max), 1);
4938
+ /**
4939
+ * Document-method: n_outputs_max_per_seq
4940
+ * @return [Integer]
4941
+ */
4942
+ rb_define_method(rb_cLlamaContextParams, "n_outputs_max_per_seq", RUBY_METHOD_FUNC(llama_context_params_get_n_outputs_max_per_seq), 0);
4943
+ /**
4944
+ * Document-method: n_outputs_max_per_seq=
4945
+ * @param [Integer] n_outputs_max_per_seq
4946
+ * @return [Integer]
4947
+ */
4948
+ rb_define_method(rb_cLlamaContextParams, "n_outputs_max_per_seq=", RUBY_METHOD_FUNC(llama_context_params_set_n_outputs_max_per_seq), 1);
4885
4949
  /**
4886
4950
  * Document-method: n_threads
4887
4951
  * @return [Integer]
@@ -5304,6 +5368,17 @@ void Init_llama_cpp(void) {
5304
5368
  /* TODO: const struct llama_model_kv_override* kv_overrides */
5305
5369
  /* TODO: const struct llama_model_tensor_override* tt_overrides */
5306
5370
  /* TODO: const int32_t* prune_layers */
5371
+ /**
5372
+ * Document-method: max_buf_size
5373
+ * @return [Integer]
5374
+ */
5375
+ rb_define_method(rb_cLlamaModelQuantizeParams, "max_buf_size", RUBY_METHOD_FUNC(llama_model_quantize_params_get_max_buf_size), 0);
5376
+ /**
5377
+ * Document-method: max_buf_size=
5378
+ * @param [Integer] max_buf_size
5379
+ * @return [Integer]
5380
+ */
5381
+ rb_define_method(rb_cLlamaModelQuantizeParams, "max_buf_size=", RUBY_METHOD_FUNC(llama_model_quantize_params_set_max_buf_size), 1);
5307
5382
 
5308
5383
  /**
5309
5384
  * Document-class: LlamaCpp::LlamaLogitBias
@@ -5364,6 +5439,9 @@ void Init_llama_cpp(void) {
5364
5439
  rb_cLlamaAdapterLora = rb_define_class_under(rb_mLlamaCpp, "LlamaAdapterLora", rb_cObject);
5365
5440
  rb_define_alloc_func(rb_cLlamaAdapterLora, llama_adapter_lora_wrapper_alloc);
5366
5441
 
5442
+ /* llama_version */
5443
+ rb_define_module_function(rb_mLlamaCpp, "llama_version", rb_llama_version, 0);
5444
+
5367
5445
  /* llama_backend_init */
5368
5446
  rb_define_module_function(rb_mLlamaCpp, "llama_backend_init", rb_llama_backend_init, 0);
5369
5447
 
@@ -5717,6 +5795,8 @@ void Init_llama_cpp(void) {
5717
5795
  /* llama_vocab_get_add_sep */
5718
5796
  rb_define_module_function(rb_mLlamaCpp, "llama_vocab_get_add_sep", rb_llama_vocab_get_add_sep, 1);
5719
5797
 
5798
+ /* TODO: llama_vocab_get_suppress_tokens */
5799
+
5720
5800
  /* llama_vocab_fim_pre */
5721
5801
  rb_define_module_function(rb_mLlamaCpp, "llama_vocab_fim_pre", rb_llama_vocab_fim_pre, 1);
5722
5802
 
@@ -5778,6 +5858,9 @@ void Init_llama_cpp(void) {
5778
5858
  /* llama_sampler_clone */
5779
5859
  rb_define_module_function(rb_mLlamaCpp, "llama_sampler_clone", rb_llama_sampler_clone, 1);
5780
5860
 
5861
+ /* llama_sampler_copy */
5862
+ rb_define_module_function(rb_mLlamaCpp, "llama_sampler_copy", rb_llama_sampler_copy, 2);
5863
+
5781
5864
  /* llama_sampler_free */
5782
5865
  rb_define_module_function(rb_mLlamaCpp, "llama_sampler_free", rb_llama_sampler_free, 1);
5783
5866
 
@@ -5838,7 +5921,7 @@ void Init_llama_cpp(void) {
5838
5921
  /* TODO: llama_sampler_init_grammar_lazy_patterns */
5839
5922
 
5840
5923
  /* llama_sampler_init_penalties */
5841
- rb_define_module_function(rb_mLlamaCpp, "llama_sampler_init_penalties", rb_llama_sampler_init_penalties, 4);
5924
+ rb_define_module_function(rb_mLlamaCpp, "llama_sampler_init_penalties", rb_llama_sampler_init_penalties, 5);
5842
5925
 
5843
5926
  /* TODO: llama_sampler_init_dry */
5844
5927
 
@@ -5943,6 +6026,12 @@ void Init_llama_cpp(void) {
5943
6026
  /* llama_perf_sampler_reset */
5944
6027
  rb_define_module_function(rb_mLlamaCpp, "llama_perf_sampler_reset", rb_llama_perf_sampler_reset, 1);
5945
6028
 
6029
+ /* llama_load_mode_name */
6030
+ rb_define_module_function(rb_mLlamaCpp, "llama_load_mode_name", rb_llama_load_mode_name, 1);
6031
+
6032
+ /* llama_load_mode_from_str */
6033
+ rb_define_module_function(rb_mLlamaCpp, "llama_load_mode_from_str", rb_llama_load_mode_from_str, 1);
6034
+
5946
6035
  /* TODO: typedef bool (*llama_opt_param_filter) */
5947
6036
  /* TODO: bool llama_opt_param_filter_all */
5948
6037
  /* TODO: struct llama_opt_params */
@@ -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.25.7'
6
+ VERSION = '0.28.1'
7
7
 
8
8
  # The supported version of llama.cpp.
9
- LLAMA_CPP_VERSION = 'b9950'
9
+ LLAMA_CPP_VERSION = 'v0.4.0'
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.25.7
4
+ version: 0.28.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - yoshoku
@@ -33,7 +33,7 @@ metadata:
33
33
  homepage_uri: https://github.com/yoshoku/llama_cpp.rb
34
34
  source_code_uri: https://github.com/yoshoku/llama_cpp.rb
35
35
  changelog_uri: https://github.com/yoshoku/llama_cpp.rb/blob/main/CHANGELOG.md
36
- documentation_uri: https://gemdocs.org/gems/llama_cpp/0.25.7/
36
+ documentation_uri: https://gemdocs.org/gems/llama_cpp/0.28.1/
37
37
  rubygems_mfa_required: 'true'
38
38
  rdoc_options: []
39
39
  require_paths:
@@ -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: 4.0.13
52
+ rubygems_version: 4.0.16
53
53
  specification_version: 4
54
54
  summary: Ruby bindings for the llama.cpp.
55
55
  test_files: []