Lazarus 1.6, обсудим изменения...

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
resident
энтузиаст
Сообщения: 605
Зарегистрирован: 13.03.2013 16:58:51

Сообщение resident »

zub, pupsik
Благодарю за варианты, попробую разобраться, если не сойду с ума :)

zub писал(а):Ну не скажите, комуто мешает нормальная кроссплатформенная реализация паскаля?

Я имел ввиду разработчиков Лазаруса, что не было бы Делфи, не было бы и их.

zub писал(а):После запила полноценного юникода в lcl нужда в таких вещах отпадет, или останется только в случае невалидных строк полученых программой извне, и всё станет как в делфи))

Когда?
И допустим, основу сделают. А куда денутся сторонние библиотеки, которые уже давно отлажены и заброшены? Кто их будет исправлять?

Добавлено спустя 2 минуты 23 секунды:
pupsik писал(а):Я лазарь из свн беру (инсталяшку с фтп)

На фтп тоже самое, что и на sourceforge?
zub
долгожитель
Сообщения: 2890
Зарегистрирован: 14.11.2005 22:51:26
Контактная информация:

Сообщение zub »

resident писал(а):Когда?

Когданибудь. хочется быстрее - придется помочь))
Надо писать код как можно более независимый от версии компилятора, зависимые места выносить отдельно, а не хардкодить их через строчку

resident писал(а):А куда денутся сторонние библиотеки, которые уже давно отлажены и заброшены? Кто их будет исправлять?

будет такаяже адаптация кода как в delphi с появлением юникода. Кто? Нуждающиеся в них, ктож еще))
pupsik
энтузиаст
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13
Контактная информация:

Сообщение pupsik »

На фтп тоже самое, что и на sourceforge?
сами посмотрите: ftp://freepascal.dfmk.hu/pub/lazarus/releases/
Да и снапшотики теперь попроще лежат: ftp://freepascal.dfmk.hu/pub/lazarus/snapshots/. Не то что ранее...
sts
энтузиаст
Сообщения: 549
Зарегистрирован: 04.04.2008 12:15:44
Откуда: Тольятти

Сообщение sts »

zub писал(а):для utf8 "s[i]=итый_символ" значит либо потерю экономичности utf8 либо жуткую тормознутость при таком доступе. Почему изза чъихто хотелок, которые в большинстве случаев необоснованы, должны страдать все остальные?

zub писал(а):Это относится к тому что для парсинга "посимвольная" индексация ненужна

и каким макаром другие страдать будут? они же посимвольную индексацию не используют?

повторяю еще раз - для тех кто парсит по нормальному проблем нет, ни раньше, ни сейчас, ни после того как сделать "посимвольную индексацию" utf8 а вот полноценность паскаля сохранится.
а при переходе на utf8, надо и без "индексации" проверять код.

...так то строковых констант вообще не должно быть в исходниках.
zub
долгожитель
Сообщения: 2890
Зарегистрирован: 14.11.2005 22:51:26
Контактная информация:

Сообщение zub »

sts писал(а):и каким макаром другие страдать будут? они же посимвольную индексацию не используют?

Они используют индексацию не посилмвольную, а ту которая есть. Если она станет посимвольной - пострадает либо цпу, либо озу.
sts
энтузиаст
Сообщения: 549
Зарегистрирован: 04.04.2008 12:15:44
Откуда: Тольятти

Сообщение sts »

она уже, минимум, как 20 лет посимвольная (или когда там WideString появился), если есть те кто не вкурсе, то их код содержит кучу других проблем которые при переходе на utf8 надо и так править, заодно и это переделают.
приведите пример, например, из исходников fp, laz, где посимвольная индексация utf8 что-то сломает.
zub
долгожитель
Сообщения: 2890
Зарегистрирован: 14.11.2005 22:51:26
Контактная информация:

Сообщение zub »

Я не говорю что сломает, я говорю что она ненужна
>>WideString
Считаете что WideString хватит всем и в нем нет составных символов?
из википедии:
UTF-16 (англ. Unicode Transformation Format) в информатике — один из способов кодирования символов из Юникода в виде последовательности 16-битных слов. Данная кодировка позволяет записывать символы Юникода в диапазонах U+0000..U+D7FF и U+E000..U+10FFFF (общим количеством 1 112 064). При этом каждый символ записывается одним или двумя словами (суррогатная пара).

