Clinton Mead <clintonm...@gmail.com> writes: > Thanks all for your replies. Just going through what Ben has said step by > step: > > My sense is that if you don't need the threaded runtime system it would >> probably be easiest to just try to make a modern GHC run on Windows XP. >> > > Happy to run non-threaded runtime. A good chunk of these machines will be > single or dual core anyway. > That indeed somewhat simplifies things.
>> As Tamar suggested, it likely not easy, but also not impossible. WinIO >> is indeed problematic, but thankfully the old MIO IO manager is still >> around (and will be in 9.2). >> > > "Is still around"? As in it's in the code base and just dead code, or can I > trigger GHC to use the old IO manager with a GHC option? > > The possible reasons for Windows XP incompatibility that I can think of >> off the top of my head are: >> >> * Timers (we now use QueryPerformanceCounter) >> > > This page suggests that QueryPerformanceCounter > <https://docs.microsoft.com/en-us/windows/win32/api/profileapi/nf-profileapi-queryperformancecounter> > should > run on XP. Is this incorrect? > It's supported, but there are caveats [1] that make it unreliable as a timesource. [1] https://docs.microsoft.com/en-us/windows/win32/sysinfo/acquiring-high-resolution-time-stamps#windowsxp-and-windows2000 > >> * Big-PE support, which is very much necessary for profiled builds >> > > I don't really need profiled builds > Alright, then you *probably* won't be affected by PE's symbol limit. >> * Long file path support (mostly a build-time consideration as Haskell >> build systems tend to produce very long paths) >> >> > I don't need to build on Windows XP either. I just need to run on Windows > XP so hopefully this won't be an issue. Although if GHC was modified for > long file path support so it could build itself with long file path support > presumably it will affect everything else it builds also. > If you don't need to build on XP then I suspect this won't affect you. > >> There may be others, but I would start looking there. I am happy to >> answer any questions that might arise. >> > I'm guessing the way forward here might be a patch with two options: > > 1. -no-long-path-support/-long-path-support (default -long-path-support) > 2. -winxp > > The winxp option shall: > > - Require -no-long-path-support > - Conflicts with -threaded > - Conflicts with profiled builds > - Uses the old IO manager (I'm not sure if this is an option or how this is > done). > The old IO manager is still the default, although this will likely change in 9.2. > What do you think (roughly speaking)? Yes, that is essentially correct. I would probably start by trying to run a 32-bit GHC build on Windows XP under gdb and see where things fall over. Cheers, - Ben
signature.asc
Description: PGP signature
_______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs