LINUX.ORG.RU

Релиз Ruby 2.1

 


5

9

Прекрасный новогодний подарок преподнес Matz всем любителям и профессионалам программирования на языке Ruby — релиз Ruby 2.1. В целом новый выпуск языка и среды исполнения написанного на нем кода продолжает эволюционное развитие Ruby и практически не вносит кардинальных или ломающих изменений. Кроме того, что стандартный интерпретатор стал работать быстрее, заявлены следующие отличительные особенности Ruby 2.1:

  • Кэширование названий методов. Теперь когда интерпретатор встречает название какого-то метода объекта, он производит поиск этого метода, после чего сохраняет указатель на него в байткоде. Если у вас есть код, в котором для объектов одного и того же типа часто вызывается один и тот же метод, работа этого участка программы будет ускорена. Для проверки корректности сохраненного значения в кэше MRI использует внутренние счетчики потенциально опасных в плане инвалидации кэшированного метода действий.
  • Поддержка профайлинга кода на уровне MRI. Вы можете измерять производительность вашего кода и отслеживать работу сборщика мусора (благодаря подписке на события запуска/останова сборщика мусора и создания/удаления объектов).
  • Обновленный сборщик мусора RGenGC (с поколениями). Более подробно с ним можно ознакомиться в захватывающей презентации [pdf] с RubyConf.
  • Добавлены суффиксы i и r для записи комплексных чисел.
  • Определение функции (def) теперь возвращает символ ее названия вместо nil.
  • Работа над неоднозначностью объявления refinements, то есть расширения модуля или класса в пределах одного локального файла. Подробнее [pdf].
  • Наконец-то Array#to_h — создание хэша из массива.
  • Сокращение записи «замороженных» строк (str = «mystring"f).
  • Для ускорения операций над очень большими числами используется GMP (The GNU Multiple Precision Arithmetic Library).
  • Обновлены стандартные библиотеки BigDecimal, JSON, NKF, Rake, RubyGems и RDoc.
  • Удалена поддержка из коробки curses (гем curses теперь при необходимости надо установить отдельно).
  • А также многое другое! Подробный список изменений прилагается.

Релиз явно удался на славу и его обязательно стоит попробовать. Исходные коды уже доступны на официальном сайте проекта.

>>> Подробности

★★★★★

Проверено: Shaman007 ()
Последнее исправление: ymn (всего исправлений: 1)
Ответ на: комментарий от special-k

Эх.. я был бы рад, если бы результат символьной конструкции заменили на это. Задолбали символы - никакого толку, любая сериализация сплошной гемор.

Есть ли в этом деле какие-то успехи? И пытался ли это кто-то уже сделать? Хочу что-бы

:test == 'test'.freeze && :test == 'test'

anonymous
()
Ответ на: комментарий от anonymous

не только это, еще

h[:a] == h['a']

Я пытался говорить об этом в конфе рубиниуса, и толку не было..\ Возможно надо говорить не об этом, а об апи для установки собственного поведения для :text и т.п.

special-k ★★★★
()

Как вообще можно использовать Ruby зная что core ruby developers и здравый смысл вещи несовместимые?...

Здесь https://www.ruby-lang.org/en/news/2013/12/21/semantic-versioning-after-2-1-0/ пишут

We’ve decided to move to a Semantic Versioning-type  policy starting with the release of Ruby 2.1.0.
Version Schema
    MAJOR: increased when incompatible change which can’t be released in MINOR
        Reserved for special events
    MINOR: increased every christmas, may be API incompatible <- ???
    TEENY: security or bug fix which maintains API compatibility
        May be increased more than 10 (such as 2.1.11), and will be released every 2-3 months.
    PATCH: number of commits since last MINOR release (will be reset at 0 when releasing MINOR)

но на http://semver.org/ пишут

Given a version number MAJOR.MINOR.PATCH, increment the:
    MAJOR version when you make incompatible API changes,
    MINOR version when you add functionality in a backwards-compatible manner, and <- !!!
    PATCH version when you make backwards-compatible bug fixes.

Т.е. Ruby перешло на Semantic Versioning но это не Semantic Versioning. Рубисты делают все лишь бы не по здравому смыслу...

В описании релиза https://www.ruby-lang.org/en/news/2013/12/25/ruby-2-1-0-is-released/ часть новых возможностей описываются на японском...

def’s return value #3753
String#scrub #8414

Как вообще можно использовать Ruby зная что core ruby developers и здравый смысл вещи несовместимые?...

anonymous
()
Ответ на: комментарий от anonymous

Это ты неправильно посчитал. Вот тебе ссылочка https://github.com/rails/rails/tree/4-0-stable

Спасибо капитан, мне уже дали ссылку, то что я считал было в 5 утра, в такое время я редко адекватный.

TDrive ★★★★★
()
Ответ на: комментарий от special-k

Покамест...

... нет доводов для использования unity. И, кстати, при чём здесь unity? С его применением чего-нибудь играбильное уже написано?

anonymous
()
Ответ на: комментарий от special-k

Она ни в каком тысячелетии не представляет из себя ничего дружелюбного (цивилизованного) и лидирующего.

Для отстающих на тысячелетие - да.

anonymous
()
Ответ на: комментарий от special-k

Я так понимаю...

... здесь санитары ещё не добрались?

Просто усвой разницу:

DirectX - си (а может даже асм по большей части) нужен. EVE-VR - си не нужен.

Ждём... =)))