Символ это не s[i] - символ это "подстрока" и паскаль тут непричем
sts
энтузиаст
Сообщения: 549
Зарегистрирован: 04.04.2008 12:15:44
Откуда: Тольятти

Сообщение sts »

zub писал(а):Я не говорю что сломает, я говорю что она ненужна

это вам ненужна, а для сохранения преемственности паскаля нужна.
изначальный WideString <> UTF-16, поэтому он и не назван UTF16String, WideString это от винды, в старых версиях было строго по два байта на символ, в висте он стал равен UTF-16.
Аватара пользователя
Лекс Айрин
долгожитель
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград
Контактная информация:

Сообщение Лекс Айрин »

sts писал(а):...так то строковых констант вообще не должно быть в исходниках.


Мы живем далеко не в идеальном мире.. подскажите как можно организовать разбор строки без сравнения со строковыми константами?

Ведь, как минимум, где-то должен храниться список лексем.
sts
энтузиаст
Сообщения: 549
Зарегистрирован: 04.04.2008 12:15:44
Откуда: Тольятти

Сообщение sts »

zub писал(а):Символ это не s[i] - символ это "подстрока"

и что?, как это мешает?
zub писал(а): и паскаль тут непричем

как раз то причем, его дело учесть что символ может быть переменного количества байтов, благо это несложно.
Аватара пользователя
Лекс Айрин
долгожитель
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград
Контактная информация:

Сообщение Лекс Айрин »

sts, а она сильно нужна, эта преемственность? Это ведь чемодан без ручек... да еще и набитый хламом.
sts
энтузиаст
Сообщения: 549
Зарегистрирован: 04.04.2008 12:15:44
Откуда: Тольятти

Сообщение sts »

Лекс Айрин писал(а): а она сильно нужна, эта преемственность?

странный вопрос, конечно да.
Лекс Айрин писал(а):Это ведь чемодан без ручек... да еще и набитый хламом.

в том то и дело, ручки есть, колесики на чемодане хотелось бы сохранить.

Добавлено спустя 1 минуту 18 секунд:
не все могут, в лёт, таскать чемоданы, дети например.
zub
долгожитель
Сообщения: 2890
Зарегистрирован: 14.11.2005 22:51:26
Контактная информация:

Сообщение zub »

sts писал(а):WideString это от винды, в старых версиях было строго по два байта на символ, в висте он стал равен UTF-16.

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

sts писал(а):и что?, как это мешает?

мне никак. это нужно учитывать и проблем сразу поубавится

sts писал(а):как раз то причем, его дело учесть что символ может быть переменного количества байтов, благо это несложно.

как вы предлагаете это реализовать? введя под каждый символ одинаково много байт, чтоб хватило каждому китайцу и с заделом на инопланетян? или при доступе к s[10мегабайт] лопатить всю строку с начала в рантайме разбивая на символы?
sts
энтузиаст
Сообщения: 549
Зарегистрирован: 04.04.2008 12:15:44
Откуда: Тольятти

Сообщение sts »

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

хм, непонятно к чему вы это написали, смысл высокоуровневого языка программирования, обобщить доступ к данным, хранение строк, в паскале, отдана компилятору именно по этому там не просто PChar, а String и его вариации
zub писал(а):мне никак. это нужно учитывать и проблем сразу поубавится

вы же толькочто писали
zub писал(а):Я не говорю что сломает, я говорю что она ненужна

что проблем нету

zub писал(а):как вы предлагаете это реализовать? введя под каждый символ одинаково много байт

как обычно, в зависимости от типа строк, как щас сделано, там просто не доделали (насколько я понял)
zub
долгожитель
Сообщения: 2890
Зарегистрирован: 14.11.2005 22:51:26
Контактная информация:

Сообщение zub »

sts писал(а):как обычно, в зависимости от типа строк, как щас сделано, там просто не доделали (насколько я понял)

сейчас есть string с 16 битным юникодом, в которых [i] в большинстве случаев символ, но экзотические символы таки занимают [i]..[i+n] - так уж устроен utf16, ничего тут неподелаешь
есть ansistring c utf8, [i] там символ только в диапозоне 0..127, остальное многобайтовое, для них есть utf8pos utf8copy и т.д. (т.е. "посимвольная" поддержка не на стороне компилятора) если уж приспичило повозится с символами.

что надо еще чтоб паскаль стал паскалем привычным для вас?
Откуда ожидания что для utf8 строк должна быть посимвольная индексация в компиляторе? кто когда это декларировал?
Ответить