Crystal 1.2.0 is released!

A new Crystal blog post/announcement has been posted!

Get the full details here: Crystal 1.2.0 is released! - The Crystal Programming Language


Corresponding tweet for this thread:

Share link for this tweet.

1 Like

We discovered that two bugs appearing on Windows and M1’s macs are coming from LLVM 11 and 12. We expect the fix will come with the recently released LLVM 13.

Huh, doesn’t reproduce when outputting the IR, doesn’t reproduce when cross-compiling, doesn’t reproduce with a single module, aaahhh, it was because they were generating an empty basic block before an exception, which unaligned the code in a way to break SEH on windows, interesting… The mac one is just an ABI spec issue with LLVM.

The support for ThinLTO compilation was dropped, since it wasn’t working already since Crystal 0.25.

Wonder why, thin lto can not only give compiling speed boosts but sometimes, surprisingly, even gives speed boosts over fat lto. Can’t find any reasoning in the attached issue…

The method IO#write_utf8 was deprecated in favor of the more descriptive name IO#write_string, because you can use it to write strings in all kinds of encodings, depending on the IO’s configuration. We also fixed a number of bugs related to using IO#write instead of IO#write_string to append text to an IO.

So… a function of whom’s name says it writes UTF8, didn’t actually write UTF8… How did that ever happen?!?

1 Like