2024/06/16 工作日志

本次发行了2.4.4版本。

修复了一些漏洞

目前已无已知Bug。

主要修复了编译器和Stamon标准库的bug。

成功支持Linux

成功将程序移植到Linux系统(测试环境:Debian),并且发布了发行版。

新增了Strip功能

你可以利用Stamon的strip选项剥夺字节码(即.stvc文件)的调试信息,来减少字节码文件大小,提升编译和运行的速度。代价就是在调试过程中无法知道错误所在位置,该功能一般用于编译发行版的字节码

该功能同样内嵌与build选项,在该选项中加入--strip=true参数即可指定编译时不写入调试信息。用--strip=false则写入调试信息(如果不加入该参数则默认写入调试信息)

编译发行版

目前支持编译Windows、Linux系统。

需要准备的环境

在编译前,请确保您有:

如果您未安装strip或upx,执行Makefile可能会报错,属正常现象,发行版仍然会编译成功。如果您希望发行版尽可能小,我们还是建议您安装strip和upx。

开始编译

打开终端,切换到源码目录(即与Makefile同级的目录),您可以根据系统来使用编译指令:

使用发行版

配置运行时环境

Stamon的运行时环境非常简便,您只需要配置至少一个环境变量即可使用:

如果不配置PATH变量,则Stamon无法全局使用(即只能在可执行文件所在目录下使用),因此我们强烈建议您配置PATH变量

运行指令

Stamon目前支持以下指令:


该指令用于输出Stamon当前的版本号。


该指令用于输出Stamon的用法以及各种参数的介绍。


该指令用于编译Stamon代码,其中src为必要参数,表示编译的Stamon文件名,dst为可选参数,表示生成的字节码文件名(默认a.stvc),options为可选参数,他们包括:

--import=<boolean> 是否支持引用源码,默认为true) --strip=<boolean> 是否剥削调试信息,默认为false) -I<path> 添加引用路径


该指令用于运行STVC文件,其中src为必要参数,表示编译的Stamon文件名,options为可选参数,他们包括:

--GC=<boolean> 是否运行GC(垃圾自动回收),默认为true --MemLimit=<Integer> 设置虚拟机的对象内存限制(按字节计,默认为16,777,216字节,即16MB)


该指令用于剥削STVC调试信息,其中src为必要参数,表示待剥削的STVC文件。


接下来要做的事

  1. 编写AST的解释器
  2. 编写词法分析的保存功能
  3. 编写AST的O1优化器
  4. 完善标准库
  5. 支持编译为平面字节码

后记

总算是正式支持Linux了,这也极大的证明了Stamon的可移植性......