Feature #10728
openWarning for Fixnum#size to use RbConfig::SIZEOF['long']
Description
How about add a warning for Fixnum#size ?
% ./ruby -e 'p 0.size'
-e:1: warning: Use RbConfig::SIZEOF['long'] instead of Fixnum#size
8
Currently it returns sizeof(long) which is 4 or 8.
However it is implementation detail and
it may difficult to define it in Ruby implementations other than CRuby.
There is a way to obtain sizeof(long): RbConfig::SIZEOF['long']
It works since Ruby 2.1.
% ruby -rrbconfig/sizeof -e "p RbConfig::SIZEOF['long']"
8
So the warning is a migration path to use RbConfig::SIZEOF['long'].
Note that this may affect many code.
So this issue may irritate many people.
fixnum-size-search.txt is a search result in gems.
Files
Updated by cremno (cremno phobia) almost 10 years ago
I took a look at fixnum-size-search.txt
and using RbConfig::SIZEOF['long']
instead usually isn't the correct replacement. In many lines the size of long
in bytes isn't of interest, the min- and maximum value of a fixnum is (see feature request #7517).
Updated by akr (Akira Tanaka) almost 10 years ago
- Related to Feature #7517: Fixnum::MIN,MAX added
Updated by akr (Akira Tanaka) almost 10 years ago
RbConfig::SIZEOF['long'] is a drop-in replacement but Fixnum::MAX is not.
Also, I feel Fixnum is a implementation detail.