[00:12:10] BanderOS зашёл в конференцию [00:12:46] BanderOS вышел из конференции [00:16:24] BanderOS зашёл в конференцию [00:17:00] BanderOS вышел из конференции [00:20:16] BanderOS зашёл в конференцию [01:23:04] slavazanko/h вышел из конференции [05:34:13] BanderOS вышел из конференции [06:20:12] andrew_b зашёл в конференцию [06:39:34] BanderOS зашёл в конференцию [06:39:58] BanderOS вышел из конференции [06:58:35] <iliamaslakov> slavazanko/w: а тебе зачем с памятью так работать? узнать сколько памяти, вычесть 10%, разрешить выделять доступную редактору под буферы [06:59:42] <andrew_b> Херасе 90% отдать редактору. [07:00:58] <iliamaslakov> разрешить а не отдать [07:01:55] BanderOS зашёл в конференцию [07:02:26] BanderOS вышел из конференции [07:03:41] <iliamaslakov> не кажный раз люди открывают 100500 гигабайтные файлы [07:04:04] BanderOS зашёл в конференцию [07:04:37] BanderOS вышел из конференции [07:31:47] <iliamaslakov> andrew_b, а ты против? [08:07:12] slavazanko/h зашёл в конференцию [08:15:53] BanderOS зашёл в конференцию [08:21:31] BanderOS вышел из конференции [08:51:44] <slavazanko/w> я против. у нас и так юзается mmap. посмотреть в его сторону [08:52:24] <slavazanko/w> переделать редактор, чтобы он работал с mmap и минимумом выделения памяти [09:02:24] <iliamaslakov> да но сейчас я могу добавить 5 строк кода и всё [09:02:55] <iliamaslakov> а на mmap надо полгода переезжать и отлавливать кучу багов [09:03:48] <slavazanko/w> зачем переезжать? У нас есть в конфиге опция --enable-mmap. Вот от неё и плясать. Оставить как старый алгоритм (для ОСей. на который нет mmap), так и начинать новый [09:04:26] <andrew_b> Прямое редактирование вряд ли возможно. Всё равно надо грузить файл в какую-то структуру. [09:04:31] <iliamaslakov> ага, такая волшебная что сырцы внезапно станут безбажными? [09:05:07] <slavazanko/w> бажным будет код, который включается после --enable-mmap. Старый код останется по возможнсти нетронутым [09:05:33] <slavazanko/w> а если переезжать. то получится. что и старое уже разрушено, и новое нестабильно [09:05:34] <iliamaslakov> но это добавит сложности в код в любом случае [09:05:37] <slavazanko/w> да [09:06:10] <iliamaslakov> сейчас есть 2 константы [09:06:28] <iliamaslakov> длина буфера и количество буферов [09:06:55] <iliamaslakov> я предлагаю просто изменить переменную которая отвечает за количество буферов [09:07:11] <slavazanko/w> а последствия какие? [09:07:14] <iliamaslakov> это не скажется на качестве кода [09:07:24] <iliamaslakov> вообще последствий не будет [09:07:33] <iliamaslakov> никаких [09:07:37] <slavazanko/w> ну поменяй. Но про mmap всё равно надо подумать [09:08:48] <andrew_b> Может, я чего не понимаю, но как нам посожет mmap? Она выделит сплошной буфер для файла. А редактировать как? Например, вставить букву? [09:10:12] <iliamaslakov> ну в этом массиве можно разместить буфера, нет? [09:12:41] <slavazanko/w> редактировать прямо в памяти. оно автоматом будет заноситься в файл. Или в копию файла. http://masters.donntu.edu.ua/2005/fvti/lukyanov/library/ipc/mmap.html [09:13:23] <slavazanko/w> пока не понимаю. как удалить из замапленной памяти [09:13:29] <iliamaslakov> ты не понимаешь [09:14:07] <iliamaslakov> редактировать как в хекс-режиме это одно [09:14:23] <iliamaslakov> а изменять размер это другое [09:14:43] <andrew_b> Оно будет. Но ты представь: у тебя большой файл. Ты хочешь в начале вставить букву. Надо переаллоцировать весь буфер, сдвинуть его на несколько байт и вставить в начале. [09:15:01] <andrew_b> Затраты на копирование огромные. [09:18:44] <andrew_b> Вот для вьювера mmap больше подходит. [09:28:56] <iliamaslakov> просто если переделать алгоритмы то по идее можно было бы прикрутить mmap [09:29:02] <iliamaslakov> для редактора [09:29:19] <iliamaslakov> надо просто как то адресовать изменения [09:29:35] <iliamaslakov> примерно как набор патчей [09:30:07] <iliamaslakov> примерно как если допустим у нас есть данные "1234567890" [09:30:22] <iliamaslakov> допустим нам надо удалить "4" [09:30:38] <iliamaslakov> в исходных данных ничего не трогаем [09:30:50] <andrew_b> Сейчас файл грузится в буфера, которые динамически изменяются. Их количество тоже изменяется. Но когда ты мапишь файл, ты получаешь один большой буфер. [09:31:07] <iliamaslakov> дослушай [09:31:24] <andrew_b> Со всеми прелястями realloc и memmove. [09:31:46] <andrew_b> s/прелястями/прелестями [09:32:17] <iliamaslakov> 1) в исходных данных ничего не трогаем 2) в дополнительном месте пишем байт со смещения 4 по смешение 5 удалён [09:32:46] <iliamaslakov> допустим надо вставить после четвёрки еще четвёрку [09:32:56] <andrew_b> Что значит удалён? [09:33:13] <iliamaslakov> 1) в исходных данных ничего не трогаем 2) в дополнительном месте пишем вставить байт со смещения 4 [09:33:29] <andrew_b> Что на месте удалённого файла? [09:33:35] <iliamaslakov> не файла [09:33:39] <andrew_b> Что на месте удалённого байта? [09:33:47] <iliamaslakov> он же [09:33:55] <iliamaslakov> исходник не меняется [09:34:34] <iliamaslakov> появляется запись в отдельном мечте что байт в позиции 4 помечен как удалённый [09:34:51] <andrew_b> Допустим. [09:35:48] iliamaslakov вышел из конференции: Replaced by new connection [09:36:05] iliamaslakov зашёл в конференцию [09:36:28] <iliamaslakov> но по сути редактор придётся ЗНАЧИТЕЛЬНО переделывать [09:37:05] <andrew_b> Дадада. [09:37:31] <andrew_b> Ты повесишься учитывать все эти изменения только для того, чтобы их отобразить. [09:37:33] <iliamaslakov> специальные обёртки должны будут в режиме реального времени налагать эти самые патчи [09:37:44] <iliamaslakov> да [09:37:50] <iliamaslakov> это сложно [09:38:20] <iliamaslakov> но есть куча графического софта который так работает [09:38:32] <iliamaslakov> и по моему даже для видео такое есть [09:39:08] <iliamaslakov> как то вид такого софта определёно классифицируется [09:39:32] <iliamaslakov> типа он версионный или древовидный [09:39:44] <andrew_b> А нам оно надо? С учётом того, что у нас тормозной движок раскраски синтаксиса, на больших файлах будет не очень хорошо. [09:40:17] <iliamaslakov> т.е. ты в любой момент можешь откатить всё ветвь изменений [09:40:34] <iliamaslakov> andrew_b: А нам оно надо? я не умерен совсем [09:40:46] <iliamaslakov> это километр работы [09:42:35] <andrew_b> Проще всего избавиться от MAXBUFF и переделать buffers1 и buffers1 на GArray. [09:42:47] <andrew_b> buffers1 и buffers2 [09:42:57] <iliamaslakov> а это что даст? [09:43:07] <iliamaslakov> динамическое выделение? [09:43:31] <andrew_b> Это давт возможность открывать файл любого размера. Но тогда каждый ССЗБ. [09:45:21] <andrew_b> А сейчас что получается? Открыли мы небольшой файл, например, и начали туда копипастить куски из других файлов. Буферы исчерпались и всё, приехали. [09:45:55] <andrew_b> А так хоть можно будет создать файлы любого объёма без потери данных. [09:46:48] <iliamaslakov> что то я не думал в эту сторону... [09:47:03] <andrew_b> А ограничение размера на открытие уже существующего файла можно оставить. [09:47:12] <andrew_b> Даже через ini. [09:47:42] <iliamaslakov> ну я у себя ограничил бы гигом [10:11:13] <slavazanko/w> гиг оно будет минут 20 лопатить, пока откроет. Попробуй открыть 60 метров. Задержка минута-полторы [11:15:44] slavazanko/w вышел из конференции [11:16:13] slavazanko/w зашёл в конференцию [12:18:57] <Зося_Синицкая> RSS: Новости для Midnight Commander • Ticket #2862 (Directory tree view refresh problem) updated http://www.midnight-commander.org/ticket/2862 • Ticket #2835 (Duplicate entities in panel with 'tree view' mode) closed http://www.midnight-commander.org/ticket/2835#comment:8 [12:22:30] BanderOS зашёл в конференцию [12:55:12] BanderOS вышел из конференции [13:48:57] slavazanko/h вышел из конференции [13:50:24] <slavazanko/w> 2832, 2823, 2791, 2859 [13:50:59] <slavazanko/w> это я обновляю для себя список TODO [13:51:10] <andrew_b> А... [13:51:17] <andrew_b> баг 2859 [13:51:23] <Зося_Синицкая> andrew_b: #«2859» (ctags support is broken (sigsegv)) â Midnight Commander ctags support is very useful feature, but unfortunately it seems to be broken for some time. For good user experience it should work out of the box and the «…» https://www.midnight-commander.org/ticket/2859 [13:51:36] <slavazanko/w> минус один [13:51:52] <andrew_b> баг 2791 [13:51:53] <Зося_Синицкая> andrew_b: «2791» - Midnight Commander When i try to copy/move files with filename encoding change, mc drop an error box: +------------------------- Error --------------------------+ | Cannot create target file «…» https://www.midnight-commander.org/ticket/2791 [13:52:43] <andrew_b> Это меня самого достаёт. [13:52:54] slavazanko/h зашёл в конференцию [13:52:57] <andrew_b> Нельзя скопировать на перекодированную панель. [13:53:38] <andrew_b> Ша скажу, где это. [13:54:53] <andrew_b> Это здесь: 1123 /* filter out a possible password from def_text */ 1124 { 1125 vfs_path_t *vpath; 1126 1127 vpath = vfs_path_from_str_flags (def_text, (only_one) ? VPF_NO_CANON : VPF_NONE); 1128 tmp = vfs_path_to_str_flags (vpath, 0, VPF_STRIP_PASSWORD); 1129 vfs_path_free (vpath); 1130 } [13:55:11] <andrew_b> tmp получается без начального слеша. [13:55:19] <slavazanko/w> понято [13:55:23] <andrew_b> То бишь как относительный путь. [14:30:29] slavazanko/h вышел из конференции [14:30:46] slavazanko/h зашёл в конференцию [14:36:06] slavazanko/w вышел из конференции [14:37:24] slavazanko/w зашёл в конференцию [15:18:18] andrew_b вышел из конференции [15:36:40] slavazanko/h вышел из конференции [15:36:46] slavazanko/w вышел из конференции [15:38:46] slavazanko/w зашёл в конференцию [15:39:29] slavazanko/h зашёл в конференцию [18:28:15] andrew_b зашёл в конференцию [20:22:42] slavazanko/h вышел из конференции [20:23:16] slavazanko/h зашёл в конференцию [20:29:46] andrew_b вышел из конференции [20:39:01] D-ion вышел из конференции: Replaced by new connection [20:39:05] D-ion зашёл в конференцию [22:26:53] ASM вышел из конференции [23:23:55] slavazanko/h вышел из конференции