文章摘要
Factor编程语言发布了0.101版本,支持Windows、Mac OS和Linux系统,提供x86和x86-64架构的下载包。该版本由多位开发者贡献了近700次提交,源代码和安装包均已发布。
文章总结
Factor 0.101版本发布公告
发布日期:2025年12月10日
项目官网:Factor编程语言
我们很高兴宣布Factor 0.101版本的发布!本次更新包含近700次代码提交,由20多位开发者共同完成。
▍核心更新亮点
界面优化
- UI组件改用代码渲染按钮和滚动条(替代原有图片方案),支持更灵活的主题定制
- 修复Linux/Windows系统的HiDPI缩放支持(暂未实现多屏幕动态缩放调整)
标准升级
- 支持Unicode 17.0.0标准
- 新增Neovim编辑器插件支持
兼容性调整
ltake参数顺序调整为与head等函数一致- Windows环境变量处理支持空值(
"")与f的区分 - 多个编辑器支持迁移至独立仓库(Atom、TextMate、Vim等)
- HTTP模块
request元组的post-data字段更名为data
▍新增功能库
- 编码/序列化:Base92编解码、Bitcask键值数据库、EDN数据格式、Pickle序列化
- 网络协议:BlueSky社交协议、RDAP注册数据访问协议
- 开发者工具:Dotenv文件支持、Gitignore解析器、命令行语法高亮工具
- 图形/UI:Raylib实时编程支持、圆角画笔、主题化UI组件
- 算法/数学:OKLAB/OKLCH色彩空间、Jaro-Winkler字符串距离算法、Tribonacci数列
▍重要改进
- 性能优化:SHA校验提速20-40%,并行计算改用计数锁实现
- 语言特性:新增枚举类语法
ENUMERATION:、实验性组合器语法@[/*[ - 平台支持:ARM64架构修复、macOS 26(Tahoe)系统识别
- 开发体验:增强REPL历史记录保存、改进错误消息输出到stderr
▍项目简介
Factor是一种基于栈的串联式编程语言,具有动态类型、宏系统和垃圾回收等高级特性。其完全编译的实现兼顾性能与交互式开发体验,支持跨平台部署,采用BSD开源协议。
完整更新日志:
查看版本0.101的详细变更记录
(注:本文已精简技术细节,保留核心功能更新与开发者关注的重点内容)
评论总结
总结评论内容如下:
对Factor语言特性的积极评价
- 有用户称赞Factor具有类似Common Lisp的优点,如错误重启和交互式开发环境(评论5:"I'm really impressed by Factor...like restarting on errors and the compiled-but-interactive development approach")
- 还有用户表示Factor是其接触的第一门编程语言,对其影响深远(评论2:"Factor was the first language I ever 'played' with and it absolutely ruined me for every thing else")
对新功能的关注
- 多位用户注意到Factor现已支持ARM64架构(评论1:"Factor supports ARM64 now? Nice")
- 有用户询问是否支持内联汇编(评论4:"Does anyone know if it supports inline assembly?")
开发环境和可用性
- 用户提到官方链接访问困难,建议使用替代网站(评论3:"The OP link is overwhelmed. You can catch the release announcement on Planet Factor")
- 有用户希望Factor能支持Android平台(评论7:"I wish it was available on Android, could be great on a phone")
语法和学习曲线
- 有用户指出拼接式语法比S表达式更难理解,特别是在数学运算时(评论5:"I found the concatenative syntax even harder to parse than s-exprs when any math was involved")
类型系统和未来发展
- 用户询问关于类型系统的进展(评论6:"Has there been any evolution on a type-system, even third-party?")
- 有用户表示很高兴看到Factor仍在持续发展(评论8:"I haven't been paying attention to this, glad it's still going")