Speccy - наш выбор!  
ZXPRESS
ZXTUNES
Virtual TR-DOS
World of Spectrum
ZX Spectrum Old Demos •

Go Back   Speccy - наш выбор! > ZX Spectrum Software > Программирование

Reply
 
Thread Tools Display Modes
Old 10th October 2006, 23:13   #1
Vitamin C++
 
Vitamin's Avatar
 
Join Date: 14th January 2005
Location: Таганрог, Россия
Posts: 3,709
Thanks: 423
Thanked 1,343 Times in 759 Posts
Vitamin has a brilliant futureVitamin has a brilliant futureVitamin has a brilliant futureVitamin has a brilliant futureVitamin has a brilliant futureVitamin has a brilliant futureVitamin has a brilliant futureVitamin has a brilliant futureVitamin has a brilliant futureVitamin has a brilliant futureVitamin has a brilliant future
Default Библиотеки-модули-программы...

Захотелось мне тут помечтать. Вот и размечтался....

Перелопачивал тут намедни в очередной раз свою библиотеку модулей, попутно одним глазом посматривая в разные доки на тему независимых релоцируемых модулей для разных платформ. И представил себе такую ниибаццо(С) вдохновляющую картину.
Каждый спектрумист имеет у себя некий системный диск. На него свалены самые нужные в повседневной жизни программы- коммандеры, редакторы, прочий хлам. Обычно нужного софта там скапливается порядком- иногда и на целый диск получается. А ведь, если разобраться, большая часть кода всех утилит состоит из пользовательского интерфейса, дискового функционала, какого-то графического движка.
А теперь представим себе системный диск, на котором находится несколько десятков бейсик-файлов размером от 3 до 10 секторов и кучка библиотек, используемых в разном сочетании разными программами. (Ясен перец, в случае винта и единой ФС это выглядит вообще вкусно). Бейсик-файл содержит загрузчик уникального для каждой программы кодового блока, распаковщик (в общем случае), список используемых библиотек и линковщик. После запуска загрузчик распаковывает в память кодовый блок, ищет, распаковывает и линкует к нему найденные модули и запускает все это дело.
Понятно, что при таком подходе будут как плюсы, так и минусы. Начну с первых:
+ экономия дискового пространства (не всегда, но в общем случае)
+ простота исправления одного глюка в ряде программ (и соотвецно добавления новых глюков %)))
+ разработчикам можно меньше заморачиваться- главное иметь библиотеку, ее интерфейс и работать с ней
Пока хватит, можно к минусам перейти:
- много (и долго!) придется елозить по диску пока соберутся нужные библиотеки, а потом слинкуются
- куча мелких файлов может и займут мало места, но быстро забьют каталог
- трудности с переносом и копированием программ
- возможные проблемы с совместимостью- разные версии, разные интерфейсы...
Тоже пока хватит.
Теперь можно указать некоторые пути удаления минусов.
1) сжимать библиотеки пакерами. Благо там внутри довольно много "лишней" информации может быть
2) собирать набор библиотек в архив и искать уже в нем (уже не говорю о кешировании каталога для быстрого поиска)
3) утилита автосборщик, собирающая из загрузчика и кучки библиотек единый упакованный моноблок, запускаемый на любой машине, решает третий минус

Вот, в принципе, все. На самом деле, минусов и плюсов куда больше, чем я тут указал.
Что скажет многоуважаемый All?
Vitamin is offline   Reply With Quote
Old 10th October 2006, 23:24   #2
Member
 
jim's Avatar
 
Join Date: 31st March 2005
Location: Новосибирская область
Posts: 87
Thanks: 0
Thanked 20 Times in 2 Posts
jim is on a distinguished road
Default

дело нужное. я так же мыслю. давно пора унифицировать спексофт. 21 век на дворе.
jim is offline   Reply With Quote
Old 11th October 2006, 08:37   #3
Activist
 
Jukov's Avatar
 
Join Date: 3rd December 2005
Location: Серов
Posts: 471
Thanks: 21
Thanked 65 Times in 33 Posts
Jukov will become famous soon enough
Default

Я пытался сделать библиотеку как раз для этого дела, чтоб были скрол бары, менюшки, мышь, удобный вывод текста, в котором присутсвуют все символы ГОСТ-альтернативной кодировки. Всё это вылилось в одной программе - CUTTER. Дело застопорилось на дисковых процедурах. Идею использовать одну библиотеку для всех системных программ одназначно поддерживаю.
__________________
Кворум-192, Кворум-128 CP/M, Кворум-64, ZS-Scorpion 256 Turbo+&Caro ZX_MC, Мастер48К
Jukov is offline   Reply With Quote
Old 11th October 2006, 10:04   #4
Activist
 
captain cobalt's Avatar
 
Join Date: 13th March 2005
Location: Пермь
Posts: 294
Thanks: 0
Thanked 3 Times in 3 Posts
captain cobalt is on a distinguished road
Default

Ещё можно выходить из программы не по RESET, а в ось. При этом библиотеки остаются в памяти. При запуске следущей программы не нужно опять подкачивать библиотеки, достаточно загрузить программу и слинковать её с библиотеками в памяти.
captain cobalt is offline   Reply With Quote
Old 11th October 2006, 10:20   #5
Vitamin C++
 
Vitamin's Avatar
 
Join Date: 14th January 2005
Location: Таганрог, Россия
Posts: 3,709
Thanks: 423
Thanked 1,343 Times in 759 Posts
Vitamin has a brilliant futureVitamin has a brilliant futureVitamin has a brilliant futureVitamin has a brilliant futureVitamin has a brilliant futureVitamin has a brilliant futureVitamin has a brilliant futureVitamin has a brilliant futureVitamin has a brilliant futureVitamin has a brilliant futureVitamin has a brilliant future
Default

