Опубликовал naruse 25-12-2014
Перевел: arbox
Мы рады объявить о выходе версии 2.2.0.
Релиз Ruby 2.2 включает в себя множество новых возможностей и улучшений, отвечающих все возрастающему количеству разноплановых требований к языку Ruby.
Так, например, сборщик мусора (GC) Ruby теперь может собирать неиспользуемые
объекты класса Symbol
, что снизит расходы оперативной памяти. Так как
фреймворк Rails 5.0 будет зависеть от сборщика для символов, он будет
поддерживать только Ruby версии 2.2 и новее. Подробности читайте в
посте о выходе Rails 4.2.
Кроме этого, уменьшенные интервалы при работе сборщика мусора (благодаря новому инкрементальному алгоритму) положительно скажутся на работе существующих приложений на Rails. Последние изменения, упоминавшиеся в блоге Rails, показывают, что Rails 5.0 выиграет от применения как инкрементального алгоритма сборщика, так и сборщика символов.
Еще одним улучшением в плане управления памятью является дополнительный ключ
при сборке в configure.in
для использования jemalloc
, см.
Feature #9113.
Это улучшение носит статус экспериментального и по умолчанию отключено, пока мы
не соберем достаточно данных о производительности и возможностях применения.
Когда мы убедимся в его преимуществах, это улучшение будет включено по умолчанию.
Мы также добавили экспериментальную поддержку vfork(2)
для system()
и spawn()
.
О подробностях реализации читайте на японском языке в блоге
tanaka-san.
В теории это может привести к огромному ускорению работы, если процесс вызывает
внешнюю команду много раз подряд. К сожалению, работа vfork(2)
на данный
момент не проанализирована до конца и может иметь потенциальные негативные
последствия при системных вызовах. Мы поэкспериментируем с этим вопросом и
соберем данные о производительности на реальных задачах, чтобы решить, насколько
полезным окажется это нововведение.
Попробуйте новую версию и получайте удовольствие от программирования на Ruby 2.2.0. И сообщайте о ваших успехах!
Важные изменения в сравнении с версией 2.1
- Инкрементальный алгоритм сборщика (YARV Maniacs No.12)
- Сборщик для символов (презентация на RubyKaigi 2014: “Incremental GC for Ruby interpreter”)
- configure –with-jemalloc Feature #9113
- Ядро:
- Стандартная библиотека:
- обновлена Psych 2.0.8
- обновлена Rake 10.4.2
- обновлена RDoc 4.2.0
- обновлена RubyGems 2.4.5
- обновлена test-unit 3.0.8 (удалена из репозитория, но оставлена в архиве на скачивание)
- обновлена minitest 5.4.3 (удалена из репозитория, но оставлена в архиве на скачивание)
- подлежит удалению mathn
- C API
- удалены устаревшие API
Дополнительные подробности читайте в файле NEWS в репозитории Ruby.
Включая эти файлы, было изменено 1557 файлов, 125039 вставок(+), 74376 удалений(-) по сравнению с v2.1.0!
Скачать
- https://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.0.tar.bz2
- SIZE: 13304042 bytes
- MD5: d03cd4690fec1fff81d096d1c1255fde
- SHA256: 1c031137999f832f86be366a71155113675b72420830ce432b777a0ff4942955
- SHA512: 04edc53e8cd1732c3ca61ebeb1d6133614beb10f77f9abb80d8d36352fe8aa205112068e460bf600b2c7e81e0ddcc3b311e7e027c320366f1bd992b3e378a6ad
- https://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.0.tar.gz
- SIZE: 16494584 bytes
- MD5: cd03b28fd0b555970f5c4fd481700852
- SHA256: 7671e394abfb5d262fbcd3b27a71bf78737c7e9347fa21c39e58b0bb9c4840fc
- SHA512: 1ba0c68e1c8d2b60bbd1e218cf36463edbe34cf9418d7593702b631e68d02297465f752e71395f6cfa4104f4cd70a1eb44381ffb74bc7801758b830931fdcfc6
- https://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.0.tar.xz
- SIZE: 10304244 bytes
- MD5: 54b43c6c6c9dd4c4b08ceb03ad0ded7a
- SHA256: 848714e280fc5fb44dbac3b060b206e56c1947006324ee68a174d68b483ef8ca
- SHA512: cd7e52faa464df8aca7ccfa23a5f06248e1ad82bc8c9f1829aa1b51ff37b15973b8caaa68e914d837325b8d59427fda4f3cad82c50925e1c84e688324a2a155d
- https://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.0.zip
- SIZE: 18441027 bytes
- MD5: f8e1d0cee4f2d9535a9529ed23ae3700
- SHA256: e06c1e2b1248cf881749833084b2bec93f7612676009190ff9bc89b8fd07c29f
- SHA512: 364dd927b496520d95a1b06c68e1a265015f4cab08bdf3efaa323d385e7bf075eae47f2e1db78a629db0f3c0c1ed24e086603ba21e2da02ac06dd3c8b716766e