Issue #9513 has been updated by Akira Tanaka.

Status changed from Assigned to Closed
% Done changed from 0 to 100

Applied in changeset r45976.

----------
* include/ruby/ruby.h: Hide Rational internal.
  (RRational): Moved to internal.h
  (RRATIONAL): Ditto.
  (RRATIONAL_SET_NUM): Moved to rational.c.
  (RRATIONAL_SET_DEN): Ditto.

* rational.c (rb_rational_num): New function.
  (rb_rational_den): Ditto.

* include/ruby/intern.h (rb_rational_num): Declared.
  (rb_rational_den): Ditto.

*  ext/bigdecimal/bigdecimal.c: Follow the above change.

* ext/date/date_core.c: Ditto.

  [ruby-core:60665] [Feature #9513]

----------------------------------------
Feature #9513: Hide Rational internal
https://bugs.ruby-lang.org/issues/9513#change-46778

* Author: Akira Tanaka
* Status: Closed
* Priority: Normal
* Assignee: Yukihiro Matsumoto
* Category: 
* Target version: 
----------------------------------------
I'd like to hide C-level Ratinal internal.
I made a patch to do it.
This is similar to [Feature #6083] for struct RBignum.

If the internal is hidden, we can change it without compatibility problem.
For example, we can use GMP.

The patch moves struct RRational and related macros to internal.h.
It also provides two accessors, rb_rational_num and rb_rational_den and
changes ext/bigdecimal/bigdecimal.c and ext/date/date_core.c to
use these accessors.

How do you think, tadf?


---Files--------------------------------
hide-rational-internal.patch (5.98 KB)


-- 
https://bugs.ruby-lang.org/