自 0.2 版以来(2020 年 12 月),有 5769 个提交被推送到 master 分支,有 1697 个 bug 被修复。从现在开始,Vlang 将每隔 4 个月做一次重大更新。
V 0.3 部分更新内容如下:
- 通过 C2V 进行 C 到 V 的转译:
v translate file.c
(演示视频,YouTube) - 在 V、cgen 和 C 互操作中进行了大量的错误修正,以允许运行转译好的 DOOM.v
- 用 V 编译器构建的程序不再默认泄漏内存
- Vlang Closures 支持所有的操作系统
Option
和Result
现在是独立的类型,旧的代码将在未来 1 年内可以继续正常使用- 在类型检查器中增加了数百个新的检查
- 所有 V 的后端都被分割成独立的进程,因此构建 V 的速度提高了 26%。
ustring
已被[]rune
所取代- Maps 现在可以有非字符串的键
- C 后端现在是并行的(目前只有 cgen 部分)
- 大量的编译器源代码的清理和优化。根据 fast.vlang.io 的数据,编译器的速度提高了 ~30%
- 更好的编译器源代码组织
- V 的整数类型的命名现在更加一致了:
byte
已被改名为u8
,旧的代码将在未来 1 年内可以继续正常使用 - 错别字检测器现在高亮显示了建议的名称,从而使其更加明显
datatypes
模块现在有Heap
,Queue
,Stack
,BSTree
,LinkedList
- vlib 现在有一个 TOML 解析器,与 TOML 1.0 完全兼容。
- 在 V.js 后端做了很多工作,包括图形库,它已被移植到 V.js
- 现在可以通过使用数组中的每个单独元素来进行更复杂的数组初始化 (
[]int{init: it}
) - V 中加入了移位运算符
>>>
和>>>=
(它们的工作原理与 Java 中的完全一样) nofloat
选项,这对编写内核和没有 FPU 的嵌入式系统很有用- TCC 现在与语言捆绑在一起,这允许在不依赖外部 C 编译器的情况下构建 V 程序
- Null 可以只在
unsafe
的情况下使用 - 新模块
compress.gzip
- 大量的
net
/net.http
/vweb
修正 - 支持 IPv6
- Go2V 转译器已经由社区启动,并且已经可以转译简单的程序
- Go 后端的早期版本(
v -b go -o file.go file.v
) - 引入
isize
和usize
类型,弃用size_t
,改用usize
。 - 添加
datatypes
和datatypes.fsm
模块。 - 泛型接口
- 修复泛型中的更多错误
更多详情可查看:https://github.com/vlang/v