The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Выпуск языка программирования Ruby 2.1

26.12.2013 00:21

После десяти месяцев разработки представлен релиз языка программирования Ruby 2.1. Ruby - мощный и динамический объектно-ориентированный язык программирования, отличающийся высокой эффективностью разработки программ и вобравший в себя лучшие черты Perl, Java, Python, Smalltalk, Eiffel, Ada и Lisp. Код проекта распространяется под лицензиями BSD ("2-clause BSDL") и "Ruby", которая ссылается на последний вариант лицензии GPL и полностью совместима с GPLv3. Ruby 2.1 продолжает развитие ветки 2.0 при сохранении обратной совместимости.

Дополнительно сообщается об утверждении новой схемы нумерации версий Ruby, которая будет применена в следующих выпусках. Номер версии будет определяться в формате MAJOR.MINOR.TEENY.PATCH, где значение MAJOR будет увеличиваться при значительных нарушениях обратной совместимости. Новые MINOR-выпуски планируется формировать раз в год, при этом в данных выпусках допускается нарушение обратной совместимости API. В TEENY-выпусках, которые будут выходить раз в 2-3 месяца, будут устраняться ошибки и уязвимости при полном сохранении совместимости API. Значение PATCH будет отражать число коммитов с момента прошлого минорного выпуска.

