Rust

詳細情報

タイトル Rust
URL https://www.rust-lang.org/
バージョン ver 1.85.0
更新日 2025/02/21
追加日 2016/01/29
種別 フリーソフト
説明 Mozillaによって開発されているシステムプログラミング言語。

レビュー

Rustは効率性や安全性、生産性を重視して開発が進められているプログラミング言語。

パフォーマンスを維持しつつメモリ安全性を確保し、CやC++言語を置き換える事ができるシステムプログラミング言語を目指して開発が進められている。

2006年にMozillaの従業員であるGraydon Hoare氏の個人のプロジェクトとして開発が始まり、2009年以降はMozillaが支援する公式プロジェクトとなった。2015年に1.0がリリースされ基本的な仕様が固まっている。

スクリーンショット

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

更新グラフ

バージョン履歴

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.
(省略されました)
Rust 1.78.0

Language

  • Stabilize #[cfg(target_abi = ...)]
  • Stabilize the #[diagnostic] namespace and #[diagnostic::on_unimplemented] attribute
  • Make async-fn-in-trait implementable with concrete signatures
  • Make matching on NaN a hard error, and remove the rest of illegal_floating_point_literal_pattern
  • static mut: allow mutable reference to arbitrary types, not just slices and arrays
  • Extend invalid_reference_casting to include references casting to bigger memory layout
  • Add non_contiguous_range_endpoints lint for singleton gaps after exclusive ranges
  • Add wasm_c_abi lint for use of older wasm-bind
(省略されました)
Rust 1.77.2

  • CVE-2024-24576: fix escaping of Windows batch file arguments in std::process::Command