Rust
詳細情報
タイトル | Rust |
---|---|
URL | https://www.rust-lang.org/ |
バージョン | ver 1.86.0 |
更新日 | 2025/04/03 |
追加日 | 2016/01/29 |
種別 | フリーソフト |
説明 | Mozillaによって開発されているシステムプログラミング言語。 |
レビュー
Rustは効率性や安全性、生産性を重視して開発が進められているプログラミング言語。
パフォーマンスを維持しつつメモリ安全性を確保し、CやC++言語を置き換える事ができるシステムプログラミング言語を目指して開発が進められている。
2006年にMozillaの従業員であるGraydon Hoare氏の個人のプロジェクトとして開発が始まり、2009年以降はMozillaが支援する公式プロジェクトとなった。2015年に1.0がリリースされ基本的な仕様が固まっている。
スクリーンショット
スクリーンショットはありません。
更新グラフ
バージョン履歴
Rust 1.86.0
Language
- Stabilize upcasting trait objects to supertraits.
- Allow safe functions to be marked with the
#[target_feature]
attribute. - The
missing_abi
lint now warns-by-default. - Rust now lints about double negations, to catch cases that might have intended to be a prefix decrement operator (
--x
) as written in other languages. This was previously a clippy lint,clippy::double_neg
, and is now available directly in Rust asdouble_negations
. - More pointers are now detected as definitely not-null based on their alignment in const eval.
- Empty
repr()
attribute applied to invalid items are now correctly rejected. - Inner attrib
Rust 1.85.1
- Fix the doctest-merging feature of the 2024 Edition.
- Relax some
target_feature
checks when generating docs. - Fix errors in
std::fs::rename
on Windows 10, version 1607. - Downgrade bootstrap
cc
to fix custom targets. - Skip submodule updates when building Rust from a source tarball.
Rust 1.85.0
Language
- The 2024 Edition is now stable. See the edition guide for more details.
- Stabilize async closures See RFC 3668 for more details.
- Stabilize
#[diagnostic::do_not_recommend]
- Add
unpredictable_function_pointer_comparisons
lint to warn against function pointer comparisons - Lint on combining
#[no_mangle]
and#[export_name]
attributes.
Compiler
-
The unstable flag
-Zpolymorphize
has been removed, see rust-lang/compiler-team#810 for some background.
Platform Support
- Promote
powerpc64le-unknown-linu
Rust 1.84.1
- Fix ICE 132920 in duplicate-crate diagnostics.
- Fix errors for overlapping impls in incremental rebuilds.
- Fix slow compilation related to the next-generation trait solver.
- Fix debuginfo when LLVM's location discriminator value limit is exceeded.
- Fixes for building Rust from source:
- Only try to distribute
llvm-objcopy
if llvm tools are enabled. - Add Profile Override for Non-Git Sources.
- Resolve symlinks of LLVM tool binaries before copying them.
- Make it possible to use ci-rustc on tarball sources.
- Only try to distribute
Rust 1.84.0
Language
- Allow
#[deny]
inside#[forbid]
as a no-op - Show a warning when
-Ctarget-feature
is used to toggle features that can lead to unsoundness due to ABI mismatches - Use the next-generation trait solver in coherence
- Allow coercions to drop the principal of trait objects
- Support
/
as the path separator forinclude!()
in all cases on Windows - Taking a raw ref (
raw (const|mut)
) of a deref of a pointer (*ptr
) is now safe - Stabilize s390x inline assembly
- Stabilize Arm64EC inline assembly
- Lint against creating pointers to immediately dropped temporaries
Rust 1.83.0
Language
- Stabilize
&mut
,*mut
,&Cell
, and*const Cell
in const. - Allow creating references to statics in
const
initializers. - Implement raw lifetimes and labels (
'r#ident
). - Define behavior when atomic and non-atomic reads race.
- Non-exhaustive structs may now be empty.
- Disallow implicit coercions from places of type
!
const extern
functions can now be defined for other calling conventions.- Stabilize
expr_2021
macro fragment specifier in all editions. - The
non_local_definitions
lint now fires on less code and warns b
Rust 1.82.0
Language
- Don't make statement nonterminals match pattern nonterminals
- Patterns matching empty types can now be omitted in common cases
- Enforce supertrait outlives obligations when using trait impls
addr_of(_mut)!
macros and the newly stabilized&raw (const|mut)
are now safe to use with all static items- size_of_val_raw: for length 0 this is safe to call
- Reorder trait bound modifiers after
for<...>
binder in trait bounds - Stabilize opaque type precise capturing (RFC 3617)
- Stabilize
&raw const
and&raw mut
operators (RFC 2582) - Stabilize unsafe extern blocks (RF
Rust 1.81.0
Language
- Abort on uncaught panics in
extern "C"
functions. - Fix ambiguous cases of multiple
&
in elided self lifetimes. -
Stabilize
#[expect]
for lints (RFC 2383), like#[allow]
with a warning if the lint is not fulfilled. - Change method resolution to constrain hidden types instead of rejecting method candidates.
- Bump
elided_lifetimes_in_associated_constant
to deny. offset_from
: always allow pointers to point to the same address.- Allow constraining opaque types during subtyping in the trait system.
- Allow constraining opaque types during various unsizing casts.
Rust 1.80.1
- Fix miscompilation in the jump threading MIR optimization when comparing floats
- Revert changes to the
dead_code
lint from 1.80.0
Rust 1.80.0
Language
- Document maximum allocation size
- Allow zero-byte offsets and ZST read/writes on arbitrary pointers
- Support C23's variadics without a named parameter
- Stabilize
exclusive_range_pattern
feature - Guarantee layout and ABI of
Result
in some scenarios
Compiler
- Update cc crate to v1.0.97 allowing additional spectre mitigations on MSVC targets
- Allow field reordering on types marked
repr(packed(1))
- Add a lint against never type fallback affecting unsafe code
- Disallow cast with trailing braced macro in let-else
- Expand
for_loops_over_fallibles
Rust 1.79.0
Language
- Stabilize inline
const {}
expressions. - Prevent opaque types being instantiated twice with different regions within the same function.
- Stabilize WebAssembly target features that are in phase 4 and 5.
- Add the
redundant_lifetimes
lint to detect lifetimes which are semantically redundant. - Stabilize the
unnameable_types
lint for public types that can't be named. - Enable debuginfo in macros, and stabilize
-C collapse-macro-debuginfo
and#[collapse_debuginfo]
. - Propagate temporary lifetime extension into
if
andmatch
expressions. - Restrict promotion of
const fn
calls.