我于2025年写了一个计划。
I Wrote a Scheme in 2025

原始链接: https://maplant.com/2026-02-09-I-Wrote-a-Scheme-in-2025.html

马修·普兰特宣布 scheme-rs 的 0.1.0 版本发布,这是一个用 Rust 编写的新 Scheme 实现,距离最初宣布该项目正好一年。达到这一里程碑意味着成功通过了 R6RS 测试套件中的 2258 个测试。 自最初宣布以来,一个关键的变化是增加了同步支持,与现有的异步能力并存,拓宽了项目的可用性。虽然 scheme-rs 已经可以运行,但仍在开发中;计划改进垃圾回收器、性能、文档、调试,以及扩展可用的过程和语法(包括潜在的模式匹配)。 该项目源于普兰特职业生涯不确定的一段时间,他希望重燃对计算机科学的热情。开发 scheme-rs 不仅增强了他的软件工程师信心,还直接促成了一份令人满意的新工作。他鼓励其他人追求具有挑战性的个人项目,特别是那些对函数式编程和 Rust 感兴趣的人。

黑客新闻 新 | 过去 | 评论 | 提问 | 展示 | 招聘 | 提交 登录 我于2025年写了一个Scheme (maplant.com) 22点 由 maplant 1小时前 | 隐藏 | 过去 | 收藏 | 讨论 指南 | 常见问题 | 列表 | API | 安全 | 法律 | 申请YC | 联系 搜索:
相关文章

原文
I Wrote a Scheme in 2025 by Matthew Plant

One year minus one week ago to the day I published an article announcing the new Scheme implementation I was writing, scheme-rs. Today I am excited to announce that scheme-rs has reached its first version, 0.1.0. You can check it out at it’s website (scheme-rs.org, which should be updated to scheme.rs at some point when DNS propagation finishes) or its github page.

Although there’s much more work to do (and I will talk about that further down the page), after reaching the milestone of completing 2258 tests in the R6RS test suite, I’ve decided that scheme-rs is stable enough to commit to a first release.

It’s been a pretty amazing journey, one that I’m excited to continue on.

Changes since I initially announced scheme-rs last year:

There have been some changes since I initially announced scheme-rs. The biggest is that it is no longer exclusively async, and now supports sync as well.

This change was inevitable; only supporting async would really hamper adoption (or more importantly my personal use cases for the project). But I’m really happy that I was able to implement this change without hamstringing async support at all. In fact, it is even possible to use scheme-rs in both async and sync contexts.

Things that are not finished

There are quite a few things that are not quite complete, and I will list them here:

  • The garbage collector has quite a bit of room for improvement.
  • Performance in general is Ok but could be made much better.
  • There are a lot of missing procedures and syntax from R6RS but also just in general, for example I’d really like to add pattern matching.
  • There’s always more documentation that can be added.
  • Debugging could be greatly improved.

But more importantly, I’m very excited to start working on the new language I am building on top of scheme-rs. I mentioned that it would be strongly typed, but now I think I might want to use calculus of construction. The possibilities are truly endless!

An aside on how scheme-rs came to be:

In August of last year I had just lost my job. I wasn’t sure exactly what to do. I looked out on the landscape of software engineering jobs and became increasingly uncertain of my place in it. I had been unsatisfied with work for a number of years at that point, and it felt like I had lost the differentiating factor that made me worth hiring in the first place. The idea of getting a job that was interesting, one that challenged me, seemed to be completely out of reach.

I decided that what I would do is look inward. I would try to rediscover where my original love for computer science came from. I had this dinky little project that I had been working on and off on for a while with no clear vision. I decided that I would spend my free time dedicated to that project. I would do research and focus on doing things correctly and with a strong backing from academics. I’d apply for a few jobs, but if those fell through I’d apply for grad school instead.

I’d buy a printer and read papers.

A collection of three books: (Compiling with Continuations by Andrew W. Appel, Advanced Language Implementation edited by Peter Lee, Revised [6] Report on the Algorithmic Language Scheme edited by Michael Sperber, R. Kent Dybvig Matthew Flatt and Anton van Straten) and four papers: Effective Nondestructive Equality Checking for Trees and Graphs, Concurrent Cycle collection in Reference Counted Systems, Extending the Scope fo Syntactic Abstractions, and Implicit Phasing for R6RS Libraries

That dinky little project was scheme-rs, and it’s hard to describe just how much it changed my life. I feel much more confident in my ability as a software engineer. I no longer think that a PhD is something that is meant for people much smarter than me. And more miraculously it directly lead me to finding a job that I absolutely love.

scheme-rs is not particularly special in this regard. It was simply something that challenged me. And if you have a brain at all like mine, I highly recommend you find a project that challenges you like scheme-rs challenged me.

If you like being challenged and enjoy functional programming and Rust as much as I do, check out the careers page at OneChronos!

联系我们 contact @ memedata.com