anonymous
()
Ответ на: комментарий от special-k

О! ...

... А вот тут:

бе-бе-бе

санитары уже подъехали. =)))

anonymous
()
Ответ на: Покамест... от anonymous

Ну да.. сишники не в состоянии понять, что перед ними графическая оболочка (рабочее окружение) unity.

special-k ★★★★
()
Ответ на: комментарий от anonymous

Для отстающих на тысячелетие - да.

Какое поразительное западопреклонство в треде:)) Каково это, осознавать себя отстающим на тысячелетие?)

special-k ★★★★
()
Ответ на: комментарий от special-k

Когда тебе говорят правду, ты начинаешь

У-тю-тю

и

бе-бе-бе

Что опять же доказывает что руби девелоперы не дружат с головой...

anonymous
()
Ответ на: комментарий от anonymous

правду

Ах-ах)
Правда в том, что писать можно много на чем, и на руби в т.ч. Хуже-лучше вопрос не простой и вторичный (в данном случае). А ваши детские сопли достойны, максимум, междометий.

Открыли, млять, глаза на «правду»)))

special-k ★★★★
()
Последнее исправление: special-k (всего исправлений: 2)
Ответ на: комментарий от special-k

Какое поразительное западопреклонство в треде:))

Фашист чтоле?

Каково это, осознавать себя отстающим на тысячелетие?)

Не в курсе, я от вас свалил, пока не сожгли.

anonymous
()
Ответ на: комментарий от special-k

Ты руби уже выучил? В каждом треде про руби тебя постоянно кто то ловит на том что ты руби знаешь очень плохо... Может потому они тебе и нравятся?

anonymous
()
Ответ на: комментарий от anonymous

Давай отвлечемся от моей персоны, я не считаю писькомерство здесь уместным. Тем более против того, кто стесняется раскрыть свою личность.

special-k ★★★★
()
Ответ на: комментарий от special-k

Нет! Давай все таки выясним ты знаешь руби или нет?

anonymous
()

рубисты с питонистами спорят.

Считать что такие языки могут быть общего назначения - главная замануха и ошибка пользователей языков.

tp_for_my_bunghole
()
Ответ на: комментарий от anonymous

Фашист чтоле?

Я? - ни за что. Фашизм - течение, получившее масштабное распространение именно на западе. Так же как и всегда там культивируется угнетение людей и рабство, т.е. вся суть западной цивилизации.

special-k ★★★★
()
Ответ на: комментарий от tp_for_my_bunghole

Северо-восточной вестимо. И читаю примитивные азиатские комиксы, ага ^_^.

special-k ★★★★
()
Последнее исправление: special-k (всего исправлений: 1)
Ответ на: комментарий от special-k

Фашизм - течение, получившее масштабное распространение именно на западе.

Нюнюню. Фашизм с запада выпилили в прошлом тысячелетии. А теперь выгляни в окно и посчитай бритоголовых и прочих быдлофашистов, которые шляются по твоему городу.

Так же как и всегда там культивируется угнетение людей и рабство, т.е. вся суть западной цивилизации.

