forked from xxq250/Nasal-Interpreter
📝 update README.md & README_zh.md
This commit is contained in:
+5
-35
@@ -20,7 +20,7 @@
|
||||
* [__简介__](#简介)
|
||||
* [__编译__](#编译)
|
||||
* [__使用方法__](#使用方法)
|
||||
* [__教程__](#教程)
|
||||
* [__教程__](#教程)<details><summary>展开</summary>
|
||||
* [基本类型](#基本类型)
|
||||
* [运算符](#运算符)
|
||||
* [定义变量](#定义变量)
|
||||
@@ -33,19 +33,12 @@
|
||||
* [闭包](#闭包)
|
||||
* [trait(特性)](#特性)
|
||||
* [内置函数](#内置函数)
|
||||
* [模块](#模块开发者教程)
|
||||
* [__发行日志__](#发行日志)
|
||||
* [v8.0](#version-80-release)
|
||||
* [模块](#模块开发者教程)</summary>
|
||||
* [__发行日志__](../doc/dev_zh.md#发行日志)
|
||||
* [__开发历史__](../doc/dev_zh.md)
|
||||
* [__测试数据__](../doc/benchmark.md)
|
||||
* [__特殊之处__](#与andy解释器的不同之处)
|
||||
* [严格的定义要求](#1-必须用var定义变量)
|
||||
* [默认不定长参数](#2-默认不定长参数)
|
||||
* [__堆栈追踪信息__](#trace-back-info)
|
||||
* [内置函数`die`](#1-内置函数die)
|
||||
* [栈溢出](#2-栈溢出信息)
|
||||
* [运行时错误](#3-运行时错误)
|
||||
* [详细的崩溃信息](#4-详细的崩溃信息)
|
||||
* [__调试器__](#调试器)
|
||||
|
||||
__如果有好的意见或建议,欢迎联系我们!__
|
||||
@@ -55,7 +48,7 @@ __如果有好的意见或建议,欢迎联系我们!__
|
||||
## __简介__
|
||||
|
||||
__[Nasal](http://wiki.flightgear.org/Nasal_scripting_language)__
|
||||
是一个与ECMAscript标准语法设计相似的编程语言,并且作为运行脚本语言被著名的开源飞行模拟器 [FlightGear](https://www.flightgear.org/) 所依赖。
|
||||
是一个与ECMAscript标准语法设计相似的编程语言,并且作为运行脚本被著名的开源飞行模拟器 [FlightGear](https://www.flightgear.org/) 所依赖。
|
||||
该语言的设计者和初版解释器实现者为 [Andy Ross](https://github.com/andyross)。
|
||||
|
||||
这个解释器项目则由 [ValKmjolnir](https://github.com/ValKmjolnir) 完全使用 `C++`(`-std=c++11`)重新实现,没有复用 [Andy Ross的nasal解释器](<https://github.com/andyross/nasal>) 中的任何一行代码。尽管没有任何的参考代码,我们依然非常感谢Andy为我们带来了这样一个神奇且容易上手的编程语言。
|
||||
@@ -81,7 +74,7 @@ __我们为什么想要重新写一个nasal解释器?__
|
||||
|
||||
我们推荐你下载最新更新的代码包来直接编译,这个项目非常小巧因此你可以非常快速地将它编译出来。
|
||||
|
||||
__注意__: 如果你想直接下载发行版提供的zip/tar.gz压缩包来构建这个解释器,在下载之后请阅读下文中对应发行版本的[__发行日志__](#发行日志)以保证这个发行版的文件中不包含非常严重的bug(有的严重bug都是在发行之后才发现,非常搞心态)。在发行版日志中我们会告知如何在代码中手动修复这个严重的bug。
|
||||
__注意__: 如果你想直接下载发行版提供的zip/tar.gz压缩包来构建这个解释器,在下载之前请阅读[__发行日志__](../doc/dev_zh.md#发行日志)以保证这个发行版的文件中不包含非常严重的bug(有的严重bug都是在发行之后才发现,非常搞心态)。在发行版日志中我们会告知如何在代码中手动修复这个严重的bug。
|
||||
|
||||
__`Windows`__ 用户通过g++(`MinGW-w64`)使用以下命令或者使用MSVC(`Visual Studio`)来进行编译. 没有编译环境的请在[__这里__](https://www.mingw-w64.org/downloads/)下载MinGW-w64。(VS同样也有MinGW-w64)
|
||||
__`linux/macOS/Unix`__ 用户可以使用g++或者clang++替代下面命令中中括号的部分来进行编译(我们建议您使用`clang`)。
|
||||
@@ -714,29 +707,6 @@ dylib.dlclose(dlhandle);
|
||||
832040
|
||||
```
|
||||
|
||||
## __发行日志__
|
||||
|
||||
### __version 8.0 release__
|
||||
|
||||
这个版本的发行版有个 __严重的问题__:
|
||||
|
||||
in __`nasal_dbg.h:215`__: `auto canary=gc.stack+STACK_MAX_DEPTH-1;`
|
||||
|
||||
这个会导致不正确的`stackoverflow`报错。因为它覆盖了原有的变量。
|
||||
请修改为:
|
||||
|
||||
`canary=gc.stack+STACK_MAX_DEPTH-1;`
|
||||
|
||||
如果不修改这一行,调试器运行肯定是不正常的。在`v9.0`第一个commit中我们修复了这个问题。
|
||||
|
||||
另外一个bug在 `nasal_err.h:class nasal_err`这边,要给这个类添加一个构造函数来进行初始化,否则会出问题:
|
||||
|
||||
```C++
|
||||
nasal_err():error(0){}
|
||||
```
|
||||
|
||||
同样这个也在`v9.0`中修复了。所以我们建议不要使用`v8.0`。
|
||||
|
||||
## __与andy解释器的不同之处__
|
||||
|
||||
### 1. 必须用`var`定义变量
|
||||
|
||||
Reference in New Issue
Block a user