LINUX.ORG.RU

Rust 1.6

 ,


2

3

Команда разработчиков Rust рада представить первый в этом году релиз Rust — 1.6. Rust — это системный язык программирования, при разработке которого внимание сосредоточено на безопасности, скорости и параллелизме. Как обычно, вы можете установить Rust 1.6 с соответствующей страницы на официальном сайте, а также посмотреть примечания к выпуску на GitHub. Выпуск включает в себя около 1100 патчей и содержит ряд небольших улучшений, одно важное изменение, а также изменение на Crates.io.

Стабилизация libcore

Самым большим нововведением в 1.6 является стабилизация libcore. Стандартная библиотека Rust состоит из двух уровней: небольшая базовая библиотека libcore и полная стандартная библиотека libstd, которая построена на основе libcore. libcore является полностью платформонезависимой, и требует только горстку внешних функций. libstd строится на основе libcore, добавляя поддержку выделения памяти, операций ввода-вывода и параллелизма. При использовании Rust во встраиваемых средах и при написании операционных систем, разработчики часто избегают libstd, используя только libcore.

Стабилизация libcore являтся важным шагом к возможности писать самое низкоуровневое ПО, используя стабильный Rust. Это позволит развиваться экосистеме библиотек вокруг libcore, но приложения пока полностью не поддерживаются. Ожидайте изменения в этой области в будущих релизах.

Стабилизации библиотеки

Около 30 библиотечных функций и методов теперь являются стабильными в 1.6. Заметные улучшения включают в себя:

  • Семейство функций drain() для коллекций. Эти методы позволяют перемещать элементы из коллекций, сохраняя память, в которой они размещены, тем самым снижая выделение памяти в некоторых ситуациях.
  • Ряд реализаций типажа From для конвертирования между типами стандартной библиотеки, в основном между целочисленными типами и числами с плавающей точкой.
  • Наконец, Vec::extend_from_slice(), ранее известный как push_all(). Этот метод существенно быстрее, чем более общий метод extend().

Crates.io запрещает использование масок в версиях зависимостей

Если вы являетесь мейнтейнером контейнера на Crates.io, возможно вы видели следующее предупреждение:

новые контейнеры более не могут использовать маски при описании зависимостей.

Другими словами, это запрещено:

[dependencies]
regex = "*"

Вместо этого вы должны указать конкретную версию или диапазон версий, используя одну из опций: ^, ~, или =.

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

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

★★★★★

Проверено: Klymedy ()
Последнее исправление: Klymedy (всего исправлений: 6)

Хороший язык, должно быть...

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

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

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

любой может вносить полезные изменения в язык и его открытый вариант поддерживается разработчиками эпла

И как, уже внесли «полезные изменения» для запуска на голом железе? Поддерживаются они Apple?

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

И как, уже внесли «полезные изменения» для запуска на голом железе? Поддерживаются они Apple?

Ты имеешь в виду Swift-OS?

Или ucSwift.

Нет

Ясно.

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

Синтаксис удобнее

Так вот оно,что главное в языке программирования. Вот, то, чего не хватает всем современным языкам программирования.

ii8_ ★★★★
()

Минорная хипстота на главной. Совсем скатился уютный лорчик.

anonymous
()

Gecko говно и у него высокий входной порог потому что С++, давайте придумаем новый язык и переведем ФФ на него, чтобы входной порог стал еще выше, разработчиков еще меньше, код еще хуже. Зато полтора разработчика от нас не уйдут, ведь им негде больше применить знания всраста.

Проходит пять лет.

Мозилла отказывается от Thunderbird, потому что gecko.

Проходит еще пять лет стагнации развития.

Мозилла объявляет о банкротстве, Firefox переходит на WebKit и тихо умирает в углу.

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

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

Тут еще надо добавить поломанные аддоны фурифокса и их разработчиков, посылающих мозилку на три буквы.

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

Why so butthurt?

Потому что пишу с фурифокса

Не мучай себя, перейди на... да куда угодно.

И таки непонятно, почему ты пришел излить свою боль в тред о Rust, а не о Firefox.

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

Синтаксис удобнее, любой может вносить полезные изменения в язык

Синтаксис - вкусовщина.

