❌

Reading view

There are new articles available, click to refresh the page.

Linux's FineIBT Protections "Critically Flawed" Until Intel CPUs Appear With FRED

FineIBT is a Linux kernel initiative led by Intel engineers that aimed to combine the best of Intel Control-flow Enforcement Technology (CET) and Control Flow Integrity. FineIBT was merged in 2022 for the Linux 6.2 kernel as an alternative control flow integrity implementation. Some FineIBT weaknesses were previously addressed but now the implementation has been determined to be "critically flawed" at least until next-generation Intel processors appear with FRED...

This Week in Matrix 2025-02-21

By: Thib

πŸ”—Matrix Live

Today's Matrix Live: https://youtube.com/watch?v=wuQKtCg-doo

πŸ”—Dept of Status of Matrix 🌑️

Thib (m.org) reports

The Foundation is at a crossroads. We need to raise an additional $610K to break-even, and more immediately to raise $100K to keep our bridges running.

As a neutral custodian for the specification and much more, the Foundation is key to the success of Matrix. It is time to step up for it.

Read the full post on our blog

πŸ”—Dept of Governance βš–οΈ

Gwmngilfen reports

πŸ”—Announcing the Governing Board Working Groups process

The Governing Board has news! If you have been itching to know how to get involved, we are now ready to get you ... on-Board! πŸ₯ πŸ˜€

The Working Groups are the beating heart of the GB - they get the work done. So naturally people have been asking "how do we make one?" and "what is expected of a Working Group?"

πŸ”—Creating a Working Group

The process is fairly simple:

  • First, find some people who want to work on the problem - we would suggest at least 3, but the more you have the better, as it shows the level of interest in the issue.
  • Second, write down a charter for your Group - this doesn't need to be huge to start with, just a few sentences about what you want to be responsible for and the outcomes you want to achieve.
  • Finally, get a Board Member to sponsor you - this means finding a Board Member who agrees with the work you want to do, and will act as your link to the rest of the Board. The #governing-board-office:matrix.org is a great place to start conversations about WGs and look for sponsors. If in doubt, ping me there ( @gwmngilfen:matrix.org ) and I will help if I can.

Once you have that done, the Board Member will discuss it with the rest of the GB, we'll put it to a vote, and if it passes, you're in! (If it doesn't, we'll be sure to pass back what feedback we can about why not).

We would advise making noise about your proposals for Working Groups in the community to rally support and/or new members to get work done. TWIM is a good place for that πŸ˜›

πŸ”—Expectations of a Working Group

Working Groups are well named - they work. Some will provide advice & documents on a topic, others may produce code or similar outputs (think, a Docs WG?) but all have work to do. So, obviously you'll want to get on with that.

We also expect that:

  • Working Groups will have at least a Matrix room to discuss work in asynchronously

  • they will have regular meetings ("regular" is different for different groups, but we would expect not less than monthly). These could be video or chat meetings.

  • they take minutes of the meetings - the Board member can help here, but someone should take notes if they are not available.

    • These minutes get passed up to the rest of the Board so we can all be kept up to date at a high level

Clearly there are also some longer term things that we expect, like an expectation to work well with other Working Groups, to build consensus for decisions, etc. The GB can help if things need unblocking, of course.

πŸ”—Documentation

We do need a place to record the Working Groups, what exists already, what they do, how you get involved. This will be added to the Matrix.org website SOONℒ️

πŸ”—Initial Working Groups

All of this is theoretical until we start creating some groups, so .. let's hear your proposals (and I have a few to post in a moment)! Let's get some work done πŸ’ͺ

HarHarLinks announces

πŸ”—New GB Working Groups - call for members

Working Groups are the core of how the Governing Board orchestrates its work. We have some new ones for you to consider (for the first time πŸŽ‰)

πŸ”—Website WG (proposed)

The GB is considering a proposal for a Website WG! @HarHarLinks has written a charter regarding how to get work done for the main Matrix website, and has a good initial member list. While this is de-facto work already being done, we'd like to make it official - it's been proposed by @HarHarLinks so if this sounds like something you'd be interested in, register your interest with them!

πŸ”—Events WG (proposed)

The GB is considering a proposal for a Events WG! This would cover CfPs, staffing booths, merch, event tooling (Pretix box, etc) and so on. While this is de-facto work already being done, we'd like to make it official - its fairly detailed charter been proposed by @HarHarLinks so if this sounds like something you'd be interested in, register your interest with them!

Gwmngilfen reports

πŸ”—Ideas for New GB Working Groups

In addition to the in-flight proposals from HarHarLinks, I have a couple of ideas that need input to get started...

πŸ”—Documentation WG (idea)

I think we could benefit from a Documentation Working Group in Matrix. The Spec pages are excellent, but much of the rest of our docs falls to the general website team, and we see a lot of copies of things like https://doc.matrix.tu-dresden.de/en which suggest to me that people aren't finding our docs sufficient?

So, without wanting to downplay the awesome work that has gone before, I think a dedicated Docs group could try to help specialise the various people working on the website, as well as provide a clear place to report issues with our materials. I'm willing to propose this, if you'd like to discuss it (or think it's an awful idea), please reach out to me ( @gwmngilfen:matrix.org )! in #governing-board-office:matrix.org

πŸ”—New User Experience WG (idea)

Another group I'm thinking about is the New User WG - this would be focussed on how we get more people to Matrix, and improve those first few minutes/hours/days in our ecosystem - and how to gather their feedback effectively.

During the Matrix Unconference in Brussels, I hosted a session on this, and in just 45 mins we made 2 pages of ideas, so I think it's a rich area. Outputs would be advice/suggestions to other parts of the ecosystem for how we can make things better for our newer (and especially non-tech) users. I'm willing to propose this, if you'd like to discuss it (or think it's an awful idea), please reach out to me ( @gwmngilfen:matrix.org ) in #governing-board-office:matrix.org

Got ideas of other WGs? Talk to us in #governing-board-office:matrix.org! Onwards!

πŸ”—Dept of Trust & Safety πŸ€—

Jim announces

An update on changes to the Matrix.org room directory: https://matrix.org/blog/2025/02/curated-room-directories/

πŸ”—Dept of Clients πŸ“±

πŸ”—Element X iOS (website)

A total rewrite of Element-iOS using the Matrix Rust SDK underneath and targeting devices running iOS 16+.

Doug says

  • The next release of Element X iOS has an updated Rust SDK and as such, we will no longer support the Sliding Sync proxy - native Simplified Sliding Sync via your homeserver is the only sync option.
  • We made huge progress on embedding the Element Call web app into the Element X (rather than loading it from the web) - we are able to participate in calls, and are now just adapting the code to fully support localisation when embedded.
  • We have started implementing pills for rooms and events, just as in Element Web. The first step is to replace permalinks rendered in the timeline with these new pills.
  • We had a nice little external contribution that fixes @mention suggestions to work from anywhere in your message and not just at the end. Thanks Vickoo πŸ™Œ

πŸ”—Element X Android (website)

Android Matrix messenger application using the Matrix Rust SDK and Jetpack Compose.

Benoit reports

Working on several features currently:

  • swipe between media: improvement when coming from the pinned Events list. Now merged!
  • joining room by alias (can also be called address)
  • user interactive verification. It's currently possible to verify your own sessions, it will be possible to verify other users
  • fixing bugs! We have fixed a bunch of ANR issue, the first stats from the PlayStore are showing a drop in the ANR occurrences.
  • new translations into Norwegian and Turkish. Thanks for all the contributors! As a reminder, anyone can help translating the mobile applications from here: https://localazy.com/p/element/ . Translations are shared between the iOS and Android application.

πŸ”—Dept of SDKs and Frameworks 🧰

πŸ”—matrix-rust-sdk (website)

Next-gen crypto-included SDK for developing Clients, Bots and Appservices; written in Rust with bindings for Node, Swift and WASM

poljar reports

It's been a quieter week, but progress continues! The event cache is receiving its final polish, including performance improvements, as it nears prime time.

The authentication system is also seeing ongoing enhancements, thanks to KΓ©vin Commaille.

Additionally, work has begun on the successor to MSC3061, aiming to allow newly joined users to access the history of encrypted rooms.

