MoonBit 每周工作动态-1023

MoonBit更新

1. 根据社区用户的反馈,将顶层函数的关键字从 func 改为 fn,使其与局部函数保持一致,同时也能避免给开发者带来不必要的困惑。

修改前

func fib(num : Int) -> Int {
  fn aux(n, acc1, acc2) {
    match n {
      0 => acc1
      1 => acc2
      _ => aux(n - 1, acc2, acc1 + acc2)
    }
  }
  aux(num, 0, 1)
}

func init {
  println(fib(46))
}

修改后

fn fib(num : Int) -> Int {
  fn aux(n, acc1, acc2) {
    match n {
      0 => acc1
      1 => acc2
      _ => aux(n - 1, acc2, acc1 + acc2)
    }
  }
  aux(num, 0, 1)
}

fn init {
  println(fib(46))
}

2. 根据社区用户的反馈,将 Float64 类型名修改为 Double

修改前

let pi : Float64 = 3.14

修改后

let pi : Double = 3.14

3. 支持 Intel 芯⽚的 Mac 的工具链下载

链接是MoonBit

我们预计在下周完成对 Windows 的支持

IDE与构建系统

1. 将 moon.pkgmoon.mod 改成 JSON 格式

moon.pkgmoon.mod 改成 JSON 格式 moon.pkg.jsonmoon.mod.json。从自定义格式转换为 JSON 的原因是 MoonBit 的工具链正在快速演进,使用 JSON 可以减少维护成本并简化与其他工具的集成。

修改前moon.mod

module hello

修改后moon.mod.json

{
  "name": "hello"
}

修改前moon.pkg

package main

import "hello/lib"

修改后moon.pkg.json

{
  "name": "main",
  "import": {
    "hello/lib": ""
  }
}
3 个赞

期待文档和测试里的示例代码对应本周更新修改一下

我们预计在下周完成对 Windows 的支持

牛逼

使用 json 格式,其他工具的集成。指的是什么 vscode 和一些 ide 什么的吗?有考虑过 yaml 格式吗?

和其他工具集成主要指的是vscode,因为vscode可以给json文件提供schema声明,进而获得一些补全。

之所以选择json而不是yaml主要基于两点考虑:

  1. json在各个语言的工具更齐全,我们主要使用rust、ocaml、js/ts进行开发,其中js/ts对于json有一等的支持,ocaml的json parser也比yaml parser维护地更积极。
  2. json可以通过json schema在vscode中获得补全
1 个赞

有没有考虑 toml?

这个我们未来会考虑的