Lamina
主页 下载 博客 Wiki 论坛

Hello, Lamina!

#为什么会有 Lamina?

Lamina 项目最早始于2024年11月份,最初名称为MEDScript(MathEmatics DeScription)使用Python编写,目标为设计一款直至目前处于前概念阶段的硬件计算器提供系统主程序,后续从Python转向C++,在2025年5月份时确定了最早版本(也就是目前Lamina-dev/Lamina仓库的版本)的主要架构(现称之为Legacy Lamina)。

#目前的境况

Lamina 最早所宣传的是“精确数学计算编程语言”,随着开发的深入,我愈发感觉到“精确数学计算编程语言”这个定位是模糊的、不明确的,目前定义为“可编程的数学环境”。提供一个完整的,轻量的基本数学环境,不依赖任何庞大的第三方库或商业软件。目前主仓库的动作停滞近半年,导致外界认为此项目已经“死亡”,但事实并非如此。主仓库的静默是我们因为意识到,在没有坚实的底层支撑之前,任何上层语法的构建都是空中楼阁。目前,项目的重心已全面转向核心组件的开发。对那些期待Lamina投入实用而等待已久的支持者,我表示诚挚的歉意。但这并非放弃,由于我们低估了实现“精确”所需的底层工程量。
我们发现,如果在现有的、基于某个根据时间的协定所仓促开发的成果上继续堆砌功能会使得Lamina变成一个臃肿的、维护麻烦的项目,为了实现新的Lamina,目前我们将精力全部拆解到了以下四个并行的子项目中:

  • LAMMP: 底层计算库
  • LMMC: 重新编写的数值计算内核
  • LMCAS: 符号计算引擎
  • LMVM: 虚拟机

#为什么选择自己开发?

很多人问:为什么不用 MatLab, SageMath, 或者 Giac + MicroPython?
答案只有一个:为了拥有更高的上限。依赖 Python 层(NumPy/SymPy)意味着性能和语义被锁死在别人的框架内。我们要做的不是一个库,而是一个独立环境。

#后续计划

前文提到,在过去的几个月里,Lamina 的开发进入了一个相对沉默的阶段。
这并不是因为项目停滞,而是因为大量工作集中在底层和试验,这些内容难以被快速展示,也难以用零散的提交记录去表达。
但这带来了一个问题,外界无法判断项目的真实进展。
因此,我们决定从现在开始,引入固定节奏的开发记录。
从本篇开始,Lamina 将以半月为周期发布开发日志。每一期内容不会刻意包装成果,而是尽可能真实地记录:

  • 当前正在解决的问题
  • 这半个月的进展
  • 设计的改变
  • 下一阶段的目标
    这既是对外的说明,也算作对开发节奏的一个约束。因为都是学生,业余时间不会太多,每一篇的长度不会太多,我相信对于一个仍在构建基础的项目而言,公开过程让人总是能看到进展是令人振奋的。
    如果你对Lamina感兴趣,订阅RSS(https://lm-lang.org/atom.xml)或者加入我们的Discord服务器,让你能持续收到开发进度!