Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Предложение отказаться от ASM версии


Страницы:   1 2 3

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]

Не нужен тебе, не значит что не нужен.


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо