Подтвердить что ты не робот

Hackage.haskell.org значение условного обозначения документации

В настоящее время я читаю http://hackage.haskell.org/packages/archive/containers/latest/doc/html/Data-Set.html#t:Set

Что делает следующий подробный перевод (для абсолютного начинающего хакелла)?

Переносимость: переносная (какая другая ценность портативности?)
Стабильность: предварительная (какая другая ценность стабильности?)
Сопровождающий: [email protected]
Безопасный Haskell: безопасный (есть ли что-то небезопасное?)

4b9b3361

Ответ 1

Поля поступают из файла пакета .cabal, в котором перечислены некоторые метаданные для пакета. Многие поля могут иметь значения свободной формы, так что разработчик сам решает, что писать в этом поле, и нет никаких фиксированных "правил" для того, что не должно содержать каждое поле.

Переносимость: Описывает, насколько переносимым является пакет между компиляторами Haskell, а иногда и между операционными системами. Единственные значения, которые я видел, являются "переносимыми" и "неспортивными". Непортативный пакет - это пакет, который, возможно, зависит от расширения языка Haskell, которое существует только в компиляторе GHC и не работает ни на одном другой компилятор Haskell, например UHC, или, возможно, это зависит от некоторой системной библиотеки, которая существует только в UNIX и не работает в Windows.

Стабильность: Указывает, насколько стабильна библиотека, включая ее надежность (например, как часто она падает), но самое главное, как часто изменяется его API. Я видел значения "экспериментальные", "предварительные" и "стабильные", но может быть список с более чем где-либо (в документации Cabal иногда невозможно найти). Когда пакет является экспериментальным, это означает, что его интерфейс, вероятно, изменяется между каждой версией, потому что разработчик не определился с тем, как он должен быть реализован, или потому, что разработчик только что реализовал некоторые теоретические функции из бумаги где-то и не намерены поддерживать пакет; Он просто хотел реализовать функциональность, чтобы убедиться, что это возможно, и публикует пакет в качестве демонстрации. Когда пакет является предварительным, это означает, что общий API является стабильным, так что могут быть обновления пакета, которые исправляют только внутренние ошибки и не добавляют или не удаляют какие-либо функции. Однако, поскольку это предварительный вариант, он может измениться в будущем, когда разработчики примут решение о добавлении новых функций или реструктуризации библиотеки. В стабильной библиотеке этого никогда не бывает; API, вероятно, никогда не изменится, а реализация будет "прочной" или ссылочной реализацией API или чего-то еще.

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

В поле Безопасный Haskell "указано расширение GHC, которое вы можете прочитать здесь здесь. Модуль, который небезопасен, использует такие функции, как unsafePerformIO, который разбивает некоторые из основных "правил" Haskell как ссылочную прозрачность. Небезопасный модуль может также использовать небезопасные языковые расширения. Безопасный модуль - это модуль, который не использует никаких небезопасных функций и т.д., А также не импортирует какие-либо другие небезопасные модули. В доверенном модуле используются небезопасные функции (прямое доверие, косвенное доверие), но автор убедился, что публичный API модуля скрывает этот факт безопасно, так что со стороны кажется, что модуль безопасен для всех целей и задач. Это опции для поля "Безопасный Haskell".