or
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up
Syntax | Example | Reference | |
---|---|---|---|
# Header | Header | 基本排版 | |
- Unordered List |
|
||
1. Ordered List |
|
||
- [ ] Todo List |
|
||
> Blockquote | Blockquote |
||
**Bold font** | Bold font | ||
*Italics font* | Italics font | ||
~~Strikethrough~~ | |||
19^th^ | 19th | ||
H~2~O | H2O | ||
++Inserted text++ | Inserted text | ||
==Marked text== | Marked text | ||
[link text](https:// "title") | Link | ||
 | Image | ||
`Code` | Code |
在筆記中貼入程式碼 | |
```javascript var i = 0; ``` |
|
||
:smile: | ![]() |
Emoji list | |
{%youtube youtube_id %} | Externals | ||
$L^aT_eX$ | LaTeX | ||
:::info This is a alert area. ::: |
This is a alert area. |
On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?
Please give us some advice and help us improve HackMD.
Do you want to remove this version name and description?
Syncing
xxxxxxxxxx
Rust Project Goals 2024H2 December Update
Over the last six months, the Rust project has been working towards a slate of 26 project
goals, with 3 of them designated as Flagship Goals. This post provides a final update on our progress towards these goals (or, in some cases, lack thereof). We are currently finalizing plans for the next round of project goals, which will cover 2025H1. The full details for any particular goal are available in its associated tracking issue on the rust-project-goals
repository.
Flagship goals
Our big goal for this period was async closures, and we are excited to announce that work there is done! Stable support for async closures landed on nightly on Dec 12 and it will be included in Rust 1.85, which ships on Feb 20. Big kudos to [compiler-errors] for driving that.
For our other goals, we made progress, but there remains work to be done:
dyn
compatible. We would eventually like to have first-classdyn
support, but as an intermediate step we created a procedural macro cratedynosaur
[1] that can create wrappers that enable dynamic dispatch. We are planning a comprehensive blog post in 2025H1 that shows how to use this crate and lays out the overall plan for async functions in traits.We largely completed our goal to stabilize the language features used by the Rust for Linux project. In some cases a small amount of work remains. Over the last six months, we…
offset_of!
macro to get the offset of fields;CoercePointee
trait – but discovered that the current implementaton was revealing unstable details, which is currently being resolved;asm_goto
stabilization PR and reference updates are up, excluding the "output" feature.We also began work on compiler flag stabilization with RFC 3716, which outlines a scheme for stabilizing flags that modify the target ABI.
Big shout-outs to Ding Xiang Fei, Alice Ryhl, Adrian Taylor, and Gary Guo for doing the lion's share of the work here.
The final release of Rust 2024 is confirmed for February 20, 2025 as part of Rust 1.85. Rust 1.85 is currently in beta. Feedback from the nightly beta and crater runs has been actively addressed, with adjustments to migrations and documentation to enhance user experience.
Big shout-outs to TC and Eric Huss for their hard work driving this program forward.
Final goal updates
Over the last six months a number of internal refactorings have taken place that are necessary to support a
min_generic_const_args
prototype.One refactoring is that we have changed how we represent const arguments in the compiler to allow for adding a separate representation for the kinds of const arguments that
min_generic_const_args
will add.Another big refactoring is that we have changed the API surface for our representation of const arguments in the type system layer, there is no longer a way to evaluate a const argument without going through our general purpose type system logic. This was necessary to ensure that we correctly handle equality of the kinds of const arguments that
min_generic_const_args
will support.With all of these pre-requisite refactorings completed, a feature gate has been added to the compiler (
feature(min_generic_const_args)
) that uses the new internal representation of const arguments. We are now beginning to implement the actual language changes under this feature gate.Shout-out to [camelid], [boxy] and [compiler-errors].
Over the course of the last six months…
feature_missing
lint was added, which identifies breakage caused by the removal of a package feature.In addition, we fleshed out a design sketch for the changes in rustdoc's JSON support that are needed to support cross-crate item linting. This in turn requires compiler extensions to supply that information to rustdoc.
Add
was constified in https://github.com/rust-lang/rust/pull/133237 andDeref
/DerefMut
in https://github.com/rust-lang/rust/pull/133260.system-deps
, using an approach similar to code-checker Cackle and its sandbox environment Bubblewrap, or fully-sandboxed build environments like Docker or Nix.-Znext-solver=coherence
stabilization encountered no issues and is now on beta, with a new update blogpost published.-Znext-solver=globally
, including finishing the core of the "typing mode" refactor and unblocking bootstrap.#[clippy::msrv]
lint is open, benchmarked, and currently under review.performance-project
, especially on issue #13714.annotate-snippets
continued despite a busy schedule, with a focus on improving suggestions and addressing architectural challenges.annotate-snippets
more closely withrustc
for easier contribution and integration.batching
feature of LLVM/Enzyme which allows Array of Struct and Struct of Array vectorisation.- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →Goals without updates
The following goals have not received updates in the last month:
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →As everyone knows, the hardest part of computer-science is naming. I think we rocked this one. ↩︎