LINUX.ORG.RU

Rust


261

19

Всего сообщений: 146

Rust 0.10

Группа Mozilla

Вышла новая версия Rust, языка программирования разрабатываемого Mozilla. Релиз несет в себе около 1500 изменений и исправлений ошибок.

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

( читать дальше... )

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

 ,

encyrtid
()

Rust 0.9

Группа Mozilla

Сегодня было объявлено о выходе очередной версии 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!';
    • pattern matching поддерживает 'mut' ('let (mut x, y) = (1, 2);'
    • вместо синтаксиса 'extern mod foo (name = «bar»)' теперь следует использовать 'extern mod foo = «bar»';
    • новые зарезервированные слова 'alignof', 'offsetof', 'sizeof';
    • макросы могут иметь атрибуты;
    • макрос 'asm!' теперь включается feature-gated атрибутом '#[feature(asm)]';
    • комментарии могут быть вложенными;
    • значения неявно преобразуются к типам trait'ов которые они реализуют (раньше необходимо было явно использовать 'as');
  • Библиотеки:
    • std: API для 'option' и 'result' был переработан для того чтобы сделать его более простым, консистентным и композабельным;
    • std: Полностью заменен модуль 'std::io', включая планировщик. Полностью реализованы File, TCP, UDP, Unix сокеты, именованные каналы и таймеры;
    • std: в модуль 'io::util' добавлены полезные реализации типов 'Reader' и 'Writer', включая 'NullReader', 'NullWriter', 'ZeroReader', 'TeeReader';
    • std: Тип 'extra::rc' перемещен в std;
    • std: Тип 'Gc' в модуле 'gc' заменит тип '@';
    • std: Удален тип 'Either';
    • std: 'fmt::Default' может быть реализован для любого типа с помощью синтаксиса 'format!(«{}», myfoo)';
  • Инструментарий:
    • команды 'rust' и 'rusti' были удалены из-за отсутствия поддержки;
    • 'rustdoc' был полностью переписан;
    • 'rustdoc' может тестировать примеры кода из документации;
    • 'rustpkg' может тестировать пакеты с аргументом 'test';
    • 'rustpkg' поддерживает произвольные зависимости, включая библиотеки на C;
    • улучшен механизм генерации отладочной информации в 'rustc';
    • улучшены сообщения об ошибках для несбалансированных разделителей в 'rustc';
    • удалена поддержка JIT в 'rustc';
    • исполнимые файлы и статические библиотеки могут быть собраны с LTO (ключ '-Z lto');
    • в 'rustc' добавлен флаг '--dep-info' для вывода сообщения зависимостей инструментам сборки.

Детальный обзор изменений с примерами

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

 ,

encyrtid
()

Rust 0.8

Группа Mozilla

Тихо и незаметно вышла новая версия Rust — языка программирования, разрабатываемого Mozilla Foundation.

В этом выпуске:

  • Цикл for: внутренний итератор (как в Ruby) заменен внешним (как в Python).
  • Новый макрос форматирования строк format!. Он гораздо более производителен, чем старый fmt!; имеет другой синтаксис, более удобный для локализации; а также может возвращать результат в интерфейсы rt::io::writer, а не только в строки. fmt! объявлен устаревшим.
  • Рантайм теперь полностью переписан с C++ на Rust. Пока он еще не вполне готов, и можно ожидать сегфолты и странное поведение программ на глубоких уровнях рекурсии.
  • Экспериментальная фича — новая подсистема ввода/вывода.
  • Серьезные улучшения производительности в rustc.
  • Соглашение об именовании функций, конвертирующих типы.

И еще более 2200 изменений.

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

>>> Текст анонса

 , ,

rogvold
()

Rust 0.7

Группа Open Source

3 июля было объявлено о выходе очередной версии Rust — языка программирования, разрабатываемого Mozilla. Новая версия включает в себя около 2000 изменений и исправлений ошибок.

( читать дальше... )

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

 ,

encyrtid
()

Mozilla и Samsung объявили о совместной работе над браузерным движком нового поколения

Группа Mozilla

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.

Исходные коды на github

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

 , , ,

bhfq
()

Rust 0.6 pre-release build

Группа Mozilla

В мэйл-листе разработчиков Mozilla объявлено о выходе пре-релиза Rust 0.6 (язык программирования, который разрабатывает Mozilla Foundation). Большая часть критичных фич языка уже добавлена, поэтому можно переходить к тестированию. Если всё пойдёт хорошо, то релиз следует ожидать через несколько дней. Первичной целью тестирования будет проверка, что компилятор работает корректно на всех платформах (OS X 10.6+, Linux и Windows 7 и 2008).

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

( читать дальше... )

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

 ,

anonymous
()