![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Предложение отказаться от ASM версии
Yury Sidorov © (2007-09-14 13:39:00)Моя ветка KOL-CE уже достаточно стабильна и в ближайшем будущем хотелось бы объединить мою и основную ветки. Кроме портирования под Lazarus и wince мной было сделано много исправлений и улучшений (например, скорость ScrollBox-а).
Но объединению мешает ASM версия, которую я у себя совсем не трогал. Т.е. PAS версия абсолютно рассинхронизирована с ASM версией, которая для FPC не используется вообще.
Плюсы ASM версии:
1. Экономия нексольких килобайт кода, но это актуально только для программ типа Hello world.
Минусы:
1. Трудно поддерживать асм и пас версии одновременно. Даже Владимиру Кладову.
2. Иногда асм и пас версии процедур работают по разному. Т.е. вероятность глюков удваивается.
3. У большинства пользователей KOL нет знаний или желания править асм версию.
4. Асм версия не применима для платформы arm-wince.
5. Асм версия не используется в FPC.
6. Асм версия почти не используетя для UNICODE.
Поэтому я предлагаю Владимиру Кладову принять волевое решение и отказаться от ASM версии, начиная с какой-то версии KOL.
Если будет реальная необходимость в экономии нескольких дополнительных килобайт кода в какой-то программе, то всегда можно использовать последнюю версию KOL с поддержкой ASM версии для компиляции этой программы.
Yury Sidorov (2007-09-14 15:40:00) [41]По моему мнению, асм версия в таком объеме как сейчас мешает развитию.
Все-таки асм версия это был (есть?) способ уменьшить код еще больше для приложения типа Hello world. Эдакий proof of concept для KOL. Когда программа вырастает из этого, то +/-10КБ кода роли не играют. Тут большую роль играет безглючность. Думаю, Владимир, в этом убедился (убедится) разрабатывая свою зумер.
Для каких-то критических к скорости участков кода асм версия будет полезна. Но таких участков не так уж и много и сопровождать асм версию будет несложно.
Как ни печально, но судя по реакции на мое предложение, KOL-CE навсегда останется отдельной веткой :(
Galkov (2007-09-14 15:06:00) [42]
> и у меня нет желания делать то же самое в асм версии
Все-таки непонятно: кто мешает обложить изменения, не сопровождаемые в ASM, условной компиляцией ???
homm (2007-09-14 15:03:00) [43]> то ASM код нужно полностью писать заново...
Кому нужно? Он УЖЕ НАПИСАНдля win32, почему его нужно менять или выкидывать?
> Затем, что большинство пользователей в ассемблере не шарят
No problem.
> В этом случае асм версия процедуры отключается и успешно
> забывается...
Потому что нет смысла 10 раз переписывать код, который еше не поностью протестирован, раз. Два: а почему из-за этого нужно отказываться от всего оастального УЖЕ НАПИСАННОГОкода?
> я кое-что исправил/улучшил в пас версии и у меня нет желания
> делать то же самое в асм версии
А что, кто-то требует? Почему изи-за этого нужно выключать УЖЕ НАПИСАННЫЙкод?
Yury Sidorov (2007-09-14 14:40:00) [44]
> > Для процессора arm ассемблерный код от х86 не подходит
> :)
>
> Это минус ASM кода? Т.е. то, что компилятор дельфи не понимает
> моей устной речи является минусом самой речи, и мне от нее
> следует отказаться?
Минус в том, что ASM код не портируемый. Если на код на паскале компилируется под любой поддерживаемый процессор без изменений, то ASM код нужно полностью писать заново...
> > а для всего остального убрать
>
> Зачем?
Затем, что большинство пользователей в ассемблере не шарят и если некий юзер исправил что-то в пас версии и прислал патч, то не всегда есть время у Владимира внести исправления в асм версию. В этом случае асм версия процедуры отключается и успешно забывается...
> > Условная компиляция есть, но проблема в рассинхронизации
>
> > пас и асм версий...
>
> Я так и не могу понять, в чем тут для тебя проблема; Ты
> не будешь синхронизировать для процессора, который его и
> не понимает. Кому плохо?
Как я уже писал, я кое-что исправил/улучшил в пас версии и у меня нет желания делать то же самое в асм версии, т.к. я ее не использую. Поэтому если включить асм верси для KOL-CE и скомпилить под Дельфи, то работать будет все не так или вообще не будет работать.
Поддерживать пас и асм версии очень трудоемко. А искать баги в обеих версиях еще труднее.
homm (2007-09-14 14:29:00) [45]> а для всего остального убрать
Зачем?
> Условная компиляция есть, но проблема в рассинхронизации
> пас и асм версий...
Я так и не могу понять, в чем тут для тебя проблема; Ты не будешь синхронизировать для процессора, который его и не понимает. Кому плохо?
homm (2007-09-14 14:26:00) [46]> Для процессора arm ассемблерный код от х86 не подходит :)
Это минус ASM кода? Т.е. то, что компилятор дельфи не понимает моей устной речи является минусом самой речи, и мне от нее следует отказаться?
Yury Sidorov (2007-09-14 14:21:00) [47]homm: А кто эту синхронизацию делать будет?
Для процессора arm ассемблерный код от х86 не подходит :)
Vladimir Kladov: Возможно логичнее найти некий баланс? Для критических к скорости участков кода оставить асм версию, а для всего остального убрать.
Условная компиляция есть, но проблема в рассинхронизации пас и асм версий...
Vladimir Kladov (2007-09-14 14:14:00) [48]Я категорически буду возражать, поскольку в отдельных случаях asm радикально ускряет работу. Мне он по крайней мере нужнее чем pas-версия.
Не нужен - есть условная компиляция.
homm (2007-09-14 13:59:00) [49]Проблема рассинхронизации обычно решается синхронизайией :)
А почему вообще в минусы ASM кода попало, что он не применим для каких-то платформ? Просто для количества?
homm (2007-09-14 13:58:00) [50]Не нужен тебе, не значит что не нужен.