Rust 1.73.0: Everything Revealed in 16 Minutes

Ғылым және технология

Rust 1.73.0 has been released! Want to get started with Rust? Take my crash course: agileperception.com/ultimate_...
Links:
- Rust 1.73.0 Blog Post - blog.rust-lang.org/2023/10/05...
- RFC 3184 - github.com/rust-lang/rfcs/blo...
- RFC 1210 - github.com/rust-lang/rfcs/blo...
- v0 Symbol Format - doc.rust-lang.org/beta/rustc/...
- Online Rust Courses: agileperception.com
- Ultimate Rust Crash Course: agileperception.com/ultimate_...
0:00 Intro
0:12 1. Cleaner panic messages
1:22 2. Better thread-local API
2:49 3. clippy::fn_null_check lint uplifted
3:11 4. noop_method_call now warns
3:29 5. async block macro support
3:53 6. unconditional_recursion lint detects recursive drops
4:18 7. New lint: coinductive_overlap_in_coherence
5:19 8. invalid_reference_casting lint now denies by default
5:50 9. Version info written to .comment section of executable
6:05 10. Official documentation of the v0 symbol mangling format
6:30 11. thiscall and thiscall-unwind FFI ABIs stabilized
6:52 12. Seven new platform targets
8:43 13. Arc wrapping File implements the Read, Write, and Seek traits
8:54 14. std::io::Empty now implements the write trait
9:07 15. std::process::ExitStatus now implements the Default trait
9:20 16. Stabilized APIs
10:21 17. Const Stabilized APIs
10:41 18. Print env vars in extra verbose mode
10:52 19. Crate versions on timing graph
11:15 20. New, colorful cargo help output
11:36 21. Twenty new clippy lints
11:44 Lint 1: impossible_comparisons
12:00 Lint 2: redundant comparisons
12:17 Lint 3: ignored_unit_patterns
12:30 Lint 4: readonly_write_lock
12:42 Lint 5: filter_map_bool_then
12:54 Lint 6: needless_return_with_question_mark
13:15 Lint 7: redundant_guards
13:28 Lint 8: redundant_locals
13:41 Lint 9: absolute_paths
13:51 Lint 10: error_impl_error
14:04 Lint 11: iter_skip_zero
14:15 Lint 12: string_lit_chars_any
14:28 Lint 13: four_forward_slashes
14:38 Lint 14: format_collect
14:56 Lint 15: needless_pass_by_ref_mut
15:11 Lint 16: manual_is_infinite
15:23 Lint 17: manual_is_finite
15:30 Lint 18: manual_partial_ord_and_ord_impl
15:42 Lint 19: read_line_without_trim
16:01 Lint 20: type_id_on_box
16:20 Outro
Want to learn Rust? agileperception.com/ultimate_...

