Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » FAR Manager (часть 6)

Модерирует : gyra, Maz

Maz (26-09-2022 12:52): FAR Manager (часть 7)  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200

   

Maz



Дед Мазай
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Far Manager
 
   

 
Предыдущие топики:  1 2 3 4 5  
 
Где взять последнюю версию?
На странице загрузки скачайте MSI-инсталлятор стабильной сборки нужной вам разрядности (32 или 64 бита) или дистрибутив в виде 7z-архива и установите/распакуйте в любую папку (FAR портабелен и может работать без установки).
Там же на свой страх и риск можно взять наиболее свежую "ночную" сборку (в ночных сборках устраняются выявленные недоработки, добавляются новые функции, но могут содержаться и серьёзные ошибки).
Архив всех предыдущих ночных сборок FAR
Last release на github - собирается практически сразу (в течение получаса) после каждого коммита.
 
Общие сведения о совместимости FAR и плагинов
 
Можно воспользоваться одной из пользовательских сборок FAR Manager
Вопросы, касающиеся сборок, следует задавать непосредственно их авторам, а не на официальном форуме.
 
Где взять дополнительные плагины, скрипты и макросы?
Плагринг. В настоящее время большинство авторов (возможно, уже и все) выкладывают плагины здесь. Кроме плагинов здесь появляется всё относящиеся к FAR: дополнения, консольные шрифты, скрипты и пр.
Анонсы плагинов на официальном форуме. Даже если автор не выкладывает по каким-либо причинам плагин на плагринге, он может дать анонс в этой теме.
Полезные скрипты и макросы.
Шрифт TTF, аналог Terminal 10x18
 
Инструкции по сборке ФАРа из исходников
Набор для самостоятельной сборки ФАРа
Как собрать FAR самостоятельно (старая инструкция)  
 
Ссылки на устаревшие версии
 
Прочее
Портабелизация в FAR 3 плагинов для FAR 1
Выдержка из Far Manager Site and Forum ‹ FAQ :
Отличия FAR 3 от FAR 2
Отличия FAR 2 от FAR 1.7
 
Примечания
 
* 13 декабря 2008 г. произошло переименование веток: ANSI-ветка 1.71 превратилась в 1.75, а Unicode-ветка получила номер версии 2.0 (вместо 1.80). Т.е. версии 1.хх это ANSI ("старый" FAR), а версии 2.хх – Unicode ("новый" FAR). Эти ветки сильно различаются по способу взаимодействия с плагинами и системой!
* При обновлении ANSI-ветки 1.хх более старые версии плагинов могут работать в более новом FAR, но более новые плагины в большинстве случаев требуют обновления FAR (см. документацию).
* Unicode-плагины в ANSI-версии FAR не работают – у них иной способ взаимодействия (API) с Far.exe, поэтому даже не пытайтесь их использовать в FAR версии ниже 1.80.
* При обновлении Unicode-версии FAR 1.80/2.0/3.0 обращайте внимание на номер сборки: следует обязательно обновить все плагины для сборок 677/680/684, иначе они не будут работать. ANSI-плагины (кроме тех, которые работают в редакторе) можно применять в Unicode-версии FAR, в меню плагинов (вызываемом по F11) они будут помечены значком [A] справа от их имени. Unicode-плагины в FAR 1.80/2.x/3.х никаким значком после имени не помечаются.
* Unicode-версия FAR 1.80/2.x/3.х требует как минимум Windows 2000, т.е. она работает только в Windows 2000/XP/2003/Vista/2008/7/8/10.
* Плагины от FAR 2 несовместимы с FAR 3 и не запустятся.
* В FAR 3 выборочно могут работать плагины от FAR 1, однако не стоит брать от FAR 1 плагины для редактора или работающие с дисками: первые портят текст в Юникоде, вторые – файловую систему.
* В любом случае разрядность плагинов должна совпадать с разрядностью FAR, иначе плагин не будет загружен.
* Блондинку на скриншоте зовут Tommie Jo.

 
Принципиальные различия между hard link, symlink и junction
Как устранить взаимное влияние запущенных копий FAR в памяти
Как запустить Lua/MoonScript из FAR
Как правильно добавить в программу нужную DLL (или иную зависимость), чтобы при обновлении ОС или иных программ она не перестала работать
Патч для ansi-плагинов для хранения настроек плагинов в папке профиля, а не в реестре
Как распаковать UUE/XXE файлы патчей и использовать их?
 
ВНИМАНИЕ!
 
Правильное (корректное) завершение Far: всегда завершайте сеанс работы с Far по F10! Подробнее на форуме - Различие выхода из Far по F10 и крестиком
 
