История изменений
Исправление den73, (текущая версия) :
Чего тебе любопытно? Нужны регэкспы. В CL есть библиотека работы с регэкспами, но она работает с лисповыми строками. Лисповые строки в UTF-32, или UCS-2 или чёрт его знает как оно называется. UTF-8 не является внутренним представлением строк в рантайме лиспа. Значит, если мы хотим иметь регэкспы, то у нас два пути:
- перекодировать все строки из UTF-8 в UTF-32 на входе и терять на это время. Это стандартное решение. Оказалось, что слишком много времени теряется
- использовать FFI типы для обработки всего, что связано со строками. В частности, обрести библиотеку для регэкспов на UTF-8, я уж не говорю о том, что пропадают из языка почти все встроенные удобства, например, хеш-таблицы надо переделывать, сравнение и сортировку и т.п. Кроме того, FFI типы - это всегда риск, т.к. надёжность лиспа основана на том, что используются его встроенные типы, которые подвержены сборке мусора и всё вот это. FFI типы = риск падений и утечек.
И это не просто надо сделать, а надо догадаться, что есть путь N 2. И не просто сделать, а в ситуации, когда начальство уже с ножом над проектом стоит и готово ударить, и сроки уже продолбаны по другим причинам (сама задача оказалась сложной). Можно поржать над моей тупостью, но я вовремя не догадался, это бросает тень максимум на меня, но не на лисп.
А вот обрести библиотеку, если её нет - это уже нетривиальная задача, потому что это время и трудозатраты. Я удовлетворил твоё любопытство?
Исправление den73, :
Чего тебе любопытно? Нужны регэкспы. В CL есть библиотека работы с регэкспами, но она работает с лисповыми строками. Лисповые строки в UTF-32, или UCS-2 или чёрт его знает как оно называется. UTF-8 не является внутренним представлением строк в рантайме лиспа. Значит, если мы хотим иметь регэкспы, то у нас два пути:
- перекодировать все строки из UTF-8 в UTF-32 на входе и терять на это время (оказалось, что слишком много времени теряется)
- использовать FFI типы для обработки всего, что связано со строками. В частности, обрести библиотеку для регэкспов на UTF-8, я уж не говорю о том, что пропадают из языка почти все встроенные удобства, например, хеш-таблицы надо переделывать, сравнение и сортировку и т.п.
И это не просто надо сделать, а надо догадаться, что есть путь N 2. И не просто сделать, а в ситуации, когда начальство уже с ножом над проектом стоит и готово ударить, и сроки уже продолбаны по другим причинам (сама задача оказалась сложной). Можно поржать над моей тупостью, но я вовремя не догадался, это бросает тень максимум на меня, но не на лисп.
А вот обрести библиотеку, если её нет - это уже нетривиальная задача, потому что это время и трудозатраты. Я удовлетворил твоё любопытство?
Исправление den73, :
Чего тебе любопытно? Нужны регэкспы. В CL есть библиотека работы с регэкспами, но она работает с лисповыми строками. Лисповые строки в UTF-32, или UCS-2 или чёрт его знает как оно называется. UTF-8 не является внутренним представлением строк в рантайме лиспа. Значит, если мы хотим иметь регэкспы, то у нас два пути:
- перекодировать все строки из UTF-8 в UTF-32 на входе и терять на это время (оказалось, что слишком много времени теряется)
- использовать FFI типы для обработки всего, что связано со строками. В частности, обрести библиотеку для регэкспов на UTF-8, я уж не говорю о том, что пропадают из языка почти все встроенные удобства, например, хеш-таблицы надо переделывать, сравнение и сортировку и т.п.
И это не просто надо сделать, а надо догадаться, что есть путь N 2. И не просто сделать, а в ситуации, когда начальство уже с ножом над проектом стоит и готово ударить, и сроки уже продолбаны по другим причинам (сама задача оказалась сложной). Можно поржать над моей тупостью, но я вовреми не догадался, это бросает тень максимум на меня, но не на лисп.
А вот обрести библиотеку, если её нет - это уже нетривиальная задача, потому что это время и трудозатраты. Я удовлетворил твоё любопытство?
Исправление den73, :
Чего тебе любопытно? Нужны регэкспы. В CL есть библиотека работы с регэкспами, но она работает с лисповыми строками. Лисповые строки в UTF-32, или UCS-2 или чёрт его знает как оно называется. UTF-8 не является внутренним представлением строк в рантайме лиспа. Значит, если мы хотим иметь регэкспы, то у нас два пути:
- перекодировать все строки из UTF-8 в UTF-32 на входе и терять на это время (оказалось, что слишком много времени теряется)
- использовать FFI типы для обработки всего, что связано со строками. В частности, обрести библиотеку для регэкспов на UTF-8, я уж не говорю о том, что пропадают из языка почти все встроенные удобства, например, хеш-таблицы надо переделывать, сравнение и сортировку и т.п.
И это не просто надо сделать, а надо догадаться, что есть путь N 2. И не просто сделать, а в ситуации, когда начальство уже с ножом над проектом стоит и готово ударить. Можно поржать над моей тупостью, но я вовреми не догадался, это бросает тень максимум на меня, но не на лисп.
А вот обрести библиотеку, если её нет - это уже нетривиальная задача, потому что это время и трудозатраты. Я удовлетворил твоё любопытство?
Исправление den73, :
Чего тебе любопытно? Нужны регэкспы. В CL есть библиотека работы с регэкспами, но она работает с лисповыми строками. Лисповые строки в UTF-32, или UCS-2 или чёрт его знает как оно называется. UTF-8 не является внутренним представлением строк в рантайме лиспа. Значит, если мы хотим иметь регэкспы, то у нас два пути:
- перекодировать все строки из UTF-8 в UTF-32 на входе и терять на это время (оказалось, что слишком много времени теряется)
- использовать FFI типы для обработки всего, что связано со строками. В частности, обрести библиотеку для регэкспов на UTF-8, я уж не говорю о том, что пропадают из языка почти все встроенные удобства, например, хеш-таблицы надо переделывать, сравнение и сортировку и т.п.
И это не просто надо сделать, а надо догадаться, что есть путь N 2. Можно поржать над моей тупостью, но я вовреми не догадался, это бросает тень максимум на меня, но не на лисп.
А вот обрести библиотеку, если её нет - это уже нетривиальная задача, потому что это время и трудозатраты. Я удовлетворил твоё любопытство?
Исправление den73, :
Чего тебе любопытно? Нужны регэкспы. В CL есть библиотека работы с регэкспами, но она работает с лисповыми строками. Лисповые строки в UTF-32, или UCS-2 или чёрт его знает как оно называется. UTF-8 не является внутренним представлением строк в рантайме лиспа. Значит, если мы хотим иметь регэкспы, то у нас два пути:
- перекодировать все строки из UTF-8 в UTF-32 на входе и терять на это время (оказалось, что слишком много времени теряется)
- использовать FFI типы для обработки всего, что связано со строками. В частности, обрести библиотеку для регэкспов на UTF-8, я уж не говорю о том, что пропадает из языка почти все встроенные удобства, например, хеш-таблицы надо переделывать, сравнение и сортировку и т.п.
И это не просто надо сделать, а надо догадаться, что есть путь N 2. Можно поржать над моей тупостью, но я вовреми не догадался, это бросает тень максимум на меня, но не на лисп.
А вот обрести библиотеку, если её нет - это уже нетривиальная задача, потому что это время и трудозатраты. Я удовлетворил твоё любопытство?
Исправление den73, :
Чего тебе любопытно? Нужны регэкспы. В CL есть библиотека работы с регэкспами, но она работает с лисповыми строками. Лисповые строки в UTF-32, или UCS-2 или чёрт его знает как оно называется. UTF-8 не является внутренним представлением строк в рантайме лиспа. Значит, если мы хотим разобрать регэксп, то у нас два пути:
- перекодировать все строки из UTF-8 в UTF-32 на входе и терять на это время (оказалось, что слишком много времени теряется)
- использовать FFI типы для обработки всего, что связано со строками. В частности, обрести библиотеку для регэкспов на UTF-8, я уж не говорю о том, что пропадает из языка почти все встроенные удобства, например, хеш-таблицы надо переделывать, сравнение и сортировку и т.п.
И это не просто надо сделать, а надо догадаться, что есть путь N 2. Можно поржать над моей тупостью, но я вовреми не догадался, это бросает тень максимум на меня, но не на лисп.
А вот обрести библиотеку, если её нет - это уже нетривиальная задача, потому что это время и трудозатраты. Я удовлетворил твоё любопытство?
Исправление den73, :
Чего тебе любопытно? Нужны регэкспы. В CL есть библиотека работы с регэкспами, но она работает с лисповыми строками. Лисповые строки в UTF-32, или UCS-2 или чёрт его знает как оно называется. UTF-8 не является внутренним представлением строк в рантайме лиспа. Значит, если мы хотим разобрать регэксп, то у нас два пути:
- перекодировать все строки из UTF-8 в UTF-32 на входе и терять на это время (оказалось, что слишком много времени теряется)
- использовать FFI типы для обработки всего, что связано со строками. В частности, обрести библиотеку для регэкспов на UTF-8, я уж не говорю о том, что пропадает из языка почти все встроенные удобства, например, хеш-таблицы надо переделывать и т.п.
И это не просто надо сделать, а надо догадаться, что есть путь N 2. Можно поржать над моей тупостью, но я вовреми не догадался, это бросает тень максимум на меня, но не на лисп.
А вот обрести библиотеку, если её нет - это уже нетривиальная задача, потому что это время и трудозатраты. Я удовлетворил твоё любопытство?
Исходная версия den73, :
Чего тебе любопытно? Нужны регэкспы. В CL есть библиотека работы с регэкспами, но она работает с лисповыми строками. Лисповые строки в UTF-32, или UCS-2 или чёрт его знает как оно называется. UTF-8 не является внутренним представлением строк в рантайме лиспа. Значит, если мы хотим разобрать регэксп, то у нас два пути:
- перекодировать все строки из UTF-8 в UTF-32 на входе и терять на это время (оказалось, что слишком много времени теряется)
- обрести библиотеку для регэкспов на UTF-8
И это не просто надо сделать, а надо догадаться, что есть путь N 2. Можно поржать над моей тупостью, но я вовреми не догадался, это бросает тень максимум на меня, но не на лисп.
А вот обрести библиотеку, если её нет - это уже нетривиальная задача, потому что это время и трудозатраты. Я удовлетворил твоё любопытство?