Нюнюню. Не всегда, а в прошлом тысячелетии, чем ты слушаешь? Кстати, говорят, у вас там мигалков опять крепостное право продвигает?

anonymous
()

Сколько говорят что ruby и python красивые, но я не проникся за эти годы. Просто использую php/symfony, composer.

А что мне действительно кажется красивым, это не синтаксис в ruby или python, а например реализация coroutines на чистом СИ, с использованием duff's device и умеренных макросов препроцессора. Protothreads.

tp_for_my_bunghole
()
Ответ на: комментарий от anonymous

А теперь выгляни в окно и посчитай бритоголовых и прочих быдлофашистов

0, че-то было кстати, лет 10 назад. Ходили детишки в милитари ботинках и спущенных подтяжках:)) Теперь вон хипстеры и пр. ряженные, а прежде стиляги и т.п. Да чем бы дитя не тешилось..

special-k ★★★★
()
Последнее исправление: special-k (всего исправлений: 1)
Ответ на: комментарий от tp_for_my_bunghole

Сколько говорят что ruby и python красивые

Блджад. Смотрел давеча на питон.

>>> 'a'.join('b')
'b'
>>> 'a'.join(['b','c'])
'bac'
>>>
Гвидо видимо нехило упоролся тогда.

anonymous
()
Ответ на: комментарий от tp_for_my_bunghole

А что мне действительно кажется красивым [...] например реализация coroutines на чистом СИ, с использованием duff's device и умеренных макросов препроцессора.

PHP разъел твой мозг.

tailgunner ★★★★★
()
Ответ на: комментарий от anonymous

Фашизм с запада выпилили в прошлом тысячелетии.

Куда ты его выпилишь, если это менталитет.

special-k ★★★★
()
Ответ на: комментарий от special-k

0, че-то было кстати, лет 10 назад. Ходили детишки в милитари ботинках и спущенных подтяжках:)) Теперь вон хипстеры и пр. ряженные, а прежде стиляги и т.п. Да чем бы дитя не тешилось..

Ну жди, пока тебе барское дитя ломом промеж глаз уебёт. Зато поцреот, чо.

anonymous
()

Для тех кто тут решил обсуждать темы мироустройства.

Япония это самое фашисткое государство на земле. Но американцы полностью обрезали им милитаризм, а фашизм остался. Фашизм, fascio, пучок.

Только в Японии обязательная регулярная медицинская проверка граждан всех возрастов, для выявления болезней на ранней стадии и сбора статистической информации применяемой при лечении хронических заболеваний.

Так же мощнейшая корпоративность, как часть фашисткого государства. Коллективизм и порядок. Полная урбанизация.

У каждого народа Европы есть древняя сказка/и, в том или ином виде объясняющая преимущества фашизма. Один из примеров - умирающий старик приглашает сыновей, просит каждого что то сделать и выводит мораль. Например переломить веник. Не получится, потому что вместе, fascio, а развяжи стягивающие верёвки, и каждый стебелек элегантно ломается четырьмя пальцами.

tp_for_my_bunghole
()
Ответ на: комментарий от special-k

тогда надо

Когда ты говорил междометиями, ты выглядел умнее.

tailgunner ★★★★★
()
Ответ на: комментарий от special-k

тогда надо

Ты перегвидовил гвидо, молодец. Теперь перестань нести чушь.

anonymous
()
Ответ на: комментарий от tailgunner

PHP разъел твой мозг.

Просто я упомянул то что ты наверное не видел, не понимаешь, и возможно тебя это расстроило. Что бы совладать с этой ситуацией надо прибегать к аутотренингу и повторять «PHP разъел твой мозг».

tp_for_my_bunghole
()
Ответ на: комментарий от anonymous

В питоне split/join хотя бы работает нормально. Core ruby developers даже с простейшими split/join умудрились накосячить:

2.1.0p0 :020 > str1 = 'a,b,c'
 => "a,b,c" 
2.1.0p0 :021 > ar1 = str1.split(',')
 => ["a", "b", "c"] 
2.1.0p0 :022 > ar1.join(',') == str1
 => true 
2.1.0p0 :023 > str2 = 'a,b,c,'
 => "a,b,c," 
2.1.0p0 :024 > ar2 = str2.split(',')
 => ["a", "b", "c"] 
2.1.0p0 :025 > ar2.join(',') == str2
 => false

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.