Конференция "KOL" » Про дружбу KOL и FPC
 
  • Galkov (06.07.09 18:49) [0]
    У меня пока 2 конкретных вопроса
    1) StrScan - падает нафиг под FPC
    2) TObj.Destroy - нестыковка с конструкторами

    По п.1 там как-то все понятно - у FPC особо тонкое понимание как надо выходить из ф-ии. Тут конкретное предложение: заменить RET на, например - INC EAX
    Вроде это единственный RET в ф-иях, не имеющих PAS-версии

    По п.2 - мне не все понятно. Все конструктора контролов идут через New, следовательно, завершением должно быть бы dispose ...
    И что занимательно: так оно и было в "ранних версиях" KOL. Получается, что это сегодняшнее FreeMem не есть древний артефакт, а вновь сделанное.
    Непонятка, неправильная какая-то.
    Отсюда вопрос: а что такое случилась, что произошла замена dispose на FreeMem ???

    Без понимания причин такового действа, трудно выработать какое-то компромисное решение :(
    А надо бы.
  • Yury Sidorov (07.07.09 12:44) [1]
    С FPC нужно использовать KOL-CE. Там, кроме этих проблем, исправлено еще много других.
  • Galkov © (07.07.09 14:21) [2]
    Зравствуйте, приехали :)

    Вообще-то, меня в большей степени интересуют знания
    Например, правильно, или нет - использование dipose после new. Может я чего-то недопонимаю - это гораздо страшнее, чем "упавшее приложение".

    Если правильно - это один разговор. И надо разбираться далее, пополнять свое образование, например.
    Если нет, то причем тут конкретное имя ветки - это положено фиксить в ЛЮБОЙ библиотеке.
    ((btw: да, я помню, первый раз именно на эту проблему мне именно Вы и указали, коллега))

    "Много других" - это очень интересно, конечно. Но ведь очень важным является понимание, почему это множество не зафиксено в штатной версии.

    Есть зание о какой-то баге => появляется знание о ее фиксинге => проводится фикс этой баги, независимо от ее локализации
    Как-то мне представляется это более правильным, чем создавать различия не только в использовании WinApi, но и в объеме пофиксенных багов.
    ИМХО :)
  • Galkov © (07.07.09 14:24) [3]

    > использование dipose после new

    sorry - хотел написать "использование FreeMem после New" :)
  • Yury Sidorov (07.07.09 16:12) [4]
    Использование FreeMem после New является хаком. Это сделано, чтобы не производилась финализация полей типа строка итд при уничтожении объекта. Это экономит какое-то количество байт кода.
    В FPC такой хак не работает, поэтому нужно использовать корректную связку New/Dispose.

    Портировать исправления назад в основную ветку KOL у меня нет желания. Тем более я отказался от ASM версии в KOL-СЕ...
  • Sapersky (07.07.09 16:21) [5]
    Если "полей типа строка" (а также дин. массивов и прочих управляемых указателей) нет - тогда без разницы, компилятор при этом всё равно заменяет Dispose на FreeMem.
    Если есть - можно заранее прибить их вручную. Собственно, в некоторых случаях (наследование) их приходится прибивать вручную (это рекомендуется в KOLBook, насколько помню), т.к. управляемые указатели не полностью совместимы с object (автоматически освобождаются поля только последнего уровня наследования).
  • Sapersky (07.07.09 16:33) [6]
    Да, пост [5] относится к Delphi, как в FPC - не в курсе.
  • Galkov © (07.07.09 16:58) [7]
    Ага, понял. Спасибо парни, распояснили.

    Однако, Хак - он и в Африке Хак. Грубо говоря корректная работа Хака не гарантирована даже в Дельфи. Выйдет от дяденьки Бормана какой-нибудь супер-пупер-релиз - и сосите фикус в саду у дяди Вани....

    Не, Хак - это не правильно.
    Противоречит профессиональному принципу: Не планируй себе проблемы, попробуй сначала справиться с теми, которые возникнут и без планирования :)

    Вот интересно теперь, что на это скажет "начальник транспортного цеха" .......
  • Vladimir Kladov © (08.07.09 15:30) [8]
    От Борланда наверное уже ничего не выйдет. То что выходит (вроде turbo) - это уже не от него. В любом случае KOL лучше использовать со старыми Delphi, оптимально - версия 6. Для программинга под новые Windows 7 и далее все равно придется от win32 отказываться. Другое дело, помрет ли win32. Что-то сомнительно.
 
Конференция "KOL" » Про дружбу KOL и FPC
Есть новые Нет новых   [134431   +10][b:0][p:0]