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 Source

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

Примеры
Подробности примеров
IsStatic StaticPtr Source

С момента: base-4.9.0.0

Подробности примера

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

Методы

fromStaticPtr :: Typeable a => StaticPtr a -> StaticPtr a Source

deRefStaticPtr :: StaticPtr a -> a Source

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

type StaticKey = Fingerprint Source

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

staticKey :: StaticPtr a -> StaticKey Source

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

unsafeLookupStaticPtr :: StaticKey -> IO (Может (StaticPtr a)) Source

Поиск StaticPtr по его StaticKey.

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

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

data StaticPtrInfo Source

Разное информация, доступная для отладки.

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

StaticPtrInfo

Поля

  • spInfoUnitId :: Строка

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

  • spInfoModuleName :: Строка

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

  • spInfoSrcLoc :: (Целое, Целое)

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

Примеры
Подробности примеров
Show StaticPtrInfo Source

С момента: base-4.8.0.0

Подробности примера

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

Методы

showsPrec :: Целое -> StaticPtrInfo -> ShowS Source

show :: StaticPtrInfo -> Строка Source

showList :: [StaticPtrInfo] -> ShowS Source

staticPtrInfo :: StaticPtr a -> StaticPtrInfo Source

Информация о заданном StaticPtr.

staticPtrKeys :: IO [StaticKey] Source

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

class IsStatic (p :: Тип -> Тип) where Source

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

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

Методы

fromStaticPtr :: Typeable a => StaticPtr a -> p a Source

Примеры
Подробности примеров
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.12.1/docs/libraries/base-4.21.0.0-8e62/GHC-StaticPtr.html

Spec-Zone.ru

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