Open hasufell opened 1 year ago
Switching pathSeparator would of course be a major backwards-incompatibility, so there should be maybe a major-major
/
is for compatibility. I'm not sure it's a good idea to make it the default. The potential breakage is almost impossible to foresee. Yes, the syscalls accept both variants, but user code may rely on the current behavior when dealing with internally constructed filepaths.
If you have golden tests, you can create different golden files per platform, e.g.: https://github.com/haskell/ghcup-hs/blob/823458910b41cf79739257dbc3d08084400bb594/test/GHCup/Types/JSONSpec.hs#L15-L21
@andreasabel
In GitLab by @andreasabel on Dec 8, 2022, 17:06
Windows supports
/
as path separator. (Apparently, since forever, which I didn't know, but this discussion even says DOS already accepted it: https://bytes.com/topic/python/answers/23123-when-did-windows-start-accepting-forward-slash-path-separator.)Making
pathSeparator
uniformly'/'
would increase the portability of Haskell CLI programs to Windows.I think differentiating needlessly between OSs here is a hindrance to portability rather than an enabler of portability.
Here are examples where e.g. golden value testsuites break on Windows because of that non-uniformity of path separators:
Switching
pathSeparator
would of course be a major backwards-incompatibility, so there should be maybe a major-major version bump to2.x
. (If this issue is accepted, one could think about migration routes.)