Re: Замена кода "на лету"
От: MasterZiv СССР  
Дата: 15.06.09 15:40
Оценка:
md03t4 wrote:

> Я знаю, что subj реализован в Erlang-е.

> Есть ли еще языки/системы, где реализован похожий функционал?

Common Lisp. Правда, я не уверен, что это стандартно и гарантированно,
но я это сам наблюдал в SBCL.
Posted via RSDN NNTP Server 2.1 beta
Re[7]: Замена кода "на лету"
От: MasterZiv СССР  
Дата: 15.06.09 15:41
Оценка:
Cyberax wrote:

> В рантайме добавить *ко всем существующим* инстансам этого класса новое

> поле или поменять тип поля.

А, тогда в COmmon Lisp это есть, и гарантировано стандартом.
Posted via RSDN NNTP Server 2.1 beta
Re[2]: Замена кода "на лету"
От: MasterZiv СССР  
Дата: 15.06.09 15:42
Оценка:
Quintanar wrote:

> Думаю, для любого интерпретируемого языка с проверкой типов во время

> исполнения такое элементарно реализовывается.
> Классический пример — Лисп.

Хочу сделать поправку. Лисп -- не интерпретируемый язык.
(common lisp).
Posted via RSDN NNTP Server 2.1 beta
Re[3]: Замена кода "на лету"
От: MasterZiv СССР  
Дата: 15.06.09 15:51
Оценка:
md03t4 wrote:

> Для любого интерпретируемого, или любого функционального?


На самом деле это всё неважно.

> Как выгрузить модуль (любую другую единицу компиляции), если ссылки на

> его переменные могут быть сохранены в других модулях?

в common lisp ВСЕ определения/переопределения ВСЕХ элементов
программ происходят ВСЕГДА на ходу, т.е. при возможно уже
определённых в лисп-машине этих же элементах. Это — штатный
режим работы лисп-машины. При этом даже инстансы объектов
изменяемых классов сохраняются, только их поля меняются/
добавляются/удаляются, и даже есть возможность эти изменения
программно обработать. Что про "Ссылки на переменные" ...
Переменные вообще-то сами являются ссылками. Так что не очень
понятно, что имеется в виду.

Другое дело, что не все реализации common lisp поддерживают
реальную многозадачность, или вообще какую-то многозадачность,
а вот как с переопределением на ходу в уже поддерживающих
многозадачность лиспах, -- это вопрос "честности" реализаций.
Posted via RSDN NNTP Server 2.1 beta
Re[8]: Замена кода "на лету"
От: Воронков Василий Россия  
Дата: 15.06.09 15:58
Оценка:
Здравствуйте, Aen Sidhe, Вы писали:

AS>Ну, к существующим нельзя так вот просто сделать. К новым — легко. Буквально, одна строка кода/одна настройка в конфиге


А dynamic method как же?
Re[2]: Замена кода "на лету"
От: FR  
Дата: 16.06.09 03:52
Оценка: +1
Здравствуйте, Lazy Cjow Rhrr, Вы писали:

LCR>// Не уверен насчёт Смоллтока, возможно там-таки очень маленькая гранулярность


Там еще веселей, перезагрузка кода нормальное рутино используемое явление, даже простой набор текста метода ее использует.
Re: Замена кода "на лету"
От: Pavel Dvorkin Россия  
Дата: 17.06.09 07:56
Оценка:
Здравствуйте, md03t4, Вы писали:

M>Я знаю, что subj реализован в Erlang-е.

M>Есть ли еще языки/системы, где реализован похожий функционал?

Дай точное определение, о чем идет речь. Иначе я тебе заявлю, что на ассемблере ты можешь заменять на лету все, что тебе в голову придет, вплоть до генерации нового кода на основе данных, полученных откуда угодно.
With best regards
Pavel Dvorkin
Re[3]: Замена кода "на лету"
От: IT Россия linq2db.com
Дата: 17.06.09 17:46
Оценка:
Здравствуйте, Cyberax, Вы писали:

AS>>А то, вон в дотнете такое возможно.

C>Невозможно.

Возможно.
Если нам не помогут, то мы тоже никого не пощадим.
Re[4]: Замена кода "на лету"
От: Cyberax Марс  
Дата: 17.06.09 18:21
Оценка:
Здравствуйте, IT, Вы писали:

AS>>>А то, вон в дотнете такое возможно.

C>>Невозможно.
IT>Возможно.
Как?

(DLR, понятное дело, не считаем)
Sapienti sat!
Re[5]: Замена кода "на лету"
От: IT Россия linq2db.com
Дата: 17.06.09 19:23
Оценка:
Здравствуйте, Cyberax, Вы писали:

IT>>Возможно.

C>Как?

