Формат объектных файлов

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

MageSlayer
постоялец
Сообщения: 216
Зарегистрирован: 07.09.2006 12:30:44

Сообщение MageSlayer »

К этой красоте еще бы прикрутить динамическую загрузку модулей/классов на которые уже есть ссылки и можно было бы писать программы без перезапуска процесса в ран-тайме.
Мечта, как хороший интерпретатор ;)
Представляю как улучшилась бы производительность программистов.
Аватара пользователя
shade
энтузиаст
Сообщения: 879
Зарегистрирован: 21.02.2006 19:15:48
Откуда: http://shamangrad.net/
Контактная информация:

Сообщение shade »

В полной мере диначескую загрузку врядли, а вот фабрику классов вполне можно сделать ;)

Например, есть базовый класс с виртуальным конструктором, то можно по имени подгружать объектный модуль класса, и через виртуальный конструктор создавать экземпляр.
MageSlayer
постоялец
Сообщения: 216
Зарегистрирован: 07.09.2006 12:30:44

Сообщение MageSlayer »

shade

Фабрику... или интерфейс.
Да, это идея. Надо будет попробовать. Обернуть это препроцессором типа m4 и в релизе отключать динамическую загрузку.
Спасибо, коллега. Давно ищу возможность такой технологии.
Bupyc
постоялец
Сообщения: 137
Зарегистрирован: 29.08.2007 18:22:42

Сообщение Bupyc »

MageSlayer писал(а):К этой красоте еще бы прикрутить динамическую загрузку модулей/классов на которые уже есть ссылки и можно было бы писать программы без перезапуска процесса в ран-тайме.
Мечта, как хороший интерпретатор ;)
Представляю как улучшилась бы производительность программистов.


У меня такой механизм на *.bpl в дельфе реализован.
Аватара пользователя
Cheb
энтузиаст
Сообщения: 994
Зарегистрирован: 06.06.2005 15:54:34
Контактная информация:

Сообщение Cheb »

и можно было бы писать программы без перезапуска процесса в ран-тайме.
Представляю как улучшилась бы производительность программистов.

Это если только алгоритмы менять. А если в класс захотелось новое поле добавить? Или убавить? Я ради этого целый супер-дупер велосипед склепал. 8) Только времени развивать нет :cry:

Вообще, чувствую, бродит, бродит по Европе призрак коммунизма. То от одного, то от другого слышу, что что-то подобное реализовал.
MageSlayer
постоялец
Сообщения: 216
Зарегистрирован: 07.09.2006 12:30:44

Сообщение MageSlayer »

Bupyc
У меня такой механизм на *.bpl в дельфе реализован.


Ну да, как я понимаю если разбить код интерфейсами или как советовал shade - фабриками, то в принципе решение.

Cheb

Это если только алгоритмы менять. А если в класс захотелось новое поле добавить? Или убавить? Я ради этого целый супер-дупер велосипед склепал. Только времени развивать нет


Ну чтобы добавить - можно использовать более или менее интеллектуальный препроцессор ;). Типа если приложение не запущено, то поля добавляются непосредственно в объявление класса, если же запущено, то писать/читать в объект по типу перловского хэша (ключ-значение).
Короче, как там говорил один умный товарищ - "в каждом более или менее крупном проекте есть кривая, тормозная и т.д. реализация Лиспа" ;)

А убавить, это типа уже рефакторинг. Вряд ли так сильно нужно. Это как пересаживать сердце пациенту в сознании, хлопотно больно ;)

Только времени развивать нет


Ну дык, а для чего еще нужен open-source? :wink:

Вообще, чувствую, бродит, бродит по Европе призрак коммунизма. То от одного, то от другого слышу, что что-то подобное реализовал.


Правильно чувствуете, коллега, чем мы, использующие компиляторы, не люди? :)
Аватара пользователя
shade
энтузиаст
Сообщения: 879
Зарегистрирован: 21.02.2006 19:15:48
Откуда: http://shamangrad.net/
Контактная информация:

Сообщение shade »

MageSlayer писал(а): Это как пересаживать сердце пациенту в сознании, хлопотно больно

Хм... так хлопотно или больно? :lol:

{$PS извиняюсь за офтопик }
MageSlayer
постоялец
Сообщения: 216
Зарегистрирован: 07.09.2006 12:30:44

Сообщение MageSlayer »

shade писал(а):
MageSlayer писал(а): Это как пересаживать сердце пациенту в сознании, хлопотно больно

Хм... так хлопотно или больно? :lol:

{$PS извиняюсь за офтопик }


Для хирурга - хлопотно, для пациента - больно ;)

P.S. Всех с Новым Годом!
Bupyc
постоялец
Сообщения: 137
Зарегистрирован: 29.08.2007 18:22:42

Сообщение Bupyc »

MageSlayer писал(а): Это как пересаживать сердце пациенту в сознании, хлопотно больно ;)


Когда есть такая возможность, это лучше чем приходить на работу ранним утром и менять код сервака до того, как пришли пользователи системы. Так что не хлопотно, и как правило, не больно :)
Аватара пользователя
shade
энтузиаст
Сообщения: 879
Зарегистрирован: 21.02.2006 19:15:48
Откуда: http://shamangrad.net/
Контактная информация:

Сообщение shade »

Bupyc писал(а):Когда есть такая возможность, это лучше чем приходить на работу ранним утром и менять код сервака до того, как пришли пользователи системы.

+1, знакомая ситуация
Особенно когда что-нибудь обязательно идет не по плану :mrgreen:
Аватара пользователя
bw
постоялец
Сообщения: 359
Зарегистрирован: 01.12.2005 10:36:23
Откуда: Усть-Илимск
Контактная информация:

Сообщение bw »

> Особенно когда что-нибудь обязательно идет не по плану
Всегда идет что-то не по плану. Поэтому остаешься и доделываешь работу, а на завтра отгул или спишь до обеда.

..bw
Аватара пользователя
Иван Шихалев
энтузиаст
Сообщения: 1138
Зарегистрирован: 15.05.2006 11:26:13
Откуда: Екатеринбург
Контактная информация:

Сообщение Иван Шихалев »

Что до убавить, так в английском языке есть хорошее слово "masking" - и не хлопотно и не больно.
MageSlayer
постоялец
Сообщения: 216
Зарегистрирован: 07.09.2006 12:30:44

Сообщение MageSlayer »

Ну дык, может реализацию обсудим, а?
Я подобную штуку делал, прикручивая m4 к паскалю и на перле "интеллектуальный" препроцессор.
Выглядит, конечно, как Лисп в перемешку с Паскалем, но в общем свою задачу выполняло. Правда заточено было под емакс.
Bupyc
постоялец
Сообщения: 137
Зарегистрирован: 29.08.2007 18:22:42

Сообщение Bupyc »

MageSlayer писал(а):Ну дык, может реализацию обсудим, а?
Я подобную штуку делал, прикручивая m4 к паскалю и на перле "интеллектуальный" препроцессор.
Выглядит, конечно, как Лисп в перемешку с Паскалем, но в общем свою задачу выполняло. Правда заточено было под емакс.


Похоже мы немного о разных вещах говорим :). Тот механизм, что реализован у меня, позволяет динамически подменить класс приложения. Если конкретно, то меняется класс, который отвечает за обработку пользовательских запросов в сервере.
То, о чем ты говоришь, как я понимаю, относится к теме поддержки своего скриптового языка внутри приложения.
MageSlayer
постоялец
Сообщения: 216
Зарегистрирован: 07.09.2006 12:30:44

Сообщение MageSlayer »

Bupyc писал(а):Тот механизм, что реализован у меня, позволяет динамически подменить класс приложения. Если конкретно, то меняется класс, который отвечает за обработку пользовательских запросов в сервере.


Это больше похоже на механизм плагинов.

Bupyc писал(а):То, о чем ты говоришь, как я понимаю, относится к теме поддержки своего скриптового языка внутри приложения.


Вообще-то я как раз говорил о том, чтобы вести разработку без перезапуска приложения. Скриптовый язык - это один из подходов. И весьма часто - перебор. Часто не ясно, что и как "публиковать" для скрипта, плюс процесс "публикации" сам по себе требует перезапуска :)
Я имел ввиду что-то типа динамической компиляции. То есть "свойства динамичности" только на этапе разработки/отладки.
Ответить