Rust

詳細情報

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

レビュー

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

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

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

スクリーンショット

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

更新グラフ

バージョン履歴

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
Rust 1.77.1

  • Revert stripping debuginfo by default for Windows This fixes a regression in 1.77 by reverting to the previous default. Platforms other than Windows are not affected.
  • Internal: Fix heading anchor rendering in doc pages
Rust 1.77.0

Language

  • Reveal opaque types within the defining body for exhaustiveness checking.
  • Stabilize C-string literals.
  • Stabilize THIR unsafeck.
  • Add lint static_mut_refs to warn on references to mutable statics.
  • Support async recursive calls (as long as they have indirection).
  • Undeprecate lint unstable_features and make use of it in the compiler.
  • Make inductive cycles in coherence ambiguous always.
  • Get rid of type-driven traversal in const-eval interning, only as a future compatiblity lint for now.
  • Deny braced macro invocations in let-else.

Compiler

  • In
(省略されました)
Rust 1.76.0

Language

  • Document Rust ABI compatibility between various types
  • Also: guarantee that char and u32 are ABI-compatible
  • Warn against ambiguous wide pointer comparisons

Compiler

  • Lint pinned #[must_use] pointers (in particular, Box<T> where T is #[must_use]) in unused_must_use.
  • Soundness fix: fix computing the offset of an unsized field in a packed struct
  • Soundness fix: fix dynamic size/align computation logic for packed types with dyn Trait tail
  • Add $message_type field to distinguish json diagnostic outputs
  • Enable Rust to use the EHCont security fea
(省略されました)