Домен можно загрузить по-новой, не выгружая старый пока он выполняет запросы.
Если нам не помогут, то мы тоже никого не пощадим.
Re[6]: Замена кода "на лету"
От: Cyberax Марс  
Дата: 17.06.09 19:46
Оценка: +1
Здравствуйте, IT, Вы писали:

IT>>>Возможно.

C>>Как?
IT>Домен можно загрузить по-новой, не выгружая старый пока он выполняет запросы.
Не, ну я так хоть в С++ сделаю перезагрузку кода. Это не то.
Sapienti sat!
Re[7]: Замена кода "на лету"
От: IT Россия linq2db.com
Дата: 18.06.09 02:45
Оценка:
Здравствуйте, Cyberax, Вы писали:

IT>>Домен можно загрузить по-новой, не выгружая старый пока он выполняет запросы.

C>Не, ну я так хоть в С++ сделаю перезагрузку кода. Это не то.

Как?
Если нам не помогут, то мы тоже никого не пощадим.
Re[8]: Замена кода "на лету"
От: Aen Sidhe Россия Просто блог
Дата: 18.06.09 06:54
Оценка:
Здравствуйте, IT, Вы писали:

IT>Здравствуйте, Cyberax, Вы писали:


IT>>>Домен можно загрузить по-новой, не выгружая старый пока он выполняет запросы.

C>>Не, ну я так хоть в С++ сделаю перезагрузку кода. Это не то.

IT>Как?


Сэмулирует эти же самые домены, скорее всего. Просто граждане не понимаю, что единственное различие — единица перезагрузки. Штатными средствами, без приседаний в .NET — это домен, где-то метод, где-то класс.
С уважением, Анатолий Попов.
ICQ: 995-908
Re[8]: Замена кода "на лету"
От: Cyberax Марс  
Дата: 18.06.09 11:01
Оценка:
Здравствуйте, IT, Вы писали:

IT>>>Домен можно загрузить по-новой, не выгружая старый пока он выполняет запросы.

C>>Не, ну я так хоть в С++ сделаю перезагрузку кода. Это не то.
IT>Как?
Загружаем DLL с новым кодом и вперёд с песней. Ну или в случае CGI — просто отправляем новые запросы новому exe-шнику.
Sapienti sat!
Re[9]: Замена кода "на лету"
От: IT Россия linq2db.com
Дата: 18.06.09 13:22
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Загружаем DLL с новым кодом и вперёд с песней.


Ты сам пробовал?
Если нам не помогут, то мы тоже никого не пощадим.
Re[10]: Замена кода "на лету"
От: Cyberax Марс  
Дата: 18.06.09 15:07
Оценка:
Здравствуйте, IT, Вы писали:

C>>Загружаем DLL с новым кодом и вперёд с песней.

IT>Ты сам пробовал?
Да. Использовалось для переключения между software и hardware реализациями OpenGL.

Разница с С# тут будет в чисто процессуальных вопросах.
Sapienti sat!
Re[11]: Замена кода "на лету"
От: IT Россия linq2db.com
Дата: 18.06.09 16:09
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Разница с С# тут будет в чисто процессуальных вопросах.


Т.е. замена кода на лету возможна не только в Эрланге, а практически везде. Почему же тогда считается, что эта фича есть только в нём?
Если нам не помогут, то мы тоже никого не пощадим.
Re[12]: Замена кода "на лету"
От: Cyberax Марс  
Дата: 18.06.09 16:57
Оценка:
Здравствуйте, IT, Вы писали:

C>>Разница с С# тут будет в чисто процессуальных вопросах.

IT>Т.е. замена кода на лету возможна не только в Эрланге, а практически везде. Почему же тогда считается, что эта фича есть только в нём?
Потому, что в Эрланге она намного мощнее. Тут я это уже объяснял.
Sapienti sat!
Re[13]: Замена кода "на лету"
От: Aen Sidhe Россия Просто блог
Дата: 18.06.09 17:22
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Здравствуйте, IT, Вы писали:


C>>>Разница с С# тут будет в чисто процессуальных вопросах.

IT>>Т.е. замена кода на лету возможна не только в Эрланге, а практически везде. Почему же тогда считается, что эта фича есть только в нём?
C>Потому, что в Эрланге она намного мощнее. Тут я это уже объяснял.

Угу. Майбах может ездить. И ауди может ездить. Но майбах делает это круче, поэтому ауди не ездит.
С уважением, Анатолий Попов.
ICQ: 995-908
Re[5]: Замена кода "на лету"
От: VladD2 Российская Империя www.nemerle.org
Дата: 18.06.09 17:28
Оценка:
Здравствуйте, Cyberax, Вы писали:

AS>>А как же тогда ASP.NET работает? Перезаписал dll, код для новых запросов — новый.

C>А ещё можно приложение перезапустить. Тоже код заменится!

А какая разница то, если состояние один фиг остается целым?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.