[GHC] #15363: Do some cleaning up of the testsuite driver
GHC
ghc-devs at haskell.org
Wed Aug 29 09:05:23 UTC 2018
#15363: Do some cleaning up of the testsuite driver
-------------------------------------+-------------------------------------
Reporter: lantti | Owner: lantti
Type: task | Status: patch
Priority: low | Milestone: 8.8.1
Component: Test Suite | Version: 8.4.3
Resolution: | Keywords:
Operating System: Unknown/Multiple | Architecture:
| Unknown/Multiple
Type of failure: None/Unknown | Test Case:
Blocked By: | Blocking:
Related Tickets: | Differential Rev(s): Phab:D5107
Wiki Page: |
-------------------------------------+-------------------------------------
Comment (by tdammers):
First of all, thanks a lot for the effort, it is very much appreciated.
Then, to summarize (correct me if I'm wrong):
- The original problem to be solved here is that the testsuite driver
(written in Python) shells out to a custom timeout program
({{{timeout.hs}}}); so the idea was to rewrite the whole timeout
functionality in Python
- Vanilla Python and its libraries (particularly {{{subprocess}}}) are
inadequate on Windows, because the process model is different, which makes
certain things that we rely on nontrivial (specifically, reliably killing
entire process trees). This is why {{{timeout.hs}}} exists in the first
place, and why the proposed patch introduces {{{winbindings.py}}}.
- The patch does not improve testsuite performance; the goal is to improve
maintainability.
This raises to the following issues:
1. Between {{{winbindings.py}}} and {{{timeout.hs}}}, I don't see a
significant reduction in overall complexity. We remove Windows-specific
Haskell code, and replace it with Windows-specific Python code; both are a
maintenance liability.
2. {{{timeout.hs}}} works; {{{winbindings.py}}} and the rewritten test
driver parts are mostly untested as of yet. There is a nonzero change of
this patch introducing new, possibly subtle, bugs.
3. GHC developers are more likely to want to work on complicated Haskell
code than complicated Python code, and be competent at it. So Python code
in this context has a higher barrier to participation, and a smaller
contributor pool to draw from.
4. Managing Python versions, especially on Windows, is a nontrivial
effort. The less we rely on it, the better.
5. Given 3. and 4., and also for other reasons, we would prefer moving
(parts of) the test driver from Python to Haskell, not the other way
around. Ideally, we would want to see the test driver rewritten in Haskell
entirely.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/15363#comment:16>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list