Project

General

Profile

Actions

Feature #9513

closed

Hide Rational internal

Added by akr (Akira Tanaka) about 10 years ago. Updated almost 10 years ago.

Status:
Closed
Target version:
-
[ruby-core:60665]

Description

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) hide-rational-internal.patch akr (Akira Tanaka), 02/12/2014 11:51 AM

Updated by normalperson (Eric Wong) about 10 years ago

wrote:

This is similar to [Feature #6083] for struct RBignum.

I support hiding more internals. Thank you.
I hope for 100% opaque data structures for the C-API one day,
maybe in 3-5 years?

Updated by tadf (tadayoshi funaba) almost 10 years ago

  • Status changed from Open to Assigned
  • Assignee changed from tadf (tadayoshi funaba) to matz (Yukihiro Matsumoto)

i'm ok.

Updated by akr (Akira Tanaka) almost 10 years ago

  • 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]

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0