---
title: Crystal 0.22.0 released!
version: 0.22.0
summary: Crystal has a new development release.
thumbnail: +
author: straight-shoota
---

[Crystal 0.22.0](https://github.com/crystal-lang/crystal/releases/tag/0.22.0) has been released!

As any release it includes numerous bugfixes, cool features and performance improvements.

# Exciting Changes

* Backtrace function names are now read from DWARF sections.
* Sigfault and exceptions are printed to STDERR.
* `pp` and `p` return the printed value.
* `XML::Node` supports setting and deleting attributes.
* The `skip` macro method allows to skip a file: `{{ "{%" }} skip unless flag(:unix) %}`. No need to wrap entire files in `{{ "{%" }} if %}...{{ "{%" }} else %}` anymore!

# Other Breaking Changes
* **(breaking-change)** Removed `Process.new(pid)` is now private
* **(breaking-change)** `IO#peek` now returns an empty slice on EOF
* **(breaking-change)** Rename `WeakRef#target` to `WeakRef#value`
* **(breaking-change)** Rename `HTTP::Params.from_hash` to `HTTP::Params.encode`
* **(breaking-change)** `'\\\"'` is now invalid, use `'\"'`

Thanks to everyone who supported this release through contributions, reviews and suggestions.

* [CHANGELOG](https://github.com/crystal-lang/crystal/releases/tag/0.22.0)
* [API Docs](https://crystal-lang.org/api/0.22.0)
* [Milestone 0.22.0](https://github.com/crystal-lang/crystal/issues?q=milestone%3A0.22.0)
