V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
moonbitlang
V2EX  ›  编程

本周 MoonBit 核心库进行 API 整理工作、工具链持续完善

  •  
  •   moonbitlang · 23 天前 · 373 次点击

    MoonBit 更新

    • [核心库 Breaking ] 核心库进行 API 整理工作

    • 所有 immutable 数据结构被放在immut路径下,如@immutable_hashmap.Map变为@immut/hashmap.Map

    // Before
    let a : @immutable_hashmap.Map[Int, Int] = @immutable_hashmap.make()
    // After
    let a : @immut/hashmap.Map[Int, Int] = @immut/hashmap.make()
    
    • 核心库中 Option[T] 类型性能优化
      • 在类型 T 是一个引用类型情况下,对于 Option[T] 类型的值,Some(v) 会被直接编译成 vNone 会在 wasm-gc 后端被编译成 ref.null ,在 JavaScript 后端被编译成 undefined,从而避免内存分配
    • 核心库中引入了 fn panic[T]() -> T 函数,这个函数可以用于在测试块中,其中测试的名字需要以 "panic" 开头:
    test "panic test ok" {
      panic() // 测试通过
    }
    
    test "panic test failed" {
      () // 测试失败
    }
    

    IDE 更新

    • [ VS Code 插件] 增加了testfor的代码片段 test片段

    录屏 2024-05-27 11.31.11.gif for片段

    for 片段 2.gif

    构建系统更新

    • [初始化] moon new 会自动对创建的项目进行版本控制初始化,目前支持 git
    • [测试] 现在可以指定对多个包进行测试
    moon test -p a b c
    moon test -p a -p b -p c
    

    工具链更新

    • [安装] 现在可以指定版本号进行安装
    # Mac 与 Linux 用户
    # 下载最新版
    curl -fsSL https://cli.moonbitlang.com/install/unix.sh | bash
    # 下载 bleeding 版本
    curl -fsSL https://cli.moonbitlang.com/install/unix.sh | bash -s bleeding
    # 下载特定版本
    curl -fsSL https://cli.moonbitlang.com/install/unix.sh | bash -s 0.1.20240520+b1f30d5e1
    
    # Windows 用户
    # 下载最新版
    irm cli.moonbitlang.cn/install/powershell.ps1 | iex
    # 下载特定版本
    $env:MOONBIT_INSTALL_VERSION = "0.1.20240520+b1f30d5e1"; irm cli.moonbitlang.cn/install/powershell.ps1 | iex
    
    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1032 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 19:26 · PVG 03:26 · LAX 12:26 · JFK 15:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.