Issue #8568 has been updated by nobu (Nobuyoshi Nakada).

File sizeof.diff added

akr (Akira Tanaka) wrote:
>  Although "word" is ambiguous, providing sizeof(long), sizeof(char*),
>  etc. via RbConfig
>  with clear names seems good feature:
>  RbConfig["sizeof(long)"], RbConfig["sieof(char*)"],
>  RbConfig["sizeof(time_t)"], ...

RbConfig is a module, so `RbConfig.[]` doesn't seem good.
What about `RbConfig::SIZEOF` instead?
----------------------------------------
Feature #8568: Introduce RbConfig value for native word size, to avoid Fixnum#size use
https://bugs.ruby-lang.org/issues/8568#change-40268

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/