Основные изменения в Ruby 2.1:

  • Поддержка локального кэширования методов в VM, вместо использования глобального кэша;
  • Новый сборщик мусора RGenGC;
  • Расширение и стабилизация возможностей конструкции "Refinements" ( Module#refine) для повышения безопасности внесения изменений в код на лету;
  • Поддержка нового синтаксиса числовых и комплексных литералов ( "42r" для Rational(42, 1), 3.14r" для 3.14.rationalize, "42i" для Complex(0, 42), "42ri" для Complex(0, 42r));
  • Значения по умолчанию для аргументов ключевых слов теперь могут быть пропущены (например, вместо "def foo(a: 10)" можно указать "def foo(a: )");
  • Изменено значение, возвращаемое по умолчанию для конструкций "def" (вместо nil возвращает имя метода, например, "def foo() end" вернёт ":foo");
  • Для ускорения вычислений с данными типа Bignum задействована библиотека GMP;
  • Новые методы String#scrub и String#scrub! для проверки и исправления некорректной строковой последовательности;
  • Новый метод Socket.getifaddrs, ассоциированный с функцией getifaddrs() стандартной системной библиотеки;
  • Обновление RDoc 4.1.0 и RubyGems 2.2.0;
  • Оптимизация строк "литерал".freeze на уровне VM (например, указание строки как "bar"f позволяет заморозить данное значение и работать с ней без создания новой копии строки при выполнении каждой опреации);
  • В классы Array и Enumerable добавлены новые методы Array#to_h и Enumerable#to_h для преобразования массива/списка из пар ключей и значений в хэш;
  • Поддержка метода Exception#cause, позволяющего обратиться к предыдущему исключению при обработке нового исключения;
  • Обновление библиотек BigDecimal, JSON, NKF, Rake, RubyGems и RDoc;
  • Удаление curses из стандартного набора библиотек (библиотека curses вынесена в отдельный gem curses).


  1. Главная ссылка к новости (https://www.ruby-lang.org/en/n...)
  2. OpenNews: Официально прекращена поддержка Ruby 1.8.7
  3. OpenNews: Релиз web-фреймворка Ruby on Rails 4.0
  4. OpenNews: В день двадцатилетия проекта представлен релиз языка программирования Ruby 2.0
  5. OpenNews: Rubygems.org подвергся взлому
  6. OpenNews: Релиз JRuby 1.7.0
Лицензия: CC-BY
Тип: Программы
Ключевые слова: ruby
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (66) Ajax | 1 уровень | Линейный | Раскрыть всё | RSS
  • 1.1, G.NercY.uR (?), 00:26, 26/12/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ни разу не руби-программист, потому такой вопрос к спецам:
    portupgrade во фре, работает до жути медленней чем portmaster, это связано с архитектурными различиями этих прог или влияет скорость работы ПО написанном на том или ином языке?
     
     
  • 2.2, Аноним (-), 00:50, 26/12/2013 [^] [^^] [^^^] [ответить]  
  • +2 +/
    И то и то.
     
  • 2.26, Аноним (-), 10:05, 26/12/2013 [^] [^^] [^^^] [ответить]  
  • –5 +/
    Ruby язык для програмирования програмистами, а не чтобы оно потом быстро работало и память не ело. Железо сейчас стоит копейки относительно цены времени программеров.
     
     
  • 3.31, Аноним (-), 10:27, 26/12/2013 [^] [^^] [^^^] [ответить]  
  • +2 +/
    А зачем оптимизировать код, когда можно просто повысить процессу приоритет? ©
    Это не ваше? :))
     
  • 3.59, Аноним (-), 17:05, 26/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Хелловорд программист втреде. Догадайся, почему кроме какого-то го..на на руби и гвидобейсике больше ничего нет?
     
  • 3.63, Sw00p aka Jerom (?), 18:31, 26/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    )))))))))))))))))))))))) kopeyki
     
     
  • 4.71, anonymous (??), 02:35, 27/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > )))))))))))))))))))))))) kopeyki

    За трепание языком? Безусловно.

     
  • 3.65, angra (ok), 20:33, 26/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    То есть умножению вас в школе так и не научили? Ведь если умножить дополнительные затраты на количество запусков, а потом еще и на количество машин, то копейками окажутся как раз затраты на программистов.
     
  • 2.32, Sabakwaka (ok), 10:28, 26/12/2013 [^] [^^] [^^^] [ответить]  
  • –8 +/
    Где там «до жути медленней», когда, скажем, 99,99999999999999999% времени занимает, собственно, GCC ??? :)
     
     
  • 3.36, scor (ok), 11:24, 26/12/2013 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Это как бы не отменяет того факта, что писанина на всяких "гвидобейсиках" таки тормозная сама по себе.:) Для примера: http://hackie.blog.tut.by/2009/04/25/vyshel-fquery-021-bystryj-equery-na-hask
     
     
  • 4.39, Аноним (-), 12:36, 26/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > 25.04.2009

    Оно живое вообще?

     
     
  • 5.40, scor (ok), 12:42, 26/12/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Оно живое вообще?

    А чего бы и нет?:) http://gpo.zugaina.org/app-portage/fquery/ChangeLog
    Просто не все согласны с тем, что версия софта должна увеличиваться на единицу каждое рождество, иногда он просто работает.

     
  • 4.60, chinarulezzz (ok), 17:31, 26/12/2013 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >Автор проекта gentoo больше не использует и перешел на slackware

    Бггг)

    P.S. Просто гвидобэйсик прост и понятен. Скорость не первостепенная задача, для этого есть другие инструменты. А хаскель - это звиздец. Выбирать его ради скорости тоже неадекватно. Тогда уж c/cpp/pascal.

     
     
  • 5.64, Аноним (-), 19:31, 26/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Поддерживаю, хаскель используют только из желания щас мы в бою попробуем этот модный тренд..
     
  • 2.46, Аноним (46), 14:20, 26/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    portmaster - набор sh-скриптов, а ruby - тормоз, да.
     

  • 1.3, alexey (??), 01:23, 26/12/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    В 2.1.0 они перешли на что-то похожее на semantic versioning. Какой-то он у них больно странный.
    Version Schema:
    MAJOR: Reserved for special events
    MINOR: increased every christmas, may be API incompatible
    TEENY: security or bug fix which maintains API compatibility
    PATCH: number of commits since last MINOR release

    Им там вторым же комментом заявили, что в MINOR ломать API нельзя, но им все рано :(

     
     
  • 2.4, Ушастик (?), 02:11, 26/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Ну и где API поломали? Что def теперь возвращает Symbol? С 1.8 на 1.9 и то больше сломали.
     
     
  • 3.10, Аноним (-), 03:21, 26/12/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну да. А какая скриптятина и где от этого сломалась - юзеры на себе узнают. Но апи совместимый, совмесимый, совместимый. А то что существующие программы могут сломаться от смены поведения - фича, не баг.
     
     
  • 4.12, kurokaze (ok), 03:42, 26/12/2013 [^] [^^] [^^^] [ответить]  
  • –3 +/
    идеала не существует, в гвидобейсике с этим вообще ужос-ужос
     
     
  • 5.20, бедный буратино (ok), 09:12, 26/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    примеры-примеры!
     
     
  • 6.70, Led (ok), 02:31, 27/12/2013 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > примеры-примеры!

    Ты

     
  • 5.24, Привет пионэрам (?), 09:55, 26/12/2013 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Разница между ruby 1.8/1.9(2.0) в разы больше чем между python 2/3, плюс каждая версия ломает обратную совместимость.
     
     
  • 6.33, Аноним (-), 10:39, 26/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Переход с 1.8 на 1.9 тяжелый из-за Unicode и только в части работы со строками. В остальном - легко исправимые мелочи.

    Переход с 1.9 на 2.0 не заметен. Больше проблем при переходе на JRuby.

    Для сохранения обратной совместимости просто не надо использовать то, что появилось в 2.0 или 2.1. Версия 1.8 уже не поддерживается. Для разработки она совершенно не интересна.

     
     
  • 7.48, Привет пиоэнерам (?), 15:08, 26/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    >Переход с 1.8 на 1.9 тяжелый из-за Unicode и только в части работы со строками. В остальном - легко исправимые мелочи.

    Забыли про кучу всего, например потоки которых не было.

    >Переход с 1.9 на 2.0 не заметен.

    Большей частью да.

    >Для сохранения обратной совместимости просто не надо использовать то, что появилось в 2.0 или 2.1

    Обратная совместимость, она ОБРАТНАЯ, то есть если код из 2.0 будет работать в 2.1 он обратно совместим, а не наоборот. Вот только в минорных версиях ломать эту совместимость зачем?

    > Версия 1.8 уже не поддерживается. Для разработки она совершенно не интересна.

    Спасибо Кэп!

     
  • 4.22, Дядя Петя (?), 09:26, 26/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    И конечно мы забыли про тесты?
     
     
  • 5.23, waf (ok), 09:44, 26/12/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Тесты не в счёт. Они, конечно, во многом помогут, но вообще-то они для выявления ошибок авторов программы, а не ловли изменений в среде исполнения. Некрасиво это.
     
     
  • 6.29, Привет пионэрам (?), 10:12, 26/12/2013 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Тесты не в счёт. Они, конечно, во многом помогут, но вообще-то они
    > для выявления ошибок авторов программы, а не ловли изменений в среде
    > исполнения. Некрасиво это.

    Если изменился язык, то это не ошибки автора программы, это ошибки в проектировании языка.

     
     
  • 7.35, Аноним (-), 10:59, 26/12/2013 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ты совсем дурак?
     
     
  • 8.49, Привет пиоэнерам (?), 15:09, 26/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Только в нижней части ... текст свёрнут, показать
     
  • 4.67, Ушастик (?), 21:43, 26/12/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Как ломаются, так и чинятся. Это не C-экстеншн переписать под новое API. У меня на Rails-апе (12 KLOC код, 26 KLOC тесты) при переходе с 1.9 на 2.0 сломались только тесты -- связка webmock и vcr глюканула, обновил -- работает дальше. А то разведут истерику, из-за пары ±методов.
     
     
  • 5.73, Привет пионеэрам. (?), 14:19, 27/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > при переходе с 1.9 на 2.0

    А слабо с 1.8 на 1.9? Между 1.9 и 2.0 разница действительна мала.

     
     
  • 6.78, Ушастик (?), 19:39, 27/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Ну так, с тестами все было бы ок :) Тем более, есть тонна софта для анализа кода на рубях, всякие там rubocop, reek, flay, flog, churn, metric_fu и т.д. Были даже скриптики (sed, awk) которые занимались «портированием» с 1.8 на 1.9. Я по прежнему считаю, что эту проблему высасывают из пальца всякие диванные проггеры.
     
     
  • 7.79, Привет пионэрам (?), 09:27, 28/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    >Ну так, с тестами все было бы ок :)

    Если код покрыт тестами, то переписывать код резко становится не нужно?

    Давай конкретно, во-первых при изменении синтаксиса языка и методов библиотек придется переписывать тесты, во-вторых придется переписывать код, на проект из 10k строк кода уйдет минимум неделя работы команды, а теперь прикинь что ты собственник этого кода, давай посчитай сколько это стоит.  

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

    Проблема описана прямо в новости, критика идет от всего сообщества ruby.

     
  • 3.17, Аноним (-), 08:51, 26/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > Ну и где API поломали? Что def теперь возвращает Symbol? С 1.8
    > на 1.9 и то больше сломали.

    Так о том и речь, что при смене минорного номера, как в вашем примере, e более привычной схеме нумерации ломать API не принято. Не знаю сломалось ли оно при переходе с 1.8 на 1.9, но описанная тредстартером схема это допускает.


     
     
  • 4.30, Привет пионэрам (?), 10:15, 26/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > Не знаю сломалось ли оно при переходе с 1.8 на 1.9,

    О... Сломалось это слишком мягкое выражение, это два разных языка, с похожим синтаксисом.  


     
     
  • 5.34, Аноним (-), 10:42, 26/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > О... Сломалось это слишком мягкое выражение, это два разных языка, с похожим
    > синтаксисом.

    Перед тем как это заявлять, приведите несколько выражений из 1.8, которые не поймёт 1.9. А то, что методы некоторые переименовали или изменили число параметров - это не такая уж и проблема.

     
     
  • 6.37, scor (ok), 11:32, 26/12/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Перед тем как это заявлять, приведите несколько выражений из 1.8, которые не
    > поймёт 1.9. А то, что методы некоторые переименовали или изменили число
    > параметров - это не такая уж и проблема.

    Навскидку:
    $ rvm use 1.8 && echo "puts [].uniq.join(" ").any?" | ruby
    false
    $ rvm use 1.9 && echo "puts [].uniq.join(" ").any?" | ruby
    -:1:in '<main>': undefined method 'any?' for "":String (NoMethodError)
    $

    И не спрашивайте зачем так делалось. Факт -- есть факт.:)

     
     
  • 7.38, Аноним (-), 11:38, 26/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > Навскидку:
    > $ rvm use 1.8 && echo "puts [].uniq.join(" ").any?" | ruby
    > false
    > $ rvm use 1.9 && echo "puts [].uniq.join(" ").any?" | ruby
    > -:1:in '<main>': undefined method 'any?' for "":String (NoMethodError)
    > $
    > И не спрашивайте зачем так делалось. Факт -- есть факт.:)

    Убрали метод any? для строки. Вполне в духе приближения к естественному английскому, поскольку смысла от такого метода здесь нет.

    Ну а изменения языка то в чём?

     
     
  • 8.51, Привет пиоэнерам (?), 15:17, 26/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Задолбал http stackoverflow com questions 21574 what-is-the-difference-betwee... текст свёрнут, показать
     
     
  • 9.52, Аноним (-), 15:29, 26/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Ну и где Единственное различие - 1 9 больше не поддерживает a , b - No Long... текст свёрнут, показать
     
     
  • 10.54, Привет пиоэнерам (?), 15:35, 26/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Каким образом Работа со строками и массивами поломана ... текст свёрнут, показать
     
     
  • 11.56, Аноним (-), 15:44, 26/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Был бы использован метод empty , который для строки явно логичнее, проблемы бы н... текст свёрнут, показать
     
     
  • 12.74, Привет пионеэрам. (?), 14:25, 27/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Ты из более чем 20 изменений методов языка увидел один Ну это к окулисту Библи... текст свёрнут, показать
     
  • 8.68, scor (ok), 22:36, 26/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Ну да, в духе А типа вот от этого, смысла сразу поприбавилось тут уже линия, а... текст свёрнут, показать
     
  • 7.66, Ушастик (?), 21:30, 26/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > $ rvm use 1.8 && echo "puts [].uniq.join(" ").any?" | ruby
    > false
    > $ rvm use 1.9 && echo "puts [].uniq.join(" ").any?" | ruby
    > -:1:in '<main>': undefined method 'any?' for "":String (NoMethodError)

    :))))

    А "стринга".any? слабо? Зачем было лиспятину воротить для примера, чтоб показать, что знаешь тему? В стандартной библиотеке и так много мусора, типа keep_if. Вроде как синоним для select, а по факту это select!, только портит читаемость и вносит баги. Я бы с радостью повыбрасывал эти keep_if, inject и прочую смолтокщину и оставил бы лиспятину. Все равно количество смолток проггеров со времени релиза руби только падает, не вижу смысла им помогать мигрировать. А лисп вечен и прекрасен.

     
     
  • 8.69, scor (ok), 22:38, 26/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Та не Просто из переписки скопипастил Такая конструкция в реальном коде была... текст свёрнут, показать
     
  • 6.50, Привет пиоэнерам (?), 15:11, 26/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    >> О... Сломалось это слишком мягкое выражение, это два разных языка, с похожим
    >> синтаксисом.
    > Перед тем как это заявлять, приведите несколько выражений из 1.8, которые не
    > поймёт 1.9.

    Я бы написал, конечно, но после:

    > А то, что методы некоторые переименовали или изменили число
    > параметров - это не такая уж и проблема.

    уже и сказать нечего.

     
     
  • 7.53, Аноним (-), 15:34, 26/12/2013 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >> А то, что методы некоторые переименовали или изменили число
    >> параметров - это не такая уж и проблема.
    > уже и сказать нечего.

    Сложно понять, что язык и библиотеки - это не одно и то же?

     
     
  • 8.55, Привет пиоэнерам (?), 15:37, 26/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    То есть мы можем эти библиотеки запросто могу использовать в других языках Или... текст свёрнут, показать
     
     
  • 9.57, Аноним (-), 15:53, 26/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Язык остался тем же с минимальным изменением синтаксиса Нет, потому, что биб... текст свёрнут, показать
     
     
  • 10.58, chinarulezzz (ok), 17:02, 26/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    или держать две версии программ, для 1 8 и для 1 9 И для 2 0, и для 2 1 ... текст свёрнут, показать
     
     
  • 11.61, Аноним (-), 18:06, 26/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Если очень надо обеспечить работу одновременно в 1 8 и в новых, то можно вставит... текст свёрнут, показать
     
     
  • 12.62, chinarulezzz (ok), 18:24, 26/12/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    ты видел сколько методов изменили Писать обёртки для каждого 1 9 2 имеет отлич... текст свёрнут, показать
     
  • 10.75, Привет пионеэрам. (?), 14:33, 27/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Ага, ага Только программы написанные под 1 8 не работают под 1 9 Тогда какого ... текст свёрнут, показать
     
     
  • 11.76, Michael Shigorin (ok), 15:41, 27/12/2013 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ничего, что про планируемый сбор несовместимостей на переход к 2 0 был известен ... текст свёрнут, показать
     
     
  • 12.80, Привет пионэрам (?), 09:36, 28/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Особенно учитывая ломку совместимости в минорных версиях, оочень давно еще в п... текст свёрнут, показать
     
     
  • 13.81, Michael Shigorin (ok), 17:34, 28/12/2013 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Устойчивое ощущение, что если бы Вы толком портировали код между python 2 x 2 y ... текст свёрнут, показать
     
     
  • 14.82, Привет пионэрам (?), 19:56, 30/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Да, да кругом школата, один Мишка умный, может уже хватит Существует куча про... текст свёрнут, показать
     
     
  • 15.83, Michael Shigorin (ok), 22:59, 30/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Сами себе ник выбирали, никто за язык не тянул http www devalot com articles ... текст свёрнут, показать
     
  • 2.8, aim (ok), 03:17, 26/12/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    какая разница где ломать API? главное знать где и когда оно буде сломано. и сколько будет поддерживаться старая версия.
     
  • 2.16, Аноним (-), 08:30, 26/12/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А у меня большее недоумение вызывает "increased every christmas". Как-то нелогично менять номер версии просто потому, что год прошёл. Если с предыдущего раза ни чего существенного допилить не успели, а дедлайн наступил, они вкорячивают любую неотлаженную и несущественную фичу лишь бы циферку подкрутить, так что ли?
     
     
  • 3.27, Привет пионэрам (?), 10:10, 26/12/2013 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >Как-то нелогично менять номер версии просто потому, что год прошёл.

    А почему бы нет. Номер версии это всего лишь номер версии, он не на что не влияет.

     
  • 2.18, Аноним (-), 08:52, 26/12/2013 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Тут с semantic versioning мало чего общего. "special events" - слабо определённое нечто, "every chritsmas" пообще полный бред ради увеличения номера версии без повода, teeny - то что в semver называется patch, patch - бесполезное ни о чём не говорящее большое число.

    В то время как semver чёткая схема, major.minor.patch, где major увеличивается на поломках API совместимости, minor - на новых фичах, сохраняющих совместимость и patch на остальных совместимых в обе стороны изменениях.

    Со своей идиoтской схемой они могут ломать API как хотят, хуже от этого не станет.

     

  • 1.11, Michael Shigorin (ok), 03:40, 26/12/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    GMP -- эт правильно.
     
     
  • 2.72, Аноним (-), 10:29, 27/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Да давно уже пора было.
     

  • 1.25, Привет пионэрам (?), 09:59, 26/12/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >Удаление curses из стандартного набора библиотек (библиотека curses вынесена в отдельный curses.gem).

    Зачем?

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    MIRhosting
    Inferno Solutions
    Hosting by Ihor
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2019 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру