Crystal 0.5.9 has been released!
This release has seen unprecedented contributions, both to the standard library and to the language itself.
For starters, ysbaddaden rewrote the entire Socket
hierarchy,
also adding classes like UDPSocket
and UNIXSocket
, by having a very similar API to that of Ruby.
His contributions came from a working project he has, prax.cr, which is
a port of prax, which is a pure Ruby alternative to Pow.
He has also added a Logger
class, again with an API similar to that of Ruby.
Then jhass sent lots of contributions to the standard libraries, with methods
like IO.select
, Enumerable#max_of
, String#[Regex]
, String#count
, String#delete
and String#squeeze
.
His contributions came from a working project he has DeBot, which is an
IRC bot written in pure Crystal, ported from a Ruby version he also wrote. This bot is now being used
in our IRC channel: you send “» 1 + 2” and DeBot replies with “3”.
He’s also always testing Crystal’s limits and sends lots of bug reports and improvements suggestions, which continue making the language more solid, stable and consistent.
Then zamith has enhanced array literals of strings:
%w(one two three) #=> ["one", "two", "three"]
# But these ones didn't work before 0.5.9
%w<one two three>
%w{one two three}
%w[one two three]
He also wrote a website in pure Crystal, named crystal shards, hosted on Heroku, that lists Crystal projects on GitHub. We didn’t settle on this name yet for Crystal packages, but it’s a possibility.
Then naps62 added the “path” option to include dependencies:
deps do
path "../some_project"
end
We are overwhelmed by this amount of contributions and amazing projects that are starting to appear. Most of these projects are something that we didn’t think was even possible to do at this moment, given how young the language is. Again, a big thank you to all of you!
Another notable feature added is the ability to invoke to_s
on a C struct or union, making debugging
C bindings much more easier.
Happy hacking! :-)