📜 ⬆️ ⬇️

Rust 0.11.0 released


Mozilla and the Rust community have released a new release of Rust, version 0.11.0.

Despite the fact that the language is in the active phase of development, the work was focused on improving the type system and libraries. The main work was carried out on the implementation of types with dynamic size (DST) and refactoring of the standard library.
In this release, they also removed ~ and @ for the sake of Box and Gc types from the standard library (the compiler knows more about these types than needed, but soon these types will become the most common Rust types).


DST vectors and strings


To prepare for the introduction of types with dynamic size (DST, Dynamically sized types), ~str ~[T] were removed from the language. They will be returned in the form of Box Box<[T]>, . String Vec .

Vec
Vec ~[T] LLVM.
~[T], Vec . &mut[T] &[T] .

String
~str. owned , mut . Vec utf8 . &str as_slice().

String prelude std::string.

~ @
~ @ . ~T Box, std::owned, @T
Gc std::gc.

~expr
box expr , @expr box(GC) expr .

, . , Rc Arc.
DST Box<> Gc<> .

"std"
, "" . .
, :

libcore - Rust. ( ), libc. , , Rust . libcore , . liblibc - libc. liballoc - Rust. " ", , Rc, Arc Box. Rust . jemalloc. liblibc libcore.
libcollections - , vector, strings, maps, linked lists, . liballoc libcore.
librustrt - , I/O , , .
libsync - , .
librand - .


, . , :
std::collections std::sync std::comm std::rand std::rt
Box Box<[T]>, . String Vec .

Vec
Vec ~[T] LLVM.
~[T], Vec . &mut[T] &[T]
.

String
~str. owned , mut . Vec utf8 . &str as_slice().

String prelude std::string.

~ @
~ @ . ~T Box, std::owned, @T
Gc std::gc.

~expr
box expr , @expr box(GC) expr .

, . , Rc Arc.
DST Box<> Gc<> .

"std"
, "" . .
, :

libcore - Rust. ( ), libc. , , Rust . libcore , . liblibc - libc. liballoc - Rust. " ", , Rc, Arc Box. Rust . jemalloc. liblibc libcore.
libcollections - , vector, strings, maps, linked lists, . liballoc libcore.
librustrt - , I/O , , .
libsync - , .
librand - .


, . , :
std::collections std::sync std::comm std::rand std::rt

Box Box<[T]>, . String Vec .

Vec
Vec ~[T] LLVM.
~[T], Vec . &mut[T] &[T] .

String
~str. owned , mut . Vec utf8 . &str as_slice().

String prelude std::string.

~ @
~ @ . ~T Box, std::owned, @T
Gc std::gc.

~expr
box expr , @expr box(GC) expr .

, . , Rc Arc.
DST Box<> Gc<> .

"std"
, "" . .
, :

libcore - Rust. ( ), libc. , , Rust . libcore , . liblibc - libc. liballoc - Rust. " ", , Rc, Arc Box. Rust . jemalloc. liblibc libcore.
libcollections - , vector, strings, maps, linked lists, . liballoc libcore.
librustrt - , I/O , , .
libsync - , .
librand - .


, . , :
std::collections std::sync std::comm std::rand std::rt

Box Box<[T]>, . String Vec .

Vec
Vec ~[T] LLVM.
~[T], Vec . &mut[T] &[T]
.

String
~str. owned , mut . Vec utf8 . &str as_slice().

String prelude std::string.

~ @
~ @ . ~T Box, std::owned, @T
Gc std::gc.

~expr
box expr , @expr box(GC) expr .

, . , Rc Arc.
DST Box<> Gc<> .

"std"
, "" . .
, :

libcore - Rust. ( ), libc. , , Rust . libcore , . liblibc - libc. liballoc - Rust. " ", , Rc, Arc Box. Rust . jemalloc. liblibc libcore.
libcollections - , vector, strings, maps, linked lists, . liballoc libcore.
librustrt - , I/O , , .
libsync - , .
librand - .


, . , :
std::collections std::sync std::comm std::rand std::rt

Box Box<[T]>, . String Vec .

Vec
Vec ~[T] LLVM.
~[T], Vec . &mut[T] &[T]
.

String
~str. owned , mut . Vec utf8 . &str as_slice().

String prelude std::string.

~ @
~ @ . ~T Box, std::owned, @T
Gc std::gc.

~expr
box expr , @expr box(GC) expr .

, . , Rc Arc.
DST Box<> Gc<> .

"std"
, "" . .
, :

