LINUX.ORG.RU

Вышел Rust 1.2

 , ,


3

14

7 августа вышел очередной стабильный релиз Rust 1.2 — языка программирования общего назначения, разрабатываемого Mozilla совместно с сообществом. Данный релиз сохраняет полную обратную совместимость с Rust 1.0, вышедшим в мае этого года.

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

  • Значительное повышение производительности компилятора, сборка основных библиотек стала быстрее в среднем на 30%.
  • Реализована параллельная кодогенерация, что позволяет получить дополнительный прирост в скорости компиляции, в частности самосборка компилятора на четырех ядрах стала на быстрее на 33%.
  • Оптимизации в системе сборки cargo, позволяющие избежать излишней пересборки модулей в отдельных случаях.
  • Поддержка инфраструктуры компилятора MS Visual С под Windows.
  • Окончательно реализована поддержка типов с динамическим размером, в частотности появилась поддержка trait objects и массивов в «умных указателях» Rc и Arc.

Одновременно была выпущена бета-версия Rust 1.3, в которой ожидается дальнейшее повышение производительности компилятора, улучшения в стандартной библиотеке и поддержка Windows XP.

>>> Официальный сайт

>>> Примечания к выпуску

>>> Ссылка на скачивание

>>> Официальная документация

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



Проверено: maxcom ()
Последнее исправление: Klymedy (всего исправлений: 3)
Ответ на: комментарий от Legioner

собираю иногда по работе много раз за день. инкрементально собирается быстро. что сказать-то хотел?

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

чем у скалистов и кложурщиков.

Вот это ты обобщил! Учитывая компиляторы и вообще принципы работы в этом контексте так делать не надо.

У кложурщиков с этим всё хорошо, а вот у скалистов вроде так чот.

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

Они очень нужны и хороши там, где есть полноценный хороший GC.

Оно и без ГЦ не менее полезно и удобно.

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

с приклеиванием кложур, лямбд, прочего ненужного хлама

Именно поэтому этот «ненужный хлам» приклеили и к перечисленным тобой C++/Java?

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

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

Но юзают же.

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

Некст генератион выбирает референс каунтинг.

То, что поколение постпепси выбирает всякое говно уже давно не секрет.

Oxdeadbeef ★★★
()

Кстати, MOOC ещё не запилили? Как для того ж OCaml, на который ссылка в Development.

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

ну да, скорее всего

и все же, bus factor в данном случае всего лишь вопрос времени, так что я буду надеяться

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

Reasonable Hello, World!

kek

Ну с синтаксисом, который в нормальном режиме выглядит как ошибка компиляции шаблонов STL, он вполне неплох для хипстеров

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

Ну с синтаксисом, который в нормальном режиме выглядит как ошибка компиляции шаблонов STL

Бред какой-то.

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

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

Ололошки, хипстота смешная набежала. Ты когда в последний раз webkit собирал?

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

схожестью синтаксиса с python, скоростью почти как у С, статической типизацией, нормальным перегрузом операторов, темплэйтами, возможностью компилить в js, cli режимом (nim i) (оооочень удобен для тестирования всяких ништяков), Unified Call Syntax: object.len == len(object), возможность отключать gc, выполнением функций во время компиляции, т.е какой-нибудь user-defined RlySlowFunc(N) можно сразу в const засунуть, ну и то, что промежуточный код = С, значит скомпилить можно почти под все что угодно.

Как-то так :D

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

скоростью почти как у С
статической типизацией
выполнением функций во время компиляции

Ну в контексте сравнения с растом это не аргумент.

нормальным перегрузом операторов

А можно немного подробнее? Чем оно лучше чем в С++/D?

возможностью компилить в js

Разве это что-то необычное? Языки на ллвм нахаляву это получают, например.

Unified Call Syntax

Опять же, оно есть в D и расте. Вероятно, в С++ тоже будет.

cli режимом

Не гуглится. Можно ссылку или подробности?

Это не придираюсь, если что. Мне правда интересно что в языке нового/интересного имеется.

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

rusti.

О мертвых либо хорошо, либо ничего

rusti жив. Его выпилили из основного дерева, но нашелся доброволец, который его поддерживает.

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

который его поддерживает.

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

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

Но по факту не развивает

Совсем недавно он был мертв, теперь всего лишь не развивается.

оно было, и, очевидно, осталось в весьма зайчаточном состоянии.

Говорят, интерактивный режим Nim тоже ограничен.

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

Совсем недавно он был мертв, теперь всего лишь не развивается.

Так это одно и тоже по факту, оно ведь не доросло до статуса живого.

Говорят, интерактивный режим Nim тоже ограничен.

Возможно, об этом ничего не знаю.

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

