Escriba programas que produzcan errores de tiempo de ejecución locos, oscuros, ridículos o simplemente chiflados. No se requiere ofuscación y golfitud (brevedad).
- Las soluciones que parecen funcionar bien son mejores.
- Las soluciones que parecen que deberían romperse en un sentido pero romper en otro son mejores.
- las soluciones que no son deterministas son mejores siempre que sean reproducibles a veces.
- Las soluciones con una larga distancia entre la causa del error y la manifestación son mejores.
- puntos de bonificación por producir errores que deberían ser imposibles.
- puntos de bonificación por errores que bloquean el tiempo de ejecución (como hacer que el segmento Python falle) o el sistema operativo.
La unidad de puntuación serán los votos a favor.
Anexo 1
Los malos comportamientos del compilador también están bien.
import sys; sys.setrecursionlimit(~-2**31); x=lambda x:x(x); x(x);
Respuestas:
El obligatorio PHP (que todavía no se ha solucionado a partir de 5.4):
Salidas:
Que?
fuente
''
(cadena vacía) de la clase''
(cadena vacía)Error de compilación de Gcc:
error: largo largo largo es demasiado largo para GCC
fuente
long long long
, silong
ylong long
son ambos válidos.Símbolo del sistema de Windows
Salida:
fuente
^V
:( días difíciles estosPHP
No puede pasar una cadena a una función, ¡debe pasar una cadena en su lugar!
Actualización: este código NO es un error en PHP 7. Desplácese / haga clic / toque un spoiler para verificar por qué (contiene spoilers sobre cómo funciona el código).
fuente
string
(que es válida). La sugerencia de tipos (lo que estás haciendo) solo funciona para las clases. Como la clasestring
no existe, arroja un error.array(''=>array()'')
.golpetazo
Y pensarías que bash aceptaría un simple "¡Hola, mundo!" programa.
fuente
`echo hi`
convierte en elhi
interior de la cadena entre comillas dobles.!
se usa como prefijo para los designadores de eventos . Entonces, bash intenta evaluar!"
, pero no puede encontrar el evento al que se hace referencia.Python 2.7
Genera lo bastante inútil:
¿Cómo puede un simple comentario generar un error?
fuente
#
y contienen una cadena, lacoding:
siguiente palabra se usa como descripción de codificaciónMathematica
Cuando se usa Mathematica para crear resultados gráficos, a veces se activan mensajes de error formateados de acuerdo con las especificaciones que se usan en el programa. Aquí hay un ejemplo trivial.
fuente
Calculadora gráfica TI-89
Descubrí esto cuando aprendí sobre la diferenciación implícita en el cálculo de la escuela secundaria. Si ingresas:
Obtienes lo siguiente:
Con esta advertencia, impresa en minúsculas letras en la parte inferior de la pantalla:
Esto sucede porque
xy
no se interpreta comox * y
, sino más bien como su propio símbolo,xy
.Curiosamente, si lo haces
d(xy=0,x)
, obtienes0 = 0
la misma advertencia.fuente
Puedes hacer explotar el cerebro del compilador Haskell:
fuente
Rubí
Reglas de abuso.
Si se ejecuta en OSX, produce, por ejemplo
fuente
wrong number of arguments(1 for 0)
. Está expresando eso a través de un lenguaje que se genera de manera perezosa y estocástica usando vocabulario en inglés con poca consideración por la plausibilidad lingüística.Mensaje de DOS
te dio
Me topé con esto mientras intentaba insultar a mi computadora por no cooperar. Me puso un poco triste por un tiempo hasta que descubrí que esto solo sucede si el amor no existe. Si existe, lo hará con mucho gusto.
fuente
make
utilidad, no al DOS en sí.make: *** No rule to make target 'love'. Stop.
make: Fatal error: Don't know how to make target 'love'
pero eso está en Unix. En DOS, entiendomake is not recognized as an internal or external command, operable program or batch file
.Bash (error de Quine)
Este error es un Quine en Bash!
Por supuesto, debe tener el correspondiente
locale
(inglés aquí).fuente
...
al final, así que tuve que omitirlo en la entrada original también.CSH
Una
csh
broma realmente clásica :fuente
Bash: recreación precisa de un raro mensaje de error histórico
Salida:
Requiere que la fuente del kernel de Linux se desempaquete en el lugar habitual.
Dato curioso: una vez recibí este mensaje en serio, cuando ejecutaba una impresora de cinta antigua.
fuente
C (++)
Si los errores en tiempo de compilación cuentan aquí, hay uno (suponiendo un archivo llamado "crash.c").
Llena la pantalla con esto en la compilación (tenga Ctrl-C listo)
Otro fragmento que se compila perfectamente bien (sin advertencias
-Wall
e ilustra la hermosa seguridad de tipo de C </s>Ejecutarlo da:
fuente
Rubí
Siente que es extraño que esto pueda suceder en un lenguaje de alto nivel.
produce
fuente
Esto es muy antiguo, pero para aquellos que recuerdan BCPL,
se quejaría
fuente
R
Esto técnicamente no es un error, sino una advertencia, pero sin embargo es ridículo y ocurre por razones completamente esotéricas.
[[EDIT]] Parece que la causa de algunas partes de las advertencias divertidas reside en RStudio en lugar de R per se, por lo que es menos interesante de lo que pensé al principio. El primer ejemplo
plot(1:2, NotAGraphicalParameter = "ignore.me")
es, sin embargo, todavía reproducible en "desnudo" R y es lo suficientemente divertido por derecho propio. [[/ EDIT]]Es como si R recuerda nuestros insultos. Pero no por mucho.
Realmente no puedo explicar por qué sucede esto, pero es reproducible. En realidad, ocurre cada vez que proporciona algún "parámetro no gráfico" para trazar 1, y luego hace un diagrama 2 de una manera completamente impecable. Es especialmente divertido que recibamos 12 advertencias "no un parámetro gráfico" para el segundo gráfico, pero solo 6 para el primero. Otra cosa curiosa es que si proporciona "no un parámetro gráfico" con un valor NULL, no se genera ninguna condición:
Y para ser aún más ridículo, dibujemos algunas líneas sobre la trama previamente dibujada:
Esto deberíanoganar a lo grande a menos que no haya justicia.fuente
plot(2:3)
justo después de usarplot(1:2, NotAGraphicalParameter = "ignore.me")
. ¿Redefinirías algo en tu.Rprofile
?Script de comandos de Windows
ADVERTENCIA, esta es una bomba tenedor!
Esto generará preguntas basura acerca de dejar de fumar si intenta salir de la consola de alguna manera.
Bonificaciones:
fuente
q te insulta
fuente
¿Qué hay de los errores de optimización del compilador:
Esto es específico para gcc> = 4.7. Compila y funciona bien con
gcc -O0 -Wall
. Compila congcc -O2 -Wall
pero da como resultado un bucle inf.También tenga en cuenta, cómo gcc ve el problema para los más pequeños
N
, por ejemploN = 3
:Por cierto, esto se ha tomado de un informe de error, aunque no puedo recordar el número de error.
fuente
arr[N]
(fuera de la matriz) y accederarr[0]
(que no está inicializado)). Como todo está permitido para un comportamiento indefinido, este no es un error de optimización, pero es muy poco probable que sea lo que el usuario desea.Siempre me ha gustado esta rareza en APL:
Analiza el interior de las funciones perezosamente!
fuente
PHP
[]
se usa para empujar elementos. Sin embargo, si lo usa para la matriz literal, el PHP genera un mensaje de error loco, incluso si lo asigna para empujar. Requiere PHP> = 5.4, ya que antes no podía haber indexado los literales de matriz.Salida:
fuente
Pitón
Bloques anidados
Python 2.7:
SystemError: too many statically nested blocks
Listas de autorreferencia
Python 2.7
La verdad no es una constante
El problema en el siguiente ejemplo es que en Python 2.7,
True
yFalse
no son constantes. YTrue
y seFalse
puede convertir automáticamente en1
y0
:Python 2.7:
Intención
¿Recibes el error?
Mezclar pestañas y espacios estaba bien en Python 2.7 ... ¡pero ten en cuenta el nivel de sangría!
fuente
print a
.Yo empezare:
¿Alguna idea de por qué este programa falla? :RE
Ver
jane
ejecutar: http://ideone.com/gtaZ3fuente
B::BreakHorribly
se llama a sí mismo antesdoSomethingDiabolical
se llama, pordelete this
lo que nunca se alcanza.delete this
, ¿verdad?Golpetazo
Obtuve esto hoy cuando traté de averiguar si es posible proteger el sistema
rm -rf /
.El mensaje de error con
LANG=C
:fuente
rm
, nobash
. No estoy seguro de qué idioma debe declarar en el título, dado que solíabash
configurarlo.R
Otro que no es ridículo y, de nuevo, una advertencia en lugar de un error, pero sigue siendo agradable:
Me gusta el último bit: 50 o más :)
Y las advertencias reales:
DIVERSIÓN = DIVERSIÓN!
fuente
CPython
El resultado:
fuente
ctypes.pythonapi._Py_Dealloc(ctypes.py_object(None))
.Bash - falla de escape contraintuitiva
devoluciones
(la expansión del historial en la línea de comandos no se evita mediante comillas dobles)
Prima:
Es poco probable que la salida sea lo que se espera. Presione hacia arriba para obtener el comando nuevamente y observe que ha cambiado de lo que escribió. Si presiona hacia arriba e ingresa un par de veces, es probable que su salida comience a verse algo horrible. Pruébalo por ti mismo.
fuente
C # - Generador de Fibonacci perezoso y recursivo
Este código se ve bien, ¿verdad? Un generador de Fibonacci bastante simple, aderezado con cierta recursión y enumeración perezosa. Deberia trabajar.
No! Ejecutar esto provocará una Excepción de desbordamiento. Esto se debe a que estamos usando decimal, y el número 141 de Fibonacci (~ 8.1E28) excede el valor máximo de decimal (~ 7.9E28).
Sin embargo, int no genera una excepción OverflowException cuando excede su valor máximo. En cambio, como se esperaba, se desborda a un valor negativo. Entonces, si reemplazamos int en lugar de decimal, como en el siguiente código, debería funcionar, ¿verdad?
Si lees el código, debería ser obvio por qué esto no funcionará. Si no lo hiciste ... no solo cambié el tipo de decimal a int; También ingresé una llamada a ToList () en la declaración foreach. Esto obligará al enumerador devuelto a ser evaluado con entusiasmo. Esto causará no 141 recursiones, sino un número infinito de recursiones. En realidad, mucho antes de que llegue al infinito, por supuesto, desbordará la pila, causando que el tiempo de ejecución arroje una StackOverflowException. (Bonificación: esta excepción no se puede detectar, por lo que bloqueará el tiempo de ejecución)
fuente