每周见闻:TypeScript 的类型系统可以运行毁灭战士

每周见闻:2025-03-02 - 2025-03-09

周刊:此方的手帐 - 周刊
微信公众号:此方的手帐

思考

AI 时代下,除了显卡,下一个吃紧的会不会是内存?

对于使用 AI 的人来说,无论是本地模型还是 Agent 都是需要内存。有次在开了 4、5 个 Windsuf 后,我的 MBP(16 G)竟然跳出内存不够的警告。

打开 Activity Monitor 观察,只要 Windsuf 打开的时间一长。内存使用就直接翻黄。别提还有 Chrome、Teams 等其他“大户”。没想到有一天能在 Mac 上体验到卡顿。

再者苹果的笔记本也同意 16 G 内存起步,这次新款 Air 还支持到了 32 G 内存。可想随着今后的发展,各个软件对内存的需求只会越来越高。下次再有换电脑的需求时,可能得考虑内存的容量了。

Coding

1、TypeScript 的类型系统可以运行毁灭战士[^1]

标签:TypeScript,FUN

是的,你并没有看错。一位国外的大神使用 TypeScript(修改后的版本) 的类型系统成功运行了经典游戏 DOOM(毁灭战士)。为了做到这一点,他构建了一整套在 TypeScript 类型系统内的计算机系统,包括:

  1. RAM
  2. 磁盘系统
  3. 调用栈
  4. 子程序
  5. 内存指针
  6. 执行上下文

活脱脱地手搓了一个系统,一些类型定义的文件更是多大了十多万行。作者修改了 TS 的各种限制,以支持各种超乎寻常的情况。

并且由于数量庞大,每次运行都要消耗 100G 内存。同时没有 IDE 能支持如此庞大的文件量;甚至连错误信息都只有内存溢出,完完全全的开发噩梦。

在如此严苛的条件下,作者坚持一年终于完成。为了渲染游戏的第一帧,项目需要在 12 天内处理 177 TB TypeScript 类型定义。

文章主要介绍了工作过程与难点,并且有一个简单的介绍视频。不得不说真的太牛了。这简直是体操中的体操了。

之前在看“神光”大神的 TS 类型体操的小册里,就有提到
TypeScript 的类型系统是图灵完备的,也就是能描述各种可计算逻辑。简单点来理解就是循环、条件等各种 JS 里面有的语法它都有,JS 能写的逻辑它都能写。

看来真的是一点都不假。


其他

1、为什么我切换到Firefox并从此不再回头[^2]

标签:Tools

本文介绍了作者在旧电脑上的 Chrome 占用太多内存,从而用回 FireFox 的原因。在 Chrome 上能做的事,FireFox 也都能做,并且在多标签的情况下内存占用更少。并且在标签管理上也比 Chrome 更为友好。

最近我也面临内存的问题,也打算切换一下试试。


工具

1、GitHub - hkdobrev/cleanmac: 用脚本清理你的macOS,无需昂贵的应用[^3]

标签:Tools

一个清理 Mac 系统的脚本,用来释放磁盘空间、内存等。
主要清除了系统日志、brew 的安装包、npm 依赖、不用的 docker 镜像。

在公司的电脑上试着跑了一下,因为东西太多,还挺花时间的。

类似的应用有 CleanMyMac、腾讯的 Lemon 等,都挺好用的。


参考文章:


每周见闻:TypeScript 的类型系统可以运行毁灭战士
https://konata9.github.io/weekly/2025/03/09/09-每周见闻-20250302_20250309/
作者
Konata
发布于
2025年3月9日
许可协议