# Crashing Fixnum#\*\* with 64 bit Ruby

**URL:** <https://www.ruby-forum.com/t/crashing-fixnum-with-64-bit-ruby/57045>\
**Category:** Ruby\
**Created:** [April 6, 2006, 8:02pm UTC](https://www.ruby-forum.com/t/crashing-fixnum-with-64-bit-ruby/57045 "2006-04-06T20:02:00Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![danielb](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/c57346/32.png) [@danielb](https://www.ruby-forum.com/u/danielb)\
**Post date:** [April 6, 2006, 8:02pm UTC](https://www.ruby-forum.com/t/crashing-fixnum-with-64-bit-ruby/57045/1 "2006-04-06T20:02:00Z")

</div>

Hi all,

I thought this was interesting. Should Ruby handle this better? Or is  
this a  
case of, “Don’t do that.”?

# 32 bit Ruby, Solaris 10

irb(main):001:0\> (2**32).class  
=\> Bignum  
irb(main):002:0\> (2**32) \*\* (2**33)  
(irb):2: warning: in a**b, b may be too big  
=\> Infinity

## DANGER! DANGER! WILL BRING SYSTEM TO A CRAWL!

# 64 bit Ruby, Solaris 10

irb(main):002:0\> (2**32).class  
=\> Fixnum  
irb(main):003:0\> (2**32) \*\* (2\*\*33)  
(irb):3:in `**': failed to allocate memory (NoMemoryError) from (irb):3:in`irb\_binding’  
from /opt/test/lib/ruby/1.8/irb/workspace.rb:52:in  
`irb\_binding’  
from :0

The behavior is identical with or without Rational, btw.

Regards,

Dan

---

<div class="post-metadata">

**Author:** ![danielb](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/c57346/32.png) [@danielb](https://www.ruby-forum.com/u/danielb)\
**Post date:** [April 6, 2006, 8:20pm UTC](https://www.ruby-forum.com/t/crashing-fixnum-with-64-bit-ruby/57045/2 "2006-04-06T20:20:36Z")

</div>

On Apr 6, 2006, at 2:01 PM, Daniel B. wrote:

> (irb):2: warning: in a\*\*b, b may be too big  
> from (irb):3:in `irb_binding' from /opt/test/lib/ruby/1.8/irb/workspace.rb:52:in`irb\_binding’  
> from :0
> 
> The behavior is identical with or without Rational, btw.
> 
> Regards,
> 
> Dan

Incidently I get this:  
% irb  
irb(main):001:0\> (2**32) \*\* (2**32)  
/usr/local/ruby/lib/ruby/1.8/rational.rb:543: warning: in a\*\*b, b may  
be too big  
=\> Infinity

---

<div class="post-metadata">

**Author:** ![danielb](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/c57346/32.png) [@danielb](https://www.ruby-forum.com/u/danielb)\
**Post date:** [April 6, 2006, 8:23pm UTC](https://www.ruby-forum.com/t/crashing-fixnum-with-64-bit-ruby/57045/3 "2006-04-06T20:23:37Z")

</div>

On Apr 6, 2006, at 2:01 PM, Daniel B. wrote:

You can ignore my previous message, I didn’t fully read yours. D’Oh.
