Foreign.Marshal.Unsafe
| Авторские права | (c) Группа разработчиков FFI 2003 |
|---|---|
| Лицензия | BSD-стиль (см. файл libraries/base/LICENSE) |
| Поддержка | ffi@haskell.org |
| Стабильность | предварительная |
| Переносимость | переносимая |
| Безопасный Haskell | Небезопасный |
| Язык | Haskell2010 |
Содержание
Описание
Поддержка маппинга. Небезопасный API.
Небезопасные функции
unsafeLocalState :: IO a -> a Источник
Иногда внешнее сущность — это чистая функция, за исключением того, что она передает аргументы и/или результаты через указатели. Функция unsafeLocalState позволяет упаковать такие сущности как чистые функции.
Единственные операции IO, разрешенные в действии IO, переданном в unsafeLocalState, это (a) локальное выделение памяти (alloca, allocaBytes и производные операции, такие как withArray и withCString), и (b) операции с указателями (Foreign.Storable и Foreign.Ptr) на указатели локального хранилища, и (c) внешние функции, единственным наблюдаемым эффектом которых является чтение и/или запись локальной выделенной памяти. Передача операции IO, которая не подчиняется этим правилам, приводит к неопределенному поведению.
Ожидается, что эта операция будет заменена в будущей версии Haskell.
© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/7.10.3/docs/html/libraries/base-4.8.2.0/Foreign-Marshal-Unsafe.html