Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
int
Rust
提交
f57bb9df
R
Rust
项目概览
int
/
Rust
大约 1 年 前同步成功
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
Rust
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
f57bb9df
编写于
8月 19, 2015
作者:
B
Brian Anderson
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
1.3 release notes
上级
ec3ec107
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
207 addition
and
1 deletion
+207
-1
RELEASES.md
RELEASES.md
+207
-1
未找到文件。
RELEASES.md
浏览文件 @
f57bb9df
Version 1.3.0 (September 2015)
==============================
*
~900 changes, numerous bugfixes
Highlights
----------
*
The
[
new object lifetime defaults
][
nold
]
have been
[
turned
on
][
nold2
]
after a cycle of warnings about the change. Now types
like
`&'a Box<Trait>`
(or
`&'a Rc<Trait>`
, etc) will change from
being interpreted as
`&'a Box<Trait+'a>`
to
`&'a
Box<Trait+'static>`
.
*
[
The Rustonomicon
][
nom
]
is a new book in the official documentation
that dives into writing unsafe Rust.
*
The
[
`Duration`] API, [has been stabilized
][
ds
]
. This basic unit of
timekeeping is employed by other std APIs, as well as out-of-tree
time crates.
Breaking Changes
----------------
*
The
[
new object lifetime defaults
][
nold
]
have been
[
turned
on
][
nold2
]
after a cycle of warnings about the change.
*
There is a known
[
regression
][
lr
]
in how object lifetime elision is
interpreted, the proper solution for which is undetermined.
*
The
`#[prelude_import]`
attribute, an internal implementation
detail, was accidentally stabilized previously.
[
It has been put
behind the `prelude_import` feature gate
][
pi
]
. This change is
believed to break no existing code.
*
The behavior of
[
`size_of_val`
][
dst1
]
and
[
`align_of_val`
][
dst2
]
is
[
more sane for dynamically sized types
][
dst3
]
. Code that relied on
the previous behavior is thought to be broken.
*
The
`dropck`
rules, which checks that destructors can't access
destroyed values,
[
have been updated
][
dropck
]
to match the
[
RFC
][
dropckrfc
]
. This fixes some soundness holes, and as such will
cause some previously-compiling code to no longer build.
Language
--------
*
The
[
new object lifetime defaults
][
nold
]
have been
[
turned
on
][
nold2
]
after a cycle of warnings about the change.
*
Semicolons may
[
now follow types and paths in
macros
](
https://github.com/rust-lang/rust/pull/27000
)
.
*
The behavior of
[
`size_of_val`
][
dst1
]
and
[
`align_of_val`
][
dst2
]
is
[
more sane for dynamically sized types
][
dst3
]
. Code that relied on
the previous behavior is not known to exist, and suspected to be
broken.
*
`'static`
variables
[
may now be recursive
][
st
]
.
*
`ref`
bindings choose between [
`Deref`
] and [
`DerefMut`
]
implementations correctly.
*
The
`dropck`
rules, which checks that destructors can't access
destroyed values,
[
have been updated
][
dropck
]
to match the
[
RFC
][
dropckrfc
]
.
Libraries
---------
*
The
[
`Duration`] API, [has been stabilized
][
ds
]
, as well as the
`std::time`
module, which presently contains only
`Duration`
.
*
`Box<str>`
and
`Box<[T]>`
both implement
`Clone`
.
*
The owned C string, [
`CString`
], implements [
`Borrow`
] and the
borrowed C string, [
`CStr`
], implements [
`ToOwned`
]. The two of
these allow C strings to be borrowed and cloned in generic code.
*
[
`CStr`
] implements [
`Debug`
].
*
[
`AtomicPtr`
] implements [
`Debug`
].
*
[
`Error`] trait objects [can be downcast to their concrete types
][
e
]
in many common configurations, using the [
`is`
], [
`downcast`
],
[
`downcast_ref`
] and [
`downcast_mut`
] methods, similarly to the
[
`Any`
] trait.
*
Searching for substrings now
[
employs the two-way algorithm
][
search
]
instead of doing a naive search. This gives major speedups to a
number of methods, including
[
`contains`
][
sc
]
,
[
`find`
][
sf
]
,
[
`rfind`
][
srf
]
,
[
`split`
][
ss
]
.
[
`starts_with`
][
ssw
]
and
[
`ends_with`
][
sew
]
are also faster.
*
The performance of
`PartialEq`
for slices is
[
much faster
][
ps
]
.
*
The [
`Hash`
] trait offers the default method, [
`hash_slice`
], which
is overridden and optimized by the implementations for scalars.
*
The [
`Hasher`
] trait now has a number of specialized
`write_*`
methods for primitive types, for efficiency.
*
The I/O-specific error type,
[
`std::io::Error`
][
ie
]
, gained a set of
methods for accessing the 'inner error', if any:
[
`get_ref`
][
iegr
]
,
[
`get_mut`
][
iegm
]
,
[
`into_inner`
][
ieii
]
. As well, the implementation
of
[
`std::error::Error::cause`
][
iec
]
also delegates to the inner
error.
*
[
`process::Child`
][
pc
]
gained the [
`id`
] method, which returns a
`u32`
representing the platform-specific process identifier.
*
The [
`connect`
] method on slices is deprecated, replaced by the new
[
`join`
] method (note that both of these are on the
*unstable*
[
`SliceConcatExt`
] trait, but through the magic of the prelude are
available to stable code anyway).
*
The [
`Div`
] operator is implemented for [
`Wrapping`
] types.
*
[
`DerefMut` is implemented for `String`
][
dms
]
.
*
Performance of SipHash (the default hasher for
`HashMap`
) is
[
better for long data
][
sh
]
.
*
[
`AtomicPtr`
] implements [
`Send`
].
*
The [
`read_to_end`
] implementations for [
`Stdin`
] and [
`File`
]
are now
[
specialized to use uninitalized buffers for increased
performance
][
rte
]
.
*
Lifetime parameters of foreign functions
[
are now resolved
properly
][
f
]
.
Misc
----
*
Rust can now, with some coercion,
[
produce programs that run on
Windows XP
][
xp
]
, though XP is not considered a supported platform.
*
Porting Rust on Windows from the GNU toolchain to MSVC continues
(
[
1
][
win1
]
,
[
2
][
win2
]
,
[
3
][
win3
]
,
[
4
][
win4
]
). It is still not
recommended for use in 1.3, though should be fully-functional
in the
[
64-bit 1.4 beta
][
b14
]
.
*
On Fedora-based systems installation will
[
properly configure the
dynamic linker
][
fl
]
.
*
The compiler gained many new extended error descriptions, which can
be accessed with the
`--explain`
flag.
*
The
`dropck`
pass, which checks that destructors can't access
destroyed values,
[
has been rewritten
][
dropck
]
. This fixes some
soundness holes, and as such will cause some previously-compiling
code to no longer build.
*
`rustc`
now uses
[
LLVM to write archive files where possible
][
ar
]
.
Eventually this will eliminate the compiler's dependency on the ar
utility.
*
Rust has
[
preliminary support for i686 FreeBSD
][
fb
]
(it has long
supported FreeBSD on x86_64).
*
The
[
`unused_mut`
][
lum
]
,
[
`unconditional_recursion`
][
lur
]
,
[
`improper_ctypes`
][
lic
]
, and
[
`negate_unsigned`
][
lnu
]
lints are
more strict.
*
If landing pads are disabled (with
`-Z no-landing-pads`
),
[
`panic!`
will kill the process instead of leaking
][
nlp
]
.
[
`Any`
]:
http://doc.rust-lang.org/nightly/std/any/trait.Any.html
[
`AtomicPtr`
]:
http://doc.rust-lang.org/nightly/std/sync/atomic/struct.AtomicPtr.html
[
`Borrow`
]:
http://doc.rust-lang.org/nightly/std/borrow/trait.Borrow.html
[
`CStr`
]:
http://doc.rust-lang.org/nightly/std/ffi/struct.CStr.html
[
`CString`
]:
http://doc.rust-lang.org/nightly/std/ffi/struct.CString.html
[
`Debug`
]:
http://doc.rust-lang.org/nightly/std/fmt/trait.Debug.html
[
`DerefMut`
]:
http://doc.rust-lang.org/nightly/std/ops/trait.DerefMut.html
[
`Deref`
]:
http://doc.rust-lang.org/nightly/std/ops/trait.Deref.html
[
`Div`
]:
http://doc.rust-lang.org/nightly/std/ops/trait.Div.html
[
`Duration`
]:
http://doc.rust-lang.org/nightly/std/time/struct.Duration.html
[
`Error`
]:
http://doc.rust-lang.org/nightly/std/error/trait.Error.html
[
`File`
]:
http://doc.rust-lang.org/nightly/std/fs/struct.File.html
[
`Hash`
]:
http://doc.rust-lang.org/nightly/std/hash/trait.Hash.html
[
`Hasher`
]:
http://doc.rust-lang.org/nightly/std/hash/trait.Hash.html
[
`Send`
]:
http://doc.rust-lang.org/nightly/std/marker/trait.Send.html
[
`SliceConcatExt`
]:
http://doc.rust-lang.org/nightly/std/slice/trait.SliceConcatExt.html
[
`Stdin`
]:
http://doc.rust-lang.org/nightly/std/io/struct.Stdin.html
[
`ToOwned`
]:
http://doc.rust-lang.org/nightly/std/borrow/trait.ToOwned.html
[
`Wrapping`
]:
http://doc.rust-lang.org/nightly/std/num/struct.Wrapping.html
[
`connect`
]:
http://doc.rust-lang.org/nightly/std/slice/trait.SliceConcatExt.html#method.connect
[
`downcast_mut`
]:
http://doc.rust-lang.org/nightly/std/error/trait.Error.html#method.downcast_mut
[
`downcast_ref`
]:
http://doc.rust-lang.org/nightly/std/error/trait.Error.html#method.downcast_ref
[
`downcast`
]:
http://doc.rust-lang.org/nightly/std/error/trait.Error.html#method.downcast
[
`hash_slice`
]:
http://doc.rust-lang.org/nightly/std/hash/trait.Hash.html#method.hash_slice
[
`id`
]:
http://doc.rust-lang.org/nightly/std/process/struct.Child.html#method.id
[
`is`
]:
http://doc.rust-lang.org/nightly/std/error/trait.Error.html#method.is
[
`join`
]:
http://doc.rust-lang.org/nightly/std/slice/trait.SliceConcatExt.html#method.join
[
`read_to_end`
]:
http://doc.rust-lang.org/nightly/std/io/trait.Read.html#method.read_to_end
[
ar
]:
https://github.com/rust-lang/rust/pull/26926
[
b14
]:
https://static.rust-lang.org/dist/rust-beta-x86_64-pc-windows-msvc.msi
[
dms
]:
https://github.com/rust-lang/rust/pull/26241
[
dropck
]:
https://github.com/rust-lang/rust/pull/27261
[
dropckrfc
]:
https://github.com/rust-lang/rfcs/blob/master/text/0769-sound-generic-drop.md
[
ds
]:
https://github.com/rust-lang/rust/pull/26818
[
dst1
]:
http://doc.rust-lang.org/nightly/std/mem/fn.size_of_val.html
[
dst2
]:
http://doc.rust-lang.org/nightly/std/mem/fn.align_of_val.html
[
dst3
]:
https://github.com/rust-lang/rust/pull/27351
[
e
]:
https://github.com/rust-lang/rust/pull/24793
[
f
]:
https://github.com/rust-lang/rust/pull/26588
[
fb
]:
https://github.com/rust-lang/rust/pull/26959
[
fl
]:
https://github.com/rust-lang/rust-installer/pull/41
[
hs
]:
http://doc.rust-lang.org/nightly/std/hash/trait.Hash.html#method.hash_slice
[
ie
]:
http://doc.rust-lang.org/nightly/std/io/struct.Error.html
[
iec
]:
http://doc.rust-lang.org/nightly/std/io/struct.Error.html#method.cause
[
iegm
]:
http://doc.rust-lang.org/nightly/std/io/struct.Error.html#method.get_mut
[
iegr
]:
http://doc.rust-lang.org/nightly/std/io/struct.Error.html#method.get_ref
[
ieii
]:
http://doc.rust-lang.org/nightly/std/io/struct.Error.html#method.into_inner
[
lic
]:
https://github.com/rust-lang/rust/pull/26583
[
lnu
]:
https://github.com/rust-lang/rust/pull/27026
[
lr
]:
https://github.com/rust-lang/rust/issues/27248
[
lum
]:
https://github.com/rust-lang/rust/pull/26378
[
lur
]:
https://github.com/rust-lang/rust/pull/26783
[
nlp
]:
https://github.com/rust-lang/rust/pull/27176
[
nold2
]:
https://github.com/rust-lang/rust/pull/27045
[
nold
]:
https://github.com/rust-lang/rfcs/blob/master/text/1156-adjust-default-object-bounds.md
[
nom
]:
http://doc.rust-lang.org/nightly/nomicon/
[
pc
]:
http://doc.rust-lang.org/nightly/std/process/struct.Child.html
[
pi
]:
https://github.com/rust-lang/rust/pull/26699
[
ps
]:
https://github.com/rust-lang/rust/pull/26884
[
rte
]:
https://github.com/rust-lang/rust/pull/26950
[
sc
]:
http://doc.rust-lang.org/nightly/std/primitive.str.html#method.contains
[
search
]:
https://github.com/rust-lang/rust/pull/26327
[
sew
]:
http://doc.rust-lang.org/nightly/std/primitive.str.html#method.ends_with
[
sf
]:
http://doc.rust-lang.org/nightly/std/primitive.str.html#method.find
[
sh
]:
https://github.com/rust-lang/rust/pull/27280
[
srf
]:
http://doc.rust-lang.org/nightly/std/primitive.str.html#method.rfind
[
ss
]:
http://doc.rust-lang.org/nightly/std/primitive.str.html#method.split
[
ssw
]:
http://doc.rust-lang.org/nightly/std/primitive.str.html#method.starts_with
[
st
]:
https://github.com/rust-lang/rust/pull/26630
[
win1
]:
https://github.com/rust-lang/rust/pull/26569
[
win2
]:
https://github.com/rust-lang/rust/pull/26741
[
win3
]:
https://github.com/rust-lang/rust/pull/26741
[
win4
]:
https://github.com/rust-lang/rust/pull/27210
[
xp
]:
https://github.com/rust-lang/rust/pull/26569
Version 1.2.0 (2015-08-07)
Version 1.2.0 (2015-08-07)
==========================
=
==========================
*
~1200 changes, numerous bugfixes
*
~1200 changes, numerous bugfixes
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录