Вышел rust 0.11.0
Несмотря на то, что язык находится в активной фазе разработки, работа была сфокусирована над улучшением системы типов и библиотек. Главная работа была проведена над имплементацией типов с динамическим размером (DST) и рефакторингом стандартной библиотеки.В этом релизе также удалили ~ и @ в угоду типам Box и Gc из стандартной библиотеки (компилятор пока знает о этих типах больше чем нужно, но вскоре эти типы станут самыми обычными типами Rust).DST, векторы и строкиВ подготовке в введию типов с динамическим размеров (DST), ~str и ~[T] были удалены из языка. Их вернут в виде Box
Удаление ~ и @
Повсеместные указатели ~ и @ были удалены из языка и теперь находятся в библиотеках. Синтаксис вида ~T заменен на Box
Пока это всего лишь изменение в синтаксисе, но главной целью есть перенос многих фич из компилятора в библиотеки. В месте с этим мы получим упрощенную поддержку компилятора, более простую генерацию документации и более очевидное использование умных указателей Rc и Arc.После внедрения DST компилятору не нужно будет специально обрабатывать типы Box<> и Gc<>.
Фасад «std»
Произошел рефакторинг стандартной библиотеки, теперь она является «зонтиком» для небольших библиотек. Целью рефакторинга было определение зависимостей между компонентами библиотеки и лучшее абстрагирование типов.Новые библиотеки, входящие в состав стандартной библиотеки: libcore — ключевая библиотека для Rust. В теории максимально переносимая (у нее нет зависимостей), к примеру она не зависит от libc. Даная библотека хорошо подходит для использования в встроенных устройствах, разработке ядра, или для встраивания Rust в другой язык. libcore не умеет выделять память, поэтому в ней нет векторов и строк з изменяемым размером.
liblibc — обертка для libc.
liballoc — главный интерфейс для выделения памяти в Rust. В этой библиотеки находятся «умные указатели», такие как, Rc
std: collections std: sync std: comm std: rand std: rt