Skip to content

far2l как почему что внутри

akruphi edited this page Oct 19, 2024 · 5 revisions

Почему был создан форк именно от 2 версии Far Manager?

@elfmz, основной разработчик форка far2l, приводит следующие причины:

  • Кодовая база: Версия 2 имела меньшую кодовую базу, что упрощало модификацию. Например, filelist.cpp в версии 2.0.1825 содержал 5014 строк, в то время как в версии 3.0.4700 — 8760 строк.
  • Lua: @elfmz не был знаком с языком программирования Lua, который активно использовался в 3 версии, и ему требовался работающий фар как можно быстрее.
  • Скриптинг в Linux: В Linux уже существует множество инструментов для скриптинга, поэтому основной акцент был сделан на создание простого и эффективного инструмента, а не на добавление функционала скриптинга.

Почему нельзя объединиться с апстримом?

  • Кроссплатформенность: Переделка Far Manager для поддержки разных платформ потребовала бы значительных усилий, больше, чем просто адаптация для Linux.
  • Обратная совместимость: Модификация Far Manager под Linux, даже если бы она была основана на 3 версии, всё равно нарушила бы обратную совместимость с основным проектом.
  • Разработка оригинального продукта: Если бы команда разработчиков оригинального Far Manager присоединилась к проекту, это могло бы замедлить разработку оригинального продукта, так как внимание было бы сосредоточено на кроссплатформенности.

Полезные ссылки как/почему/что стало устроено внутри far2l

Почему не принимаются донаты, а приветствуются баг-репорты и участие в разработке

Почему сложно просто распространять бинарники, в том числе и внешние плагины

  • Отличие Linux/Unix от Windows в том, что даже на одной и той же архитектуре (не говоря уже про отличия x86/x86-64/arm/... или little-endian и big-endian) заранее нет гарантий, что везде одна и та же совместимая версия системной стандартной библиотеки C (libc), поэтому просто бинарник может не подойти.

  • Например, portable-сборки far2l специально собираются с старым libc и тянут с собой собственный загрузчик и свою версию libc.

  • Часть плагинов уже идёт внутри far2l. Внешние C/C++ плагины компилить не обязательно — можно попробовать взять бинарники от авторов или из мелкой нарезки от https://download.opensuse.org/repositories/home:/viklequick/ (там есть под разные системы) и положить внутрь far2l. Если они собраны на системе с той же libc, то должны подхватится без проблем.