Что именно?Сообщение от Vitamin
Это ругательное слово?
А сам подход конфигурации автозагружаемых плагинов?
Что именно?Сообщение от Vitamin
Это ругательное слово?
А сам подход конфигурации автозагружаемых плагинов?
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
В примере - одна программа.Сообщение от elf/2
Ведь могут одни библиотеки использовать другие?
1. Надо загрузить в регистр хэндл библиотеки.Сообщение от acidrain
2. Косвенный переход медленнее.
3. Регистр недоступен для передачи аргумента.
У меня другое мнение.Сообщение от elf/2
Вон какие RAM-диски себе отгрохали. И всё ради комфорта работы.
По сравнению с этим одна страница - ерунда.
извиняюсь, невнимательно прочиталСообщение от captain cobalt
однако, иметь несколько версий одной библиотеки на диске - это суровая необходимость. иначе получим неработающие программы (тот самый dll hell)
1. +3.Сообщение от captain cobalt
Код:
lea GFXname(pc),a1
jsr -$228(a6) ; OpenLibrary()
Сколько вам надо регистров для передачи данных? 1 регистр из 16 32 битных доступных на момент перехода - это много?
2. кто вам сказал? это не з80 и не х86.
Моя позиция:Сообщение от elf/2
1. Каждая библиотека должна быть одна. На диске и в памяти.
2. Нужен контроль целостности.
3. Если совместимость достаточна - должно компоноваться.
4. Всё остальное - проблемы программистов.
есть старая, но очень нужная программа требующая main.lib.1.0Сообщение от captain cobalt
поставили новую программу, которой нужна main.lib.10.4
как программист может эту проблему решить?
Я лишь высказываю идею.Сообщение от GriV
Вон, Vitamin говорит что "не противоречит".
Динамический компоновщик.Сообщение от GriV
Загрузчик.
Что ещё нужно?
Попробуем объяснить иначе.Сообщение от GriV
Одни модули используют другие модули. Все модули в целом образуют иерархию. Модули более высокого уровня зависят от модулей нижних уровней. Но модули нижних уровней не зависят от модулей высших уровней. Программа зависит от библиотеки. Но библиотека не зависит от программы.
Если так будет понятнее, мы можем пронумеровать уровни иерархии. Вот например в iS-DOS "уровни ядра" - пронумерованы. И имеется документированный способ выгрузить несколько верхних уровней, чтобы освободить память. Некоторые тяжёлые программы делают. При этом нижние уровни не умирают.
Теперь пусть у нас есть динамический компоновщик. Всё точно так же. Только "ядро" и "уровни" не нужны, а есть просто модули.
Дело было так.Сообщение от GriV
Когда программист писал свою программу, библиотека B использовала C1.0.
И только после этого разработчики B выпустили новую версию, совместимую с предыдущей, но использующую C2.0. Программист не виноват.
Именно в этом смысл этого примера.
Совместимость по версии на один уровень нетранзитивна на несколько уровней.
Нужен пресс-релиз для народа.Сообщение от GriV
![]()
Да, пример я понялСообщение от captain cobalt
Тем не менее, можно при помощи модульной структуры и этот момент обойти - кажется здесь уже говорилось про это - собрать модуль А с С1.0 и В с С2.0 - в итоге выйдет два модуля - расширенный А и расширенный В, причём естественно что такого рода изврат нужен только в случае, если кто-то нарочно или нет спровоцировал указанный развал библиотек по версиям.
В том то и дело, что простая система-компоновщик может перерасти в целую систему, как это было с ис-досом (вот и вы на него ссылаетесь), витамин же предлагает просто систему облегчения стараний.Сообщение от captain cobalt
Тогда это конструктив %-)))))))Сообщение от captain cobalt
Хорошо.Сообщение от acidrain
Система команд действительно лучше подходит для таких вызовов.
Зато NOP - и тот два байта.И команды имеют разную длину.
Короче.
Такой подход плохо подходит для "убогих процессоров". Правильно? Тогда зачем столько разговоров о нём.
Значение регистра убивается.Сообщение от acidrain
Необязательно именно передавать аргумент.
Может мы хотели просто, чтобы в нём хранилось число и не испортилось от вызова.
На мой взгляд, сверхцель динамической компоновки - максимально устранить дублирование функциональности.Сообщение от elf/2
Ещё раз вспоминаем, что на спеке почти весь код вылизан. Нужно лишь закатать его в библиотеки.
Ответ на вопрос - нужно исправлять "старую программу".
В моих материалах ничего нет. А что говорит maintainer?Сообщение от Vitamin
Зато такое уже лет десять есть в ZXASM:Наиболее полезна директива IFUSED,
которая позволяет создавать библиотеки
подпрограмм в исходных ассемблерных
текстах, так что из всей библиотеки
скомпилированы будут лишь те подпрог-
раммы, к которым осуществлялось обра-
щение.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)