当前位置: 首页 > ops >正文

双周报Vol.72:字段级文档注释支持、视图类型现为值类型,减少内存分配

双周报Vol.72:字段级文档注释支持、视图类型现为值类型,减少内存分配

在这里插入图片描述

更新目录

  • ..调用链末尾自动丢弃值语义变更
  • 字段级文档注释支持
  • 视图类型现为值类型,减少内存分配
  • 特效函数调用现支持样式高亮
  • 实验性支持虚拟包,接口与实现解耦

语言更新

1、..调用链末尾自动丢弃值语义变更

x..f(..) 的语义即将发生改变,在 ./.. 调用链末尾的最后一个 .. 以后会自动丢弃它的值。因此,下面的代码:

impl[X : Show, Y : Show] Show for (X, Y) with output(self, logger) {logger..write_string("(")..write_object(self.0)..write_string(", ")..write_object(self.1)// 原本,这里必须写 `.`,否则整个 `.` 链的类型是 `&Logger`,不符合预期类型 `Unit`.write_string(")")
}

以后可以简化成

impl[X : Show, Y : Show] Show for (X, Y) with output(self, logger) {logger..write_string("(")..write_object(self.0)..write_string(", ")..write_object(self.1)// 以后可以直接一路 `..` 到底了..write_string(")")
}

但这也意味着直接使用 x..f() 的值的用法将会被废弃,需要显式保存x。例如,下面的代码:

let arr = []..push(1)..push(2)

需要改写成:

let arr = []
arr..push(1)..push(2)

2、字段级文档注释支持

枚举构造器和结构体的字段支持单独的文档注释,在补全时会显示相应的文档。

///| Location enum
struct Location {/// X coordinatex : Int/// y coordinatey : Int
}///| Variant enum
enum Variant {/// Stirng constructorString(String)/// Number constructorNumber(Double) 
}

3、视图类型现为值类型,减少内存分配

@bytes.View@string.View 在 C 和 wasm1 后端现在会被编译成值类型,这意味着这两个类型不会引入内存分配,性能有较大提升。

工具链更新

1、特效函数调用现支持样式高亮

vscode 插件支持semantic token, 会对有effect的函数(会抛出异常的函数, 异步函数)调用使用不同的样式高亮。

2、实验性支持虚拟包,接口与实现解耦

构建系统支持 virtual package 特性,通过将一个 package 声明为虚拟包,定义好一套接口,用户可选择具体使用哪一份实现,如不指定则使用该虚拟包的默认实现。

通过这项特性,给分离接口与实现带来较大灵活性。注意:目前这项特性处于实验性状态。详情请查看:MoonBit 新特性:Virtual Package 虚拟包机制

3、单文件测试调试功能上线

支持对于单个 .mbt 和 .mbt.md 文件的 test 和 debug codelen

http://www.xdnf.cn/news/7362.html

相关文章:

  • 实战手册--如何针对衡石分析平台的数据集成详解
  • 配电房值守难题终结者:EdgeView智能监控的7×24小时守护
  • ICU库交叉编译
  • 软件设计师关系代数和元组演算(关联、笛卡尔积、除、映射、分段等问题)考点分析——求三连
  • MCP与通讯模式:理论篇
  • 云服务器开发软件操作步骤
  • 微机系统第二章-题目整理
  • 数据治理进阶:精读45页深入浅出数据治理培训教材【附全文阅读】
  • Nginx基础知识
  • 学习BI---QuickBI介绍
  • 【find / -name “xxx“】为什么有时候搜索范围扩大之后,就无法找到
  • 预训练、指令微调与RLHF如何塑造LLM
  • 【AI论文】端到端视觉标记器调优
  • Typora编写Markdown文档(支持Mermaid)
  • 客户体验数据使用的三种视角——旅程视角
  • python-判断闰年( 极其简单的python)
  • ubuntu sh安装包的安装方式
  • 关于摄像头模块的红外截止滤光片
  • Pichome 任意文件读取漏洞复现(CVE-2025-1743)
  • 技术解码 | 玩转视频播放,自适应码流技术
  • Google设置app-ads.txt
  • 技术架构缺乏灵活性,如何应对变化需求?
  • 油烟净化设备维护保养的科学方法与实践
  • python使用jsonpath-ng库操作json数据
  • 创建型:抽象工厂模式
  • 【RAG系统高效召回2】[特殊字符] 提升 RAG 系统检索质量的六大策略:从 top-k 到索引扩展
  • SpringBoot-1-入门概念介绍和第一个Spring Boot项目
  • 如何在LVGL之外的线程更新UI内容
  • 《Linux服务与安全管理》| DNS服务器安装和配置
  • 进程退出 和 僵尸进程、孤儿进程