Crystal Track Update for April 2023!

Crystal blog post 2023/4/30

Operation Amethyst was announced for 2 weeks ago and has included some big changes on the track. And more is coming.

New exercises

I want to thank @ryanplusplus for creating (for the track) all of the following exercises:

  • Matrix, given a string matrix, convert that to a array-based matrix.
  • State of Tic-Tac-Toe , ever wanted to program your very own tick-tack toe? Well, then this is the exercise for you!
  • Diamond, make a diamond shape pattern with letters.
  • Say, convert a number to the letter-based version e.g (10 → “ten”).

Crystal 1.8

I am very pleased to now announce the track runs Crystal 1.8. This was a part of operation Amathyst and this update also includes dropping support for Crystal 1.2 (which was what our test runner ran before this update).

This update includes supporting all the latest new features like pcre2, improved Windows support (if you work locally), and various other fixes.

On the track, we have updated some exercise test files, since before they gave warnings if you used never Crystal versions.

notes about 1.8

Crystal 1.8 brings pcre2, which means that the track is no longer running pcre1. This means that some solution that uses pcre1 could end up not working, I did some light testing and I did not notice solutions not passing, but there could be some rare cases that occur.

As we did the update to remove warnings, that new syntax is only supported by Crystal 1.3 and never, this means that Crystal 1.2 and older may not end up passing a few exercises.

We officially will be having 1.5, 1.6, 1.7, and 1.8 as “supported” versions that we will make sure to pass the exercises. Using older versions should still work, it is just that some exercises may not.


The first version of the representer is out, it has been working for a long time and will likely see some improvements over time but as of now, it is doing a pretty good job.

Updated tooling

The biggest update to our tooling was the 1.8 update, but some ci improvements also made there way in.


I talked in the last blog post about a new ci script for the test runner, and that was added early this month and was in preparation for 1.8. It includes running the test runner on all our current exercises on the track. This is meant to test that we don’t implement changes to the test runner which will break some individual exercises.

Another small change happened to the formater ci, which now checks in config.json for files and also some optimization was also put in place.

Updated exercises

Katarina has continued her work on improving instructions on current exercises, these are the updated ones:

  • Rna-transcription
  • Largest-series-product
  • Sum-of-multiples
  • Linked-list
  • Word-count
  • Etl


Some small changes in test files for some number exercises which I talked about in Crystal 1.8 section

What is coming

As our latest operation went very well, the next operation has I already started thinking about, but I don’t have too much solid to announce about it. What I can say is that it will likely include Crystal 1.9 and some improvements to the representer.

Learning mode

Learning mode is something that is still being worked on, I feel like this month we made some big progress on getting it released. We had the content stop back in the middle of the month so this means that no new content will be added and instead, time will be spent improving the current content and working to get the learning mode released.

This month some more concepts were merged in and made so I can do further testing through the online editor.

I want to give a final thanks to everyone who has spent their time reviewing the concepts for the learning mode.