Quote:
Originally Posted by captain cobalt
Ещё можно выходить из программы не по RESET, а в ось. При этом библиотеки остаются в памяти. При запуске следущей программы не нужно опять подкачивать библиотеки, достаточно загрузить программу и слинковать её с библиотеками в памяти.
Библиотеки под ось и библиотеки в описанном выше виде- разные вещи. Для обычной программы требуется определенный набор библиотек, лишних не надо- на них просто нет памяти. Тем более что после стартовой линковки они уже не пригодны для дальнейшего использования в другой библиотеке- они будут настроены на конкретный адрес.
Ну вдобавок можно реализовать API для runtime-линковки модулей.
Vitamin is offline   Reply With Quote
Old 11th October 2006, 12:09   #6
Activist
 
captain cobalt's Avatar
 
Join Date: 13th March 2005
Location: Пермь
Posts: 294
Thanks: 0
Thanked 3 Times in 3 Posts
captain cobalt is on a distinguished road
Default

Quote:
Originally Posted by Vitamin
Библиотеки под ось и библиотеки в описанном выше виде- разные вещи.
Тем не менее, следует хотя бы рассмотреть возможность брать библиотеки не с диска, а из памяти.
Quote:
Originally Posted by Vitamin
Для обычной программы требуется определенный набор библиотек
Ещё есть хорошая и полезная штука - плагины.
Их набор заранее неизвестен и может настраиваться пользователем.
Quote:
Originally Posted by Vitamin
лишних не надо- на них просто нет памяти
Это у 128 может не хватит.
А у 256 и тем более 512 и выше запросто может хватить не только на все библиотеки, но и на несколько программ, чтобы запускать их из памяти.

Не следует рассуждать о 128-only.
Quote:
Originally Posted by Vitamin
Тем более что после стартовой линковки они уже не пригодны для дальнейшего использования в другой библиотеке- они будут настроены на конкретный адрес.
Непонятно.
Библиотека сидит в памяти, настроенная на адрес.
Ну и пусть там сидит.
Это её вновь загружаемых клиентов надо линковать с учётом этого адреса.
captain cobalt is offline   Reply With Quote
Old 11th October 2006, 12:17   #7
Administrator
 
CityAceE's Avatar
 
Join Date: 13th January 2005
Location: г. Владивосток
Posts: 2,247
Thanks: 49
Thanked 787 Times in 210 Posts
CityAceE has much to be proud ofCityAceE has much to be proud ofCityAceE has much to be proud ofCityAceE has much to be proud ofCityAceE has much to be proud ofCityAceE has much to be proud ofCityAceE has much to be proud ofCityAceE has much to be proud of
Default

А вот здесь я не про то же говорил?
__________________
С уважением, Станислав.
CityAceE is offline   Reply With Quote
Old 11th October 2006, 12:55   #8
Moderator
 
Join Date: 15th January 2005
Location: USSR
Posts: 2,035
Thanks: 378
Thanked 362 Times in 228 Posts
Wlodek is a glorious beacon of lightWlodek is a glorious beacon of lightWlodek is a glorious beacon of lightWlodek is a glorious beacon of lightWlodek is a glorious beacon of light
Default

Если я отдам все исходники в формате GENS3/GENS4, без комментариев или с комментариями матом, это новых программистов устроит?
Готов.
Сам уже ничего не помню, прошло около 15 лет.
Извиняюсь.
Wlodek is offline   Reply With Quote
Old 11th October 2006, 16:04   #9
Vitamin C++
 
Vitamin's Avatar
 
Join Date: 14th January 2005
Location: Таганрог, Россия
Posts: 3,709
Thanks: 423
Thanked 1,343 Times in 759 Posts
Vitamin has a brilliant futureVitamin has a brilliant futureVitamin has a brilliant futureVitamin has a brilliant futureVitamin has a brilliant futureVitamin has a brilliant futureVitamin has a brilliant futureVitamin has a brilliant futureVitamin has a brilliant futureVitamin has a brilliant futureVitamin has a brilliant future
Default

Quote:
Originally Posted by CityAceE
А вот здесь я не про то же говорил?
О том же. Но с точки зрения исходников. Здесь же разговор идет о бинарных библиотеках.
"Конструктор" из исходников- первый шаг к этому. Имея на руках только бинарник и список точек входа исчезает проблема ковыряния и разбирания что и как работает (и соотвецно исчезают соблазны доделать все под себя).
Vitamin is offline   Reply With Quote
Old 11th October 2006, 16:16   #10
Activist
 
acidrain's Avatar
 
Join Date: 1st March 2005
Location: Russia, Krasnodar
Posts: 430
Thanks: 9
Thanked 4 Times in 4 Posts
acidrain is on a distinguished road
Default

Quote:
Originally Posted by Vitamin
О том же. Но с точки зрения исходников. Здесь же разговор идет о бинарных библиотеках.
"Конструктор" из исходников- первый шаг к этому. Имея на руках только бинарник и список точек входа исчезает проблема ковыряния и разбирания что и как работает (и соотвецно исчезают соблазны доделать все под себя).
Именно об этом я и говорил 100 лет назад. Shaos даже сделал многое в плане реализации данной мысли. Правда для спринтера, но применимо и для спека. За основу только не берите пц и линух вид либл. Используйте амижные. опъяснять не пуду пачаму=)))
А про либлы от Shaos'a - спросите у него на его форуме http://www.nedopc.org/forum/
__________________
http://amigasc.nm.ru

Free coder and hardwareman
Amiga addicted
acidrain is offline   Reply With Quote
Reply


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +4. The time now is 21:53.


Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Map Яндекс.Метрика