Я заметил, что GHC (широко используемый компилятор Haskell) имеет набор тестов, написанный на Python, а не в Haskell (как я бы наивно ожидал). Какова история этого? Существуют ли особые преимущества для написания набора тестов на другом языке?
edit: По предложению в комментариях я спросил это в /r/haskell. Теперь он создал три ответа, которые я привел ниже:
tathougies сказал:
Драйвер тестового набора, похоже, написан на Python. Python - хороший высокоуровневый язык сценариев.
Ему нравится спрашивать: "Почему GHC использует Make вместо haskell"? Вероятно, потому что make лучше работает при запуске программ оболочки с внешним встроенным разрешением зависимостей.
Сами тесты, по-видимому, записываются в Haskell, проверяя определенные свойства компилятора и захватывая регрессии. Если они не работают, похоже, что драйвер python информирован, а затем сообщит об ошибке пользователю.
phadej добавлено:
Встроенная система FWIW GHC переписывается для использования встряхивания: библиотека Haskell.
eacameron сказал:
Я не знаю. Но у GHC нет роскоши использовать Haskell так же, как вы и я. Он должен загружаться, используя предыдущую версию, и хочет избежать зависимостей. Python - довольно легкое требование, поскольку большинство систем (кроме Windows) поставляются с ним.