LINUX.ORG.RU

Lite XL 2.1.4

 , , , ,


0

2

16 апреля состоялся выпуск 2.1.4 редактора текстов Lite XL, написанного на языках C и Lua с использованием библиотек SDL2 и PCRE2, и распространяемого по лицензии MIT. Редактор является существенно улучшенным форком редактора lite.

В новой версии:

  • в плагин Python добавлено расширение .pyi;
  • в плагин C++ добавлена подсветка синтаксиса Arduino;
  • в плагин JavaScript добавлено ключевое слово from;
  • исключена возможность бесконечного цикла в токенизаторе;
  • улучшение поведения окна автодополнения при работе с длинным текстом;
  • улучшение поведения CommandView и автодополнения при прокрутке;
  • другие улучшения и исправления ошибок.

>>> Подробности

★★★★★

Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 2)

Ответ на: комментарий от mittorn

SDL2 не ждёт событие в WaitEvent, а опрашивает очередь в цикле со слипами по 10мс.

На данный момент это не правда, пауза там 1 милисекунду и нужна она для того чтобы отработала функция внутри WaitEvent принимающая параметр timeout. Таким образом ты либо явно задаёшь -1 и ничего не ждёшь, либо задаёшь timeout и ждёшь 1ms * timeout времени в течении.

но оставив текстовый редактор крутящий SDL_Delay в цикле на каком-нибудь портативном устройстве

Это неправда, то сколько времени, когда и будет ли вообще происходить обработка эвентов зависит только от тебя как разработчика. Если тебе надо ты можешь динамически менять частоту обновления всей или части логики на основе того были ли у тебя эвенты недавно или нет, события есть значит пользователь работает, молотим всё и логику и кадры, пользователь пошёл заваривать чай, его нет пару секунд, увеличиваем задержку. Если у тебя притензия к реализации SDL_Delay то смотря к какой именно из платформоспецифичных. Текущая для линукса использует nanosleep() , а не в цикле считает время молотя проц, но может и молотить проц если нужных функций нету, паузой процесса либо занимается ядро, либо цикл с отсчётом в нём времени иного современное человечество не придумало.

можно заметно сократить время работы от батарейки

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

Приложешька для телефона который у меня вместо звуковой карты работает 24/7, есть активность == программа молотит и логику и кадры, нет активности == частота обновления чего либо падает до 5~10 раз в секунду. И всё.

У SDL много «приколов», но то что ты описал, ну нииинаааю, странно как по мне, ну или я чего не поняло.

который имеет софтовую реализацию

Тута да в SDL3 ваще хотят (или уже) выкинуть :( Жопы! А это всё эпик геймс виноваты, дали гранд Гордону с условием «осовременить» SDL чтобы тот косил под концептуальные подходы Vulkan и всех вот этих вот. Но да ладно. SDL2 и SDL3 это просто два брата близнеца, но от разных мам и пап считай.

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от LINUX-ORG-RU

Если там sleep в одну миллисекунду - ещё хуже. Я не смотрел сколько имеенно стоит там delay. Надеялся что там какой-нибудь condition variable на очередь и поток, заполняющий события спит пока их нет.
В идеале вообще eventfd, чтобы по нему select можноибыло делать ждать либо события, sdl, либо события на других дескриторах.
Если я буду угадывать неактивность и увеличивать время сна - то замедлится пробуждение.
Я надеюсь конечно. что у SDL3 ситуация лучше, но не видел его ни разу пока и необходимости не было

mittorn ★★★★★
()
Ответ на: комментарий от LINUX-ORG-RU

На данный момент это не правда, пауза там 1 милисекунду и нужна она для того чтобы отработала функция внутри WaitEvent принимающая параметр timeout. Таким образом ты либо явно задаёшь -1 и ничего не ждёшь, либо задаёшь timeout и ждёшь 1ms * timeout времени в течении.

Вы оба правы. В более старых версиях SDL2 там был просто блок, который даже при задании -1 в качестве таймаута – крутил цикл с PeepEvents() и SDL_Delay(10), но да… в Linux это nanosleep так что даже в таком варианте - загрузка CPU близка к 0. На десктопах, по кр. мере это абсолютно не критично.

Но в новых версиях SDL2 уже не так, кроме этого цикла там может вызываться платформозависмые ветки. Что приводит к вызову, например, X11_WaitEventTimeout на X11, а там внутри уже поинтереснее :) X11_PollEvent, X11_DispatchEvent.

Впрочем, в моем движке мне пришлось перейти на примитивную схему даже с новыми SDL, так как мне нужна была повышенная точность таймаутов (для контроля fps).

Лично я альтернативы SDL2 не вижу… (Просто тоже активно его использую, в том числе и в своём собственном текстовом редакторе) :)

Идея lite хорошая, там микроядро на C и большая часть на Lua. Другое дело, что это уже форк и от простоты там уже (возможно) мало что осталось. Не смотрел.

gloomy ★★
()
Последнее исправление: gloomy (всего исправлений: 1)
Ответ на: комментарий от dataman

SDL3 на подходе. :)

Это да! Но наверное тоже будет штормить его по началу. А так - ждём однозначно.

gloomy ★★
()
Ответ на: комментарий от dataman

Мало кому (как мне кажется) захочется сейчас привязываться к SDL3. Так как софт интегрированный с SDL2 уже написан, уже работает и отчасти вылизан и SDL2 уже есть везде и даже там где нет он есть. А поддерживать и SDL2 и SDL3 не смысла, с дубу рухнешь, даже с наличием скриптов от гордона по миграции и переименовании всего и вся.

Тут либо новый софт, в особенности тот который будет таскать библиотеку с собой или собираться статически, либо будет использоваться SDL2 Compat ну то есть, под капотом SDL3, но на уровне разработки останется навечно SDL2 ибо просто переписывание ради переписывания дело неблагодарное.

Ну разве что захочется например API для видеокамеры заиметь. Я не смотрел, но вот provod (демосценер) «ругал» текущую реализацию поверх v4l2.

Тыкать можно и нужно, но вот переходить пока нехоца.

LINUX-ORG-RU ★★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.