libcore - Rust. ( ), libc. , , Rust . libcore , . liblibc - libc. liballoc - Rust. " ", , Rc, Arc Box. Rust . jemalloc. liblibc libcore.
libcollections - , vector, strings, maps, linked lists, . liballoc libcore.
librustrt - , I/O , , .
libsync - , .
librand - .


, . , :
std::collections std::sync std::comm std::rand std::rt

Box Box<[T]>, . String Vec .

Vec
Vec ~[T] LLVM.
~[T], Vec . &mut[T] &[T]
.

String
~str. owned , mut . Vec utf8 . &str as_slice().

String prelude std::string.

~ @
~ @ . ~T Box, std::owned, @T
Gc std::gc.

~expr
box expr , @expr box(GC) expr .

, . , Rc Arc.
DST Box<> Gc<> .

"std"
, "" . .
, :

libcore - Rust. ( ), libc. , , Rust . libcore , . liblibc - libc. liballoc - Rust. " ", , Rc, Arc Box. Rust . jemalloc. liblibc libcore.
libcollections - , vector, strings, maps, linked lists, . liballoc libcore.
librustrt - , I/O , , .
libsync - , .
librand - .


, . , :
std::collections std::sync std::comm std::rand std::rt

Box Box<[T]>, . String Vec .

Vec
Vec ~[T] LLVM.
~[T], Vec . &mut[T] &[T]
.

String
~str. owned , mut . Vec utf8 . &str as_slice().

String prelude std::string.

~ @
~ @ . ~T Box, std::owned, @T Gc std::gc.

~expr
box expr , @expr box(GC) expr .

, . , Rc Arc.
DST Box<> Gc<> .

"std"
, "" . .
, :

libcore - Rust. ( ), libc. , , Rust . libcore , . liblibc - libc. liballoc - Rust. " ", , Rc, Arc Box. Rust . jemalloc. liblibc libcore.
libcollections - , vector, strings, maps, linked lists, . liballoc libcore.
librustrt - , I/O , , .
libsync - , .
librand - .


, . , :
std::collections std::sync std::comm std::rand std::rt

Box Box<[T]>, . String Vec .

Vec
Vec ~[T] LLVM.
~[T], Vec . &mut[T] &[T]
.

String
~str. owned , mut . Vec utf8 . &str as_slice().

String prelude std::string.

~ @
~ @ . ~T Box, std::owned, @T
Gc std::gc.

~expr
box expr , @expr box(GC) expr .

, . , Rc Arc.
DST Box<> Gc<> .

"std"
, "" . .
, :

libcore - Rust. ( ), libc. , , Rust . libcore , . liblibc - libc. liballoc - Rust. " ", , Rc, Arc Box. Rust . jemalloc. liblibc libcore.
libcollections - , vector, strings, maps, linked lists, . liballoc libcore.
librustrt - , I/O , , .
libsync - , .
librand - .


, . , :
std::collections std::sync std::comm std::rand std::rt

Box Box<[T]>, . String Vec .

Vec
Vec ~[T] LLVM.
~[T], Vec . &mut[T] &[T]
.

String
~str. owned , mut . Vec utf8 . &str as_slice().

String prelude std::string.

~ @
~ @ . ~T Box, std::owned, @T
Gc std::gc.

~expr
box expr , @expr box(GC) expr .

, . , Rc Arc.
DST Box<> Gc<> .

"std"
, "" . .
, :

libcore - Rust. ( ), libc. , , Rust . libcore , . liblibc - libc. liballoc - Rust. " ", , Rc, Arc Box. Rust . jemalloc. liblibc libcore.
libcollections - , vector, strings, maps, linked lists, . liballoc libcore.
librustrt - , I/O , , .
libsync - , .
librand - .


, . , :
std::collections std::sync std::comm std::rand std::rt

Box Box<[T]>, . String Vec .

Vec
Vec ~[T] LLVM.
~[T], Vec . &mut[T] &[T]
.

String
~str. owned , mut . Vec utf8 . &str as_slice().

String prelude std::string.

~ @
~ @ . ~T Box, std::owned, @T
Gc std::gc.

~expr
box expr , @expr box(GC) expr .

, . , Rc Arc.
DST Box<> Gc<> .

"std"
, "" . .
, :

libcore - Rust. ( ), libc. , , Rust . libcore , . liblibc - libc. liballoc - Rust. " ", , Rc, Arc Box. Rust . jemalloc. liblibc libcore.
libcollections - , vector, strings, maps, linked lists, . liballoc libcore.
librustrt - , I/O , , .
libsync - , .
librand - .


, . , :
std::collections std::sync std::comm std::rand std::rt

')

Source: https://habr.com/ru/post/228485/


All Articles