Upcoming release 1.18.0

The next Crystal release, 1.18 is scheduled for 2025-10-14.

As usual, this is precluded by a two-week feature freeze period, starting 2025-09-30. We’ll be using this time until the release to consolidate the changes and fix bugs.

A preview of the release notes is available: Crystal 1.18.0 is released! - The Crystal Programming Language (PR: #985)

Some of the highlights:

  • Deprecation warnings on types and parameters
  • Time#inspect is compatible to Internet Extended Date/Time Format (IXDTF) defined in RFC 9557
  • Type restrictions added on many stdlib APIs
  • Steady improvements on execution contexts, multi-threading and event loops
  • Support for LLVM 21.1 and 22.0
  • Update to Unicode 17.0.0

You can find all changes in the (provisional) changelog (PR: #16153).

There will be further additions to these resources as we merge additional changes.

The nightly builds serve as previews of the upcoming release. Please test your code base against nightly builds and report any regressions :person_bowing:

See the instructions for installing nightly builds.

9 Likes

Maybe add a little more details?

I’d like to know that too, but I think we should leverage AI to avoid wasting ysbaddaden’s valuable time.


I can’t read Chinese, though.

I can read Chinese, and I can tell you that there is no substance in that screenshot at all.

3 Likes

From your perspective, you probably know all of this already, so there may be nothing new here. We’re not experts, so what we need is guidance at this level.

Haha, I am Chinese, I can read it.

But, the answer like this, I really don’t trust AI,I might even say it is not worth watching at all. (Maybe I’m wrong.)

As a Crystal user, actually, I don’t really want those PR links. also, lot of the details is hard to understand, as a Crystal user (not Crystal itself developer), I just want to know, what exactly changed and improvement in execution contexts, multi-threading and event loops, from user’s point of view.

1 Like

If you really want accurate information, you have to take the time to carefully read each PR.
But if you just want to know the latest usage, not the diffs, I think deepwiki is well made.

If a user want to use Crystal, e.g. for general purpose development, but have to take the time carefully read each PR for this purpose, I think Crystal NEVER be successful in the future.

We already talked about the idea of using Copilot’s AI to highlight important pull requests. You might laugh, but I really think the only way we’ll ever get the kind of documentation we want is by extending this approach: extract the diffs, feed them to AI, and have it generate proper documentation. (And I do think it’s worth the effort.)

1 Like

There are more details in the linked preview of the release notes. I don’t think the text of this thread is intended as the primary source of information about the upcoming release.

This is the difficult part, isn’t it? The software will unconditionally generate something, and it may even be proper documentation most of the time, but a human will still need to review the output and correct “improper” documentation.

Considering the process (which I have not tried, as I avoid using LLMs for reasons that are out-of-scope for this thread) reminds me of my experience maintaining a C++ JSON parsing library that I was mostly autogenerating from JSON schemas. At a certain point I realized that so much of my time was spent manually tweaking the output and trying to automate that output processing that I would have been better off writing the code from scratch myself.

2 Likes

I’d mention a slew of serialization-related PRs: Pull requests · crystal-lang/crystal · GitHub