[RFC] Modernizing and formalizing the File abstraction interface

Hi, sorry about the late response, some things got put on the back burner after Siva moved on.

Based on what’s been discussed I think the best design would probably be one where the use of function pointers is a compile time flag instead of runtime. It’s very unlikely that one platform will need to use both styles. The direct call design is attractive for GPUs, embedded devices, and other closed ecosystem projects, whereas the function pointer design is useful in more system-wide libc cases.

From here, my plan is to create a compile flag that will select which design to use, and use the config.json system to set its default states for our various targets. Does that work for you?