In stock
View Purchasing OptionsThe 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 std
library; previously, a number of implementation specific patches were employed. This means that Xous’ std
will more seamlessly benefit from bug fixes and improvements in mainline Rust’s std
library.
@xobs made a huge push to improve and stabilize a number of key std
features as part of this, including:
condvar
rwlock
with more robust error handlingonce
thread-safethread_local_key
, thread_parking
, senres
, lend_impl
, Seek
and PDDB WriteKeyStd
mpsc::channel
that can lead to threads hanging under a race condition where unpark()
is called in the middle of a park_timeout()
callu8
pointer having its length divided by the size of a usize
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 mpsc::channel
primitive 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 implementation.
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 modevault
sigchat
skeleton added thanks to @nhojusbd-human-interface-device
to xous-usb-hid in preparation for a fairlytz_offset
== 0 as valid, restoring time zone support for users in the UK.net
could block on a hung connection_manager
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 v0.9.14
. 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.
Happy hacking!