« 在 C 中设置 Lua 回调函数引起的一处 bug | 返回首页 | 开发笔记(22) : 背包系统 »

Lua 5.2.1 的一处改变

Lua 5.2.1 正式发布有段时间了。虽然相对于 5.2.0 只是一个小版本的提升,但也是有些东西可以拿出来讲讲的。

比如,在这次小版本更新中,字符串类型被分为了长字符串和短字符串两类。长字符串(大于 40 字节的字符串),不再做内部化处理了。

一开始我以为这是为了性能的一处小改进,可以在字符串处理比较多的场合,少做一些 hash 计算和 hash 表插入。后来查了一下邮件列表发现,其实是为了安全性,防止别人做 hash dos 攻击。一起改变的是字符串的 hash 过程使用了一个随机种子。默认设定和时间有关。值得注意的是,这处改变可能会使得嵌入 lua 的程序每次运行的内存状态不一致,有可能给调试带来一定的麻烦。

今天的源码阅读收获,我已经记录在我那本想慢慢完成的书,《Lua 源码欣赏》中了。以前写过两章中断了。这几天新写的两章在这里 。因为想在最后再综合整理,所以就独立输出 pdf 了。

Comments

我刚刚发现这个博客在互联网上,而我是冲浪在你不同的帖子和文章后,突然我来到这个特定的岗位,我真的很喜欢它。我觉得你有你写的主题的一些好资料。

I desired to thank you for this exceptional read!! I absolutely enjoyed every single small little bit of it.

希望能云风能有时间把书写快点.

支持,希望快点出来啊,期待!!

看过第一本书,支持新书

支持新书,期待出版之日快些来临!

支持了,国内讲lua的书至今还是少之又少

支持出新书 还是与Lua相关的

Post a comment

非这个主题相关的留言请到:留言本