15 мая 2015 года, в соответствии с планом, вышел публичный релиз Rust 1.0 - языка программирования общего назначения, разрабатываемого Mozilla совместно с сообществом. Язык ориентирован на разработку безопасных и эффективных приложений, имеет развитую систему типов, оптимизирующий кодогенератор на основе llvm и предоставляет расширенные гарантии потокобезопасности и безопасного доступа к памяти без использования сборщика мусора. В частности, Mozilla использует Rust для разработки браузерного движка следующего поколения servo.
3 апреля 2015 года, в полном соответствии с планом, вышла бета-версия Rust 1.0. Язык и большая часть стандартной библиотеки окончательно стабилизированы, до финального релиза возможны только минимальные изменения в API.
Некоторые изменения со времени альфа-версии, вышедшей 9 января:
Окончательный релиз Rust 1.0 запланирован на 16 мая, разработчики потратят оставшиеся до релиза 6 недель на тестирование, исправление ошибок и обновление документации.
9 января тихо и незаметно вышла альфа-версия Rust 1.0. Этот релиз является этапным в том смысле, что набор возможностей языка зафиксирован и в версиях 1.x значительных несовместимых изменений больше не будет (см. ниже); то же относится и к стандартной библиотеке. Гарантии стабильности означают, что Rust уже можно изучать, не опасаясь скорого устаревания полученных знаний из-за эволюции языка.
Вышла новая версия инструментов разработки языка программирования Rust.
Rust — язык системного программирования, предназначенный для написания быстрых и в то же время безопасных (в том числе и во многопоточной среде) приложений.
В данном релизе упор был сделан на переработку документации языка, приведение к единому виду стандартной библиотеки, улучшение пакетного менеджера Cargo и поддержки Windows.
Спустя несколько месяцев разработки тихо и незаметно вышла новая версия Rust — языка программирования, разрабатываемого Mozilla и нацеленного на безопасность, производительность и параллелизм.
В данном релизе усилия разработчиков были главном образом сосредоточены на доведение до ума системы типов и стандартной библиотеки. Так, одной из основных задач являлось введение инфраструктуры для типов переменного размера. Также, как и обещано, был полностью удалён ~ и @ синтаксис в пользу использования стандартных типов Box и Gc.
Основные изменения:
Синтаксис ~[T] был удален из языка, вместо него используется Vec<T>;
Синтаксис ~str был удален из языка, вместо него используется String;
Синтаксис ~T был удален из языка, вместо него используется Box<T>;
Синтаксис @T был удален из языка, вместо него используется std::gc::Gc<T>;
Байтовые символы, строки и сырые строки теперь предваряются префиксом b;
Изменился синтаксис для указания времени жизни замыканий: <'a>|A, B|: 'b + K -> T;
Модульная арифметика для вещественных типов была убрана из языка;
Синтаксис use foo, bar, baz; был удален из языка;
Ключевое слово priv было удалено из языка;
Поля структур стали по умолчанию приватными;
Приватные перечислимые типы теперь запрещены;
Замыкание более не может быть вызвано через &-указатель;
Индекс вектора и размер битового сдвига теперь может быть представлен только в виде uint;
Стандартная библиотека теперь являет собой один унифицированный интерфейс к набору нижлежащих библиотек;
Добавлена новая библиотека libcore, призванная облегчить разработку встраиваемого программного обеспечения;
Был добавлен модуль regex, также включающий в себя набор статически скомпилированных регулярных выражений;
Набор I/O примитивов получил возможность прерывать операции по таймауту;
Добавлен макрос bitflags! для упрощения работы с битовыми флагами.
Сегодня было объявлено о выходе очередной версии Rust — языка программирования, разрабатываемого Mozilla.
Основные изменения:
Язык:
удален тип float, для чисел с плавающей точкой используются типы f32, f64;
добавлена возможность включения экспериментальных фич (feature gating) на уровне crate'ов (атрибут '#[feature(foo)]');
managed boxes (@) теперь включаются с помощью атрибута '#[feature(managed_boxes)]' и в будущем будут удалены. Вместо них используются типы Gc и Rc;
'@mut' удален, вместо него используется тип 'std::cell::{Cell, RefCell}';
для возврата в начало цикла используется ключевое слово 'continue' вместо 'loop';
запрещено изменение строк через индексацию;
новый синтаксис для создания raw-строк ('r"foo"'). Также можно создать raw-строку с помощью совпадающих хэш-разделителей 'r###«foo»###';
тип '~fn' теперь пишется как 'proc (args) -> retval { ... }' и может вызываться только однажды;
тип '&fn' теперь пишется как '|args| -> ret';
тип '@fn' удален;
ключевое слово 'do' теперь работает только с procs-лямбдами;
одноэлементные tuple-like структуры больше не могут быть разыменованы для получения внутреннего значения. Более полное решение для перегрузки оператора разыменования будет предоставлено в будущем;
атрибут '#[link(...)]' был заменен атрибутом '#[crate_id = «name#vers»]';
пустые реализации (impl) должны прерываться пустыми фигурными скобками, использование ';' для этого запрещено;
ключевые слова больше не могут использоваться как lifetime-имена, 'self'-lifetime больше не имеет особого смысла;
удален макрос 'fmt!';
удалены макросы 'printf!' и 'printfln!', вместо них используются 'print!' и 'println!';
Тихо и незаметно вышла новая версия Rust — языка программирования, разрабатываемого Mozilla Foundation.
В этом выпуске:
Цикл for: внутренний итератор (как в Ruby) заменен внешним (как в Python).
Новый макрос форматирования строк format!. Он гораздо более производителен, чем старый fmt!; имеет другой синтаксис, более удобный для локализации; а также может возвращать результат в интерфейсы rt::io::writer, а не только в строки. fmt! объявлен устаревшим.
Рантайм теперь полностью переписан с C++ на Rust. Пока он еще не вполне готов, и можно ожидать сегфолты и странное поведение программ на глубоких уровнях рекурсии.
Экспериментальная фича — новая подсистема ввода/вывода.
Серьезные улучшения производительности в rustc.
Соглашение об именовании функций, конвертирующих типы.
3 июля было объявлено о выходе очередной версии Rust — языка программирования, разрабатываемого Mozilla. Новая версия включает в себя около 2000 изменений и исправлений ошибок.
Mozilla и Samsung объявили о совместном проекте: разработке веб-движка «нового поколения», оптимизированного под будущие «более быстрые, многоядерные компьютерные архитектуры».
Servo — попытка создать веб-браузер заново с нуля на современном оборудовании и переосмыслить старые посылки. Это значит устранить сами причины уязвимостей в системе безопасности и в то же время создать платформу, которая полностью использует производительность массовых параллельных вычислений на оборудовании завтрашнего дня. Поэтому Servo пишется на языке Rust, новом, безопасном языке системного программирования, разработанном в Mozilla совместно с большим сообществом энтузиастов.
Движок Servo написан на языке Rust и отличается поддержкой многопоточного рендеринга web-страниц и возможностью параллельного выполнения операций с DOM в процессе обработки одной web-страницы. Использование Rust позволит разбить код DOM и рендеринга на более мелкие подзадачи, которые смогут выполняться параллельно и более эффективно использовать ресурсы многоядерных CPU.
Совместно с Samsung экспериментальный движок Servo уже портировали на платформу ARM и Android. По мнению Mozilla, это значительный шаг вперёд и для языка программирования Rust. Компания Samsung разработала ARM-бэкенд для Rust.
В течение ближайшего года Mozilla планирует закончить работу над первой мажорной версией Rust — задокументировать библиотеки, выпустить необходимый инструментарий и увеличить производительность. В то же время Mozilla обещает выделить больше ресурсов на доработку Servo для доказательства, что «можно создать быстрый веб-браузер с глубоким параллелизмом на безопасном, весёлом языке программирования».
Всех, кто желает поучаствовать в разработке языка и движка, организация Mozilla приглашает присоединиться к соответствующим спискам рассылки Rust и Servo.
В мэйл-листе разработчиков Mozilla объявлено о выходе пре-релиза Rust 0.6 (язык программирования, который разрабатывает Mozilla Foundation). Большая часть критичных фич языка уже добавлена, поэтому можно переходить к тестированию. Если всё пойдёт хорошо, то релиз следует ожидать через несколько дней. Первичной целью тестирования будет проверка, что компилятор работает корректно на всех платформах (OS X 10.6+, Linux и Windows 7 и 2008).