Page 4 of 6

Ошибка в unicode.utf-8.match ?

Posted: Wed 04 Sep, 2019 12:37
by Shmuel

Latest post of the previous page:

John Doe wrote: Wed 04 Sep, 2019 12:29 опасаюсь, что новая find при использовании в цикле для прохода по длинным строкам может быть драматически неэффективна
Не исключено. Но не оставлять же обе библиотеки в LuaFAR. По мере накопления информации картина будет яснее.
Неск. лет назад я тестировал некоторые ф-ции этой б-ки на производительность, и результаты были в её пользу по сравнению c Selene Unicode.

Ошибка в unicode.utf-8.match ?

Posted: Wed 04 Sep, 2019 12:40
by John Doe
Ещё следут помнить, что utf-8 версия sub значительно медленнее стандартной.
И вот беглый просмотр содержимого папки Macros показывает, что это распространённый паттерн - использование sub по значениям полученным из find.

Раньше я сочетал utf8.find и string.sub, теперь это видимо поломалось.

Ошибка в unicode.utf-8.match ?

Posted: Wed 04 Sep, 2019 12:49
by John Doe
Shmuel wrote: Wed 04 Sep, 2019 12:37 Но не оставлять же обе библиотеки в LuaFAR.
Да, это был бы перебор.
Надо разобраться, возможна новая библиотека предоставляет какие-то свои средства для эффективной обработки описанных кейсов.

Ошибка в unicode.utf-8.match ?

Posted: Wed 04 Sep, 2019 12:49
by Shmuel
John Doe wrote: Wed 04 Sep, 2019 12:40 Раньше я сочетал utf-8.find и string.sub, теперь это видимо поломалось.
Сожалею о причинённых неудобствах, но всё же у меня ощущение, что достоинства перевешивают.
Возможно, вы приспособите gmatch/gsub для той задачи, о которой вы говорите. Предлагаю не спешить, а если действительно будет видно, что чего-то не хватает, будем принимать меры.

Ошибка в unicode.utf-8.match ?

Posted: Wed 04 Sep, 2019 13:36
by Shmuel
Ещё одно преимущество перед прежней библиотекой: эта - живая, есть автор, с которым можно взаимодействовать. Однажды он оперативно сделал фикс в ответ на мой репорт.

Ошибка в unicode.utf-8.match ?

Posted: Wed 04 Sep, 2019 13:36
by John Doe
Shmuel wrote: Wed 04 Sep, 2019 12:49 но всё же у меня ощущение, что достоинства перевешивают.
Да я тоже не против прогресса.
В данном случае неприятно то, что ошибки на глаз не слишком легко обнаружить, а всплывут они не сразу.

Насчёт живого автора полностью согласен.

Ошибка в unicode.utf-8.match ?

Posted: Wed 04 Sep, 2019 13:36
by buniak_a_h
Shmuel wrote: Wed 04 Sep, 2019 12:49 достоинства перевешивают
Согласен, но у меня просьба (на всякий случай): хотя _G.unicode.utf8 == _G.utf8, первый вариант не убирайте. Пусть будет...

Ошибка в unicode.utf-8.match ?

Posted: Wed 04 Sep, 2019 14:05
by Shmuel
buniak_a_h wrote: Wed 04 Sep, 2019 13:36 хотя _G.unicode.utf8 == _G.utf8, первый вариант не убирайте. Пусть будет...
Убирать планов нет.

Ошибка в unicode.utf-8.match ?

Posted: Wed 04 Sep, 2019 14:14
by John Doe
Задал вопрос автору: https://github.com/starwing/luautf8/issues/25
(Проверьте не ошибся ли я в формулировках)

Ошибка в unicode.utf-8.match ?

Posted: Wed 04 Sep, 2019 14:19
by Shmuel
John Doe wrote: Wed 04 Sep, 2019 14:14 (Проверьте не ошибся ли я в формулировках)
Наверное следует отредактировать код, чтобы не было синтаксиса с двоеточием - автор же не знает, что у нас переопределено. То есть использовать utf8.sub и т.п.

Юникод в LuaFAR

Posted: Wed 04 Sep, 2019 14:23
by John Doe
Спасибо, исправил.
Кстати пример реальный, из Symlink.lua

Юникод в LuaFAR

Posted: Wed 04 Sep, 2019 14:27
by Shmuel
Пример может и реальный, но не рабочий (не самодостаточный). Нет инициализации pos, не ясно что такое str2.

Юникод в LuaFAR

Posted: Wed 04 Sep, 2019 16:04
by zg
John Doe wrote: Wed 04 Sep, 2019 12:123. Другие изменения?
match тоже раньше байты принимал.

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

Posted: Mon 11 Jan, 2021 13:01
by John Doe

Code: Select all

('1234'):find('.*',1) --1,4
('1234'):find('.*',0) --0,3
Полагаю, баг в библиотеке?
https://github.com/starwing/luautf8/issues/34

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

Posted: Mon 11 Jan, 2021 16:07
by Shmuel
Опечатка в заголовке issue.

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

Posted: Mon 11 Jan, 2021 16:22
by John Doe
С 3-его раза увидел)
Спасибо