View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0003879 | Far Manager | _Common | public | 2021-07-06 10:22 | 2021-07-27 09:25 |
Reporter | AleXH | Assigned To | |||
Priority | normal | Severity | minor | Reproducibility | always |
Status | closed | Resolution | no change required | ||
Platform | x86 | OS | Windows | OS Version | XP SP3 |
Product Version | 3.0 | ||||
Fixed in Version | 3.0 | ||||
Summary | 0003879: >5802 под XP не дружат с плагином ConEmu | ||||
Description | 5802 последняя нормально работающая с ConEmu версия. | ||||
Steps To Reproduce | XPSP3x86, >5802, ConEmu, например последний, 210627. Если плагин ConEmu добавлен к плагинам Far, то вывод far.Message() вызывает загрузку ядра ЦП до 100%, пример: >lua:far.Message("","") | ||||
Tags | No tags attached. | ||||
Build | 0 | ||||
|
AleXH, правильно ли я понимаю, что вы уже написали Maximus5, но он вам ответил, что проблема в Far? |
|
Да, написал https://github.com/Maximus5/ConEmu/issues/2328, но в реальности это результат изменений в 5803-04. Вам нужно решить между собой, как правильно поступить. |
|
Conemu - прекрасный проект, облегчающий жизнь и делающий невозможное возможным. Однако, делающий это посредством чудовищных хаков. Не потому, что его автор делает что-то не так, отнюдь. Просто других способов, как правило, нет. Любые операции в обход документированных интерфейсов, любые предположения о работе чего либо, базирующиеся на наблюдаемом поведении, а не на документации, рано или поздно сломаются. Единственный вариант не ломать код, работающий на предположениях - ничего никогда больше не менять, заморозить все и остановить работу над проектом навсегда. Подозреваю, этот вариант устроит не всех, поэтому вы можете просто остановиться на тех версиях, которые у вас работают. С вашей точки зрения результат будет эквивалентным. https://www.hyrumslaw.com/ https://xkcd.com/1172/ |
|
Я ни в коем разе не против изменений, особенно учитывая, что поддержке XP уделяется должное внимание, большое спасибо вам за работу над Far, делающей его лучше. Любые положительные изменения только приветствуются. Понятно, что на каком-то этапе поддержка ХР станет более невозможной, тогда стоит зафиксировать последнюю совместимую с ХР версию и впоследствии лишь добавлять в неё по возможности фиксы багов. С конему сейчас непонятно следующее - когда стоит вносить в него адаптацию под новое состояние Far? |
|
Дело не в XP, все это прекрасно повторяется под 10. И даже не в изменениях в Far как таковых, по крайней мере не в тех, что отражены в чейнжлоге. Что я вижу: 1. Conemu перехватывает Windows API, вызываемые Far, например, PeekConsoleInput 2. строит какие-то предположения о том, что происходит внутри Far 3. решает, что надо бы послать ACTL_SYNCHRO и посылает 4. в процессе обработки очереди сообщений Far вызывает PeekConsoleInput 5. Conemu перехватывает его, строит новые предположения 6. решает, что ситуация еще не изменилась и стоит послать еще, что и делает 7. GOTO 4 Проблема в том, что эти перехватывания - карточный домик, замок на песке и подбрасывание монеты, всегда. Приложение может вызывать любые системные функции в любом количестве и последовательности, или не вызывать вообще. Скажем, я могу "исправить" это в Far, проверяя, что console input handle в состоянии signaled перед вызовом PeekConsoleInput, что никак не изменит поведение Far, но предотвратит вызов перехватываемой функции и разорвет порочный круг выше. Но при этом в Conemu наверняка отвалится что-то еще, т.к. зачем-то же она перехватывается. когда стоит вносить в него адаптацию под новое состояние Far?С подходом, описанным выше, "новое состояние" наступает с каждым новым коммитом. Поэтому вносить стоит тогда, когда автор Conemu сочтет нужным. Можете также попробовать выключить ConEmuHk.dll в настройках. Наверное, поможет (и отвалится что-то еще). |
|
Я могу пригласить Максимуса сюда для обсуждения, дав ему ссылку, либо разместить в своём issue у него ваш последний пост? Вы могли бы договориться об оптимальном решении. Inject ConEmuHk.dll в процессы табов в настройках отключен, но ConEmuHk.dll загружается в сам процесс Far, если её удалить, то перестают создаваться табы с открытыми редакторами, вьюверами и тп. Аналогичное происходит если удалить плагин ConEmu. Тогда да, far.Message() ядро не грузит. |
|
На ваше усмотрение. |
|
В ConEmu 210718 проблема решена, можно закрывать. |
Date Modified | Username | Field | Change |
---|---|---|---|
2021-07-06 10:22 | AleXH | New Issue | |
2021-07-06 17:01 | DrKnS | Note Added: 0017109 | |
2021-07-06 18:38 | AleXH | Note Added: 0017112 | |
2021-07-06 18:40 | AleXH | Note Edited: 0017112 | |
2021-07-06 19:19 | DrKnS | Note Added: 0017114 | |
2021-07-07 04:45 | AleXH | Note Added: 0017115 | |
2021-07-07 05:35 | AleXH | Note Edited: 0017115 | |
2021-07-07 12:05 | DrKnS | Note Added: 0017119 | |
2021-07-07 14:20 | AleXH | Note Added: 0017120 | |
2021-07-07 15:13 | DrKnS | Note Added: 0017122 | |
2021-07-27 05:27 | AleXH | Note Added: 0017130 | |
2021-07-27 09:25 | JohnDoe | Status | new => closed |
2021-07-27 09:25 | JohnDoe | Resolution | open => no change required |
2021-07-27 09:25 | JohnDoe | Fixed in Version | => 3.0 |
2021-07-27 09:25 | JohnDoe | Build | => 0 |