Пікірлер: 36

  • @pwnwriter
    @pwnwriter8 ай бұрын

    Great video Nathan as always. Keep up 😃👍

  • @NathanStocks

    @NathanStocks

    8 ай бұрын

    Thanks!

  • @5aturnine
    @5aturnine8 ай бұрын

    Why does the colored output for cargo mentioned at 11:15 not work for me both in Linux Ubuntu and Windows terminals (for which I also enabled colored output in said terminals)? Am I missing something? running cargo with '--color always' also doesn't do anything for me

  • @NazarMalyy

    @NazarMalyy

    8 ай бұрын

    I've tried on MacOS Sonoma (iTerm2, Terminal, and Alacrity) - the same 💩. Not work for me either.

  • @NathanStocks

    @NathanStocks

    8 ай бұрын

    Well, I guess that's on me. I think I got the color portion of the reporting wrong. The PR for the big help output overhaul was listed in the 1.73, and neither the release notes for 1.73 or 1.74 explicitly mentioned color. I put this all together before 1.73 was released, so I was using the Beta version of Rust, which I thought would become 1.73. Apparently, at the time I was using the beta, it was what was going to become 1.74. So between my testing of a version of cargo too far ahead and the release notes not explicitly saying when the color portion was introduced, I messed up. Sorry about that, folks! If you want to check it out right now, you can do: rustup install beta cargo +beta help cargo +beta run --help

  • @TheInspctrcat
    @TheInspctrcat8 ай бұрын

    Best detailed review!

  • @NathanStocks

    @NathanStocks

    8 ай бұрын

    Thank you so much! You might be inspiring me to do a review montage in the next video!🙀😆

  • @meka4996
    @meka49968 ай бұрын

    Thanks!

  • @NathanStocks

    @NathanStocks

    8 ай бұрын

    No problem!

  • @dopeboy8164
    @dopeboy81648 ай бұрын

    async in traits when ;_;

  • @NathanStocks

    @NathanStocks

    8 ай бұрын

    That's a great question. If I come across a definitive answer, I'll post a reply here. Or maybe someone else will beat me to it! 😄

  • @logannielsen847

    @logannielsen847

    8 ай бұрын

    Rust blog from May says 1.74

  • @cysia3683

    @cysia3683

    8 ай бұрын

    As I understand it if everything goes well it should land in Rust 1.75 (along with impl-trait-in-traits syntax) - this version comes out on 2023-12-28. Note that it will have some limitations for the time being, but it is good enough for people working in embedded environments or using tokio in executor-per-thread configuration which is not a default. People working with generic code (libraries) that should support both Send and non-Send features will hit this limitation more often. See more on the stabilization PR #115822

  • @yx4292

    @yx4292

    8 ай бұрын

    @@logannielsen847 not happening, the stabilization PR is still not merged and nightly is already at 1.75

  • @logannielsen847

    @logannielsen847

    8 ай бұрын

    @@yx4292 ah good to know thank you

  • @JohnPywtorak
    @JohnPywtorak7 ай бұрын

    fwiw there is no color output for cargo help, does not work, yet. I think it is comming

  • @NathanStocks

    @NathanStocks

    7 ай бұрын

    Yep, I got mixed up on that one. See my reply to @5aturnine for more details.

  • @CyborusYT
    @CyborusYT8 ай бұрын

    this update had my 2-year-old pr in it!

  • @NathanStocks

    @NathanStocks

    8 ай бұрын

    Nice! Which one?

  • @CyborusYT

    @CyborusYT

    8 ай бұрын

    @@NathanStocks Adding support for allocators in Rc and Arc

  • @dakunskye
    @dakunskye8 ай бұрын

    I don't feel that we needed to spend time building warnings for `////`...

  • @mikkelens

    @mikkelens

    8 ай бұрын

    why not? if it helps make code better, is opt-in, and is something that someone wanted to build…

  • @NathanStocks

    @NathanStocks

    8 ай бұрын

    I think it’s actually kind of cool that someone cared enough to contribute that. When so much of a project is driven by volunteer contributions, you get all sorts of cool stuff. Remember that the alternative in projects without full-time paid employees behind it is typically just *less* contributions, not different contributions. It would be cool if I could indicate on the videos which features were pure open source vs paid for but free choice vs paid for and wanted by a company. I’ll keep my eyes open for a way to do that, but so far my understanding is that the vast majority of contributions are due to someone simply volunteering to work on something they were interested in, even when a company happens to be paying them for their time.

  • @appelnonsurtaxe

    @appelnonsurtaxe

    8 ай бұрын

    It's a nice feature to have. It improves code quality. The person who contributed it might not have the required skills to work on the compiler at all, it's not like time is being "wasted".

  • @mks-h

    @mks-h

    8 ай бұрын

    We? I don't remember neither you nor myself spending any time on it.

  • @dakunskye

    @dakunskye

    8 ай бұрын

    I figured the time would have been better spent fixing things like iter vs into_iter vs iter_mut(or that any of these are needed). Or that we have a borrow checker and type inferencing, but we choose not to have inferences typed parameters, return types or mut/ref variables. At what point did the language stop doing extra things for us? It makes it difficult to see a clear intent for the languages future...

  • @aftalavera
    @aftalavera8 ай бұрын

    Who needs Rust?

  • @pwnwriter

    @pwnwriter

    8 ай бұрын

    Who doesn't?

  • @NathanStocks

    @NathanStocks

    8 ай бұрын

    @@pwnwriter Nice answer! 😆

  • @NathanStocks

    @NathanStocks

    8 ай бұрын

    This is actually an honest question I get from a lot of people new to Rust. I answer it _extensively_ in my Ultimate Rust Crash Course: agileperception.com/ultimate_rust_crash_course The short answer is: Anyone who needs high performance, high efficiency (think low battery usage in mobile or embedded), high safety (think space shuttle), a good experience interoperating with C, a good experience collaborating with others on a large codebase, or a high quality of life while coding.

  • @bitflogger
    @bitflogger8 ай бұрын

    Sorry, accidentally hit the dislike button.

  • @NathanStocks

    @NathanStocks

    8 ай бұрын

    Good for you for owning up to your own actions. 😆 Stick around and like and subscribe, okay? 😄

Келесі