URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 106122
[ Назад ]

Исходное сообщение
"Выпуск языка программирования Ruby 2.3.0"

Отправлено opennews , 25-Дек-15 15:44 
Представлен (https://www.ruby-lang.org/en/news/2015/12/25/ruby-2-3-0-rele.../) релиз Ruby 2.3 (http://www.ruby-lang.org), динамического объектно-ориентированного языка программирования, отличающегося высокой эффективностью разработки программ и вобравшего в себя лучшие черты Perl, Java, Python, Smalltalk, Eiffel, Ada и Lisp.  Код проекта распространяется под лицензиями BSD ("2-clause BSDL") и "Ruby", которая ссылается на последний вариант лицензии GPL и полностью совместима с GPLv3.  Ruby 2.3 является третьим значительным выпуском, подготовленным в рамках нового планового процесса разработки, подразумевающего отведение года на подготовку функциональных улучшений и формирование каждые 2-3 месяца корректирующих выпусков. В скором времени  ожидается (https://github.com/rails/rails/releases) выпуск  фреймворка Rails 5.0, первая бета-версия которого вышла неделю назад.


Основные улучшения (https://github.com/ruby/ruby/blob/v2_3_0/NEWS):

-  Реализована (https://bugs.ruby-lang.org/issues/11473) новая экспериментальная прагма frozen-string-literal, а также связанная с ней опций "--enable/--disable=frozen-string-literal", позволяющие заморозить состояние строковых литералов в исходных текстах. Также добавлен новый отладочный режим "--debug=frozen-string-literal" при котором будет показано где именно изменение объекта приводит к выводу ошибки "can't modify frozen String";

-  Добавлен (https://bugs.ruby-lang.org/issues/11537) новый оператор "&." для упрощение обработки значений nil при обращении к объектам, реализованный по мотивам операторов безопасной навигации  C#, Groovy и Swift. При использовании синтаксиса вызова методов obj&.foo, метод #foo будет вызван только если object не является nil. Оператор ведёт себя как выражение "try! (http://api.rubyonrails.org/v4.2.5/classes/Object.html#method...)" (obj.try! {}) из ActiveSupport, но обрабатывает только  значения nil. Для массивов, хэшей и структур добавлены операторы Array#dig, Hash#dig и Struct#dig;

-  Для упрощения отладки в базовый состав добавлен gem "did_you_mean (https://github.com/yuki24/did_you_mean)", предлагающий правки для типичных опечаток при выводе ошибок NameError и NoMethodError;

<font color="#461b7e">
      "Yuki".starts_with?("Y")
      # => NoMethodError: undefined method `starts_with?' for "Yuki":String
      #    Did you mean?  start_with?
</font>


-  Добавлены (https://bugs.ruby-lang.org/issues/11788) экспериментальные возможности для обработки предкомпилированного байткода в формате ISeq. Для сериализации кода реализован объект
RubyVM::InstructionSequence#to_binary_format, а для десериализации и загрузки байткода - RubyVM::InstructionSequence.load_from_binary(binary);
-  В String.new  добавлена поддержка указания параметра "encoding" для определения кодировки;

-  Проведена серия оптимизаций производительности. В том числе реализован новый метод хранения табличных структур, оптимизирована работа Proc#call, на уровне машинного кода проведён тюнинг размещения объектов и вызова методов, добавлена возможность использования ключевых слов "exception:" для организации неблокирующего ввода/вывода;

-  Прекращена поддержка платформ OS/2, BeOS и Borland-C. Уровень поддержки платформы  Haiku доведён до стабильного.


URL: https://www.ruby-lang.org/en/news/2015/12/25/ruby-2-3-0-rele.../
Новость: http://www.opennet.me/opennews/art.shtml?num=43588


Содержание

Сообщения в этом обсуждении
"Выпуск языка программирования Ruby 2.3.0"
Отправлено anonimous , 25-Дек-15 15:44 
> Прекращена поддержка платформ OS/2, BeOS и Borland-C.

Сами себе роют яму.


"Выпуск языка программирования Ruby 2.3.0"
Отправлено Andrey Mitrofanov , 25-Дек-15 16:16 
>> Прекращена поддержка платформ OS/2, BeOS и Borland-C.
> Сами себе роют яму.

Браво! Вы нашли что-то общее меду этими Эплатформами".


"Выпуск языка программирования Ruby 2.3.0"
Отправлено Нимано , 25-Дек-15 17:10 
Ползователю OS/2 приносятся извинения, а 2-ух с половиной пользователей БеОси просят обратить внимание на:
> Drop support for BeOS now that Haiku is stable.

"Выпуск языка программирования Ruby 2.3.0"
Отправлено GrammarNarziss , 25-Дек-15 17:53 
"двух", позорище

"Выпуск языка программирования Ruby 2.3.0"
Отправлено A.Stahl , 25-Дек-15 18:15 
Но там не просто пользователи. Там ух какие пользователи!

"Выпуск языка программирования Ruby 2.3.0"
Отправлено Аноним , 25-Дек-15 18:45 
> Но там не просто пользователи. Там ух какие пользователи!

Не, второй пользователь - это просто мама первого в сапера все время играет на его компе.


"Выпуск языка программирования Ruby 2.3.0"
Отправлено Аноним , 25-Дек-15 22:53 
По массе тянет на полтора пользователя.

"Выпуск языка программирования Ruby 2.3.0"
Отправлено beos , 26-Дек-15 08:29 
Один гайкоюзер точно имеется на просторах Рунета http://www.banki.ru/profile/?UID=709780

"Выпуск языка программирования Ruby 2.3.0"
Отправлено Аноним , 29-Дек-15 22:12 
инновационный интерфейс, по меркам 1995 года.

"Выпуск языка программирования Ruby 2.3.0"
Отправлено Аноним , 25-Дек-15 15:54 
#    Did you mean?  all your base

"Выпуск языка программирования Ruby 2.3.0"
Отправлено Вареник , 25-Дек-15 19:09 
А что написано на Ruby, кроме Redmine?

"Выпуск языка программирования Ruby 2.3.0"
Отправлено Аноним , 25-Дек-15 19:28 
Навскидку: Github, Gitlab (хоть это и Rails, но всё равно).
Из другого: Vagrant, Homebrew, Discourse, Puppet/Chef (части на golang).

И не говорите, что это "не нужно".


"Выпуск языка программирования Ruby 2.3.0"
Отправлено Аноним , 25-Дек-15 19:42 
>Chef (части на golang)

Это какие части на golang? Помню что там Erlang был.


"Выпуск языка программирования Ruby 2.3.0"
Отправлено й , 26-Дек-15 01:48 
>> Puppet/Chef (части на golang).
>Chef (части на golang)

ну и избирательно вы цитируете


"Выпуск языка программирования Ruby 2.3.0"
Отправлено Аноним , 26-Дек-15 02:23 
по делу ответа я полагаю не ждать?

"Выпуск языка программирования Ruby 2.3.0"
Отправлено й , 26-Дек-15 13:29 
ответ по делу: в современном puppet части на clojure (таки не golang)

а в chef erlang, да


"Выпуск языка программирования Ruby 2.3.0"
Отправлено й , 26-Дек-15 13:32 
а что до golang -- тот же gitlab стремительно переписывается с его использованием

"Выпуск языка программирования Ruby 2.3.0"
Отправлено Michael Shigorin , 25-Дек-15 19:31 
> А что написано на Ruby, кроме Redmine?

Куча всего вплоть до ~/bin, а что?

PS: <beep>, и до меня лишние запятые добрались :-/ (убрал)


"Выпуск языка программирования Ruby 2.3.0"
Отправлено myhand , 25-Дек-15 19:54 
$ irb
irb(main):001:0> 1/2
=> 0

Вы все еще топаете по граблям питона?


"Выпуск языка программирования Ruby 2.3.0"
Отправлено Led , 25-Дек-15 20:07 
> $ irb
> irb(main):001:0> 1/2
> => 0
> Вы все еще топаете по граблям питона?

И что здесь "не так"?

$ irb
irb(main):001:0> 1.0/2
=> 0.5


"Выпуск языка программирования Ruby 2.3.0"
Отправлено myhand , 25-Дек-15 20:13 
>> $ irb
>> irb(main):001:0> 1/2
>> => 0
>> Вы все еще топаете по граблям питона?
> И что здесь "не так"?

Да ничего, расслабьтесь )  Лишь вангую, что однажды обнаружите как
$ python3
Python 3.4.2 (default, Oct  8 2014, 10:45:20)
[GCC 4.9.1] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 1/2

0.5

Надеюсь, тут объяснять "что не так" - не надо?


"Выпуск языка программирования Ruby 2.3.0"
Отправлено Нимано , 25-Дек-15 20:20 
>Надеюсь, тут объяснять "что не так" - не надо?
>>> 1//2

0

оно?


"Выпуск языка программирования Ruby 2.3.0"
Отправлено Andrey Mitrofanov , 25-Дек-15 21:49 
>>> $ irb
>>> irb(main):001:0> 1/2
>>> => 0
> $ python3
>>>> 1/2
> 0.5
> Надеюсь, тут объяснять "что не так" - не надо?

А можно, можно и я "тоже"?!  :)

scheme@(guile-user)> (/ 1 2)
$1 = 1/2
scheme@(guile-user)> (/ 1 7)
$2 = 1/7
scheme@(guile-user)> (+ (/ 5 6) (/ 1 15))
$3 = 9/10
scheme@(guile-user)> (sqrt 3)
$4 = 1.73205080756888
scheme@(guile-user)> (expt 2 333)
$5 = 17498005798264095394980017816940970922 8253554471456994914061648512796239935     95007385788105416184430592    ///я добавил 2 пробела, чтоб форум не окривел
scheme@(guile-user)> (expt 2. 333)
$6 = 1.74980057982641e100
scheme@(guile-user)> _


"Выпуск языка программирования Ruby 2.3.0"
Отправлено myhand , 26-Дек-15 01:35 
Да, дети, нада как вот этот дядинька делает!

Собственно, у Ruby лечится require 'mathn'.  Но по-умолчанию - / означает целочисленное
деление (как // в Python 3), короче все те же грабли что и у Python 2.


"Выпуск языка программирования Ruby 2.3.0"
Отправлено Аноним , 26-Дек-15 16:51 
fn main() {

struct Rust {
    x: i32,
    y: i32
}

impl Rust {
    fn divide(&self) -> i32 {
        self.x / self.y
    }
}

println!("Result is: {}", Rust {x: 1, y: 2}.divide() )

}

и

println!("Result is: {}", 1.0/2.0 )  //Result is: 0.5


"Выпуск языка программирования Ruby 2.3.0"
Отправлено Аноним , 26-Дек-15 17:32 
>  x: i32,
> println!("Result is: {}", 1.0/2.0 )  //Result is: 0.5

А теперь повторите хотя бы "фокус" с 2^333. И заодно посчитайте "9/7 - 20/21".


"Выпуск языка программирования Ruby 2.3.0"
Отправлено Andrey Mitrofanov , 26-Дек-15 18:49 
>>  x: i32,
>> println!("Result is: {}", 1.0/2.0 )  //Result is: 0.5
> А теперь повторите хотя бы "фокус" с 2^333. И заодно посчитайте "9/7
> - 20/21".

Зато он 2.0^333 и sqrt(3) повторит. Хорошо, если поймёт, почему -фокус- в кавычках. Речь-то не об том. И #28 совсем не про возможности арифметики в конкретном языке, конкретной реализации. Но да, могло показаться, что я писал об этом. Но я ж тлодил, беда. YallHBT, а те, кто не "all" понимают, что _предмета_ обсуждения нет. Примерно с того же #28...


"Выпуск языка программирования Ruby 2.3.0"
Отправлено Аноним , 26-Дек-15 17:17 
> А можно, можно и я "тоже"?!  :)

*достает свою пип^W консоль*


Welcome to SWI-Prolog (Multi-threaded, 64 bits, Version 7.2.3
...
?- X is 5 rdiv 6 + 1 rdiv 15.
X = 9 rdiv 10.

?- X is 2 ** 333.
X = 174980057982640953949800178169409709[...]0592.

?- X is 2.0 **333.
X = 1.7498005798264095e+100.


?- {9/10 = 5/6 + X}.
X = 1 rdiv 15.

?- {1/3 = 9/7 - X}.
X = 20 rdiv 21.

?- {1337 = exp(2,Y)}.
Y = 64835473751161472 rdiv 6243314768165359.



"Выпуск языка программирования Ruby 2.3.0"
Отправлено Andrey Mitrofanov , 26-Дек-15 18:52 
>> А можно, можно и я "тоже"?!  :)
> *достает свою пип^W консоль*
>
 
> Welcome to SWI-Prolog (Multi-threaded, 64 bits, Version 7.2.3
> ...
>

"Мерялся пипками с вендузятниками на отупнете. Много думал. День как день. "


"Выпуск языка программирования Ruby 2.3.0"
Отправлено Аноним , 26-Дек-15 19:11 
>>
 >> Welcome to SWI-Prolog (Multi-threaded, 64 bits, Version 7.2.3 >> ...>> 

> "Мерялся пипками с вендузятниками на отупнете. Много думал. День как день. "

Что, уже везде форточки мерещатся? Надеюсь, это не заразно оО


"Выпуск языка программирования Ruby 2.3.0"
Отправлено Andrey Mitrofanov , 28-Дек-15 10:26 
>>> Welcome to SWI-Prolog (Multi-threaded, 64 bits, Version 7.2.3 >>
>> "Мерялся пипками с вендузятниками на отупнете. Много думал. День как день. "
> Что, уже везде форточки мерещатся? Надеюсь, это не заразно оО

Видимо, только "их" пипирки. Беда, согласен. Пора принять. Таблетки.

С другой стороны о чём ещё могут сказать гордые флаги "Multi-threaded, 64 bits"? Что не DOS?...


"Выпуск языка программирования Ruby 2.3.0"
Отправлено й , 28-Дек-15 18:23 
о том, что это 64-bit бинарик с поддержкой тредов. на линуксе, макинтоше, другом юниксе или винде. ни о чём больше.

"Выпуск языка программирования Ruby 2.3.0"
Отправлено Vitold S , 26-Дек-15 04:04 
> -  Проведена серия оптимизаций производительности. В том числе реализован новый

Подскажите, а как дела с потками? Как дела с интеграцией с C/C++ можно ли из потоков писать в переменные Ruby?

Сохранился ли GIL и рубит ли он производительность потоков свояд все до выполнения в один поток?

Как часто происходит переключение между опкодами, сылшал что в Python каждыые 100 операций, а тут как дела?


"Выпуск языка программирования Ruby 2.3.0"
Отправлено Аноним , 26-Дек-15 04:29 
>Сохранился ли GIL и рубит ли он производительность потоков свояд все до выполнения в один поток?

В MRI GIL присутствует, Почитайте статью на вики и хабре про GIL все вопросы отпадут.http://habrahabr.ru/post/189320/
> Как часто происходит переключение между опкодами, сылшал что в Python каждыые 100 операций, а тут как дела?

Тут даже не скажу, некогда не задавался таким вопросом.
> Как дела с интеграцией с C/C++ можно ли из потоков писать в переменные Ruby?

Не обязательно использовать MRI как встроенный язык, можно посмотреть на mruby как медленную альтернативу lua. В сам интерпретатор параллельно писать не получиться.


"Выпуск языка программирования Ruby 2.3.0"
Отправлено Аноним , 26-Дек-15 04:43 
> В MRI GIL присутствует

GIL для идиотов, в C++11 присутствует атомарность для предотвращения гонки потоков.


"Выпуск языка программирования Ruby 2.3.0"
Отправлено Аноним , 26-Дек-15 07:04 
Очень тонко, если вы понимаете о чем я ))

"Выпуск языка программирования Ruby 2.3.0"
Отправлено Vitold S , 26-Дек-15 14:36 
>> В MRI GIL присутствует
> GIL для идиотов, в C++11 присутствует атомарность для предотвращения гонки потоков.

Ссылку на документацию Вас не затруднит скинуть или раскройте мысль полностью, а то непонятно как и что Вы сравнили один поток интер-тора VM и компилятор?


"Выпуск языка программирования Ruby 2.3.0"
Отправлено Vitold S , 26-Дек-15 14:32 
>>Сохранился ли GIL и рубит ли он производительность потоков свояд все до выполнения в один поток?
> В MRI GIL присутствует, Почитайте статью на вики и хабре про GIL
> все вопросы отпадут.http://habrahabr.ru/post/189320/
>> Как часто происходит переключение между опкодами, сылшал что в Python каждыые 100 операций, а тут как дела?
> Тут даже не скажу, некогда не задавался таким вопросом.
>> Как дела с интеграцией с C/C++ можно ли из потоков писать в переменные Ruby?
> Не обязательно использовать MRI как встроенный язык, можно посмотреть на mruby как
> медленную альтернативу lua. В сам интерпретатор параллельно писать не получиться.

Да, эту статью я уже читал. Просто новая версия и соответственно в ожидании решения концептуальных проблем, а не решения всяких мелких пакостей с которыми и так все живут.


"Выпуск языка программирования Ruby 2.3.0"
Отправлено Аноним , 26-Дек-15 17:12 
Кстати вы можете ruby собрать с jemalloc теперь.

"Выпуск языка программирования Ruby 2.3.0"
Отправлено Аноним , 27-Дек-15 00:33 
это в Ruby 3 обещали GIL убрать.

"Выпуск языка программирования Ruby 2.3.0"
Отправлено Аноним , 26-Дек-15 04:31 
>Сохранился ли GIL и рубит ли он производительность потоков свояд все до выполнения в один поток?

VM работает в одном потоке всегда это и есть GIL. Ввод/вывод может быть параллельным.


"Выпуск языка программирования Ruby 2.3.0"
Отправлено Аноним , 26-Дек-15 04:44 
>>Сохранился ли GIL и рубит ли он производительность потоков свояд все до выполнения в один поток?
> VM работает в одном потоке всегда это и есть GIL. Ввод/вывод может
> быть параллельным.
> Ввод/вывод может быть параллельным.

Тонко пошутил?

В один момент времени поток может все залучить!!!


"Выпуск языка программирования Ruby 2.3.0"
Отправлено Anton , 26-Дек-15 09:09 
>> Прекращена поддержка платформ OS/2, BeOS и Borland-C.

Borland-C разве платформа?
это же компилятор, ЕМНИП


"Выпуск языка программирования Ruby 2.3.0"
Отправлено Аноним , 26-Дек-15 13:18 
на офф сайте написано, что это не релиз а пмвъю
...
Мы рады сообщить о выходе Ruby 2.3.0-preview1.
Опубликовал naruse 2015-11-11
...
может я не доглядел?

"Выпуск языка программирования Ruby 2.3.0"
Отправлено Michael Shigorin , 26-Дек-15 13:25 
> может я не доглядел?

Сейчас так:

Ruby 2.3.0 Released
We are pleased to announce the release of Ruby 2.3.0.
Continue Reading...
Posted by naruse on 25 Dec 2015

http://www.ruby-lang.org/en/news/2015/12/25/ruby-2-3-0-released/


"Выпуск языка программирования Ruby 2.3.0"
Отправлено Аноним , 26-Дек-15 13:21 
по ходу они новости на главную не спешат выводить

"Выпуск языка программирования Ruby 2.3.0"
Отправлено Аноним , 26-Дек-15 14:05 
А что тут выводить? все рубисты в курсе про дату выхода. Уже какой год новые версии выходят 25 декабря.