GHC.IO.SubSystem
| Авторские права | (c) Университет Глазго 2017 |
|---|---|
| Лицензия | см. libraries/base/LICENSE |
| Поддержка | libraries@haskell.org |
| Стабильность | внутренняя |
| Переносимость | непереносимая |
| Безопасный Haskell | Безопасный |
| Язык | Haskell2010 |
Описание
Интерфейс управления IoSubSystem. Эти методы можно использовать для устранения неоднозначности между двумя операциями.
API этого модуля нестабилен и не предназначен для использования широкой публикой. Если вам абсолютно необходимо от него зависеть, убедитесь, что вы используете жёсткую верхнюю границу, например, base < 4.X вместо base < 5, поскольку интерфейс может быстро меняться без предварительного предупреждения.
withIoSubSystem :: (IoSubSystem -> IO a) -> IO a Источник
withIoSubSystem' :: (IoSubSystem -> a) -> a Источник
whenIoSubSystem :: IoSubSystem -> IO () -> IO () Источник
ioSubSystem :: IoSubSystem Источник
Используемый IoSubSystem.
Это необходимо для оптимизации поддержки различных менеджеров ввода-вывода в Windows. GHC поддерживает как новый менеджер WinIO, так и старый MIO (потоковый), а также устаревший win32-legacy (непотоковый). Менеджер WinIO использует собственные дескрипторы Win32 HANDLE, в то время как два других используют дескрипторы стиля POSIX FDs (через уровни трансляции).
Во многих местах в коде базовой библиотеки ввода-вывода для корректности или производительности в Windows нам необходимо использовать различные пути кода в зависимости от используемого стиля менеджера ввода-вывода. Менеджер ввода-вывода устанавливается при запуске RTS (и значение по умолчанию можно изменить с помощью флагов RTS). В Windows это значение получается путём чтения глобальной переменной, которая устанавливается менеджером ввода-вывода RTS при запуске.
В не-Windows системах это значение всегда IoPOSIX.
data IoSubSystem Источник
Система ввода-вывода, используемая в программе.
С момента: base-4.9.0.0
Примеры
| Перечисление IoSubSystem Исходный код | |
Определено в GHC.Internal.IO.SubSystem Методыsucc :: IoSubSystem -> IoSubSystem Исходный код pred :: IoSubSystem -> IoSubSystem Исходный код toEnum :: Int -> IoSubSystem Исходный код fromEnum :: IoSubSystem -> Int Исходный код enumFrom :: IoSubSystem -> [IoSubSystem] Исходный код enumFromThen :: IoSubSystem -> IoSubSystem -> [IoSubSystem] Исходный код enumFromTo :: IoSubSystem -> IoSubSystem -> [IoSubSystem] Исходный код enumFromThenTo :: IoSubSystem -> IoSubSystem -> IoSubSystem -> [IoSubSystem] Исходный код | |
| Вывод IoSubSystem Исходный код | |
Определено в GHC.Internal.IO.SubSystem МетодыshowsPrec :: Int -> IoSubSystem -> ShowS Исходный код show :: IoSubSystem -> Строка Исходный код showList :: [IoSubSystem] -> ShowS Исходный код | |
| Равенство IoSubSystem Исходный код | |
Определено в GHC.Internal.IO.SubSystem Методы(==) :: IoSubSystem -> IoSubSystem -> Булево Исходный код (/=) :: IoSubSystem -> IoSubSystem -> Булево Исходный код | |
conditional :: a -> a -> a Исходный код
Условно выполняет действие в зависимости от настроенной подсистемы ввода-вывода. В системах POSIX всегда выполняется первое действие. В Windows выполняется второе действие, если WINIO активен, в противном случае используется первое действие.
(<!>) :: a -> a -> a infixl 7 Исходный код
Инфиксная версия conditional. posix ! windows == conditional posix windows
© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/9.12.1/docs/libraries/base-4.21.0.0-8e62/GHC-IO-SubSystem.html