Skip to content

Conversation

@nobu
Copy link

@nobu nobu commented Dec 26, 2025

The precondition of RTYPEDDATA_P is the argument is RUBY_T_DATA.

https://github.com/ruby/ruby/blob/ruby_3_1/include/ruby/internal/core/rtypeddata.h#L537

 * @pre        `obj` must be a Ruby object of ::RUBY_T_DATA.

Also violates the assertions in rb-sys itself.

The precondition of `RTYPEDDATA_P` is the argument is `RUBY_T_DATA`.

https://github.com/ruby/ruby/blob/ruby_3_1/include/ruby/internal/core/rtypeddata.h#L537
```
 * @pre        `obj` must be a Ruby object of ::RUBY_T_DATA.
```

Must not call with non-data object, such as `Object` or `String`.
nobu referenced this pull request Dec 31, 2025
* Add stable API support for RTypedData objects

- Introduce RTYPEDDATA_P, RTYPEDDATA_EMBEDDED_P, RTYPEDDATA_TYPE, and RTYPEDDATA_GET_DATA macros and stable API methods for working with Ruby's RTypedData objects.
- Provide Ruby version-specific implementations (2.6–3.4) for type checking, embedded data detection, type retrieval, and data pointer access.
- Add comprehensive tests for RTypedData handling in stable_api_test.rs.
- Update CI to test against ruby-head.
- Extend blocklists and opaque structs for RData/RTypedData.

* Rename Definition to Compiled for stable API

Update type and constants to use Compiled struct and Ruby API version constants.

* Limit tracking_allocator_test to Ruby <= 3.4

Add cfg to skip failing test on Ruby 3.5 and above.

* Update CI to test ruby-head only on Ubuntu

Moves ruby-head to its own job with Ubuntu and stable Rust,
removing it from the main Ruby matrix to improve CI reliability.
@nobu nobu changed the title Remove wrong tests violating the precondition Remove wrong tests violating the precondition and the assertion Jan 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants