LINUX.ORG.RU

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

Исправление 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. Можно поржать над моей тупостью, но я вовреми не догадался, это бросает тень максимум на меня, но не на лисп.

А вот обрести библиотеку, если её нет - это уже нетривиальная задача, потому что это время и трудозатраты. Я удовлетворил твоё любопытство?