Lua4.0 编译器文档

编译器文档(luac.html):
---------------------------------------------------------
名字
luac - Lua 编译器

概要
luac [ options ] [ filenames ]

描述
luac 是 Lua 编译器。它将由 Lua 编程语言写成的程序翻译成二进制文件。
通过在 C 语言中调用 lua_dofile 或在 Lua 中调用 dofile 可以加载和执行这个生成的二进制文件。

预编译块的主要优点是:更快速的加载,防止源代码被用户修改,和离线的错误检测。
预编译并不意味着更快的执行速度,因为 Lua 的块在执行前总是会被编译成字节码。luac 只是能让这些字节码保存到文件中供以后执行使用。

luac 生成一个输出文件,其中包含的所有指定源文件的字节码。
默认情况下, 输出文件的名字为 luac.out。
但你可以使用 -o 选项去改变它。

由 luac 生成的二进制文件在所有的有相同字长的体系结构上是可移植的。这意味着一个在 32 位平台(例如 Intel)上生成的二进制文件可以被另一个 32 位平台(例如 Sparc)读取而无需修改,即使字节序不一样(大小端)。另一方面,在 16 位平台上生成的二进制文件不可以在 32 位平台上读取。
在命令行中,你可以混合包含 Lua 源代码的文本文件和包含预编译块的二进制文件。这就使得我们可以合并几个预编译的块为一个预编译的块,甚至从不同的(但兼容)平台。

你可以使用 “-” 来表明将标准输入作为源文件。

当有新版本发布,由 luac 生成的二进制文件的内部格式可能会发生改变。我们尝试去维护二进制文件的兼容性,但它并非总能奏效。所以,保存所有你预编译的 Lua 程序的源文件吧。

选项
选项必须是分开的。
-l 选项生成编译后的 Lua 虚拟机的字节码清单。列出字节码有助于学习 Lua 的虚拟机。如果没有给出文件,luac 加载 luac.out 并列出他的内容。
 
-o 输出到文件 "file",替代默认的 luac.out。输出文件可以是一个源文件因为所有的文件在写输出文件之前已经被加载。

-p 加载文件但是不产生任何输出。主要用来做语法检查或测试预编译的块,损坏的文件在加载时可能生成错误。使用 -t 做一个完整的测试。

-s 在写输出文件之前剥离调试信息。这样可以在非常大的块中节省一些空间,但如果在运行这些块时发生错误,错误信息可能不包含通常的完整信息。

-t 在预编译块上执行完整性测试块。通过这个测试的代码是完全安全的,在某种意义上,它不会打破解释器。然而,这样的代码是否有意义却并没有保证(没有人可以保证,因为停机问题是无解的。)。如果没有指定文件,luac 加载 luac.out 并测试其内容。

-v 输出版本信息。

文件
luac.out 默认输出文件.

另请参阅
lua(1)
http://www.tecgraf.puc-rio.br/lua/

诊断
错误消息应该是自描述的。

作者
L. H. de Figueiredo, R. Ierusalimschy and W. Celes ([email protected])

----------------------------------------
luac 的 readme 自述文件

这是luac,Lua 的编译器。
它的帮助手册有 nroff 和 . . / . . / doc 目录中的 html 文件。

luac 将 Lua 程序翻译成二进制文件。
通过在 C 语言中调用 lua_dofile 或在 Lua 中调用 dofile 可以加载和执行这个生成的二进制文件。

预编译块的主要优点是:更快速的加载,防止源代码被用户修改,和离线的错误检测。

luac 也可以用来了解 Lua 的虚拟机。

这里列出一些 luac 可识别的选项:
  - 执行标准输入
  -l 列表
  -o file 输出 file (默认是 "luac.out")
  -p 只做解析
  -s 剥离调试信息
  -t 测试代码完整性
  -v 显示版本信息

luac 也是一个如何(得体得)使用 Lua 内部构件的例子。

最后,luac 不需要运行时代码,stubs.c 确保它不被链接到 luac。这个文件还显示了如何避免链接解析器。

时间: 2024-10-26 12:54:29

Lua4.0 编译器文档的相关文章

Lua4.0 解释器文档

解释器文档(lua.html)---------------------------------------------------------名字lua - Lua 解释器 概要lua [ arguments ] 描述lua 是独立的 Lua 解释器.它加载并执行 Lua 程序,程序可以是文本源代码形式,或由 Lua 编译器 luac 输出的预编译二进制形式.lua 可以用作批处理解释器,也可用做交互式解释. 参数可以是选项,赋值,文件名,它们从左到右按顺序执行. 选项以中划线 - 开始,描述

"kewastUnPackStats(): bad magic 1 (0xXXXXXXXXX, 0)" in Alert Logfile After Upgrading to 11.2.0.1 (文档

 "kewastUnPackStats(): bad magic 1 (0xXXXXXXXXX, 0)" in Alert Logfile After Upgrading to 11.2.0.1 (文档 ID 1227524.1) 转到底部 In this Document Symptoms   Cause   Solution   References APPLIES TO: Oracle Database - Enterprise Edition - Version 9.2.0

[译文]Casperjs1.1.0参考文档-安装

安装 Casperjs能被安装在mac osx,windows 和大多数linux版本 依赖项 PhantomJS1.82及以上 Python2.6及以上 1.1版本的新特性 试验性的:在1.1-beta1版本,slimerjs 0.8及以上版本可以在 gecko(firefox)内核上运行你的测试.(仅需要在执行语句命令行中增加–engine=slimerjs这个参数) Mac osx下安装 略 Npm安装 略 从git安装 略 从一个档案安装 你可以从此处下载源代码: 最近的开发版: htt

蓝牙4.0核心文档阅读笔记

一.蓝牙技术介绍 蓝牙无线通讯包括两种模式:基础模式(BR, Basic Rate)和低功耗模式(LE, Low Energy). 蓝牙系统包括一个Host和多个Controllers,Host包括在HCI(Host Controller Interface)与应用程序之间,Controller指HCI以下的层.典型的BLE(Bluetooth Low Energy)协议栈结构如下图所示. 二.低功耗蓝牙4.0(BLE)概述 BLE具有两种多路通信方式:频分多址(FDMA,Frequency d

李洪强iOS开发之-环信02.1_环信 SDK 2.x到3.0升级文档

李洪强iOS开发之-环信02.1_环信 SDK 2.x到3.0升级文档 SDK 2.x 至 3.0 升级指南 环信 SDK 3.0 升级文档 3.0 中的核心类为 EMClient 类,通过 EMClient 类可以获取到 chatManager.groupManager.contactManager.roomManager对象.原来 2.0 版本的 SDK 很多方法提供了同步.异步回调.异步(block)三种方法,3.0 版只提供同步方法(async开头的方法为异步方法). 例如: //2.0

Scrapy 中文手册 0.25 文档

Scrapy 中文手册 0.25 文档 http://docs.pythontab.com/scrapy/scrapy0.24/topics/email.html

Webpack 2.0 的文档

Webpack 2.0 的文档 https://webpack.js.org/get-started/

Android L / 5.0 帮助文档 API21文档 sample demo源码 下载

如无法登陆google,浏览android官网也是问题,这里提供android L的官方文档资料下载.API版本21 参考文档较大,解压后最好使用IE浏览器打开,并工具选项卡中设置为脱机工作模式, 如是,则打开文档速度会加快许多.否则发送js请求等待google响应,会出现加载十分缓慢的现象. 也可修改网页源码,使之不发送访问google的请求,请自行百度,etc 如果想用google搜索,又无法打开google网站,可以试用下谷粉搜索 http://www.gfsoso.com/ Androi

vCenter 6.0 部署文档

vCenter部署文档1 具体文档下载,可以访问http://down.51cto.com/data/2223764 文档概要2 基础知识2 系统环境2 安装步骤3 1. 运行ISO文件3 2. 选择适用于Windows的vCenter Server安装3 3. 选择我接受许可协议条款4 4. 部署类型选择嵌入式部署5 5. 填写FQDN名称6 6. 选择创建新的SSO域,并设置administrator用户密码7 7. 验证选择使用本地账户8 8. 数据库选择9 9. 配置vCenter服务使