Ошибки из-за ужесточения проверки UTF-8 в строках

Здесь обсуждается всё, что касается макросов.
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

Ошибки из-за ужесточения проверки UTF-8 в строках

Post by citRiks »

Latest post of the previous page:

LAT wrote: Thu 25 Feb, 2021 10:49 Но суть в том, что вы своим враппером по, в общем-то, совершенно мелочному поводу раскалываете скрипты (и скриптописателей) на 2 лагеря, пользующиеся разными форками FAR-а. А это уже вред. Имхо.
примирения вражды произойдет когда кто-нибудь пойдет на мировую,
и через setfenv(..) сделает для задания области действие враппера.
Может быть это даже буду я.
Но мне пока интереснее кто первый моргнет ;-)
Можете украсть и меня идею setfenv(...).
Тогда вам дадут Нобелевскую Пpемию Мира наверное.
да и вообще я не самый большой специалист по setfenv(...) ..
2useven10
Posts: 5209
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 310 times

Ошибки из-за ужесточения проверки UTF-8 в строках

Post by 2useven10 »

Если наступили на гвоздь, его надо вытащить.
Пропаганда ношения железных стелек в этом случае не признак большого ума.
Вообще самым полезным в этой теме (и не только в этой) было бы ограничить лимит
постов для citRiks, 1 в неделю - более чем достаточно.
User avatar
Ann
Posts: 478
Joined: Tue 26 Jun, 2007 11:05
Has thanked: 141 times
Been thanked: 45 times

Ошибки из-за ужесточения проверки UTF-8 в строках

Post by Ann »

2useven10 wrote: Fri 26 Feb, 2021 06:18 Если наступили на гвоздь, его надо вытащить
По-другому аналогичную мысль выразил великий Иван Павлов. Он наставлял, что если у вас физическое состояние нормальное (не болеете, не переутомлены), а настроение при этом плохое, то это значит, что у вас неправильные мысли. Измените их. И настроение поправится.
Вообще самым полезным в этой теме (и не только в этой) было бы ограничить лимит
постов для citRiks, 1 в неделю - более чем достаточно
Но Вас же никто не насилует читать посты уважаемого citRiks`а или кого бы то ни было другого? И не обязывает отвечать на них? На худой конец, включили бы игнор и дело с концом.

П.С. И ведь даже об "имхо" не заявили, а сразу фас-директиву выдали.
LAT
Posts: 343
Joined: Thu 21 Jan, 2010 20:00
Has thanked: 22 times
Been thanked: 39 times

Ошибки из-за ужесточения проверки UTF-8 в строках

Post by LAT »

citRiks wrote: Fri 26 Feb, 2021 01:53через setfenv(..) сделает
Имхо, всё-таки лучше обратить свой горящий взор, чтобы исправить 5-7 мест в "тех километрах скриптoв которые были много лет назад" и жить в мире с высшими существами и людьми (был бы Xerox – наверняка одобрил), чем зачем-то к врапперу наворачивать ещё и setfenv. Но jedem das Seine.
Last edited by LAT on Fri 26 Feb, 2021 10:01, edited 1 time in total.
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

Ошибки из-за ужесточения проверки UTF-8 в строках

Post by citRiks »

LAT, Там не 5-6-7 мест где исправлять, а там сильно больше.
Это будет reverse engineering галимый и бессмысленный.
Вот есть библиотека ПенЛайт какой-нибудь.
https://github.com/lunarmodules/Penlight/
(рекомендую кстати, но не важно что за библиотека)
И я такой давай его проверять и чинить.
А потом вышла его новая версия, и мне надо его merge делать,
и опять проверять и чинить.
А оно кому надо, такое богохульство? Потому мне и кажется,
что спасение души в добавлять setfenv в такие всякие "левые" скрипты и библиотеки.
Мне кажется только @Xer0X из миролюбия и сделал бы ...
но он теперь больше с ангелами говорит что общается.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

Ошибки из-за ужесточения проверки UTF-8 в строках

Post by John Doe »

Я вот тоже решился набросить.

На самом деле проблема обсуждаемая тут вполне реальна, в случае когда используются сторонние луа-библиотеки.
И корень проблемы в том, что luamacro (для нашего с вами удобства) делает одну нестандартную вещь: переназначает метатаблицу для строк.
И на этот финт сторонний код действительно может не быть рассчитан.

Т.е. вызывая ("anystring"):len() в том месте автору нужно было выяснить дляину в байтах, а вовсе не в символах, а вместо этого получаем исключение.
Свой код в данном случае правится легко: адресуем явно string.len("anystring") и всё отлично.
Править же стороннюю бмблиотеку не всегда возможно: хорошо если таких мест там всего 5, а если 500?

Вот для подобных случаев я теоретически допускаю использование какого-нибудь враппера, как быстрое решение.
И то, в некоторых случаях можно форкнуть нужную библиотеку, и сделать нужные исправления на месте.
Или даже предложить автору PR с исправлениями.
Например упомянутый выше автор mobdebug - русскоязычный, и даже на форуме у нас присутствует.

Однако подчеркну своё мнение - вся возня на восьми предыдущих страницах не упоминает реальных проблемных случаев, и следовательно гроша выеденного не стоит.
https://t.me/FarManager — Telegram чат
2useven10
Posts: 5209
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 310 times

Ошибки из-за ужесточения проверки UTF-8 в строках

Post by 2useven10 »


Не в ту тему отправил, но сути не меняет.
Относится к этому выс-туплению.
Last edited by 2useven10 on Fri 26 Feb, 2021 15:25, edited 2 times in total.
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Ошибки из-за ужесточения проверки UTF-8 в строках

Post by DrKnS »

John Doe wrote: Fri 26 Feb, 2021 11:10 На самом деле проблема обсуждаемая тут вполне реальна, в случае когда используются сторонние луа-библиотеки.
И корень проблемы в том, что luamacro (для нашего с вами удобства) делает одну нестандартную вещь: переназначает метатаблицу для строк.
И на этот финт сторонний код действительно может не быть рассчитан.

Т.е. вызывая ("anystring"):len() в том месте автору нужно было выяснить дляину в байтах, а вовсе не в символах, а вместо этого получаем исключение.
А можно резюмировать для тех, кто не вникал в 8 страниц этого шапито?

Правильно ли я понимаю, что:
  • lm заменяет определенные строковые функции, оперирующие байтами, на нечто иное, оперирующее "символами", для удобства аудитории
  • чтобы получать "символы", это нечто нечто иное за кулисами конвертирует utf-8 в utf-16, сигнализируя об ошибках конвертирования исключениями, как все нормальные люди
  • некоторым участникам не нравится, что баги теперь видно и они предпочитают, чтобы скрипты молча творили произвольную дичь, аргументируя это тем, что сторонний код может пихать в эти функции что попало и игнорируя тот факт, что сторонний код вообще будет там ожидать байты, а не символы
  • придуман костыль, заметающий мусор под ковер подавляющий ошибки конвертирования, чтобы скрипты могли и дальше молча творить произвольную дичь
?
Shmuel
Posts: 6820
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

Ошибки из-за ужесточения проверки UTF-8 в строках

Post by Shmuel »

DrKnS, изложили всё в общем-то точно.
Одна (несущественная) неточность - библиотека luautf8 обходится без преобразования utf-8 в utf-16.
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

Ошибки из-за ужесточения проверки UTF-8 в строках

Post by citRiks »

John Doe wrote: Fri 26 Feb, 2021 11:10 Однако подчеркну своё мнение - вся возня на восьми предыдущих страницах не упоминает реальных проблемных случаев, и следовательно гроша выеденного не стоит.
Опять вы предлагаете чинить самому, общаться с авторами, которые в глухом оффлайне годами.
может я бы и с удовольствием, но где взять время?
На StackTracePlus @Ignacio нетронутом мною поэкспериментируйте.
Я пострадал несколько раз от УТФ8, и у меня закончилось время на эти развлечения.
большинство % авторов (не-фароводов) когда пишут (строка):(строковая функция)(...) уверены что там будет обычный АНСИ а не УТФ8
Ну давайте закроем эту тему совсем, меня-то все устраивает с этим.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

Ошибки из-за ужесточения проверки UTF-8 в строках

Post by John Doe »

citRiks wrote: Fri 26 Feb, 2021 01:53 Опять вы предлагаете чинить самому, общаться с авторами, которые в глухом оффлайне годами.
Напротив.
Я предлагаю сообщать о реальных проблемах в сторонних библиотеках и делиться корректными исправлениями.
Прежде всего на этом форуме. А пойдёт ли оно в апстрим или нет - дело десятое.
https://t.me/FarManager — Telegram чат
Post Reply

Return to “Обсуждение макросов”