LINUX.ORG.RU

История изменений

Исправление X512, (текущая версия) :

Ну или примерно половину запросов делать холостыми (для не-ASCII строк).

Просто запрос к дереву в текущей позиции, если не найдено, то продвигаться на один char. Холостых запросов не будет, части символов будут отсеиваться на первом ноде дерева (которое Node *nodes[256];).

Ну и зачем такие регулярки человеку, которые работает с кириллическим текстом?

Регулярные выражения с байтами работают, а не с кириллицей (у меня вообще подозрения к тем кто упоминает слово кириллица, обычно это какие-нибудь фанаты КОИ-8 или cp1251). Что вы напишете, такие выражения и будут, хоть с иероглифами или смайлами.

выполнить условие «предудущий/следующий символ символ»

Зачем? Свой велосипед текстового редактора пишете?

Приводил: Посмотрел я этот ваш Rust (комментарий)

Сферический конь в вакууме, приводите конкретные примеры желательно со ссылками на софт, а не абстрактное непонятно зачем нужное «последние 20 символов».

Или даже банально кто-то напишет простые текстовые конфиги — но на родном для пользователя языке.

Никакой специальной поддержки UTF-8 не требуется, код для ASCII будет работать без изменений, максимум дописать что ch >= 128 это часть идентификатора.

Которые, внезапно, работают на базе UCS-4. Как и ICU.

Временное внутренне представление небольших буферов, которое не важно клиенту как реализовано.

Простой текст с семантикой в UTF-16 имеет строго фиксированное число байт, даже для китайского языка.

В китайском/японском языке регулярно попадаются редкие иероглифы. Одно время из-за этого был холивар сторонников Юникода и местных кодировок (Shift-JIS) когда в Юникоде ещё не было всех необходимых символов.

Не всё так просто, например: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67224

Status: RESOLVED FIXED

Видимо решились заморочиться с делением на буквы/пробельные знаки/спецсимволы для идентификаторов. Могли бы просто считать ch >= 128 частью идентификатора.

только толку от этого мало без поддержки UTF-8 со стороны пользующегося юникодными символами софта.

Какой раз повторяю что не нужная никакая специальная поддержка в большинстве случаев. Статическому/динамическому линковщику ELF нет дела какие ноль-терминируемые последовательности байт сравнивать и хешировать.

А нагибать программистов раком, заставляя итерировать UTF-8

Программисты, которым всё время надо посимвольно итерировать строки профнепригодны.

Исправление X512, :

Ну или примерно половину запросов делать холостыми (для не-ASCII строк).

Просто запрос к дереву в текущей позиции, если не найдено, то продвигаться на один char. Холостых запросов не будет, части символов будут отсеиваться на первом ноде дерева (которое Node *nodes[256];).

Ну и зачем такие регулярки человеку, которые работает с кириллическим текстом?

Регулярные выражения с байтами работают, а не с кириллицей (у меня вообще подозрения к тем кто упоминает слово кириллица, обычно это какие-нибудь фанаты КОИ-8 или cp1251). Что вы напишете, такие выражения и будут, хоть с иероглифами или смайлами.

выполнить условие «предудущий/следующий символ символ»

Зачем? Свой велосипед текстового редактора пишете?

Приводил: Посмотрел я этот ваш Rust (комментарий)

Сферический конь в вакууме, приводите конкретные примеры желательно со ссылками на софт, а не абстрактное непонятно зачем нужное «последние 20 символов».

Или даже банально кто-то напишет простые текстовые конфиги — но на родном для пользователя языке.

Никакой специальной поддержки UTF-8 не требуется, код для ASCII будет работать без изменений, максимум дописать что ch >= 128 это часть идентификатора.

Которые, внезапно, работают на базе UCS-4. Как и ICU.

Временное внутренне представление небольших буферов, которое не важно клиенту как реализовано.

Простой текст с семантикой в UTF-16 имеет строго фиксированное число байт, даже для китайского языка.

В китайском/японском языке регулярно попадаются редкие иероглифы. Одно время из-за этого был холивар сторонников Юникода и местных кодировок (Shift-JIS) когда в Юникоде ещё не было всех необходимых символов.

Не всё так просто, например: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67224

Status: RESOLVED FIXED

Видимо решились заморочиться с деланием на буквы/пробельные знаки/спецсимволы для идентификаторов. Могли бы просто считать ch >= 128 частью идентификатора.

только толку от этого мало без поддержки UTF-8 со стороны пользующегося юникодными символами софта.

Какой раз повторяю что не нужная никакая специальная поддержка в большинстве случаев. Статическому/динамическому линковщику ELF нет дела какие ноль-терминируемые последовательности байт сравнивать и хешировать.

А нагибать программистов раком, заставляя итерировать UTF-8

Программисты, которым всё время надо посимвольно итерировать строки профнепригодны.

Исходная версия X512, :

Ну или примерно половину запросов делать холостыми (для не-ASCII строк).

Просто запрос к дереву в текущей позиции, если не найдено, то продвигаться на один char. Холостых запросов не будет, части символов будут отсеиваться на первом ноде дерева (которое Node *nodes[256];).

Ну и зачем такие регулярки человеку, которые работает с кириллическим текстом?

Регулярные выражения с байтами работают, а не с кириллицей (у меня вообще подозрения к тем кто упоминает слово кириллица, обычно это какие-нибудь фанаты КОИ-8 или cp1251). Что вы напишете, такие выражения и будут, хоть с иероглифами или смайлами.

выполнить условие «предудущий/следующий символ символ»

Зачем? Свой велосипед текстового редактора пишете?

Приводил: Посмотрел я этот ваш Rust (комментарий)

Сферический конь в вакууме, приводите конкретные примеры желательно со ссылками на софт, а не абстрактное непонятно зачем нужное «последние 20 символов».

Или даже банально кто-то напишет простые текстовые конфиги — но на родном для пользователя языке.

Никакой специальной поддержки UTF-8 не требуется, код для ASCII будет работать без изменений.

Которые, внезапно, работают на базе UCS-4. Как и ICU.

Временное внутренне представление небольших буферов, которое не важно клиенту как реализовано.

Простой текст с семантикой в UTF-16 имеет строго фиксированное число байт, даже для китайского языка.

В китайском/японском языке регулярно попадаются редкие иероглифы. Одно время из-за этого был холивар сторонников Юникода и местных кодировок (Shift-JIS) когда в Юникоде ещё не было всех необходимых символов.

Не всё так просто, например: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67224

Status: RESOLVED FIXED

Видимо решились заморочиться с деланием на буквы/пробельные знаки/спецсимволы для идентификаторов. Могли бы просто считать ch >= 128 частью идентификатора.

только толку от этого мало без поддержки UTF-8 со стороны пользующегося юникодными символами софта.

Какой раз повторяю что не нужная никакая специальная поддержка в большинстве случаев. Статическому/динамическому линковщику ELF нет дела какие ноль-терминируемые последовательности байт сравнивать и хешировать.

А нагибать программистов раком, заставляя итерировать UTF-8

Программисты, которым всё время надо посимвольно итерировать строки профнепригодны.