The main blocker is that the syscalls crate uses the asm!() macro for running raw syscalls and asm!() requires the nightly asm feature. The embedded working group has an effort to stabilize this (https://github.com/rust-embedded/wg/issues/63). It could be a long time before this happens, so I wouldn't hold my breath. A potential workaround for this is to write the assembly in a separate file and compile it in build.rs.
[x] #![feature(format_args_nl)]
This is used in reverie-helper/src/logger.rs. It's a fairly easy fix to remove the requirement on this (format_args_nl!($($args)*) can be changed to format_args!("{}\n", format_args!($($args)*)).)
[x] #![feature(slice_internals)]
This is also required in reverie-helper/src/logger.rs for the use of core::slice::memchr::memrchr, which is an optimized way of searching backwards through a byte slice for a particular byte. This is fairly easy to fix by copy-pasting the memrchr implementation.
This would allow using Reverie with stable Rust.
[x]
#![feature(asm)]
The main blocker is that the
syscalls
crate uses theasm!()
macro for running raw syscalls andasm!()
requires the nightlyasm
feature. The embedded working group has an effort to stabilize this (https://github.com/rust-embedded/wg/issues/63). It could be a long time before this happens, so I wouldn't hold my breath. A potential workaround for this is to write the assembly in a separate file and compile it inbuild.rs
.[x]
#![feature(format_args_nl)]
This is used in
reverie-helper/src/logger.rs
. It's a fairly easy fix to remove the requirement on this (format_args_nl!($($args)*)
can be changed toformat_args!("{}\n", format_args!($($args)*))
.)[x]
#![feature(slice_internals)]
This is also required in
reverie-helper/src/logger.rs
for the use ofcore::slice::memchr::memrchr
, which is an optimized way of searching backwards through a byte slice for a particular byte. This is fairly easy to fix by copy-pasting thememrchr
implementation.