Disculpe el título divertido, lo estoy usando en analogía con "zip bomb". ¿Es posible crear un archivo fuente de scala que, una vez compilado, producirá una gran cantidad de archivos de clase (o un archivo de clase único muy grande)? ¿Hay alguna manera de que el tamaño de los archivos de clase crezca más rápido que linealmente con el tamaño del archivo fuente?Scala bomb? (como una bomba zip)
Respuesta
La especialización es inherentemente exponencial en la cantidad de parámetros de tipo especializados.
class Huge[@specialized A, @specialized B, @specialized C](
val a: A, val b: B, val c: C
) {} // 730 files, 2.9 MB
class Gigantic[@specialized A, @specialized B, @specialized C, @specialized D](
val a: A, val b: B, val c: C, val d: D
) {} // 6562 files, 26 MB
patrón de juego también puede implicar una gran cantidad de duplicación de código para los casos complejos (aunque me resulta difícil predecir exactamente cuándo ocurrirá esto).
¡Ah, nunca he utilizado la especialización, gran respuesta! –
Rex, para información, hay un error planteado para la coincidencia de patrones https://issues.scala-lang.org/browse/SI-1133, falla porque se genera demasiado código. Esto debería ser arreglado con la nueva coincidencia de patrón virtual en 2.10. –
- 1. ¿Cómo puedo protegerme de una bomba zip?
- 2. multiprocesamiento bomba
- 3. Obteniendo una excepción "No se puede leer como archivo zip" al intentar obtener una transmisión de un archivo Zip interno (un Zip dentro de otro Zip)
- 4. Ruby zip una secuencia
- 5. g ++: Use archivos ZIP como entrada
- 6. ¿Cómo funciona esta bomba tenedor bash?
- 7. descarga varios archivos como zip en .net
- 8. Tomcat binary distribution zip como maven artefact
- 9. ¿Cómo descargar ".apk" como ".apk"? (no como ".zip")
- 10. No se ha cargado ningún archivo como este: zip/zip (MissingSourceFile) al ejecutar pepino
- 11. Scala Convert Establecer como mapa
- 12. ¿Qué es zip (programación funcional?)
- 13. Bomba de mensajes en .NET Servicio de Windows
- 14. ¿Cómo se hace una bomba de tiempo en una aplicación de Android?
- 15. Rieles con clip paperx content_type vuelve como aplicación/zip
- 16. ¿Cómo analizo un documento xml como una secuencia usando Scala?
- 17. ¿Puedo marcar una función como obsoleta en Scala?
- 18. ¿Hay algo como rubygems.org para bibliotecas scala
- 19. Scala: palabra clave como nombre del paquete
- 20. escritura literal XML como parámetro en Scala
- 21. ¿Cómo usar Scala como reemplazo para XSLT?
- 22. ¿Hay algo así como AutoMapper para Scala?
- 23. Scala: cómo especificar varargs como tipo?
- 24. ¿Cuál es el propósito de una función zip (como en Python o C# 4.0)?
- 25. py3k: ¿Cómo se lee un archivo dentro de un archivo zip como texto, no como bytes?
- 26. Objetivo C - Acceso a archivos en zip sin extraer zip
- 27. 7-zip commandline
- 28. Lea un archivo zip dentro del archivo zip
- 29. Zip Stream en PHP
- 30. Error Scala SBT/Maven2 en OSX: "Error al abrir archivo Zip" -> MissingRequirementError
¿Para qué diablos podrías necesitar eso? –
@NikitaVolkov Suena como un ejercicio mental interesante, pero tengo un problema tratando de encontrar una aplicación práctica. – Vatine
Ok, para aquellas personas que necesitan aplicaciones prácticas: intentar proteger un servicio que compila el código Scala de los ataques DOS. –