Crystal 1.3.0 has been released!

The Three Wise Men came with their camels and brought incense, gold, and Crystal! :camel:

We’ve written a blog post summarizing the changes in this release: Crystal 1.3.0 released! - The Crystal Programming Language. While we have tested it against several known and sizeable projects, that doesn’t preclude the existence of regressions. If you find an issue, please check the issue tracker and file a bug: it will be fixed in a patch version.

The full changelog is here: Release 1.3.0 · crystal-lang/crystal · GitHub .

It is already available on most platforms, check the install page for details. That includes docker images :whale: , snapcraft, and .deb and .rpm packages.

:beer: The brew formula is not yet merged.

26 Likes

Thank you to all for your hard work! :pray:t2:

4 Likes

Thank you! Crystal is awesome!

2 Likes

nice!

Is this the point where it starts to make sense to try crystal on windows?

1 Like

I think it already made sense before. But now it’s also convenient to install.
(Still not officially supported, though)

3 Likes

Hi,

So… I just tried it:

PS D:\crystal\test> ..\crystal.exe build .\test.cr
PS D:\crystal\test> .\test.exe
hello world
PS D:\crystal\test>

congratulations to everyone who worked on this :smiley:

9 Likes

How to update if it was installed via snap?

snap refresh crystal
error: cannot refresh "crystal": classic confinement requires snaps under /snap or symlink from
       /snap to /var/lib/snapd/snap

Thank you Crystal Core Team and all the other contributors who work their tails off to make Crystal programming a reality. This is definitely great news as Crystal continues to go from strength to strength.

Personally, I’m very impressed at how Crystal easily combines sheer programming power & joy with a syntax that’s extremely pleasant on the eyes. I think Derek Banas’ video here really opened my eyes to the many powerful, practical expressive surprises in the language – especially outputting data, declaring variables/classes etc, strings, math, arrays, tuples etc. Every few minutes, I kept saying to myself “Wow, Crystal is fcuking AMAZING!”.

Once again, my hats off to the developers for never wavering from Crystal’s original “Fast as C, Slick as Ruby” design vision. This will be a winning formula for its future success while promoting it to the Tech masses.

4 Likes

FYI.

I found a bug with multi-threading I just filed an issue on.
I suggest if you’re using multi-threading code test it to see if this affects you.

1 Like

Crystal requires --classic to avoid confinement.

Not sure where I should leave feedback on the interpreter, maybe here? Thanks!

CentOS 7:

$ cat test.cr
3
debugger
4
$ crystal -v
Crystal 1.4.0-dev [966b3a5] (2022-01-31)
LLVM: 9.0.1
Default target: x86_64-unknown-linux-gnu
$ crystal test.cr
Program received and didn't handle signal TRAP (5)

oops I forgot to use i

$ crystal i test.cr
cannot find -lpthread
Linker arguments: -L/usr/lib64/crystal -lpthread -levent -lrt -ldl
Search path: /usr/lib64/mysql:/usr/lib64/dyninst:/usr/lib64//bind9-export/:/usr/lib64/llvm9.0/lib:/lib64:/usr/lib64:/lib:/usr/lib:/usr/lib64/crystal (Crystal::Loader::LoadError)
  from /home/packrd/rand/crystal/src/compiler/crystal/loader.cr:74:31 in 'load_library'
  from /home/packrd/rand/crystal/src/compiler/crystal/loader.cr:42:7 in 'new'
  from /home/packrd/rand/crystal/src/compiler/crystal/loader/unix.cr:51:7 in 'parse'
  from /home/packrd/rand/crystal/src/compiler/crystal/interpreter/context.cr:365:1 in 'loader'
  from /home/packrd/rand/crystal/src/compiler/crystal/interpreter/context.cr:378:5 in 'c_function'
  from /home/packrd/rand/crystal/src/compiler/crystal/interpreter/compiler.cr:1862:17 in 'compile_lib_call'
  from /home/packrd/rand/crystal/src/compiler/crystal/interpreter/compiler.cr:1766:7 in 'visit'
  from /home/packrd/rand/crystal/src/compiler/crystal/syntax/visitor.cr:27:12 in 'accept'

Thanks!

Yes, debugger works in non interpreted mode. You have to run the program through gdb or lldb.