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-18 11:39:00) [21]

D[u]fa: На данный момент KOL-CE и является тем, что будет после возможного объединения с основной веткой, т.к. по мере выхода новых версий KOL, я произвожу слияние изменений с основной веткой. KOL-CE в данный момент не использует асм версию и не предназначен для такого использования. И, как я уже писал:
я кое-что исправил/улучшил в пас версии и у меня нет желания делать то же самое в асм версии, т.к. я ее не использую. Поэтому если включить асм версию для KOL-CE и скомпилить под Дельфи, то работать будет все не так или вообще не будет работать.
Таким образом имеем разную функциональность в асм и пас версиях...

misha_shar: Хоть кто-то поддерживает :)


misha_shar   (2007-09-18 10:31:00) [22]

Я тоже считаю что в большенстве случаев ASM ненужен. Трудоемкость сопровождения двух версий высокая а преимущество сомнительно. Я думаю что использование ASM оправдано только в отдельных вспомогательных программках их и написать полностью на ASM. А в Controlах и там где ASM версия не дает существенного прироста скорости использовать ASM никакого смысла нет.


D[u]fa   (2007-09-18 09:11:00) [23]

Yury Sidorov, а нельзя просто для KOL-Ce оставить пас версию и просто не юзать асм версию? в обычном коле буит две версии, а в СЕ тока пас... не пойму зачем все всех на пас перекидывать


SPeller (work)   (2007-09-18 04:04:00) [24]


> а с какой такой радости ВСЕ пользователи должны получить
> даже один лишний байт кода ???

С такой же, с какой получают ненужный блокнот с виндой. Потому что всем не угодишь.


SPeller (work)   (2007-09-18 03:46:00) [25]

Да, но wince?


Galkov   (2007-09-17 23:18:00) [26]

Существуют два разных подхода к разработке.
Они отличаются на уровне воспитания и философии - поэтому, никто никого ни в чем не убедит.
Дай бог нам хотя бы просто понять друг друга :)

Первый: делается "разовое изделие", и во главу угла, именно по этой причине - ставится скорость разработки. При этом подходе, качество изделия, как правило, игнорируется. Лишь бы выполнялись показатели функционирования.

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

Вот собственно и все. Просто следует понимать чего ты делаешь.
Мне скажем, показалось, что тот день затрат на ASM версию для Align - ничего не стоит по сравнению с затратами ВСЕХ пользователей KOL, которые будут иметь 1K кодов вместо 600 байт.
Поэтому взял, и сделал...

Ну или по другому.
В первомварианте имеет смысл вопрос: а надо ли кому-то этот выигриш в 400 байт ???

А во второмглавный совершенно другой вопрос: а с какой такой радости ВСЕ пользователи должны получить даже один лишний байт кода ??? Или целых 3 тика проца потерь в быстродействии ??? И рассуждения о том, что это "совсем немножко" - просто неуместны в таком подходе.


Thaddy   (2007-09-17 23:03:00) [27]

It adds a lot of code,,,,
And It can already be used with KOL


GMax   (2007-09-17 22:28:00) [28]

fastlib именно так и работает


Vladimir Kladov   (2007-09-17 21:48:00) [29]

Воспользоваться мало. Необходимо воспользоваться так, чтобы любой код, использующий вызов Move (и со ссылкой на kol.pas в uses) автоматически перенаправлялся на этот вариант move.


exero   (2007-09-17 21:19:00) [30]

Владимир, если Вас интересует скорость, то вопользуйтесь FastMM4 и FastMove. FastMove использует MMX, SSE, SSE2, SSE3 оптимизацию, в зависимости от процессора. Результат получится несколько более тяжелый, но скрость возрастет.


Thaddy   (2007-09-17 20:46:00) [31]

I propose something different:

In some ways I agree with Yuri, In some ways with Vlamidimr.

But there is a solution that I use myself for sometime internally:
I create "clean" versions by using the dipp.exe preprocessor to create the versions I want. I suggest a development tree is made:

-- kol main branch
  |--Kol pascal branch //generated with DIPP
     |-- kol pas barnch for FPC (with a diff/merge)
         |-- kol pas branch for kolce (with a diff/merge)


That would mean maintainabilty for everyone.


Vladimir Kladov   (2007-09-17 20:42:00) [32]

А я буду добавлять новые вещи на ассемблере. Меня интересует сейчас даже не компактность, а скорость. Я вот сделал сегодня заменитель для системной процедуры move, с оптимизацией на mmx. Дает 2-3% прироста скорости на смешанном тесте. И то хлеб. Иногда процентов не хватает, чтобы в кадр уложиться.


SPeller   (2007-09-15 06:17:00) [33]

Предлагаю не писать новые изменения в асм, и постепенно выкидывать тот асм-код, который перестает соответствовать пас-коду. И Юрий будет доволен, дав КОЛ поддержку win-ce, и homm и другие принципиальные поклонники асма тоже не будут ущемлены. Захотят оставить больше асм-кода - переведут изменения в асм и пришлют Владимиру.


homm   (2007-09-14 23:30:00) [34]

> ASM код и так почти весь в отдельном файле, а слиянию мешает
> рассинхронизация текущего PAS кода в KOL-CE с ASM кодом.

Чем она тебе мешает???


Yury Sidorov   (2007-09-14 22:57:00) [35]

ASM код и так почти весь в отдельном файле, а слиянию мешает рассинхронизациятекущего PAS кода в KOL-CE с ASM кодом. Другими словами я менял только PAS код, а ASM код остался без изменений. Все.


ANTPro   (2007-09-14 19:45:00) [36]

> [10] Yury Sidorov   (14.09.07 15:40)
> По моему мнению, асм версия в таком объеме как сейчас мешает развитию.

Совсем не ASM версия мешает развитию.


> [10] Yury Sidorov   (14.09.07 15:40)
> Как ни печально, но судя по реакции на мое предложение,
> KOL-CE навсегда останется отдельной веткой

Что мешает вынести весь Win32ASM в отдельный файл, а в КОЛ сделать пару больших {$ifdef}?


Galkov   (2007-09-14 16:08:00) [37]


> На остальные вопросы ответы можно найти выше

Не нашел.


> Все-таки непонятно: кто мешает обложить изменения, не сопровождаемые в ASM, условной компиляцией ???


Yury Sidorov   (2007-09-14 15:56:00) [38]


> > Думаю, Владимир, в этом убедился (убедится) разрабатывая
> свою зумер.
>
> Ты в серьез считаешь, что это првый/самый крупный проект
> Владимира? :))))

Я думаю это первый крупный проект, который используется большим количеством пользоваетелей на разных компах и где вероятность проявления различных глюков очень повышается.

На остальные вопросы ответы можно найти выше. Разводить флуд не буду...


homm   (2007-09-14 15:49:00) [39]

> Думаю, Владимир, в этом убедился (убедится) разрабатывая свою зумер.

Ты в серьез считаешь, что это првый/самый крупный проект Владимира? :))))


> KOL-CE навсегда останется отдельной веткой :(

И что припятствует его все-же попытаться объеденить? Религия, запрещающая находиться ASM коду, в модуле, над которым ты работаешь?


> Да, асм код уже есть, но его нужно сопровождать и тянуть
> за собой дальше...
Сопровождать? Писать документацию, или объяснять ка он работает? Тянуть? Из интернета что-ли скачивать? Остальный аргументы исскли, остались громкие фразы, за которыми ничего нет?


Yury Sidorov   (2007-09-14 15:41:00) [40]

homm: Да, асм код уже есть, но его нужно сопровождать и тянуть за собой дальше...


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

Наверх

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