Crash IRB (interactive Ruby)
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
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:
Mac OS X Mavericks default:
ruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-linux] ruby 1.8.5 (2006-08-25) [x86_64-linux]
Installed through Homebrew on OS X:
ruby 2.0.0p247 (2013-06-27 revision 41674) [universal.x86_64-darwin13]
ruby 1.9.3p448 (2013-06-27 revision 41675) [x86_64-darwin12.4.0]
Combining my first version (and/or @Howard's answer, for maximum cross reference) with @chinese perl goth's answer:
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
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.