Каковы возможные значения для функции System.Info "os" в Haskell? - PullRequest
10 голосов
/ 18 февраля 2012

Каковы возможные значения для функции "os" из пакета System.Info в стандартных библиотеках?

Также: надежны ли эти значения, переносимы ли они во многих компиляторах?Будет ли Hugs в Windows возвращать то же значение, что и GHC в Windows?

Существуют ли более эффективные способы прослушивания для операционной системы?

1 Ответ

6 голосов
/ 18 февраля 2012

Переменные для GHC взяты из набора инструментов "autotools", набора инструментов, который производит хорошо известные сценарии "настройки", которые почти всегда используются при компиляции чего-либо (./configure; make; make install). configure использует стандартную «строку идентификации компилятора», такую ​​как x86_64-unknown-linux-gnu для компиляторов C, и дополнительно вычисляет более подробный набор переменных, которые идентифицируют платформу хоста. Эти переменные используются в сгенерированном Makefile GHC, и этот файл дополнительно создает файл ghcplatform.h, который вы видите в файле Info.hs.

Почти та же самая процедура используется HUGS для получения переменных платформы, за исключением того, что заголовочный файл назван по-другому (как вы можете видеть в исходном коде, который вы связали).

Поскольку GHC и HUGS98 в Windows скомпилированы с MinGW и autotools, переменные согласованы на этой платформе.

...