User Tag List

Страница 12 из 18 ПерваяПервая ... 8910111213141516 ... ПоследняяПоследняя
Показано с 111 по 120 из 320

Тема: Библиотеки-модули-программы...

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,286
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    91
    Поблагодарили
    39 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от elf/2
    а вы так не делайте кстати наличие реестра с общим списком всех библиотек в системе от всего этого не спасает
    Вполне можно так делать. Коренным образом поменялась библиотека- меняется имя/версия и она не прилинкуется "куда не надо". А реестр- это бред.

    Цитата Сообщение от captain cobalt
    Чтобы использовать перегруженные функции, нужно руками прописывать сигнатуры в клиентском коде.
    А чтобы использовать ассемблер надо вообще программы писать ручками! Прикинь, да?

    Цитата Сообщение от captain cobalt
    Утилита, делающая из исходников исходники - это компилятор. Лучше сразу обучить её делать объектные файлы. Тогда "старые ассемблеры" можно отбросить.
    Ну-ну. Никто не выказывал охоты перейти на существующий аласм, зато как только на горизонте нарисуется эфемерный компилятор, так все сразу побегут роняя тапки пользовать его и писать в нем програмы. Уж лучше использовать что есть.

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2

    Регистрация
    14.01.2005
    Адрес
    N.Novgorod
    Сообщений
    803
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vitamin
    Коренным образом поменялась библиотека- меняется имя/версия и она не прилинкуется "куда не надо".
    вот и я о том. у библиотеки должна быть версия, а не у функции сигнатура. в библиотеке лежат связанные между собой функции и библиотека определяется набором функций.

    и линковка должна проходить/отваливаться на основе требований программы к версии библиотеки.

    при этом не важно как мы эти библиотеки находим. насколько мне известно подход к поиску библиотек у винды/линукса различается, но:
    1. можно указать руками где искать при запуске (LD_LIBRARY_PATH)
    2. место специфичное для данной программы (каталог где лежит бинарик)
    3. общая куча (%windir%\system)

    Цитата Сообщение от Vitamin
    А реестр- это бред.
    как сейчас модно писать: +1

  4. #3

    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,286
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    91
    Поблагодарили
    39 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от elf/2
    вот и я о том. у библиотеки должна быть версия, а не у функции сигнатура. в библиотеке лежат связанные между собой функции и библиотека определяется набором функций.
    Сигнатура функции- это как минимум ее имя, как максимум- имя, список и тип передаваемых параметров и версия. Как вариант- хранить хеш вместо сигнатуры. Иначе линковка не имеет смысла. Набор функций в либе тоже может меняться, но только если опять-таки есть возможность вырезать лишнее.

  5. #4

    Регистрация
    13.03.2005
    Адрес
    Пермь
    Сообщений
    294
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vitamin
    есть возможность реализовать перегруженые функции (для этого никаких усилий даже не потребуется), а вот использовать или нет их- это уже личное дело программиста.
    Чтобы использовать перегруженные функции, нужно руками прописывать сигнатуры в клиентском коде.
    Цитата Сообщение от Vitamin
    Да? А таблицы релокации ты как будешь делать? Если ассемблер не поддерживает макросов, то необходимо будет создание дополнительных промежуточных таблиц с адресами адресозависимых точек.
    Утилита, делающая из исходников исходники - это компилятор. Лучше сразу обучить её делать объектные файлы. Тогда "старые ассемблеры" можно отбросить.
    Цитата Сообщение от elf/2
    для того чтобы hell'а не было достаточно иметь возможность хранить несколько версий библиотеки на одной машине. это работает в linux и .net
    Можно ли на спеке позволить себе держать разные версии библиотеки в памяти? Скорее всего нет.

    Поэтому и важно, что если совместимость достаточна - библиотека компонуется. Недостаточна - проблема должна обнаруживаться.

    Каждая библиотека должна быть одна.
    Цитата Сообщение от elf/2
    точно, но вот только где в таком случае будет лежать "реестр"? и как он поможет разрешить проблему
    Пока не ясно.
    Он может лежать на "системном диске", и после загрузки постоянно сидеть в памяти.
    Или же каждый кусок может лежать рядом со своей программой в "файле конфигурации".
    Цитата Сообщение от elf/2
    для того чтобы hell'а не было достаточно иметь возможность хранить несколько версий библиотеки на одной машине. это работает в linux и .net
    Есть ещё один способ хранить несколько версий библиотек на одной машине.

    Компоновать программы статически.
    Цитата Сообщение от elf/2
    тогда просто ради коллекции ссылка
    тоже подкину пару ссылок:
    Вложения Вложения
    • Тип файла: txt links.txt (215 байт, Просмотров: 1175)
    Последний раз редактировалось captain cobalt; 17.10.2006 в 15:31.

  6. #5

    Регистрация
    14.01.2005
    Адрес
    N.Novgorod
    Сообщений
    803
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от captain cobalt
    Можно ли на спеке позволить себе держать разные версии библиотеки в памяти?
    не в памяти, а на диске. соответсвенно когда задаем зависимости от библиотек указываем не только имя но и версию. и компоновщик грузит в память только нужную версию

    Цитата Сообщение от captain cobalt
    Он может лежать на "системном диске", и после загрузки постоянно сидеть в памяти.
    "Можно ли на спеке позволить себе держать ... в памяти?" нужное вставить

    Цитата Сообщение от captain cobalt
    Или же каждый кусок может лежать рядом со своей программой в "файле конфигурации".
    точно, и добавить в каждую программу парсер конфигурашек... "Можно ли на спеке позволить себе держать ... в памяти?"

  7. #6

    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,286
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    91
    Поблагодарили
    39 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от elf/2
    "Можно ли на спеке позволить себе держать ... в памяти?" нужное вставить
    Я тоже было подумал, что черная кошка пробежала дважды, но ты меня опередил %)

    Единственное что полезное вытащил из идей captain cobalt'а- это версионирование на уровне функций, а не модулей целиком. Но это только если будет возможность раздербанивать библиотеки, вытаскивая нужные функции. В противном случае это не имеет смысла.

  8. #7

    Регистрация
    13.03.2005
    Адрес
    Пермь
    Сообщений
    294
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vitamin
    Ну-ну. Никто не выказывал охоты перейти на существующий аласм, зато как только на горизонте нарисуется эфемерный компилятор, так все сразу побегут роняя тапки пользовать его и писать в нем програмы. Уж лучше использовать что есть.
    Ну так нужно писать совместимые с обоими подходами исходники или нет?
    Цитата Сообщение от elf/2
    не в памяти, а на диске. соответсвенно когда задаем зависимости от библиотек указываем не только имя но и версию. и компоновщик грузит в память только нужную версию
    Вообразим себе программу, которая использует библиотеки A и B.
    В свою очередь A использует C1.0, а B использует C2.0
    Цитата Сообщение от elf/2
    точно, и добавить в каждую программу парсер конфигурашек...
    В соответствии с вышеизложенным, конфигурация отрабатывается до момента когда программа вообще получит управление.

  9. #8

    Регистрация
    14.01.2005
    Адрес
    N.Novgorod
    Сообщений
    803
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от captain cobalt
    Вообразим себе программу, которая использует библиотеки A и B.
    В свою очередь A использует C1.0, а B использует C2.0
    у нас уже есть многозадачность?

    Цитата Сообщение от captain cobalt
    В соответствии с вышеизложенным, конфигурация отрабатывается до момента когда программа вообще получит управление.
    у нас уже есть ось? или "компоновщик в вакуме"?

    Цитата Сообщение от Vitamin
    Единственное что полезное вытащил из идей captain cobalt'а- это версионирование на уровне функций, а не модулей целиком. Но это только если будет возможность раздербанивать библиотеки, вытаскивая нужные функции.
    "версионировать" на уровне функции имеет смысл только если мы собираемся использовать одну функцию разных версий в одной программе. а этого надо избегать...

  10. #9

    Регистрация
    13.03.2005
    Адрес
    Пермь
    Сообщений
    294
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от elf/2
    "Можно ли на спеке позволить себе держать ... в памяти?" нужное вставить
    Я объясню.

    Есть код. Есть данные.
    Чтобы код мог обрабатывать данные, они должны быть адресуемы одновременно.

    Теперь мы сталкиваемся со страничной адресацией Speccy.

    Если хранить код в страницах, то он не сможет напрямую адресовать данные в других страницах.

    Если хранить код в нижней памяти, то он сможет эффективно обращаться ко всей памяти через страницы. Именно так чаще всего пишется софт.

    Нижней памяти мало. Поэтому держать там дубли кода - недопустимо.

    Верхней памяти гораздо больше. Особенно на клонах-монстрах. И использовать её для постоянного хранения конфигурационных данных с целью повышения кофморта работы - может быть вполне допустимо.

  11. #10

    Регистрация
    14.01.2005
    Адрес
    N.Novgorod
    Сообщений
    803
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от captain cobalt
    Верхней памяти гораздо больше. Особенно на клонах-монстрах. И использовать её для постоянного хранения конфигурационных данных с целью повышения кофморта работы - может быть вполне допустимо.
    к сожалению в услових критически малых ресурсов приходится думать в первую очередь об эффективности их использования, а не о комфорте работы. как я понимаю даже на клонах-монстрах памяти под пользовательские данные - мало. и отдавать одну-две страницы под парсеры/конфигурашки/реестры - это "преступная халатность"

Страница 12 из 18 ПерваяПервая ... 8910111213141516 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 9
    Последнее: 10.11.2024, 08:26
  2. Управление эмулятором из zx-программы
    от Spectre в разделе Эмуляторы
    Ответов: 42
    Последнее: 29.08.2006, 12:58
  3. Кто может помочь в создании программы
    от Лебедев в разделе Люди
    Ответов: 9
    Последнее: 22.07.2006, 09:41
  4. Программы для модемов
    от p@lex в разделе Софт
    Ответов: 21
    Последнее: 11.02.2006, 21:36

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •