文档章节

Lua1.1 公开发布的第一版

晓寒
 晓寒
发布于 2014/09/02 13:37
字数 683
阅读 317
收藏 1

Lua1.1 是官方公开发布的第一版,是事实上的第一版 ,也是最早发布的一版。

代码从这里 www.lua.org/ftp/lua-1.1.tar.gz 下载,事实上在 www.lua.org/versions.html 页面,有所有的可以下下载到的版本。

代码下载下来之后,解压,可以看到这次多了不少目录(和 Lua1.0 的一个孤零零的目录相比)。

目录介绍:

clients, include, src 目录中是代码。

test 目录中是一些测试文件。

doc 目录中是文档。

编译:
看目录中有 Makefile 文件,make 一下试试,不行,各种奇怪的错误。好吧,我比较懒,就不深究原因了。开 VS2010, 把上面提到的几个代码目录中的文件全部拷贝到一起,建工程,把这些代码全部加入工程,编译,编译失败,
在 iolib.c 的 21 行报错:error C2099: initializer is not a constant    看看 iolib.c 的 21 行是什么
static FILE *in=stdin, *out=stdout;

这个代码错误好像很熟悉的样子,是的,Lua1.0 里就遇到过了。同样,这里做如下修改:

iolib.c
21 行
static FILE *in=stdin, *out=stdout;
改为
static FILE *in=NULL, *out=NULL;

472 行 iolib_open 中
添加 in=stdin; out=stdout;

再编译,很好,编译通过。看看 Debug 目录中有可执行文件生成。
写个 hello, world 试试
print ("hello, world")
可以正常执行,说明编译的很成功。

再试下 mingw 和 linux,把 Lua1.1 的所有代码拷贝到一个目录里面,就像 Lua1.0 那样,把 Lua1.0 的 Makefile 拷贝过来。修改下目标文件,由于 Lua1.1 的文件相比 Lua1.0 有变化,我们做相应修改。词法分析和语法分析文件改为 lex.o 和 y.tab.o,由于 Lua1.1 少了 floatingpoint.h 这个文件,我们把它加上(虽然它是个没有什么内容的空文件)。iolib.c 的修改方式上面已经说了。做完这几步之后,make 一下,无论是 mingw 的 gcc 或者是 linux 里都可以成功生成可执行文件。不错,环境的准备也算挺顺利的。

README 的主要内容包括,Lua 是什么,由谁开发,一些特点,如何安装,法律事务,如何联系作者。
Lua 是一个简单但是强大的应用程序扩展语言。
类 pascal 语法,变量不需要声明,有强大的数据描述结构,函数可接受多参数,函数可返回多个结果,代码被编译为字节码由虚拟机执行。
Lua 是由 ASNI C 写成的,是可移植的。

Lua1.1 的文档是 *.ps 格式的文件,在 Linux 里看着比较方便,在 Windows 里要安装阅读器,为了看两个文件,我安装了 Ghostscript 和 GSview ( http://www.ghostscript.com/ )。

© 著作权归作者所有

共有 人打赏支持
晓寒
粉丝 34
博文 119
码字总数 133745
作品 0
海淀
私信 提问
加载中

评论(1)

DavidWTF
DavidWTF
回头把lua 的源码读一遍。
第2版Windows Server 2016技术预览版下月亮相

在Windows Server 2016技术预览版第一版即将到期的情况下,微 软准备在5月份推出第2版Windows Server 2016技术预览版。目前,微软正在研发Windows Server 2016,计划在2016年初正式推出。但是...

oschina
2015/04/05
2.3K
9
稳居行业第一,天眼查打出“商业安全”新战略

此次发布会上,天眼查还宣布了重要的战略布局“天眼查Inside”,未来将赋能更多合作伙伴 3月5日,天眼查在京举办“战略生长发布会”。会上,国家“千人计划”专家、天眼查创始人兼CEO柳超博士...

行者武松
2018/04/10
0
0
Lua1.1 虚拟机指令分析(一)

在语法分析 luaparse 之后,调用 luaexecute 来执行语法分析生成的字节码。 虚拟机的指令是一个枚举型,就是在 opcode.h 中的 OpCode, 通过 lua_execute 中的那个 switch case 来看下指令对应...

晓寒
2014/09/14
0
0
Ubuntu 13.10 开发日程表公布

Ubuntu 13.10的开发代号上月底已经公布,是Saucy Salamander(活泼的蝾螈),现在,Canonical也确定了其开发日程表。 Ubuntu 13.10开发日程表: 6月20日 - Alpha 1 (不公开发布) 7月18日 - ...

oschina
2013/05/03
9.1K
13
微软发布 Office 2016 公开预览版

在近期举行的 Microsoft Ignite 2015 大会上,微软正式发布了 Office 2016公开预览版,这是一个面向消费者和企业用户推出的版本。 早在3月中旬,微软就正式发布了Office 2016公开预览版,不过...

oschina
2015/05/05
4.9K
41

没有更多内容

加载失败,请刷新页面

加载更多

Hibernate SQLite方言

以下代码有参考过github上国外某位大佬的,在发文的最新稳定版Hibernate上是可用的,有时间再仔细分析一下 import org.hibernate.dialect.Dialect;import org.hibernate.dialect.function.S...

CHONGCHEN
今天
3
0
CentOS 7 MariaDB搭建主从服务器

本文编写环境为CentOS7。确保关闭SELinux,关闭防火墙或者防打开指定端口。具体信息如下 #master[root@promote ~]# cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core) [r...

白豆腐徐长卿
今天
10
0
介绍python中运算符优先级

下面这个表给出Python的运算符优先级,从最低的优先级(最松散地结合)到最高的优先级(最紧密地结合)。这意味着在一个表达式中,Python会首先计算表中较下面的运算符,然后在计算列在表上部...

问题终结者
今天
3
0
Spring Boot 2.x基础教程:快速入门

简介 在您第1次接触和学习Spring框架的时候,是否因为其繁杂的配置而退却了?在你第n次使用Spring框架的时候,是否觉得一堆反复黏贴的配置有一些厌烦?那么您就不妨来试试使用Spring Boot来让...

程序猿DD
昨天
10
0
SpringSecurity认证流程源码级详解

SpringSecurity认证流程源码级详解 认证流程说明 认证结果如何在多个请求之间共享 获取认证用户信息

chendom
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部