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がリリースされ基本的な仕様が固まっている。

スクリーンショット

スクリーンショットはありません。

更新グラフ

Created with Highcharts 5.0.2Total更新回数24/0524/0624/0724/0824/0924/1024/1124/1225/0125/0225/0325/0400.511.522.5

バージョン履歴

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 as double_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.
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 for include!() 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 and match expressions.
  • Restrict promotion of const fn calls.
(省略されました)