xous-core icon indicating copy to clipboard operation
xous-core copied to clipboard

Clean up filesystem support for upstreaming

Open xobs opened this issue 1 year ago • 0 comments

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 and BaseName: that will have to be handled.
  • [ ] 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.

xobs avatar Jan 25 '24 17:01 xobs