stringtranslate.com

XEmacs

XEmacs — это графический и консольный текстовый редактор , работающий практически на любой Unix-подобной операционной системе , а также на Microsoft Windows . XEmacs — это ответвление , основанное на версии GNU Emacs конца 1980-х годов. Любой пользователь может загрузить, использовать и модифицировать XEmacs как свободное программное обеспечение , доступное по лицензии GNU General Public License версии 2 или любой более поздней версии.

История

Между 1987 и 1993 годами произошли значительные задержки в выпуске новой версии GNU Emacs (предположительно версии 19). [4] В конце 1980-х годов компания Lucid Inc. Ричарда П. Габриэля столкнулась с необходимостью поставки Emacs для поддержки среды разработки Energize C++ . Поэтому Lucid набрала команду для улучшения и расширения кода, [5] с намерением, что их новая версия, выпущенная в 1991 году, станет основой GNU Emacs версии 19. Однако у них не было времени ждать, пока их изменения будут приняты Free Software Foundation (FSF). [6] Lucid продолжила разработку и поддержку своей версии Emacs, в то время как FSF выпустила версию 19 GNU Emacs годом позже, объединив часть кода и адаптировав некоторые другие части. [7]

Когда Lucid прекратил свое существование в 1994 году, другие разработчики подхватили код. [8] Такие компании, как Sun Microsystems, хотели продолжить поставку Lucid Emacs, но использование торговой марки стало юридически неоднозначным, поскольку никто не знал, кто в конечном итоге будет контролировать торговую марку «Lucid». Соответственно, «X» в XEmacs представляет собой компромисс между сторонами, участвующими в разработке XEmacs. [9]

Таким образом, «X» в XEmacs не имеет отношения к X Window System . После первоначальной поддержки только X11, [10] XEmacs поддерживал текстовые терминалы и оконные системы, отличные от X11. Установщики могут компилировать как XEmacs, так и GNU Emacs с поддержкой X и без нее. В течение некоторого времени XEmacs даже имел некоторые специфичные для терминала функции, такие как раскрашивание , которых не хватало GNU Emacs.

Сообщество разработчиков программного обеспечения обычно называет GNU Emacs, XEmacs (и ряд других подобных редакторов) вместе или по отдельности emacsen (по аналогии с oxen) или emacs , поскольку оба они черпают вдохновение в оригинальном TECO Emacs.

Функции

В XEmacs имеются команды для управления словами и абзацами (удаления, перемещения, перемещения по ним и т. д.), подсветка синтаксиса для облегчения чтения исходного кода и «клавиатурные макросы» для выполнения произвольных пакетов команд редактирования, определенных пользователем.

XEmacs имеет исчерпывающую онлайн-справку, а также пять руководств, доступных на веб-сайте XEmacs. XEmacs поддерживает множество человеческих языков , а также режимы редактирования для многих языков программирования и разметки. XEmacs работает на многих операционных системах, включая Unix / Linux , BSD и Mac OS X. Для работы на Mac OS требуется X11 ; в то время как разработка началась на нативной версии Carbon . Существуют две версии XEmacs для среды Microsoft Windows: нативный установщик и пакет Cygwin .

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

Существует множество пакетов для расширения и дополнения возможностей XEmacs. Пользователи могут либо загружать их по частям через менеджер пакетов XEmacs , либо применять их оптом с помощью пакета xemacs-sumo или « tarballs sumo ». [11] Менеджер пакетов в XEmacs предшествует системе пакетов ELPA, используемой GNU Emacs, почти на десятилетие и несовместим с ней. Начиная с XEmacs 21.1 функциональность была вынесена из ядра XEmacs и доступна отдельно в виде пакетов. Это позволяет пользователям исключать пакеты, которые им не нужны. XEmacs имел менеджер пакетов более десяти лет, прежде чем GNU Emacs разработал его, но XEmacs необходимо перезапустить перед загрузкой новых пакетов.

Разработка

С самого начала проекта разработчики XEmacs стремились к частому циклу релизов. [12] Они также стремились к большей открытости для экспериментов, и XEmacs часто предлагает новые функции раньше других emacsen — например, новаторские встроенные изображения, переменные шрифты и раскраска терминала. За эти годы разработчики значительно переписали код, чтобы улучшить согласованность и следовать современным соглашениям программирования, подчеркивающим абстракцию данных. XEmacs имеет систему пакетов для независимо поддерживаемых пакетов Lisp. Последняя версия имеет поддержку GTK+ [13] и собственный порт Carbon для Mac OS X. [14]

XEmacs всегда имел очень открытую среду разработки, включая анонимный CVS , позже доступ к Mercurial и общедоступные списки рассылки для разработчиков . XEmacs поставляется с руководством по внутренним компонентам объемом более 500 страниц (Wing и др., 2004). [15]

Поддержка Unicode стала проблемой для XEmacs. По состоянию на 2005 год, выпущенная версия зависит от неподдерживаемого пакета Mule -UCS для поддержки Unicode, в то время как ветка разработки XEmacs имела надежную встроенную поддержку внешних кодировок Unicode с мая 2002 года, но внутренние наборы символов Mule неполны, и разработка, похоже, застопорилась по состоянию на сентябрь 2005 года. [16]

Разработка XEmacs ведется в трех ветвях: стабильной, гамма- и бета-версии, [12] причем бета-версия получает новые функции первой, но потенциально имеет меньше тестирования, стабильности и безопасности. Разработчики выпустили версию 20.0 9 февраля 1997 года, а версию 21.0 — 12 июля 1998 года. По состоянию на январь 2009 года стабильная ветвь достигла версии 21.4.22, а бета-ветвь — версии 21.5.28. По состоянию на 2007 год выпусков гамма-версии не существует . С выпуском XEmacs 21.4.0 номера версий следуют схеме, в которой нечетное второе число обозначает версию для разработки, а четное второе число обозначает стабильную версию.

XEmacs и GNU Emacs

Несколько основных разработчиков XEmacs опубликовали отчеты о расколе между XEmacs и GNU Emacs, например, резюме Стивена Тернбулла [17] аргументов обеих сторон. Одно из главных разногласий касается различных взглядов на передачу авторских прав. FSF считает передачу авторских прав FSF необходимой для защиты кода от нарушений GPL, [18] в то время как разработчики XEmacs утверждают, что отсутствие передачи авторских прав позволило крупным компаниям вмешаться, поскольку иногда компании могут лицензировать свой код, но из-за осторожного отношения к фидуциарным обязанностям перед акционерами у компаний могут возникнуть проблемы с получением разрешения на полную передачу кода. [ необходима цитата ]

Free Software Foundation владеет авторскими правами на большую часть кода XEmacs из-за предшествующей передачи авторских прав во время попыток слияния и кросс-разработки. [19] Попадет ли новый код XEmacs в GNU Emacs, часто зависит от готовности этого отдельного участника передать код в FSF. Новые функции в одном редакторе обычно рано или поздно появляются в другом. Более того, многие разработчики вносят вклад в оба проекта.

Проект XEmacs имеет политику поддержания совместимости с GNU Emacs API . Например, он предоставляет уровень совместимости, реализующий наложения через собственную функциональность Extent. «Разработчики XEmacs стремятся поддерживать свой код совместимым с GNU Emacs, особенно на уровне Lisp». [20]

Поскольку разработка XEmacs замедлилась, XEmacs включил в себя много кода из GNU Emacs, [21] в то время как GNU Emacs реализовал множество функций, которые раньше были только в XEmacs. Это привело к тому, что некоторые пользователи объявили о смерти XEmacs, призывая разработчиков вместо этого внести свой вклад в GNU Emacs. [22]

Многие основные пакеты, такие как Gnus и Dired , ранее разрабатывались для работы с обоими, [23] хотя главный разработчик Gnus объявил о своем намерении переместить дерево Gnus в основную структуру Emacs и удалить код совместимости с XEmacs, сославшись на другие пакеты, также отказавшиеся от поддержки XEmacs. [24] [25]

В декабре 2015 года разработчик проекта Стивен Дж. Тернбулл опубликовал сообщение в списке разработчиков XEmacs, в котором говорилось, что проект находится «на перепутье» с точки зрения будущей совместимости с GNU Emacs из-за оттока разработчиков и прогресса GNU Emacs. Было предложено несколько вариантов дальнейших действий, включая полное прекращение разработки, создание нового ответвления от текущей версии GNU Emacs или перевод проекта в режим обслуживания на случай, если кто-то захочет возобновить разработку в будущем. [26] Этот последний вариант был выбран в качестве направления, с обязательствами отдельных участников оказывать минимальную поддержку веб-сайту и ресурсам разработки.

В 2020 году проект XEmacs переместил свой исходный репозиторий Mercurial в Heptapod после того, как их бывший хост Bitbucket прекратил поддержку Mercurial. В мае 2023 года проект выпустил первую новую бета-версию XEmacs за почти десятилетие с бета-версией 21.5.35 "kohlrabi". [27]

SXEmacs

Скриншот SXEmacs 22.1.10

Проект SXEmacs ответвился от XEmacs 21.4 и продолжал разработку более десяти лет, выпустив новые релизы вплоть до 2020 года.

Смотрите также

Ссылки

  1. ^ "XEmacs: XEmacs 21.4.22 "Instant Classic" выпущен". 30 января 2009 г. Получено 19 июля 2023 г.
  2. ^ "XEmacs: XEmacs 21.5.35 "kohlrabi" выпущен". 13 мая 2023 г. Получено 19 июля 2023 г.
  3. ^ «XEmacs для Darwin / MacOS X».
  4. ^ "Emacs Timeline". Jwz.org . Получено 1 декабря 2014 г. .
  5. ^ "Воины командной строки - История Emacs и XEmacs". commandline.org.uk . Архивировано из оригинала 22 ноября 2010 г.
  6. ^ "Xemacs from FOLDOC". Foldoc.org . Получено 1 декабря 2014 г. .
  7. ^ Ричард Столлман. «Происхождение XEmacs». Stallman.org . Получено 1 декабря 2014 г.
  8. ^ john s jacobs anderson, кража контента FAQ. "XEmacs: History of XEmacs". Xemacs.org . Архивировано из оригинала 18 декабря 2014 г. . Получено 1 декабря 2014 г. .
  9. ^ "Руководство по внутреннему устройству XEmacs: История Emacs". Xemacs.org . Получено 1 декабря 2014 г.
  10. ^ "Lucid Emacs был выпущен 30 лет назад". www.jwz.org . 2022-08-20 . Получено 25-08-2022 .
  11. ^ john s jacobs anderson использует старый контент без указания автора. "XEmacs: Quickstart Package Guide". Xemacs.org . Получено 1 декабря 2014 г. {{cite web}}: |author=имеет общее название ( помощь )
  12. ^ ab "XEmacs: Архив уведомлений о выпуске". Xemacs.org . Получено 1 декабря 2014 г. .
  13. ^ Стивен Дж. Тернбулл. "XEmacs: XEmacs на платформе GTK". Us.xemacs.org . Архивировано из оригинала 4 марта 2016 года . Получено 1 декабря 2014 года .
  14. ^ "Home". Архивировано из оригинала 2007-09-14 . Получено 2009-06-22 .
  15. ^ «Руководство по внутреннему устройству XEmacs: Содержание».
  16. ^ "Mule-on-Windows, полная поддержка Unicode XEmacs". Calypso.tux.org . Архивировано из оригинала 4 сентября 2015 г. Получено 1 декабря 2014 г.
  17. ^ "XEmacs: XEmacs против GNU Emacs". Xemacs.org . Получено 1 декабря 2014 г. .
  18. ^ "Почему FSF получает авторские права от участников - Проект GNU - Фонд свободного программного обеспечения". Fsf.org . Получено 1 декабря 2014 г.
  19. ^ "Xemacs против GNU Emacs". XEmacs — это программное обеспечение GNU, потому что это модифицированная версия программы GNU. И это программное обеспечение GNU, потому что FSF является владельцем авторских прав на большую его часть... У XEmacs нет выбора, потому что большая часть его кода защищена авторскими правами Free Software Foundation и доступна только XEmacs по лицензии GPL.
  20. ^ "Часто задаваемые вопросы о XEmacs: Введение". Xemacs.org . Получено 1 декабря 2014 г. .
  21. ^ "XEmacs 21.5.33 release notes". Xemacs.org . Архивировано из оригинала 4 марта 2016 года . Получено 1 декабря 2014 года .
  22. ^ "XEmacs мертв. Да здравствует XEmacs!". Steve-yegge.blogspot.com . Архивировано из оригинала 1 мая 2008 года . Получено 1 декабря 2014 года .
  23. ^ "Сравнение Xemacs и Gnu Emacs". К счастью, многие разработчики пакетов пытаются заставить свои модули работать как с Xemacs, так и с Gnu Emacs, хотя функциональность может быть не идентичной.
  24. ^ «Перенос разработки Gnus в Emacs?».
  25. ^ «Речь идет об этике в разработке Gnus». Январь 2016 г.
  26. ^ "XEmacs на перепутье". Архивировано из оригинала 2016-10-14. В течение последнего десятилетия работа над XEmacs продолжалась на низком уровне и в основном не была видна в функциях уровня пользователя. Тем временем, GNU Emacs реализовал почти все функции XEmacs... В то же время, ряд функций, которых нет в XEmacs и которые потребуют значительных усилий для переноса, были реализованы... разработчики, которые были основными участниками кода, в настоящее время имеют личные и профессиональные обязательства, которые не позволяют им уделять достаточно времени XEmacs для реализации крупных функций, необходимых для полной совместимости с GNU Emacs в обозримом будущем... несколько разработчиков, которые внесли большой вклад в прошлом, признали, что они *не будут* делать этого в обозримом будущем. Будет справедливо, если мы дадим вам, нашим пользователям и сторонникам, знать об этом.
  27. ^ "XEmacs: XEmacs 21.5.35 "kohlrabi" выпущен". Xemacs.org . Получено 19 июля 2023 г. .

Внешние ссылки