Что значит «вносить изменения в язык»? Вот прямо можно взять и сделать/переделать что-то? Или «просто» предложить? Если последнее, то и в расте можно.

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

Так вот оно,что главное в языке программирования.

Ну это всё-таки не самая последняя по важности вещь.

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

перейди на... Хром, хром, хром, хром или хром.

А на соседнем мониторе у меня thunderbird открыт, от которого мозилка недавно отказалась. Фактический труп.

И таки непонятно, почему ты пришел излить свою боль в тред о Rust, а не о Firefox.

Потому что мне наплевать на язык, таких каждый год мешок выходит, но мне не наплевать на софт, который этот очередной убийца С++ убьет. Да и с каких пор на ЛОРе надо оправдываться за вброс? Кыш.

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

мне не наплевать на софт, который этот очередной убийца С++ убьет

Шозабред. Над Rust работают всего несколько человек от Mozilla.

tailgunner ★★★★★
()

Минорщина.

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

А над servo, ради которого всраст запиливался? А над переводом ФФ с геко на серво и поломкой совместимости? Громоптицу думаешь просто так выкинули? Ну не строй из себя дурака.

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

А над servo, ради которого всраст запиливался?

А Servo просто другой проект.

Впрочем, если ты знаешь, сколько людей работает над Servo и сколько над Firefox - поделись.

Ну не строй из себя дурака.

Ну приложи себе лед.

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

язык, таких каждый год мешок выходит

Было бы неплохо.

DarkEld3r ★★★★★
()

По случаю выхода новой версии решил обновить сорцы движка servo и поиграться. При сборке увидел, что rust пока используется старый:

./mach build --release
looking for rustc at /home/jurikolo/git/servo/.servo/rust/2015-12-27/rustc-nightly-x86_64-unknown-linux-gnu/rustc/bin/rustc
Downloading Rust compiler...

Обидно.

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

Кстати, когда на нём браузер уже сделают?

Никогда?

А вот растовый код в фаерфоксе обещают уже в этом году.

DarkEld3r ★★★★★
()

Я один не понимаю, как язык может иметь версию 1.* до того, как стабилизуется его базовая библиотека?

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

А на соседнем мониторе у меня thunderbird открыт, от которого мозилка недавно отказалась.

В июле 2012. И в январе 2016 этот «фактический труп» у тебя до сих пор открыт. Может, не труп, всё-таки?

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

Longer-term, we plan to incrementally replace components in Gecko with ones written in Rust and shared with Servo. We are still evaluating plans to ship Servo as a standalone product, and are focusing on the mobile and embedded spaces rather than a full desktop browser experience in the next two years.

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

А вот растовый код в фаерфоксе обещают уже в этом году.

ЕМНИП, первый компонент введен уже в прошлом году.

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

Community — реальность, которая с нами с середины 2012. Уже с этого времени сотрудники Mozilla Corporation (есть ещё Mozilla Foundation) не выполняют оплачиваемой разработки.

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

Я один не понимаю, как язык может иметь версию 1.* до того, как стабилизуется его базовая библиотека?

Что значит стабилизируется в контексте раста? В языке есть разделение на стабильные и нестабильные части. Используешь релиз - нестабильные даже не увидишь, а стабильные обещают не ломать. В чём проблема?

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

with ones written in Rust and shared with Servo

Gecko и Servo будут использовать одни и те же библиотеки, написанные на Rust. Это не то же самое, что перевод Firefox на Servo.

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

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

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

ЕМНИП, первый компонент введен уже в прошлом году.

Круто. А можешь в какой-нибудь пруф ткнуть? Я не то, чтобы «не верю», просто помню их твит о том, что это состоится в 2016, да и в роадмапе, ссылку на который тут приводили, тоже похожее говорится.

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

Longer-term, we plan to incrementally replace components in Gecko with ones written in Rust and shared with Servo
replace
replace

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

Но ты можешь продолжать маняврировать и утверждать что планов по переводу нет и мозилла затеяла серво с растом «ну чисто по приколу))0»

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

Я не маняврирую, а читаю ровно то, что написано. Если ты обладаешь развитыми аналитическими навыками, спорить с тобой по этому вопросу я не собираюсь.

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