Moving the abstract filepath proposal forward

Julian Ospald hasufell at posteo.de
Mon Aug 16 18:57:33 UTC 2021


Hi,

as was discussed some time ago, I'd like to move the AFPP forward:
https://discourse.haskell.org/t/reviving-the-abstract-filepath-proposal-afpp-in-user-space/2344

If you need a refresher on the original proposal, have a look here:
https://gitlab.haskell.org/ghc/ghc/-/wikis/proposal/abstract-file-path

The idea was to implement it in user-space first. I think I have now
assembled a version that should withstand initial review:

* code: https://github.com/hasufell/abstract-filepath
* rendered docs: https://files.hasufell.de/jule/abstract-filepath/

What changed wrt the original proposal is this:

1. created a `OsString` newtype and `AbstractFilePath` is just a type
   synonym to it (this is somewhat similar to how rust does it...
   filepaths are not the only thing that syscalls expect in UTF16 on
   windows)
2. added `OsWord` as well

The types are all here:

* https://files.hasufell.de/jule/abstract-filepath/AFP-OsString-Internal-Types.html
* https://files.hasufell.de/jule/abstract-filepath/AFP-AbstractFilePath-Internal-Types.html

How to move forward?

1. get actual code reviews... rather on the issue tracker than here:
   https://github.com/hasufell/abstract-filepath/pull/4/files
2. discuss whether some of the ByteString stuff (we operate mostly on
   ShortByteString here and I added lots of new functions) should
   be fed back into the 'bytestring' package
3. discuss how to split the package (probably need one only for the
   types, so e.g. core libraries could have a light import)
4. start writing patches for unix and Win32

Please, help and comments appreciated. This can only be done as a
combined effort. The CLC, last time I asked, was behind this approach.

Cheers,
Julian


More information about the Libraries mailing list