Summary

To create a project group with the purpose of designing

設計(する)
subsequent
その後の
RFCs to extend
拡張する
the language
言語
to support inline assembly in Rust code.

Motivation

In systems programming some tasks require dropping down to the assembly level. The primary

主要な、初等の、第一の
reasons are for performance, precise timing, and low level hardware access. Using inline assembly for this is sometimes convenient, and sometimes necessary to avoid
避ける、回避する
function call
呼び出し
overhead.

The inline assembler syntax

文法
currently available in nightly Rust is very ad-hoc. It provides
与える
a thin wrapper over the inline assembly syntax
文法
available in LLVM IR. For stabilization a more user-friendly syntax
文法
that lends itself to implementation
実装
across various
さまざまな
backends is preferable.

Project group details

Repository

Zulip stream

Initial

初期
shepherds:

Lang team liaisons:

Charter

The main goal of the asm project group is to design

設計(する)
and implement
実装する
an asm! macro using a syntax
文法
that we feel we can maintain, easily write, and stabilize.

The project group has the following additional

追加の
goals:

  • to provide a transition path for existing users of the unstable asm! macro.
  • to ensure
    保証する
    that the chosen asm! syntax
    文法
    is portable to different compiler backends such as LLVM, GCC, etc.
  • to provide a fallback implementation
    実装
    on compiler backends that do not support inline assembly natively (e.g. Cranelift).
  • to initially support most major architectures (x86, ARM, RISC-V) with the intention of extending
    拡張する
    to other architectures in the future.

With a lower

下方の、小文字の
priority, the project group also intends to tackle the following secondary, future goals:

  • support for module-level assembly (global_asm!).
  • support for naked functions (#[naked]).