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

Существует ли общее соглашение об именах пакетов lisp?

Я создал некоторые из моих собственных пакетов пользователей и столкнулся с конфликтом имени.

В Java соглашение об именах заключается в использовании вашего имени домена в имени пакета: например import com.example.somepackage;.

Существуют ли широко используемые соглашения об именах пакетов для общих пакетов lisp?

Привет,

Рассел

4b9b3361

Ответ 1

Соглашение, которое я использую, заключается в использовании уникального слова: salza, skippy, zs3 и т.д. Я действительно не пытаюсь иметь прямое отношение к библиотечным функциям. Я стараюсь избегать общих слов, которые другие могут использовать как "zlib" или "zip" или "png".

Эди Вейц использует слова Фрэнка Заппы, чтобы назвать многие из его пакетов: Hunchentoot, Drakma и т.д.

Некоторые люди используют именованное имя домена org.foo.bar в стиле Java.

Итак, прямой ответ - нет, нет общего, согласованного соглашения, которое все используют.

Ответ 2

Одним из решений, которые вы видите, иногда являются пакеты, которые предоставляют тонкую оболочку совместимости по сравнению с обычной реализацией, но нестандартная функциональность часто называют TRIVIAL-SOMETHING.

Это приводит к некоторым действительно замечательным именам: библиотека для работы с *FEATURES* независимым от реализации способом называется TRIVIAL-FEATURES; еще лучше, библиотека для взаимодействия с сборщиком мусора стандартным образом называется TRIVIAL-GARBAGE.

Ответ 3

Нет общего соглашения, но есть несколько шаблонов:

  • Когда библиотека представляет собой порт с другого языка, оболочку или библиотеку интерфейса, она часто имеет префикс cl-, например cl-gtk2 или cl-ppcre. Хотя было время, когда этот префикс подвергся злоупотреблениям, и существует множество пакетов (например, cl-who), которые реализуют уникальную функциональность, но все еще используют ее.
  • Если пакет специфичен для реализации, он имеет префикс сокращения (в частности: sb-), например sb-queue или lw-compat.
  • Если пакет является уровнем совместимости между реализациями, он часто префикс с trivial-, например trivial-backtrace или trivial-garbage
  • Также существует префикс s-, который может означать "символический", например s-xml, но он редко используется.

Эти префиксы помогают сделать имя пакета уникальным и, таким образом, упростить поиск информации об этом в Интернете.

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

Если пакет имеет длинное имя, он удобен для предоставления более короткого псевдонима, потому что чаще, чем люди, будут использовать условные обозначения пакетов, соответствующие их именам. Например, в моем коде я добавляю псевдоним re в cl-ppcre, и он делает код клиента более понятным и понятным. Хотя следует соблюдать осторожность, чтобы псевдонимы не вызывали конфликтов имен.