Совсем недавно он был мертв, теперь всего лишь не развивается.

Так это одно и тоже по факту

Ну да: и то, и другое - неправда.

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

Ну да: и то, и другое - неправда.

Фанатики такие фанатики. Для них и заброшенная недоделка - рабочий инструмент, если ее еще можно собрать.

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

я про проекты уровня хелоуворлда. олсо научись читать:

пересоберется

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

Фанатики такие фанатики

Хейтеры такие хейтеры

заброшенная недоделка - рабочий инструмент

Поздравляем вас, гражданин, соврамши.

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

Интерактивный режим.

Тогда штука прикольная.

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

Хейтеры такие хейтеры

Отнюдь, считаю rust нужным, чтоб заменить С в около 50% проектах.

Поздравляем вас, гражданин, соврамши.

Так это вы соврамши, а я вам вашу демагогию указавмши.

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

Лжешь. Ты приписал мне слова, которых я не говорил.

Это ты уже заврался, была идея сделать irust - она умерла вместе с самим irust. Это просто и очевидно. А ты из того факта, что оно еще собирается усилиями одного сердобольного человека, делаешь глупый вывод, что оно еще живое.

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

Процитируй, где я врал.

Например, «хейтеры такие хейтеры».

okay.jpg

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

зря, советую просто попробовать

Ну я (ещё раньше) поглядел поверхностно - не зацепило. Потому и спрашивал - может не разглядел положительные моменты и проникнусь. Ну да ладно.

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

«Современные кресты уже не убить.»

Потому что поздно.

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

А наследование трэйтов не собираются канонизировать?

trait Foo {
    fn foo(&self);
}

trait FooBar: Foo {
    fn foobar(&self);
}

Такое работает. Или ты о чем?

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

Чем Scala, Haskell и OCaml лучше Rust в компиляторописательстве?

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

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

... релиз сохраняет полную обратную совместимость ... Breaking Changes ... упс

Исправление ошибок не считается, это еще до 1.0 предупреждали.

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

Что сломали в этот раз?

Ты пропустил выход 1.0, да?

ozkriff
()

Я тут все со пошаговыми стратегиями на ржавчине играюсь. Для генерации навмеша библиотека триангуляции потребовалась, так я чего-то адекватной на чистом си не нашел. Более-менее подходит triangle, но лицензия у нее плохая. Из плюсовых ближе всего poly2tri показалась. Портирую на ржавчину потихоньку. Тяжело переносится, тут все на голых указателях и про const не слышали ничего. Ну да авось выйдет чего, выложу потом poly2tri-rs)

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

А кто-нибудь пробовал использовать ржаку как системный язык? Оно вообще как с [no_std] [no_main] нормально работает, у меня вот лажа каято. И вообще как с ним работать по человечески если все окружение и библиотеки написаны на С/С++, весь код с ног до головы укутан в unsafe{}. Ну и зачем оно тогда нужно?!

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

Как зачем использовать в существующих операционках

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

А кто-нибудь пробовал использовать ржаку как системный язык? Оно вообще
как с [no_std] [no_main] нормально работает, у меня вот лажа каято.

Вроде, работало раньше, хотя я не очень глубоко копал) Что у тебя за лажа?

И вообще как с ним работать по человечески если все окружение и
библиотеки написаны на С/С++, весь код с ног до головы укутан
в unsafe{}. Ну и зачем оно тогда нужно?!

Для сишных библиотек надо писать обертки (если их уже не написал кто-то другой и не выложил на crates.io), которые скрывают небезопасный код и приводят интерфейс к идиоматическому для ражвчины виду. Как пример обертки - https://github.com/alexcrichton/git2-rs.

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

Вроде, работало раньше, хотя я не очень глубоко копал) Что у тебя за лажа?

Не компилируется. Говорит нет функции main, а как ее указать чет не нашел в документации. И на сколько я понял, оно без зависимостей вообще, работать не может.

На С например можно так: "-s -e _mstart -nostdlib main.c -o prog" void mstart(void) { }

На ржавчине какой то геморрой, на форуме раста предлагают собирать с #![feature(no_std)] #![no_std] #![no_main] extern crate libc; Да, с либой работает.

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

... с libc работает.

Так, значит no_std, no_main с extern crate libc у тебя работает.

Как от libc избавиться уже другой вопрос, этого я не знаю :( .

Тут вот относительно свежее обсуждение примерно этого вопроса.

Видел слегка устаревший пример модуля ядра - https://github.com/tsgates/rust.ko - он, вроде, libc таки использует. Тебе точно нужно от libc избавляться? )

Вот еще вопрос по теме - https://github.com/rust-lang/rust/issues/17346.

Отпишись, если таки разберешься)

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