From: akr@... Date: 2014-02-25T00:42:00+00:00 Subject: [ruby-core:61057] [ruby-trunk - Feature #6083] Hide a Bignum definition Issue #6083 has been updated by Akira Tanaka. nobu wrote a patch: https://github.com/nobu/sqlite3-ruby/compare/bignum-conversion?expand=1 I'm not sure the status to merge it to the upstream. (I think the patch should be similified by removing code for nails != 0.) Note that the original condition, RBIGNUM_LEN(result) * SIZEOF_BDIGITS <= 8, is wrong. It tests -2**64 < x < 2**64 but it should test -2**63 <= x < 2**63 which accepts NUM2LL. ---------------------------------------- Feature #6083: Hide a Bignum definition https://bugs.ruby-lang.org/issues/6083#change-45455 * Author: Koichi Sasada * Status: Closed * Priority: Normal * Assignee: Yukihiro Matsumoto * Category: * Target version: Next Major ---------------------------------------- Now, the struct RBignum which is a definition of Bignum in C is located in include/ruby/ruby.h. It means we can't change implementation of Bignum. For example, using GMP as Bignum representation. I propose to move the struct RBignum definition from include/ruby/ruby.h to bignum.c. I believe no one use struct RBignum directly (except core). It has possibility to break binary compatibility. ---Files-------------------------------- hide-bignum-internal.patch (4.66 KB) -- http://bugs.ruby-lang.org/