πŸ”—Event Cache Updates

  • Simplified the flow when resolving a gap (#4691)
  • Streamlined back-pagination logic (#4689)
  • Implemented lazy-loading for EventCache (#4632)
  • Significantly improved reply replacement speed by introducing an index over replies (#4669)

πŸ”—Authentication Improvements

  • Removed support for deserializing the old UserSession format that contained the issuer_info field (#4679)
  • Adopted the new GET /auth_metadata Matrix API endpoint (#4673)
  • Removed the method for authorizing arbitrary scopes (#4664)

πŸ”—Other Notable Changes

  • Added a new constructor to InboundGroupSession for easier creation from an m.room_key event (#4688)
  • Renamed snapshot files to reduce filename length, allowing Windows users to work on the codebase again (#4625)
  • Enabled history visibility overrides when creating a room (#4682)
  • Ensured that paginations and syncs don’t add events to the pinned events timeline (#4645)

πŸ”—Dept of Ops πŸ› 

πŸ”—synadm (website)

Command line admin tool for Synapse (Matrix homeserver)

jacksonchen666 (they/it) announces

We have released synadm v0.47! This release packs a few features:

  • Connection errors to Synapse should be more reasonably small and easy to understand, thanks to #168.
  • synadm user redact is now added, which redacts a user's messages. Supports local and remote users, but intricate details are up to Synapse (see "Redact all events of a user").
  • You can filter for empty rooms on the server side in synadm room list with --empty or --not-empty. This is in addition to synadm room purge-empty
  • More options were added to synadm user list to match what Synapse supports
  • synadm media quarantine and unquarantine now have the -U/--mxc-uri argument to pass MXC URIs to

That's all in code. There are a few changes in documentation, including the theme, listed on the changelogs.

And of course, a changelog is also available on GitHub. Our room is at #synadm:peek-a-boo.at if you have any questions or other stuff.

πŸ”—matrix-docker-ansible-deploy (website)

Matrix server setup using Ansible and Docker

Slavi says

thanks to Aine of etke.cc, matrix-docker-ansible-deploy now supports FluffyChat Web as an additional Matrix client you can self-host.

To learn more, see our Setting up FluffyChat Web documentation page.

Slavi announces

Thanks to Zepmann, matrix-docker-ansible-deploy now supports bridging to Bluesky via mautrix-bluesky.

To learn more, see our Setting up mautrix-bluesky documentation page.

πŸ”—Dept of Interesting Projects πŸ›°οΈ

πŸ”—Matrixbird (website)

ahq announces

Matrixbird is an experimental "mail over matrix" idea I've been working on. It supports both traditional email and secure "matrix email" (local and federated) in a unified client.

πŸ”—Matrix Federation Stats

Aine [don't DM] reports

collected by MatrixRooms.info - an MRS instance by etke.cc

As of today, 10771 Matrix federateable servers have been discovered by matrixrooms.info, 3202 (29.7%) of them are publishing their rooms directory over federation. The published directories contain 21078 rooms.

Stats timeline is available on MatrixRooms.info/stats

How to add your server | How to remove your server

πŸ”—Dept of Ping

Here we reveal, rank, and applaud the homeservers with the lowest ping, as measured by pingbot, a maubot that you can host on your own server.

πŸ”—#ping:maunium.net

Join #ping:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.

RankHostnameMedian MS
1codestorm.net232.5
2bi-vibes.com296
3shork.ch338
4matrix.sp-codes.de483
5computerlie.be538.5
6mtest.eyer.life770.5
7mgamers.com815
8ncat.cafe821.5
9felixilef.de916.5
10craftingcomrades.net968

πŸ”—That's all I know

See you next week, and be sure to stop by #twim:matrix.org with your updates!

To learn more about how to prepare an entry for TWIM check out the TWIM guide.

(Updated) Spitz Plus GL-X2000 is an Upcoming Wi-Fi 6 and 4G LTE CAT 12 Router

The Spitz Plus GL-X2000 is a 4G LTE Wi-Fi 6 router designed to deliver reliable connectivity for remote work, travel, and rural internet access. It supports advanced network features like Multi-WAN, Failover, and Load Balancing, enhancing connection stability and ensuring dependable performance. The router is powered by a Qualcomm dual-core processor running at 1 GHz, […]

Benchmarks: Excellent Power Efficiency With 5th Gen AMD EPYC Using amd-pstate & Power Profiles

The AMD EPYC 9005 "Turin" processors that launched last year offer excellent performance and power efficiency out-of-the-box. For those wanting to pursue maximum power efficiency and running in the most optimal configuration for performance-per-Watt, AMD EPYC BIOS tunables as well as recent Linux kernel driver improvements can help in driving even greater efficiency. Today's article is a look at the impact of the AMD P-State driver usage and options with recent kernel versions as well as the Power Profile Selection BIOS option for the impact on 5th Gen EPYC performance and power efficiency.

Chromium Ozone Support For Wayland Continues Progressing In 2025

Google engineers themselves haven't been energetically pursuing Wayland support within the Ozone abstraction layer for the Chrome/Chromium web browser but thankfully the consulting firm Igalia continues pushing this native Wayland support along. Nick Yamane with Igalia has out a new blog post covering the remaining items being addressed...

Renesas RA4L1 ultra-low-power MCU family offers 168 Β΅A/MHz operation, dual-bank flash, capacitive touch

Renesas RA4L1 ultra low power MCU family

Renesas has recently introduced the RA4L1 ultra-low-power Arm Cortex-M33 MCU family along with two evaluation/development boards. This new lineup consists of 14 ultra-low-power devices based on an 80 MHz Arm Cortex-M33 processor with TrustZone support and designed for metering, IoT sensing, smart locks, digital cameras, and human-machine interface (HMI) applications. The RA4L1 MCU family offers high power efficiency at 168 Β΅A/MHz while active and a standby current of 1.70 Β΅A while retaining SRAM. Additionally, they support segment LCD, capacitive touch, USB-FS, CAN FD, low-power UART, multiple serial interfaces (SPI, QSPI, I2C, I3C, SSI), ADC, DAC, real-time clock, and security features like the RSIP security engine with TRNG, AES, ECC, and Hash. Renesas RA4L1 microcontroller Renesas RA4L1 specifications MCU core Arm Cortex-M33 core (Armv8-M) Up to 80 MHz operating frequency Arm Memory Protection Unit (MPU) 8 secure regions (MPU_S) 8 non-secure regions (MPU_NS) CoreSight ETM-M33 Dual SysTick timers (secure & non-secure) [...]

The post Renesas RA4L1 ultra-low-power MCU family offers 168 Β΅A/MHz operation, dual-bank flash, capacitive touch appeared first on CNX Software - Embedded Systems News.

Ubuntu 24.04.2 released with Linux 6.11 kernel and hardware enablement stack

Ubuntu 24.04.2

Ubuntu 24.04.2 has just been released with Linux 6.11 kernel and hardware enablement (HWE) stack. I would typically not care too much about a point release, but our reviews of mini PCs have shown Ubuntu 24.04 with Linux 6.8 was not always well supported with recent mini PC, mostly due to issues with WiFi or Bluetooth, but sometimes it’s even worse. The most common problem I encountered was that MediaTek MT7922-based WiFi 6 and Bluetooth 5.3 module would not support Bluetooth on Ubuntu 24.04 unless we updated the Linux kernel to version 6.10 or newer. Mini PCs with recent processors like the Khadas Mind 2 AI Maker Kit based on Intel Core Ultra 7 258V AI SoC required even more tweaks for HDMI audio, GPU, and WiFi + Bluetooth which is why I tested it with Ubuntu 24.10 instead. Ubuntu 24.04.2 should solve all of those issues. The announcement explains [...]

The post Ubuntu 24.04.2 released with Linux 6.11 kernel and hardware enablement stack appeared first on CNX Software - Embedded Systems News.

KiCad 9 released with support for embedded files, tables in schematics, custom ERC/DRC errors, mouse scroll wheel actions, and more

KiCad 9 release

KiCad 9 open-source EDA software has just been released with a range of new features such as support for embedded files (fonts, 3D files, PDF), tables in schematics, custom ERC/DRC errors, warnings, and exclusion comments, mouse scroll wheel actions, multiple track drag, and much more. The latest KiCad 9.0.0 release includes 4,870 unique commits from hundreds of developers and translators, and the KiCad library has further gained 1500 new symbols, 750 new footprints, and 132 new 3D models. There are way too many changes to list them all here, so I’ll mention some highlights here: Jobsets (predefined output jobs) – Feature that provides predefined sets of β€˜jobs’— plotting, exporting, and running DRCβ€”on schematics and PCBs. Independent jobset files are reusable as users may want to create output pipelines that they can apply across their projects for consistency. Jobsets can be run from the command line or the KiCad GUI. Embedded [...]

The post KiCad 9 released with support for embedded files, tables in schematics, custom ERC/DRC errors, mouse scroll wheel actions, and more appeared first on CNX Software - Embedded Systems News.

Linus Torvalds Clearly Lays Out Linux Maintainer Roles - Or Not - Around Rust Code

The Linux kernel mailing list drama around the Rust programming language use within the kernel continues... Linus Torvalds has largely refrained from the ongoing LKML discussions around a Rust policy for the Linux kernel and in-fighting between kernel developers and maintainers with differing views over Rust. This evening though Linus Torvalds did decide to chime in on the conversation...

Friday Five β€” February 21, 2025

SDxCentral - Red Hat tops T-Mobile’s common cloud, edge extensionT-Mobile has tapped Red Hat to power a common telecommunications cloud platform running across the carrier’s core and far edge operations in a move that provides some much-needed momentum toward propelling network virtualization opportunities. Learn more Virtualization in 2025 and beyondWhat's next for virtualization? Sachin Mullick looks at where the virtualization market is headed in 2025 and how organizations can protect their critical VM investments while having a path forward towards modernization when the time is righ

Mesa's Zink Driver Enables cl_khr_gl_sharing, Working On DaVinci Resolve Support

Mesa's generic Zink OpenGL-on-Vulkan driver has landed support for cl_khr_gl_sharing, the extension that allows using OpenGL buffer / texture / render-buffer objects as OpenCL memory objects for better interoperability between the OpenGL and OpenCL APIs. This is important as in turn it is needed for the Zink driver to be used with the popular DaVinci Resolve video editor application...

Femtofox Pro v1 LoRa and Meshtastic development board runs Linux-based Foxbuntu OS on Rockchip RV1103 SoC

Femtofox Pro v1 kit LoRa and Meshtastic development board

The Femtofox Pro v1 kit is a compact, low-power LoRa and Meshtastic development board running Linux specially designed for Meshtastic networks. Built around the Luckfox Pico Mini (Rockchip RV1103) SBC, this compact development platform supports USB host/device functionality, Ethernet, WiFi over USB, GPIO interfaces, I2C, UART, and a real-time clock (RTC). The most unique feature of this board is that it operates at very low power (0.27-0.4W), making it ideal for solar-powered applications. Additionally, Femtofox supports native Meshtastic client control, USB mass storage, and network reconfiguration via a USB flash drive. It also includes user-configurable buttons for WiFi toggling and system reboot, enhancing its usability. These features make Femtofox particularly useful for applications such as emergency response and off-grid messaging. Femtofox Pro v1 kit specifications Mainboard – Luckfox Pico Mini A SoCΒ  – Rockchip RV1103 SoC CPU – Arm Cortex-A7 processor @ 1.2GHz + RISC-V core Memory – 64MB DDR2 [...]

The post Femtofox Pro v1 LoRa and Meshtastic development board runs Linux-based Foxbuntu OS on Rockchip RV1103 SoC appeared first on CNX Software - Embedded Systems News.

Announcing Rust 1.85.0 and Rust 2024

The Rust team is happy to announce a new version of Rust, 1.85.0. This stabilizes the 2024 edition as well. Rust is a programming language empowering everyone to build reliable and efficient software.

If you have a previous version of Rust installed via rustup, you can get 1.85.0 with:

$ rustup update stable

If you don't have it already, you can get rustup from the appropriate page on our website, and check out the detailed release notes for 1.85.0.

If you'd like to help us out by testing future releases, you might consider updating locally to use the beta channel (rustup default beta) or the nightly channel (rustup default nightly). Please report any bugs you might come across!

What's in 1.85.0 stable

Rust 2024

We are excited to announce that the Rust 2024 Edition is now stable! Editions are a mechanism for opt-in changes that may otherwise pose a backwards compatibility risk. See the edition guide for details on how this is achieved, and detailed instructions on how to migrate.

This is the largest edition we have released. The edition guide contains detailed information about each change, but as a summary, here are all the changes:

Migrating to 2024

The guide includes migration instructions for all new features, and in general transitioning an existing project to a new edition. In many cases cargo fix can automate the necessary changes. You may even find that no changes in your code are needed at all for 2024!

Note that automatic fixes via cargo fix are very conservative to avoid ever changing the semantics of your code. In many cases you may wish to keep your code the same and use the new semantics of Rust 2024; for instance, continuing to use the expr macro matcher, and ignoring the conversions of conditionals because you want the new 2024 drop order semantics. The result of cargo fix should not be considered a recommendation, just a conservative conversion that preserves behavior.

Many people came together to create this edition. We'd like to thank them all for their hard work!

async closures

Rust now supports asynchronous closures like async || {} which return futures when called. This works like an async fn which can also capture values from the local environment, just like the difference between regular closures and functions. This also comes with 3 analogous traits in the standard library prelude: AsyncFn, AsyncFnMut, and AsyncFnOnce.

In some cases, you could already approximate this with a regular closure and an asynchronous block, like || async {}. However, the future returned by such an inner block is not able to borrow from the closure captures, but this does work with async closures:

let mut vec: Vec<String> = vec![];

let closure = async || {
    vec.push(ready(String::from("")).await);
};

It also has not been possible to properly express higher-ranked function signatures with the Fn traits returning a Future, but you can write this with the AsyncFn traits:

use core::future::Future;
async fn f<Fut>(_: impl for<'a> Fn(&'a u8) -> Fut)
where
    Fut: Future<Output = ()>,
{ todo!() }

async fn f2(_: impl for<'a> AsyncFn(&'a u8))
{ todo!() }

async fn main() {
    async fn g(_: &u8) { todo!() }
    f(g).await;
    //~^ ERROR mismatched types
    //~| ERROR one type is more general than the other

    f2(g).await; // ok!
}

So async closures provide first-class solutions to both of these problems! See RFC 3668 and the stabilization report for more details.

Hiding trait implementations from diagnostics

The new #[diagnostic::do_not_recommend] attribute is a hint to the compiler to not show the annotated trait implementation as part of a diagnostic message. For library authors, this is a way to keep the compiler from making suggestions that may be unhelpful or misleading. For example:

pub trait Foo {}
pub trait Bar {}

impl<T: Foo> Bar for T {}

struct MyType;

fn main() {
    let _object: &dyn Bar = &MyType;
}
error[E0277]: the trait bound `MyType: Bar` is not satisfied
 --> src/main.rs:9:29
  |
9 |     let _object: &dyn Bar = &MyType;
  |                             ^^^^ the trait `Foo` is not implemented for `MyType`
  |
note: required for `MyType` to implement `Bar`
 --> src/main.rs:4:14
  |
4 | impl<T: Foo> Bar for T {}
  |         ---  ^^^     ^
  |         |
  |         unsatisfied trait bound introduced here
  = note: required for the cast from `&MyType` to `&dyn Bar`

For some APIs, it might make good sense for you to implement Foo, and get Bar indirectly by that blanket implementation. For others, it might be expected that most users should implement Bar directly, so that Foo suggestion is a red herring. In that case, adding the diagnostic hint will change the error message like so:

#[diagnostic::do_not_recommend]
impl<T: Foo> Bar for T {}
error[E0277]: the trait bound `MyType: Bar` is not satisfied
  --> src/main.rs:10:29
   |
10 |     let _object: &dyn Bar = &MyType;
   |                             ^^^^ the trait `Bar` is not implemented for `MyType`
   |
   = note: required for the cast from `&MyType` to `&dyn Bar`

See RFC 2397 for the original motivation, and the current reference for more details.

FromIterator and Extend for tuples

Earlier versions of Rust implemented convenience traits for iterators of (T, U) tuple pairs to behave like Iterator::unzip, with Extend in 1.56 and FromIterator in 1.79. These have now been extended to more tuple lengths, from singleton (T,) through to 12 items long, (T1, T2, .., T11, T12). For example, you can now use collect() to fanout into multiple collections at once:

use std::collections::{LinkedList, VecDeque};
fn main() {
    let (squares, cubes, tesseracts): (Vec<_>, VecDeque<_>, LinkedList<_>) =
        (0i32..10).map(|i| (i * i, i.pow(3), i.pow(4))).collect();
    println!("{squares:?}");
    println!("{cubes:?}");
    println!("{tesseracts:?}");
}
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
[0, 1, 8, 27, 64, 125, 216, 343, 512, 729]
[0, 1, 16, 81, 256, 625, 1296, 2401, 4096, 6561]

Updates to std::env::home_dir()

std::env::home_dir() has been deprecated for years, because it can give surprising results in some Windows configurations if the HOME environment variable is set (which is not the normal configuration on Windows). We had previously avoided changing its behavior, out of concern for compatibility with code depending on this non-standard configuration. Given how long this function has been deprecated, we're now updating its behavior as a bug fix, and a subsequent release will remove the deprecation for this function.

Stabilized APIs

These APIs are now stable in const contexts

Other changes

Check out everything that changed in Rust, Cargo, and Clippy.

Contributors to 1.85.0

Many people came together to create Rust 1.85.0. We couldn't have done it without all of you. Thanks!

❌