xous-core
xous-core copied to clipboard
Clean up filesystem support for upstreaming
With the recent merge of networking support, the only major component that is outstanding is filesystem support. While there is existing filesystem support in our local fork, it is not ideal, and it would be nice to clean it up.
I propose the following changes in order to get things upstreamed:
- [ ] Change path separators — Initially we chose
:
which has some interesting historical properties, but the world seems to have largely settled on/
. We should update all path handling code to work with this, with the caveat that bases can be prefixed to a string with:BaseName:
- [ ] Special cases — There are many special cases such as
::
and:BaseName
andBaseName:
that will have to be handled.
- [ ] Special cases — There are many special cases such as
- [ ] Remove senres — Senres was an attempt at essentially reinventing
rkyv
. There was an idea to use it everywhere, however it adds a lot of code and is not a good candidate for upstreaming. It's also only used in filesystem code, so it should be removed. - [ ] Better testing — Filesystem code is largely untested. Unfortunately it won't get tested until more people use it, but when they use it they run the risk of running into bugs. It's hard to quantify this bullet point.
Once this is settled we can create a libstd
patch to add filesystem support.