Общие правила обращения за помощью
  1. Решаете задачу самостоятельно, при необходимости ищете ответы в теме и других источниках. Предварительное изучение документации обязательно!
  2. Если ваших знаний не хватает, то задаёте вопрос в форуме и строго следуете инструкциям тех людей, которые вам помогают.
  3. Если решить задачу, следуя пунктам 1 и 2, не удалось, то задаёте вопрос разработчикам.

Невыполнение этих правил ведёт к тому, что никто не станет помогать решать вашу задачу.

Всего записей: 38758 | Зарегистр. 26-02-2002 | Отправлено: 17:36 15-01-2020 | Исправлено: Luber, 12:33 31-05-2022
shmuz

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alexyz21
TCC быстро компилирует, но там нет множества оптимизаций, поэтому скомпилированные программы уступают в скорости по сравнению с другими компиляторами. Используйте GCC или Visual Studio.

Всего записей: 1857 | Зарегистр. 09-03-2012 | Отправлено: 11:41 10-08-2021
Alexyz21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
C билда 5872 стал удалять файлы из ФС медленно.

Всего записей: 3471 | Зарегистр. 16-06-2007 | Отправлено: 13:26 10-08-2021
Victor_VG



Tracker Mod
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alexyz21

Цитата:
C билда 5872 стал удалять файлы из ФС медленно.

Видимого увеличения времени удаления не увидел. Может потому, что HDD быстрые? Или, кстати, проверь - возможно что на дисках значительно возросла фрагментация ФС. Чем она выше, тем больше время выполнения файловых операций. NTFS довольно чувствительна к фрагментации. Если что, то можно использовать NTFS File Information - в плагине есть дефрагментатор, но он работает только с отдельными файлами, или консольную утилиту contig от Марка Русиновича - она так же умеет дефрагментировать ФС, либо Open Source утилиту UltraDefrag 7.1.4 (GNU GPL 2) - её 32-х битная редакция согласно документации должна работать на ХР и хотя по набору возможностей уступает Raxco PerfectDisk, но с наведением порядка на дисках справляется хорошо.

----------
Жив курилка! (Р. Ролан, "Кола Брюньон")
Xeon E5 2697v2/C602/128 GB PC3-14900L/GTX 1660 Ti, Xeon E5-2697v2/C602J/128 Gb PC3-14900L/GTX 1660 Ti

Всего записей: 33134 | Зарегистр. 31-07-2002 | Отправлено: 14:05 10-08-2021
Alexyz21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
GCC 8.1.0 добавил ещё +45% производительности созданному коду по отношению к скомпилированному DMC 8.52.
Думал что код с указателями

Код:
*(pcx+i)=x+*(pdx+*(pti+i));
быстрее обычной адресации
Код:
cx[i]=x+dx[ti[i]];
элементов массива, оказалось наоборот у всех 3-х компиляторов.

Всего записей: 3471 | Зарегистр. 16-06-2007 | Отправлено: 14:08 10-08-2021 | Исправлено: Alexyz21, 14:09 10-08-2021
Victor_VG



Tracker Mod
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alexyz21
 
При работе с массивами начиная с Cobol (в этом языке впервые появилось современное понятие "массив") лучше использовать встроенные библиотеки компиляторов - они оптимизируются на минимальное время доступа к элементам массива. Вручную такие процедуры написать можно, только потратишь много времени и труда, и что очень важно нужно знать все тонкости внутреннего устройства конкретного компилятора.  
 
А если у тебя будет массив типа тех, что применяются в языке PL/1 где у массива допускается до 63-х индексов, 63-и уровня вложенности, а каждый элемент массива также может быть вложенным массивом? Представляешь себе сложность задачи написания своей процедуры работы с вложенным массивом, даже достаточно простым, типа такого:
 
   dcl A array (i,j,k) B array (w,x,y,z) C array (d,e,f,g,h) M(d,e,f,g,h)) char(135)  
 
а ведь это очень простой вложенный массив строк...

----------
Жив курилка! (Р. Ролан, "Кола Брюньон")
Xeon E5 2697v2/C602/128 GB PC3-14900L/GTX 1660 Ti, Xeon E5-2697v2/C602J/128 Gb PC3-14900L/GTX 1660 Ti

Всего записей: 33134 | Зарегистр. 31-07-2002 | Отправлено: 14:41 10-08-2021
Alexyz21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Во время поисков компиляторов с удивлением увидел, что Cobol в 2002 году обновили :) Думал про него забыли ещё в 90-х.

Всего записей: 3471 | Зарегистр. 16-06-2007 | Отправлено: 16:16 10-08-2021
Victor_VG



Tracker Mod
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alexyz21
 
Так язык-то применим. Работа с массивами и структурами строк данных это его основное предназначение, и то, что на нём делается относительно сложно, на иных языках может потребовать неимоверных усилий. Каждому гвоздю - свой молоток!

----------
Жив курилка! (Р. Ролан, "Кола Брюньон")
Xeon E5 2697v2/C602/128 GB PC3-14900L/GTX 1660 Ti, Xeon E5-2697v2/C602J/128 Gb PC3-14900L/GTX 1660 Ti

Всего записей: 33134 | Зарегистр. 31-07-2002 | Отправлено: 16:46 10-08-2021
Alexyz21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
5874. Перестал работать (вызываться?) макрос по шоркату AltO на слове в редакторе:

Код:
local DLGITEMTYPE_EDIT,DLGITEMTYPE_PSWEDIT,DLGITEMTYPE_FIXEDIT=4,5,6
local function inEditField()
  return Dlg.ItemType==DLGITEMTYPE_EDIT or Dlg.ItemType==DLGITEMTYPE_FIXEDIT
end
local patt = {AltO=regex.new("[\\w\\-]+"),CtrlO=regex.new("\\S+")}
 
Macro {
  description="DialogTools: Paste word under cursor";
  area="Dialog"; key="AltO CtrlO";
  condition=inEditField;
  action=function()
    local s = editor.GetStringW()
    if not s then return end
    local pos,pEnd = editor.GetInfo().CurPos,s.StringLength+1
    if pos > pEnd then return
    elseif pos == pEnd then pos = pos-1
    end
    local text,start = s.StringText.."\0",1
    while true do
      local b,e = patt[akey(1)]:findW(text,start)
      if b == nil or b > pos then break
      elseif e >= pos then print(win.Utf16ToUtf8(win.subW(text,b,e))) break
      end
      start = e+1
    end
  end
}

Всего записей: 3471 | Зарегистр. 16-06-2007 | Отправлено: 08:16 11-08-2021 | Исправлено: Alexyz21, 10:27 11-08-2021
shmuz

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alexyz21
DLGITEMTYPE_EDIT - оно ж не определено. Если хотите, чтоб смотрели, проверяйте, что постите.

Всего записей: 1857 | Зарегистр. 09-03-2012 | Отправлено: 09:49 11-08-2021
Alexyz21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Исправил

Всего записей: 3471 | Зарегистр. 16-06-2007 | Отправлено: 10:28 11-08-2021
shmuz

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alexyz21
Да, editor.GetStringW, будучи вызвана из диалога, возвращает nil.

Всего записей: 1857 | Зарегистр. 09-03-2012 | Отправлено: 11:38 11-08-2021 | Исправлено: shmuz, 11:38 11-08-2021
Alexyz21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
shmuz
Где бы подсмотреть реализацию script.lua <= array[], array[][] => script.c (script.dll) ?

Всего записей: 3471 | Зарегистр. 16-06-2007 | Отправлено: 11:42 11-08-2021 | Исправлено: Alexyz21, 11:43 11-08-2021
shmuz

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alexyz21
Ни фига не понял. Зачем изощряться и плодить лишний трафик на форуме?

Всего записей: 1857 | Зарегистр. 09-03-2012 | Отправлено: 11:44 11-08-2021
Alexyz21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
скрипт луа отдаёт массивы данных внешней dll, которая обрабатывает их и возвращает скрипту назад обработанные массивы данных. Вопрос - что надо прописать в луа и си скриптах для реализации двустороннего обмена массивами данных?

Всего записей: 3471 | Зарегистр. 16-06-2007 | Отправлено: 12:00 11-08-2021 | Исправлено: Alexyz21, 12:02 11-08-2021
shmuz

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alexyz21
Ваша цель, как я понимаю, увеличить быстродействие.
Невозможно в нескольких фразах описать систему байндинга между Lua и Си (несмотря на то, что я этим успешно занимаюсь с 2004 года).
На мой взгляд, с учётом вашего багажа в данной области, вам следует написать ваш скрипт на LuaJIT FFI.
При правильном дизайне быстродействие очень хорошее, сопоставимое с Си.

