Shortest Ruby crash #49

My contribution to the contest:

567

This baby throws “Errno::EBADF: Bad file descriptor”, which I think
deserves a medal for being the least intuitive error message of 2008!

And now, for the real question…

Why is this being evaluated as 5**(6**7), when for instance 9/9/9 is
being evaluated normally (9/9)/9=0, instead of 9/(9/9)=9?

Lata!

On Aug 19, 2008, at 3:36 PM, Limo D. wrote:

being evaluated normally (9/9)/9=0, instead of 9/(9/9)=9?

Lata!

Mine is fine with it:
irb> 567
(irb):17: warning: in a**b, b may be too big
=> Infinity

What ruby do you have that crashes?

-Rob

Rob B. http://agileconsultingllc.com
[email protected]

On Aug 19, 2008, at 2:36 PM, Limo D. wrote:

My contribution to the contest:

567

On 1.9, I get a number of 195,667 digits that starts 736 and ends 635.

Dave

Limo D. [email protected] writes:

My contribution to the contest:

567

This baby throws “Errno::EBADF: Bad file descriptor”, which I think
deserves a medal for being the least intuitive error message of 2008!

Works fine for me:

$ irb
irb(main):001:0> 567
=> 73643396061195573182045442760389697209119043099561473825102644208480
80271451222449204242010655986286553096951684440491235491489097071221600
73189280314561194164500176158310362022388644790243471934093460794441233
52773742517692136546608518658769275630499890833988104996453386858963527

and so on

this on my locally compiled irb 0.9.5(05/04/13) on debian

And now, for the real question…

Why is this being evaluated as 5**(6**7), when for instance 9/9/9 is
being evaluated normally (9/9)/9=0, instead of 9/(9/9)=9?

What makes you think either order is the “normal” one?

I’ve installed ruby exactly 8 minutes ago.
Managed to crash it with my fifth ‘Hello World’ attempt.

ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-mswin32]

It’s not really about the crash, it’s about the interesting operation
precedence.

It seems your kung-fu is stronger than mine. :stuck_out_tongue:

Fine than, try 999. Ouch.

Limo D. wrote:

Why is this being evaluated as 5**(6**7), when for instance 9/9/9 is
being evaluated normally (9/9)/9=0, instead of 9/(9/9)=9?
Exponentiation has reverse precedence as compared to division,
multiplication, etc.

Well, I kindof gathered that so far :confused:

Now I’m just trying to poke at the “Principle of Least Astonishment”.

On Tue, Aug 19, 2008 at 12:36 PM, Limo D. [email protected]
wrote:>

Why is this being evaluated as 5**(6**7), when for instance 9/9/9 is
being evaluated normally (9/9)/9=0, instead of 9/(9/9)=9?

Ruby follows the actual mathematical usage, where a^b^c (imagine it
written in tower form) is a^(b^c). I guess this is because (a^b)^c =
a^(bc), so a^(b^c) was the case that needed the compact notation

martin

Limo D. wrote:

I’ve installed ruby exactly 8 minutes ago.
Managed to crash it with my fifth ‘Hello World’ attempt.

ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-mswin32]

It’s not really about the crash, it’s about the interesting operation
precedence.

I tried with the identical version of Ruby on WinXP and I get the “b may
be too large” message. No crash.

On Tue, Aug 19, 2008 at 9:44 PM, Dave T. [email protected] wrote:

On Aug 19, 2008, at 2:36 PM, Limo D. wrote:

My contribution to the contest:

567

On 1.9, I get a number of 195,667 digits that starts 736 and ends 635.
…containing 42 exactly 1922 times.
R.

On 19.08.2008, at 21:44, Dave T. wrote:

On Aug 19, 2008, at 2:36 PM, Limo D. wrote:

My contribution to the contest:

567

On 1.9, I get a number of 195,667 digits that starts 736 and ends 635.

Really?
With 1.9 and 1.8.7, I get a number that starts with the same and ends
with
625. I hope it’s just a typo.

$ ruby --version
ruby 1.8.7 (2008-08-11 patchlevel 72) [i686-darwin8]
$ ruby19 --version
ruby 1.9.0 (2008-08-18 revision 0) [i386-darwin8.11.1]

regards, Sandor
Szücs

On Wed, Aug 20, 2008 at 11:38 AM, Sandor
Szücs[email protected] wrote:

Really?
With 1.9 and 1.8.7, I get a number that starts with the same and ends with
625. I hope it’s just a typo.
If I remember modulo calculations from school correctly it surely is a
typo :wink:
R.

In article
[email protected],
Limo D. [email protected] wrote:

Well, I kindof gathered that so far :confused:

Now I’m just trying to poke at the “Principle of Least Astonishment”.

At least it is only mild astonishment in this case. :wink:

Francis

Limo D. wrote:

being evaluated normally (9/9)/9=0, instead of 9/(9/9)=9?
Appears to be working fine on JRuby trunk.

  • Charlie

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs