From: "nobu (Nobuyoshi Nakada)" Date: 2013-06-25T11:01:09+09:00 Subject: [ruby-core:55641] [CommonRuby - Feature #8568] Introduce RbConfig value for native word size, to avoid Fixnum#size use Issue #8568 has been updated by nobu (Nobuyoshi Nakada). In current CRuby, Fixnum is always limited as long, so Fixnum#size represents sizeof(long), not word size. But it depends on what you define "word" as, of course. If you mean SIZEOF_VALUE by "word size", it's simply a bug to use Fixnum#size for that purpose. A way to achieve size of a pointer is `[""].pack("p").size` currently. ---------------------------------------- Feature #8568: Introduce RbConfig value for native word size, to avoid Fixnum#size use https://bugs.ruby-lang.org/issues/8568#change-40125 Author: headius (Charles Nutter) Status: Open Priority: Normal Assignee: Category: Target version: Fixnum#size is not really useful to represent native word size across all platforms and implementations. On JRuby, for example, our Fixnum is always represented as a 64-bit Java "long" value, regardless of the underlying native platform. There may be other implementations that fix Fixnum's size to a specific bit width as well. Therefore, using Fixnum#size to determine the size of a word on the underlying native platform is not reliable. I propose two additions to Ruby: 1. RbConfig value "word_size" for native word size. This could reflect bit size (32, 64) or byte size (4, 8). 2. A constant, somewhere in Ruby, to provide access to this value more directly. I'm not sure where this should go. ObjectSpace::WORD_SIZE? -- http://bugs.ruby-lang.org/