Всего записей: 1857 | Зарегистр. 09-03-2012 | Отправлено: 12:10 11-08-2021
Alexyz21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Скрипт написан на LuaJIT FFI, максимально оптмизирован по скорости исполнения (имхо). Копирую script.lua в script.c, переписываю на си луа команды, компилирую с оптимизацией в EXE, получаю увеличение скорости исполнения в 2.5 раза - это весьма существенная разница, есть за что бороться. А если собраь с оптимизацией под целевое семейство процессоров, то разница должна быть ещё большей. Если же разместить данные в кэше процессора, то можно ускориться ещё на порядок, но пока не знаю как это сделать, возможно нужно компилировать в интел компиляторе. GCC 10.3.0 с регрессией, 9.2.0, 8.1.0 дают более быстрый х86 код.

Всего записей: 3471 | Зарегистр. 16-06-2007 | Отправлено: 12:24 11-08-2021 | Исправлено: Alexyz21, 12:36 11-08-2021
Victor_VG



Tracker Mod
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alexyz21
 
Указатель на их начальный адрес в памяти и текущий размер хранимого блока данных. А с точки зрения ОС это просто блок выделенных задаче адресов памяти по которым та хранит произвольные данные.

----------
Жив курилка! (Р. Ролан, "Кола Брюньон")
Xeon E5 2697v2/C602/128 GB PC3-14900L/GTX 1660 Ti, Xeon E5-2697v2/C602J/128 Gb PC3-14900L/GTX 1660 Ti

Всего записей: 33134 | Зарегистр. 31-07-2002 | Отправлено: 12:24 11-08-2021
Alexyz21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Victor_VG
Это если ОС видит исполняемый луа скрипт и dll как единый процесс, чтобы расшаривать кусок памяти между ними - так ли это, не знаю.

Всего записей: 3471 | Зарегистр. 16-06-2007 | Отправлено: 12:33 11-08-2021 | Исправлено: Alexyz21, 12:39 11-08-2021
Victor_VG



Tracker Mod
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alexyz21
 
В кэш процессора программно можно влезть только на ассемблере или автокоде (вариант двоичного кодирования использующий аббревиатуры для обозначения кодов команд ЦП и двоичное представление их операндов), и то в привилегированном режиме его работы когда программисту доступны все машинные команды и адресное пространство процессора.  
 
Любые языки высокого уровня в той или иной степени абстрагируют программиста от аппаратуры, а степень и модель этой абстракции полностью зависят от программной модели языка.  
 
Например в С используется частично открытая модель когда программист частично может управлять обработкой прерываний I/O и исключений, а в PL/1 используется полностью закрытая модель когда вся обработка прерываний I/O и исключений реализуется библиотеками компилятора, а в ассемблере используется открытая модель когда все задачи обработки прерываний I/O и исключений выполняет считаемая задача.  
 
Для любой многозадачной ОС задача межпроцессного взаимодействия решается путём чтения-записи данных в общее для взаимодействующих процессов пространство памяти или ввода-вывода ЭВМ с их предварительным преобразованием в согласованное представление. При этом совсем не обязательно, чтобы буфер через который происходит обмен данными был выделен из адресного пространства самих процессов. Это может быть и выделенная в ОЗУ ОС область для межпроцессного взаимодействия или фрагмент пространства внешней памяти ЭВМ, например удалённое устройство хранения данных подключённое к взаимодействующим ЭВМ каналом связи в которое задача 1 пишет данные, а задача 2 отслеживает изменения его состояния и запускает процедуру чтения данных по этому событию. А поскольку нам важна актуальность данных для текущего состояния и отсутствия простоя считаемых задач, то исходя из объёма и допустимой длительности времени передачи данных определятся и минимально достаточные характеристики  системы "источник - канал связи - хранилище -  канал связи - приёмник".

----------
Жив курилка! (Р. Ролан, "Кола Брюньон")
Xeon E5 2697v2/C602/128 GB PC3-14900L/GTX 1660 Ti, Xeon E5-2697v2/C602J/128 Gb PC3-14900L/GTX 1660 Ti

Всего записей: 33134 | Зарегистр. 31-07-2002 | Отправлено: 12:39 11-08-2021 | Исправлено: Victor_VG, 13:13 11-08-2021
shmuz

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alexyz21
Бегло глянул на ваш ChessKnight.lua.
Бросается в глаза использование Lua-таблиц, функций string.find, string.gsub (притом что функции даже не закешированы в локальных переменных).
Делать более глубокий анализ нет времени, но первое впечатление, что программа не оптимизирована для LuaJIT FFI.

Всего записей: 1857 | Зарегистр. 09-03-2012 | Отправлено: 13:14 11-08-2021
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200

Компьютерный форум Ru.Board » Компьютеры » Программы » FAR Manager (часть 6)
Maz (26-09-2022 12:52): FAR Manager (часть 7)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru