OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Суббота, 19 Июнь, 2021 07:13

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




Начать новую тему Эта тема закрыта, вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 42 ]  На страницу Пред.  1, 2, 3  След.
Автор Сообщение
СообщениеДобавлено: Вторник, 12 Январь, 2021 12:45 
Администратор

Зарегистрирован: Вторник, 15 Ноябрь, 2005 01:14
Сообщения: 4531
Откуда: Россия, Орёл
Иван Денисов писал(а):
Есть на форуме голосовалка?
Только вот текст для голосования надо обсудить коллективно.

Описание Хельмута возникло из-за того, что мы не приняли поправку Центра. В остальном оно ничего не даёт. Ну разве что концентрированное описание происходящего.
Так какой должен быть обсуждаемй текст для голосования? Тут уже на форуме эту проблему все знают. На на всех конференциях уже припомнили.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 12 Январь, 2021 13:02 
Администратор

Зарегистрирован: Вторник, 15 Ноябрь, 2005 01:14
Сообщения: 4531
Откуда: Россия, Орёл
Ну например.

В версии 1.7, для решения проблемы указанной Ильёй Ермаковым (viewtopic.php?t=1948), вместо предложенного им же решения, BlackBox Framework Center ввёл в базовый класс каркаса File два новых метода (Shared () и Closed ()), которые возвращают текущее состояние файла. Тем самым нарушив обратную совместимость и компонентный подход, декларируемый создателями BlackBox. Для разрабатываемой российским сообществом версии BlackBox 1.8 предлагается либо принять такое решение Центра, либо вернуться к решению Ильи Ермакова (также называемого решением OberonCore).

Вы

1) Считаете правильным решение OberonCore (авт. Илья Ермаков), согласовывающее реализацию (HostFiles) со спецификацией (Files).

2) Считаете правильным решение BlackBox Framework Center (Проблема № 22), согласовывающее спецификацию (Files) с реализацией (HostFiles).


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 12 Январь, 2021 15:32 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9418
Откуда: Россия, Орёл
Поддерживаю текст опроса.

Поддерживаю "убрание" (или "убирательство"?) методов, добавленных Центром.

Как минимум, их надо реализовывать через процедуры модуля Files и отдельный хук реализаций.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 12 Январь, 2021 18:33 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3096
Написано от души, но текст слишком предвзят. Зато он отлично иллюстрирует ваше отношение к вопросу! Как часть дебатов подойдет.

Предлагаю следующий сухой безличностный текст.

Было обнаружено, что реализация и спецификация HostFiles.NewWriter в версии Блэкбокса 1.6 не соответствуют друг другу. Согласно спецификации в случае файлов только для чтения NewWriter должен возвращать NIL. Однако в реализации имеется две инструкции ASSERT(f.state # closed, 20); ASSERT(f.state # shared, 21). При этом, возможности вычислить состояние файла в интерфейсе не предусмотрено, а значит — не существует возможности обойти данные проверки.

Предлагается выбрать решение:

1) Убрать ASSERTы, и реализовать возврат NIL. Достоинство данного решения в том, что сохраняется интерфейс Files версии 1.6. Недостаток в более позднем обнаружении ошибки.

2) Добавить две процедуры Closed() и Shared() для возможности вычисления состояния файла, исправить документацию. Достоинство данного решения в том, что благодаря ASSERTам ошибка будет обнаружена раньше и квалифицирована более точно. Недостаток в нарушении интерфейса Files относительно версии 1.6.

3) Исправить документацию, а реализацию не менять (оставить ASSERTы и NIL не возвращать). Достоинства в том, что сохраняется интерфейс Files версии 1.6, ошибка будет обнаружена раньше и квалифицирована более точно. Недостаток в том, что некоторые экзотические случаи потребуют частной реализации Files и HostFiles.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 12 Январь, 2021 18:58 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3096
После внимательных размышлений я за третий вариант. Вообще вернуть, как сделали Оберон микросистемы.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 12 Январь, 2021 19:10 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9418
Откуда: Россия, Орёл
Давайте содержательно проанализируем практическую значимость случая "а если мы вернули NIL - и обнаружили это значительно позже".

С точки зрения вообще частоты случаев, когда writer отложен и передан далеко от места создания - и с точки зрения того, насколько усложняется диагностика, если таки вдруг он ушёл далеко от места создания и там дал NIL dereference.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 12 Январь, 2021 19:12 
Администратор

Зарегистрирован: Вторник, 15 Ноябрь, 2005 01:14
Сообщения: 4531
Откуда: Россия, Орёл
Иван Денисов писал(а):
Написано от души, но текст слишком предвзят. Зато он отлично иллюстрирует ваше отношение к вопросу! Как часть дебатов подойдет.

Спасибо, конечно. Но речь же была не о выборе решения даже, а об отмене решения. Если ставится вопрос именно как выбор, то все, я думаю, согласятся с п. 3. И можно даже голосование не проводить.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 12 Январь, 2021 19:15 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3096
Илья Ермаков писал(а):
Давайте содержательно проанализируем практическую значимость случая "а если мы вернули NIL - и обнаружили это значительно позже".

С точки зрения вообще частоты случаев, когда writer отложен и передан далеко от места создания - и с точки зрения того, насколько усложняется диагностика, если таки вдруг он ушёл далеко от места создания и там дал NIL dereference.

Я думаю, что Оберон микросистемс воткнули туда ASSERTы как раз после какого-то такого случая, который оказался достаточно критическим. Документацию подправить забыли.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 12 Январь, 2021 19:16 
Администратор

Зарегистрирован: Вторник, 15 Ноябрь, 2005 01:14
Сообщения: 4531
Откуда: Россия, Орёл
Илья Ермаков писал(а):
Давайте содержательно проанализируем практическую значимость случая "а если мы вернули NIL - и обнаружили это значительно позже".

С точки зрения вообще частоты случаев, когда writer отложен и передан далеко от места создания - и с точки зрения того, насколько усложняется диагностика, если таки вдруг он ушёл далеко от места создания и там дал NIL dereference.

Да, по большому счёту, не важно. Отследить можно. А ситуации работы с закрытыми или RO-файлами, экзотические в том смысле, что они скорее всего созданы ошибочной логикой. Просто в ББ так с файлами не работают.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 12 Январь, 2021 19:18 
Администратор

Зарегистрирован: Вторник, 15 Ноябрь, 2005 01:14
Сообщения: 4531
Откуда: Россия, Орёл
Иван Денисов писал(а):
Я думаю, что Оберон микросистемс воткнули туда ASSERTы как раз после какого-то такого случая, который оказался достаточно критическим.

Правильно. Чтобы ошибка в логике была видна. И всплывёт она ещё во время разработки, до эксплуатции с 99,9%-й вероятностью.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 12 Январь, 2021 19:53 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3096
Тогда, если Алексанр Ширяев, Антон Дмитриев не будут возражать, то давайте вернем, как было в 1.6 и закроем тему...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 12 Январь, 2021 20:23 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9418
Откуда: Россия, Орёл
Борис Рюмшин писал(а):
Да, по большому счёту, не важно. Отследить можно. А ситуации работы с закрытыми или RO-файлами, экзотические в том смысле, что они скорее всего созданы ошибочной логикой. Просто в ББ так с файлами не работают.


Нуу, у меня как раз всплыло после какой-то ситуации с RO.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 12 Январь, 2021 20:40 
Администратор

Зарегистрирован: Вторник, 15 Ноябрь, 2005 01:14
Сообщения: 4531
Откуда: Россия, Орёл
Илья Ермаков писал(а):
Нуу, у меня как раз всплыло после какой-то ситуации с RO.

Ты у нас отдельный случай сам по себе.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 13 Январь, 2021 15:03 
Аватара пользователя

Зарегистрирован: Суббота, 16 Февраль, 2008 02:47
Сообщения: 481
Коллеги, я кратко могу высказаться по этой теме так: с технической стороны мне почти все равно. С точки зрения "сохранения инвестиций" - у меня их нет, нечего сохранять.

С точки зрения совместимости с Центральной версией - это вопрос стратегии и позиционирования; но какие критически важные приложения окажутся несовместимы и труднодоступны для ББКП 1.8, если уйти от Центральных интерфейсов? Даже не знаю... (Я работаю на Линуксе, и почти все расширения с СРС, которые я хотел попробовать, чуть-чуть используют WinApi. Ну так, слегка. Буквально в одном-двух местах. Из-за чего их невозможно попробовать на Линуксе. Даже Pac (Пак) Жерара Мюнье - и тот одну винапишную функцию использует в одном месте; и уже год обещает поправить. Это я к тому, что совместимость, увы, все равно потеряна: для кросс-платформенных приложений нужно при разработке иметь в виду кросплатформенность).


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 13 Январь, 2021 15:16 
Аватара пользователя

Зарегистрирован: Суббота, 16 Февраль, 2008 02:47
Сообщения: 481
Но! Раз уж скальпель хирурга сверкнул в Святая Святых - осмелюсь озвучить вопрос, который меня давно обескураживает.

Почему в интерфейсе Files строки передаются как значения? А не как переменные только для чтения?

К примеру,
TYPE Name = ARRAY 256 OF CHAR;
PROCEDURE Files.Directory.Old (loc: Locator; name: Name; shared: BOOLEAN): File, NEW, ABSTRACT;

А ведь, кмк, можно:
PROCEDURE Files.Directory.Old (loc: Locator; IN name: Name; shared: BOOLEAN): File, NEW, ABSTRACT;

Я не смог придумать обоснований этому. Быть может, коллеги подскажут? Собсно, и жгучей необходимости так сделать тоже нет; всего лишь лишнее копирование строки.
Но почему бы нет?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 13 Январь, 2021 17:34 
Администратор

Зарегистрирован: Вторник, 15 Ноябрь, 2005 01:14
Сообщения: 4531
Откуда: Россия, Орёл
adimetrius писал(а):
Я не смог придумать обоснований этому. Быть может, коллеги подскажут? Собсно, и жгучей необходимости так сделать тоже нет; всего лишь лишнее копирование строки.
Но почему бы нет?

Так получилось. :)

А так я могу сделать вывод, что Антон Дмитриев не возражает по изменению #045.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 13 Январь, 2021 21:46 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9418
Откуда: Россия, Орёл
Видимо, интерфейс со времён Оберона-2. Когда был только VAR, а IN ещё не было.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 14 Январь, 2021 17:24 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3096
Антон и Александр сказали не возражают. Есть проблема с Stores64, что он там уж как-то много использует Closed().
Товарищи, поглядите на предмет того, какую версию Stores64 надо загрузить с коммитом? Я подозреваю, что не все тонкости там улавливаю.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 14 Январь, 2021 23:49 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Иван Денисов писал(а):
Есть проблема с Stores64, что он там уж как-то много использует Closed().
Stores64 должен работать в любом случае.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 15 Январь, 2021 22:44 
Администратор

Зарегистрирован: Вторник, 15 Ноябрь, 2005 01:14
Сообщения: 4531
Откуда: Россия, Орёл
Иван Денисов писал(а):
Антон и Александр сказали не возражают. Есть проблема с Stores64, что он там уж как-то много использует Closed().
Товарищи, поглядите на предмет того, какую версию Stores64 надо загрузить с коммитом? Я подозреваю, что не все тонкости там улавливаю.

Посмотрим.


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

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


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

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


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

Найти:
cron
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2021, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB