Programming Puzzles & Code Golf Stack Exchange is a question and answer site for programming puzzle enthusiasts and code golfers. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Ruby comes with a built-in REPL, which is quite handy.

screenshot of IRB

Your challenge is to crash it in the least amount of code!

The definition of "crash" is "make it exit in an unintended way." This means exit, quit, abort, irb_exit, irb_quit, et. al. are not valid answers.

Furthermore, you may not cause any side-effect to any other part of the system. For example, `rm -rf /` is not valid either.

Any version 1.9.3 or above is valid. If your code only works on a specific version of Ruby, you may specify that in the answer.

The final restriction is that you may not rely on any gems.

This is , so the shortest code that crashes IRB will win!

share|improve this question
I can haz golfscript anser, plz? – Digital Trauma Feb 27 '14 at 15:33
wow. i don't know ruby, and after reading these answers i'll never learn it. – izabera Feb 27 '14 at 19:36
"The definition of 'crash' is 'make it exit in an unintended way.'" How are we supposed to write code intended to do something unintended? I vote to close as unclear what you're asking. – msh210 Jul 21 at 15:06

10 Answers 10

up vote 5 down vote accepted

5 characters


(inspired by @daniero's answer)

share|improve this answer
doesn't work for me: irb(main):001:0> ENV=0 (irb):1: warning: already initialized constant ENV – Brian Minton Feb 27 '14 at 21:19
@BrianMinton Had only a 1.9.3p194 at hand and it "works" with that version. – Howard Feb 27 '14 at 21:27
ah, my version is quite old: irb 0.9.6(09/06/30) – Brian Minton Feb 27 '14 at 21:36
@BrianMinton that is the latest version of irb – user17752 Mar 2 '14 at 10:32

16 characters


Not the shortest, but I think it's funny that it doesn't crash until the second line. Generates roughly 20 lines of text before IRB exits. For some reason it cannot be shortened to for instance 2.times{String=0}.


Of all the answers so far, this is the only one that has worked for me (and it works in all versions I could get my hands on), and I've tested all of them in these versions:

On whatever kind of Linux I get when ssh'ing into my university:
ruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-linux]
ruby 1.8.5 (2006-08-25) [x86_64-linux]
Mac OS X Mavericks default:
ruby 2.0.0p247 (2013-06-27 revision 41674) [universal.x86_64-darwin13]
Installed through Homebrew on OS X:
ruby 1.9.3p448 (2013-06-27 revision 41675) [x86_64-darwin12.4.0]

edit 2

7 characters

Combining my first version (and/or @Howard's answer, for maximum cross reference) with @chinese perl goth's answer:

share|improve this answer
Array=0 crashes immediately. – primo Feb 27 '14 at 16:46
@primo cool, but I can't get it to work :/ (See my edit) – daniero Feb 27 '14 at 18:33
Same here, only this and the closing stdin answer work, all the others give warnings only. – ace Feb 27 '14 at 20:47
Yes, the stdin one works for me too. It was posted after my edit. – daniero Feb 27 '14 at 20:56
You can shorten the second line to = and it still crashes. – Fraxtil Feb 27 '14 at 21:50

12 chars

ruby is not exactly my cup of tea, but I've just found out that irb acts funny when I close the stdin :)


tested on irb 0.9.6(09/06/30) and ruby 1.9.3p194

share|improve this answer
STDIN.close works too, and it's 1 less char! – Kavu Feb 27 '14 at 19:57
+1 because it's so obvious when you look at it that it will cause trouble :) My answer is probably more of a bug, but for this one you can't really expect IRB to do anything clever; it's like in Star Trek or whatever when they ask a super intelligent robot an impossible question and it explodes. – daniero Feb 27 '14 at 20:55
Related: $>.close. – Jordan Jul 21 at 15:14

10 9 chars

A shorter variant on @daniero's answer:


This works at least in the default OS X Mavericks Ruby (2.0.0).

The answer basically relies on the fact that the Ruby Token function does a case on the input token. One of the cases checks against String, which has been redefined by the first line. This case fails, so the case falls through to the default, which assumes the object has an ancestors accessor (which it does not).

Because the "bug" is in the tokenizer, the first line won't fail because the line only takes effect after the parsing is finished. Thus, it only affects subsequent lines. Subsequent lines must contain some kind of operator in order to see the failure.

share|improve this answer
+1 For the explanation. But who is this daneiro? ;) – daniero Feb 28 '14 at 1:27
@daniero: My apologies, I appear to be lysdexic today. – nneonneo Feb 28 '14 at 1:36

22 characters

def method_missing;end

Apparently it messes with some irb internals. (To fix it, add self. after def.)

share|improve this answer

12 characters

def send;end

As far as I know, there are four methods in the Object class which show this kind of behaviour:

share|improve this answer
In my IRB it simply returns nil and carries on – daniero Feb 27 '14 at 16:24
@daniero 1.8.6 and 1.9.3 both crash. – primo Feb 27 '14 at 16:38
@primo no longer crashes on 2.0.0 – drusepth Mar 28 '14 at 12:25

5 Characters


Nothing disturbs IRB quite like redefining IRB.

share|improve this answer
Yeah! This doesn't crash, but prints 20 lines errors after anything! – Mega Man Jun 25 at 8:37
Probably a different version of IRB now, @MegaMan so by now, definitely YMMV. – vgoff Jun 26 at 5:20
Both are cool, anyway! – Mega Man Jun 26 at 13:44

5 characters


Sets stdout to stdin which throws an error trying to open stdin for writing and crashes irb.

share|improve this answer
Note that this is tested on ruby 2.3.0p0 – photoionized Apr 29 at 20:25

12 10 characters


I don't know if this counts, because of the exec

share|improve this answer
You can get rid of the space after the first exec – QPaysTaxes Apr 29 at 20:31

8 characters

Similar to chinese perl goth's answer:


$> is an alias for STDOUT.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.