Si compilo un archivo normal .lua
con luac
, ¿se puede ejecutar el resultado sin tener instalada la biblioteca o el intérprete Lua?¿Puede el bytecode producido por luac usarse en computadoras sin biblioteca Lua?
Respuesta
No. Puede ejecutarlo en una versión de Lua que se haya creado sin el compilador, pero aún necesita el intérprete de Lua para ejecutar el código.
Dicho sea de paso, el bytecode compilado de Lua también es específico de la máquina; es decir, no puede compilar en una arquitectura y luego ejecutar esa salida en otra arquitectura a menos que comprenda las sutilezas (endianness, tamaños de tipos, etc.).
¡Gracias por la explicación! – user1309306
¡Por favor descarta mi edición pendiente! Estaba totalmente equivocado. Resulta que la portabilidad del bytecode de Lua es cuestionable, algo que encontré con muy poca investigación. Mis disculpas. – Deco
Si su código no utiliza ninguna función dinámica basada en carga (eso es loadtring, loadfile, require, etc.) puede despojar a la biblioteca Lua de solo una VM, porque lo que el compilador emite es código para ejecutar en este virtual máquina. Esto puede cortar fácilmente Lua ya pequeña huella a 1/3 fracción del original.
Sin embargo, dado que este NO es un código binario nativo para ninguna arquitectura existente actualmente, aún NO PUEDE ejecutarlo directamente sin la asistencia de VM.
- 1. ¿Debo ver el bytecode producido por un compilador Java?
- 2. Diferencias en el bytecode de java producido por los compiladores de Oracle y Eclipse
- 3. Diferencias entre el bytecode de Lua estándar y el bytecode de LuaJIT
- 4. ¿Mejor herramienta (s) para descompilar el bytecode de Lua?
- 5. ¿Guardando todo en un solo fragmento de bytecode lua?
- 6. ¿Por qué debería usarse el modismo "PIMPL"?
- 7. Mejor biblioteca Lua OOP
- 8. ¿El bytecode de Can Lua para las declaraciones 'if' salta hacia atrás?
- 9. ¿Puede El Cairo (la biblioteca de gráficos) usarse para representar fórmulas matemáticas e imágenes (estilo de látex)?
- 10. ¿Es posible transformar el bytecode LLVM en bytecode de Java?
- 11. No se puede usar por ciento (%) en un patrón Lua
- 12. ¿Se puede ejecutar IL producido por el compilador C# 4.0 en CLR 2.0?
- 13. ¿Por qué el ejecutable producido por Delphi 2009 IDE es diferente al producido en la línea de comando?
- 14. Instalación de la biblioteca de socket Lua
- 15. Reducir el tamaño del ejecutable producido por GHC
- 16. ¿Cómo se puede implementar OO en Lua?
- 17. Tipos en Bytecode
- 18. Cómo inspeccionar bytecode java generado por Clojure desde el repl?
- 19. ¿Puede anular los permisos de archivo para el volcado de pila producido por -XX + HeapDumpOnOutOfMemoryError?
- 20. Depuración de un núcleo producido por valgrind
- 21. Compilador Lua a JVM?
- 22. ¿Qué es exactamente el ejecutable producido por Opa?
- 23. Lua en el iPhone?
- 24. Uso de la biblioteca paralela de tareas con múltiples computadoras
- 25. ¿Se puede usar Lua para el desarrollo de aplicaciones?
- 26. Lua en el iPhone
- 27. Javascript como bytecode depurable
- 28. Java Bytecode Manipulation Library Sugerencias
- 29. Multithreading en Lua
- 30. Puede maven firmar no solo producido jar, sino también dependencias
He tratado de mejorar la pregunta con mi edición (ciertamente pesada) para reflejar lo que creo que el OP realmente estaba pidiendo. Si me equivoco, ¡siéntete libre de corregirme audazmente! En cualquier caso, creo que esta pregunta refleja una confusión ocasional vista por los nuevos usuarios de Lua, y vale la pena preservarla. – RBerteig