Project update 38 of 38
The v.0.9.15 release is now available. Here’re the highlights:
Xous has been further integrated into upstream Rust with Rust 1.74. This means that Xous
is using mostly code shared with other Rust
std targets to implement its
previously, a number of implementation specific patches were employed. This means that
std will more seamlessly benefit from bug fixes and improvements in mainline Rust’s
@xobs made a huge push to improve and stabilize a number of key
std features as part of this, including:
rwlock with more robust error handling
Seek and PDDB
mpsc::channel that can lead to threads hanging under a race condition where
unpark() is called in the middle of a
u8 pointer having its length divided by the size of a
smoltcp has been upgraded to its latest release, v0.11.0. This fixes a number of
latent bugs in the network stack, such as #210 and #407. However, this required
a fairly major overhaul to the network stack. We now use an
to implement the wait/poll loop, which should make the network stack more efficient.
However, it also uncovered a number of subtle errors in our
mpsc and thread parking
We think most of these have been ironed out in this release, but please report network stack crashes, particularly ones where the network stack seems to go completely unresponsive (but otherwise the OS seems to be working fine).
mtxchat Project Kickoff
@nohj has kicked off an initiative to create a UI framework for chat clients on Precursor, which can eventually be used to wrap protocols such as Signal or Matrix. We’re looking for developers to help with refining the UI framework. See our project tracker for a detailed list of issues and discussions. Comments and pull requests welcome!
vault: refresh item cache after leaving host readout mode
sigchat skeleton added thanks to @nhoj
usbd-human-interface-device to xous-usb-hid in preparation for a fairly
tz_offset == 0 as valid, restoring time zone support for users in the UK.
net could block on a hung
We are no longer updating the SOC image on all
betrusted-soc commits. This
is because there have been no changes to the design recently.
Instead, all of the recent commits have been fixes for breaking changes related to CI tooling on gateware libraries that have no actual impact on the design itself. A typical example is a breaking change in Rust itself forcing us to update a Rust testbench. This kind of change has no impact on the actual logic in the SOC, but is necessary to keep our CI infrastructure operating.
Updating the SOC incurs a non-zero risk of data loss or other severe complications. Thus, as a matter of policy we are no longer forcing users to update their SOC designs for the sake of capturing a new git hash and version number.
Thus, after updating, running
ver soc will return a version of
This is deliberate, and it will stay at this version until a meaningful design change
has happened that is worth the risk of an update.