beni 0.15.0 → 0.16.0

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.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +33 -0
  3. data/lib/beni/version.rb +1 -1
  4. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 88f769d75e8f4d6b9f76128041aedd046cd62b9135a8616b3e8cad8c40ac2813
4
- data.tar.gz: 480979d7e78980367fe3801cc2d02c6f88666340cf2538243cdcceebad16473f
3
+ metadata.gz: bfb6fcc860f79c931f2c57586f0056af8e457624c47d75efbf464d94d21ecd7e
4
+ data.tar.gz: ca2ae71fd75494bdf45dfe210cea5eba1567b574eb3dcc38f7b6e1793f2fb3f5
5
5
  SHA512:
6
- metadata.gz: 04616eed3885496e8a3a88a52f34b947b18b0763ca640f283be5936e1edc97066a762639e053e2f46776e9553bbdbb90db8e65691e8aca48a18c2871e5cfd9f5
7
- data.tar.gz: ba5712267d5012f5c4695ddb94196f76edd20f6e2e0613bf92880602fbed4c231f33597792ff0f5e82d6a6cd8c461e2f4114607e8e1a6002631bdf9c0f0135df
6
+ metadata.gz: c57e609134529d22abfdbbc317b601f92fc64da5184b8d541c12667c1ba007dbb8ca2addca4de7710eed5b9810b1f8e5e789f8db3cf2c8c9aeaf4b206db220b6
7
+ data.tar.gz: 01d6af3120e05fe541cc692b621e3f57b99608a934a17e1cb2b76ac430c5ef356204d13db54230d4e4e57b84d973b681f345da74f565172c9bc238a2eeca6220
data/CHANGELOG.md CHANGED
@@ -1,5 +1,38 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.16.0](https://github.com/elct9620/beni/compare/v0.15.0...v0.16.0) (2026-09-14)
4
+
5
+
6
+ ### ⚠ BREAKING CHANGES
7
+
8
+ * **beni:** `Mrb::intern_cstr`, `Mrb::intern_str`, and `Mrb::intern_static` return `Result<sys::mrb_sym, Error>`; `Mrb::intern`, `Symbol::new`, and `RString::intern` return `Result<Symbol, Error>`; and `IntoSym::into_sym` returns `Result<sys::mrb_sym, Error>`, so an implementation of `IntoSym` outside the crate changes its signature to match.
9
+ * **beni:** `Mrb::define_global_const` returns `Result<(), Error>` instead of `()`.
10
+ * **beni:** `Mrb::protect`, `Mrb::rescue`, and `Mrb::ensure` are gone. Wrap a raising raw call in `beni::sys::protect(&mrb, |mrb| ...)` instead; a panic inside that body aborts rather than returning `Err(Error::Panic)`. Rescue by matching on the `Err`, and run cleanup as the code after the operation.
11
+ * **beni:** `Mrb::argv` returns `Vec<Value>` instead of `&[Value]`; a body that needs the zero-copy view calls the unsafe
12
+ * **beni:** `Mrb::get_args` and `Format::read` return `Result<F::Output, Error>`, `Mrb::arg1` returns `Result<Value, Error>`, and `format::Str` reads as `Vec<u8>` rather than a borrowed slice. A method body adds `?` to each read; a custom `Format` implementation returns its output wrapped in `Ok`.
13
+
14
+ ### Features
15
+
16
+ * **beni:** carry one slot of user data on the interpreter ([bffada5](https://github.com/elct9620/beni/commit/bffada5c386c3ae4f8adfe2207dccf1a417b7dad))
17
+ * **beni:** catch a C callback's panic with beni::sys::catch_unwind ([673d051](https://github.com/elct9620/beni/commit/673d051820c7aee07ee7b373dc6535c76369a5dd))
18
+ * **beni:** catch a raw binding's raise in beni::sys, without a panic boundary ([fe43ca1](https://github.com/elct9620/beni/commit/fe43ca12401d02a6148dbf6e0eefa9a3c57fc04a))
19
+ * **beni:** hand the argument-array read back as a copy ([6fb83dd](https://github.com/elct9620/beni/commit/6fb83ddf82131b4f13f2d000480766c759b6926d))
20
+ * **beni:** let a method parameter take any value, an i64, or nil ([a9f8588](https://github.com/elct9620/beni/commit/a9f8588b335a0696c68c0a69e24e5814dbbe0e8d))
21
+ * **beni:** let a value answer is_a? and instance_of? for a module ([04ada92](https://github.com/elct9620/beni/commit/04ada92c6ea221384b5fd26d6260e7dc729ecb1e))
22
+ * **beni:** let an argument read hand its failure back to the body ([0a9aebd](https://github.com/elct9620/beni/commit/0a9aebd7384eb54d8727f30787e75e8aa18d3ace))
23
+ * **beni:** let an Err answer is_a? for the exception it carries ([2b1509c](https://github.com/elct9620/beni/commit/2b1509cd0040bdbc1c42008ce47742cc85fd2d0a))
24
+
25
+
26
+ ### Bug Fixes
27
+
28
+ * **beni:** hand a frozen Object's refusal back from define_global_const ([58d3261](https://github.com/elct9620/beni/commit/58d3261f960f03665605349ea5df9814c91e66de))
29
+ * **beni:** hand an over-long name's intern failure back as an Err ([851e908](https://github.com/elct9620/beni/commit/851e90815ecf8dfcfce32f988df4e3115db5c323))
30
+ * **beni:** keep a load's raise inside the method that ran it ([d938db5](https://github.com/elct9620/beni/commit/d938db5196e77d88779f75523773950f784bc913))
31
+ * **beni:** let a raise under protect reach its jump target on MSVC ([ae026be](https://github.com/elct9620/beni/commit/ae026bebe43cf6f1260fb6c5c94912bd10a1a0a8))
32
+ * **beni:** miss a name too long to intern instead of raising from intern_check ([88cac10](https://github.com/elct9620/beni/commit/88cac10b52625f458e7b3b501d002a9024b0144f))
33
+ * **beni:** read a typed method's arguments without jumping its panic boundary ([5401ba2](https://github.com/elct9620/beni/commit/5401ba2f9195b8c0b0ce158927cc34fa863826e9))
34
+ * **beni:** surface the raise a compile context's parser catches ([5bd19a1](https://github.com/elct9620/beni/commit/5bd19a11ddb3fefe1592f3144b6ceb945e45881e))
35
+
3
36
  ## [0.15.0](https://github.com/elct9620/beni/compare/v0.14.1...v0.15.0) (2026-09-13)
4
37
 
5
38
 
data/lib/beni/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Beni
4
- VERSION = "0.15.0"
4
+ VERSION = "0.16.0"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: beni
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.15.0
4
+ version: 0.16.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aotokitsuruya