Spec-Zone.ru › Haskell 9

GHC.StaticPtr

Авторские права (C) 2014 I/O Tweag
Лицензия см. libraries/base/LICENSE
Сопровождающий ghc-devs@haskell.org
Стабильность внутренний
Переносимость непереносимый (расширения GHC)
Безопасный Haskell Нет
Язык Haskell2010

Описание

Символьные ссылки на значения.

Ссылки на значения обычно реализуются с помощью адресов памяти. Это удобно, когда значения передаются между разными частями одного процесса.

Однако при передаче значений между разными процессами, которые могут выполняться на разных машинах, адреса уже не подходят, поскольку каждый процесс может использовать разные адреса для хранения заданного значения.

Чтобы решить эту проблему, ссылки, предоставляемые этим модулем, содержат ключ, с помощью которого можно найти значения в каждом процессе. Каждый процесс поддерживает глобальную таблицу ссылок, в которой можно выполнить поиск по заданному ключу. Эта таблица называется таблицей статических указателей. Затем по ссылке можно получить значение.

Взаимодействующие процессы должны согласовать ключи, используемые для обращения к значениям в таблице статических указателей, иначе поиск завершится неудачей. Только процессы, запущенные из одного и того же исполняемого файла программы, гарантированно используют одинаковый набор ключей.

data StaticPtr a Исходный код

Ссылка на значение типа a.

Экземпляры
Сведения об экземплярах
IsStatic StaticPtr Исходный код

Начиная с: base-4.9.0.0

Сведения об экземпляре

Определено в GHC.Internal.StaticPtr

Методы

fromStaticPtr :: Typeable a => StaticPtr a -> StaticPtr a Исходный код

deRefStaticPtr :: StaticPtr a -> a Исходный код

Разыменовывает статический указатель.

type StaticKey = Fingerprint Исходный код

Ключ для StaticPtr, который можно сериализовать и использовать с unsafeLookupStaticPtr.

staticKey :: StaticPtr a -> StaticKey Исходный код

StaticKey, с помощью которого можно найти заданный StaticPtr.

unsafeLookupStaticPtr :: StaticKey -> IO (Maybe (StaticPtr a)) Исходный код

Ищет StaticPtr по его StaticKey.

Если StaticPtr не найден, возвращает Nothing.

Эта функция небезопасна, поскольку поведение программы не определено, если тип возвращённого StaticPtr не соответствует ожидаемому.

data StaticPtrInfo Исходный код

Различные сведения, доступные для отладки.

Конструкторы

StaticPtrInfo

Поля

  • spInfoUnitId :: String

    Ключ пакета, в котором определён статический указатель

  • spInfoModuleName :: String

    Имя модуля, в котором определён статический указатель

  • spInfoSrcLoc :: (Int, Int)

    Местоположение определения статического указателя в исходном коде в виде пары (Line, Column).

Экземпляры
Сведения об экземплярах
Show StaticPtrInfo Исходный код

Начиная с: base-4.8.0.0

Сведения об экземпляре

Определено в GHC.Internal.StaticPtr

Методы

showsPrec :: Int -> StaticPtrInfo -> ShowS Исходный код

show :: StaticPtrInfo -> String Исходный код

showList :: [StaticPtrInfo] -> ShowS Исходный код

staticPtrInfo :: StaticPtr a -> StaticPtrInfo Исходный код

StaticPtrInfo заданного StaticPtr.

staticPtrKeys :: IO [StaticKey] Исходный код

Список всех известных ключей.

class IsStatic (p :: Type -> Type) where Исходный код

Класс для объектов, создаваемых из статических указателей.

GHC оборачивает каждое использование ключевого слова static в fromStaticPtr. Поскольку ключевое слово static требует, чтобы его аргумент был экземпляром Typeable, fromStaticPtr также содержит ограничение Typeable.

Методы

fromStaticPtr :: Typeable a => StaticPtr a -> p a Исходный код

Экземпляры
Сведения об экземплярах
IsStatic StaticPtr Исходный код

Начиная с: base-4.9.0.0

Сведения об экземпляре

Определено в GHC.Internal.StaticPtr

Методы

fromStaticPtr :: Typeable a => StaticPtr a -> StaticPtr a Исходный код

© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/9.14.1/docs/libraries/base-4.22.0.0-66f8/GHC-StaticPtr.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API