Оберон-клуб «ВЄДАsoft»

Твердыня модульных языков
Текущее время: 16 дек 2019, 15:04

Часовой пояс: UTC + 2 часа




Начать новую тему Ответить на тему  [ Сообщений: 31 ]  На страницу Пред.  1, 2, 3, 4  След.
Автор Сообщение
 Заголовок сообщения: Re: Слабые указатели
СообщениеДобавлено: 29 янв 2018, 20:21 
Не в сети

Сообщения: 108
budden писал(а):
Для файлов же есть Close. В чём разница?


Формально - ни в чем. Но на практике у тебя открытых файлов гуляющих по системе (т.е. не scoped открыл/прочитал/записал/закрыл) будет сильно меньше, чем COM-объектов при тесной интеграции с каким-нибудь Word'ом.
Кроме того, да, файлы в ББ закрываются в финалайзере - обсуждали как-то эту тему на oberoncore.

Короче, общее решение для языков с GC - финалайзер.


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Слабые указатели
СообщениеДобавлено: 30 янв 2018, 09:25 
Не в сети

Сообщения: 338
> Короче, общее решение для языков с GC - финалайзер.
Ладно, спорить не буду, но я с этим никогда не соглашусь. Это - не решение, а "как бы решение". У меня есть опыт генерации отчётов из Delphi в Excel, и мне бы и в голову не пришло допустить, чтобы файл закрывался "когда получится". У меня бы такую программу просто не приняли в эксплуатацию.


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Слабые указатели
СообщениеДобавлено: 30 янв 2018, 17:10 
Не в сети

Сообщения: 204
Финализаторы вызываются, когда заканчивается область действия того блока, что использует ресурс с этим финализатором. В случае с файлом на том же сишарпе финализатор автоматом вызывается в конце блока using, где открывается этот файл, в комон лиспе -- там где заканчивается блок "(with-file ...)" или как оно там у вас выглядит в лиспе. В дельфях вроде нет же никаких финализаторов? Давно на нём не работал, не помню уже...


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Слабые указатели
СообщениеДобавлено: 30 янв 2018, 18:13 
Не в сети

Сообщения: 108
geniepro писал(а):
Финализаторы вызываются, когда заканчивается область действия того блока


Речь идет исключительно о случае, когда у тебя нет "блока". С блоком все понятно - Close/Release и все.


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Слабые указатели
СообщениеДобавлено: 30 янв 2018, 21:54 
Не в сети

Сообщения: 338
Кто-то из нас явно запутался. Финализаторы - это вот что. В лиспе - то же самое. Думаю, что и Вирт имел в виду именно это, но я тут пока не оберонщик :)

То, что вызывается при выходе из блока - это closeable


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Слабые указатели
СообщениеДобавлено: 30 янв 2018, 21:59 
Не в сети

Сообщения: 108
budden писал(а):
Кто-то из нас явно запутался. Финализаторы - это вот что.


Лично я говорю про них :) Кстати, в виртовском обероне никаких финализаторов я не видел. Это расширение ББ. Че там с файлами в оберон-ОС и как их закрывают - пусть кто-нибудь из знатоков выступит.


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Слабые указатели
СообщениеДобавлено: 31 янв 2018, 17:29 
Не в сети

Сообщения: 204
budden писал(а):
Кто-то из нас явно запутался. Финализаторы - это вот что. В лиспе - то же самое. Думаю, что и Вирт имел в виду именно это, но я тут пока не оберонщик :)

То, что вызывается при выходе из блока - это closeable

Я имел в виде дотнетный IDisposable, или явовский try-with-resources


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Слабые указатели
СообщениеДобавлено: 31 янв 2018, 17:33 
Не в сети

Сообщения: 108
geniepro писал(а):
Я имел в виде дотнетный IDisposable, или явовский try-with-resources


Тема началась с того, насколько правильно использовать финалайзеры/финализаторы для поддержки COM в BB. IDisposable/closable из другой оперы.


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Слабые указатели
СообщениеДобавлено: 31 янв 2018, 17:34 
Не в сети

Сообщения: 204
Википедия по другому описывает [url=https://ru.wikipedia.org/wiki/Финализатор]финализаторы[/url]. Ну ок, может я неправильно вашу тему тут понял. Я имел в виду, оказывается, "шаблон проектирования «dispose»"


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Слабые указатели
СообщениеДобавлено: 31 янв 2018, 17:39 
Не в сети

Сообщения: 108
geniepro писал(а):
Википедия по другому описывает [url=https://ru.wikipedia.org/wiki/Финализатор]финализаторы[/url]. Ну ок, может я неправильно вашу тему тут понял. Я имел в виду, оказывается, "шаблон проектирования «dispose»"


Википедия все правильно описывает, это ты читать не умеешь :)
Цитата:
Для освобождения ресурсов в языках со сборкой мусора используется шаблон проектирования «dispose».


Эта фраза отсылает к альтернативе, когда финализаторы работают плохо.


Вернуться к началу
 Профиль  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 31 ]  На страницу Пред.  1, 2, 3, 4  След.

Часовой пояс: UTC + 2 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


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

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
© VEDAsoft Oberon Club