OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Воскресенье, 15 Декабрь, 2019 16:34

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




Начать новую тему Ответить на тему  [ Сообщений: 30 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Подсистема System
СообщениеДобавлено: Четверг, 31 Май, 2007 00:16 

Зарегистрирован: Понедельник, 29 Январь, 2007 19:00
Сообщения: 370
Откуда: Украина, Запорожье
Нет документации на модули Kernel, Windows, Sequencers, Mechanisms, Documents :(
Кто с ними работал, как их можно использовать?

И почему Kernel не находится в Host? Это тоже непереносимый модуль реализации (использует WinApi).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Подсистема System
СообщениеДобавлено: Четверг, 31 Май, 2007 00:38 
Администратор

Зарегистрирован: Вторник, 15 Ноябрь, 2005 01:14
Сообщения: 4367
Откуда: Россия, Орёл
PGR писал(а):
Нет документации на модули Kernel, Windows, Sequencers, Mechanisms, Documents :(
Кто с ними работал, как их можно использовать?

И почему Kernel не находится в Host? Это тоже непереносимый модуль реализации (использует WinApi).

Документация на Кернел (местного производства) есть в комплекте с АББ, если я не ошибаюсь.

И, кстати, Кренел достаточно переносим... :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Четверг, 31 Май, 2007 01:04 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9165
Откуда: Россия, Орёл
Нутро Kernel на 60% переносимо.
Интерфейс же этого модуля вообще полностью платформенно независим. В частности, может использоваться для низкоуровневого метапрограммирования.
Я составил полную документацию на ядро, она есть в пакете Активного Блэкбокса.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Подсистема System
СообщениеДобавлено: Четверг, 31 Май, 2007 02:31 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8216
Откуда: Троицк, Москва
PGR писал(а):
Нет документации на модули Kernel, Windows, Sequencers, Mechanisms, Documents :(
Кто с ними работал, как их можно использовать?


А зачем с ними работать?
Зачем увеличивать объем связей между модулями (своими и внутренними модулями системы)?

Просто так -- плохая идея.

Чувствую, что в "законе насыщения степеней свободы языков программирования" нужно добавить "и библиотек".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Подсистема System
СообщениеДобавлено: Четверг, 31 Май, 2007 10:10 

Зарегистрирован: Понедельник, 29 Январь, 2007 19:00
Сообщения: 370
Откуда: Украина, Запорожье
info21 писал(а):
А зачем с ними работать?
Зачем увеличивать объем связей между модулями (своими и внутренними модулями системы)?

А вы уверены, что эти модули внутренние? Вот Log тоже недокументирован...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Четверг, 31 Май, 2007 10:15 

Зарегистрирован: Понедельник, 29 Январь, 2007 19:00
Сообщения: 370
Откуда: Украина, Запорожье
Илья Ермаков писал(а):
Нутро Kernel на 60% переносимо.

Ну так и разделили бы на Kernel(60%) и HostKernel(40%).
Илья Ермаков писал(а):
Интерфейс же этого модуля вообще полностью платформенно независим. В частности, может использоваться для низкоуровневого метапрограммирования.

Вроде как интерфейсы многих модулей из Host тоже платформенно независимы...
Илья Ермаков писал(а):
Я составил полную документацию на ядро, она есть в пакете Активного Блэкбокса.

Интересно, почитаю...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Четверг, 31 Май, 2007 11:00 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9165
Откуда: Россия, Орёл
PGR писал(а):
Илья Ермаков писал(а):
Нутро Kernel на 60% переносимо.

Ну так и разделили бы на Kernel(60%) и HostKernel(40%).

Этим и занимаюсь. В релизе Активного ББ ядро будет порезано на ряд микроядер.
Цитата:
Илья Ермаков писал(а):
Интерфейс же этого модуля вообще полностью платформенно независим. В частности, может использоваться для низкоуровневого метапрограммирования.

Вроде как интерфейсы многих модулей из Host тоже платформенно независимы...

Нет, понимаете, здесь штука какая: подсистема Host - это подсистема, не предназначенная для импорта ВООБЩЕ. Это модули реализации под соотв. лицевые интерфейсные модули каркаса. Все. Посмотрите сетку связей через DevDependencies, Вы увидите, что Host в ББ не импортируется никакими другими подсистемами.
Kernel - это системный интерфейс ББ, но - интерфейс, который можно импортировать и использовать и который не изменится в очередных версиях. Kernel импортируется даже в достаточно высокоуровневых местах каркаса, где требуется сквозное метапрограммирование (например, информация о локальных переменных или сигнатурах процедурах). Модуль Meta поддерживает только защищенное метапрограммирование, т.е. работу с интерфейсными частями модулей.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Четверг, 31 Май, 2007 11:52 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1215
Илья Ермаков писал(а):
Посмотрите сетку связей через DevDependencies, Вы увидите, что Host в ББ не импортируется никакими другими подсистемами.

Если посмотреть внимательно, то импортируется. ;)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Четверг, 31 Май, 2007 12:43 
Администратор

Зарегистрирован: Вторник, 15 Ноябрь, 2005 01:14
Сообщения: 4367
Откуда: Россия, Орёл
Trurl писал(а):
Илья Ермаков писал(а):
Посмотрите сетку связей через DevDependencies, Вы увидите, что Host в ББ не импортируется никакими другими подсистемами.

Если посмотреть внимательно, то импортируется. ;)

Руки бы поотбивать... :):):)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Четверг, 31 Май, 2007 18:59 

Зарегистрирован: Понедельник, 29 Январь, 2007 19:00
Сообщения: 370
Откуда: Украина, Запорожье
Илья Ермаков писал(а):
Нет, понимаете, здесь штука какая: подсистема Host - это подсистема, не предназначенная для импорта ВООБЩЕ. Это модули реализации под соотв. лицевые интерфейсные модули каркаса. Все. Посмотрите сетку связей через DevDependencies, Вы увидите, что Host в ББ не импортируется никакими другими подсистемами.

А зачем тогда из модулей Host экспортируются процедуры, типы. Для подключения модулей реализации к модулям-интерфейсам можно вообще ничего не экспортировать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Четверг, 31 Май, 2007 22:02 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9165
Откуда: Россия, Орёл
Так модули Host сами друг друга внутри подсистемы импортируют!
К сожалению, в настоящий момент нет надъязыковых средств, которые могли бы разграничить внутренние интерфейсы подсистемы от внешнего ее интерфейса - о полезности создания таких средств много говорил Руслан Богатырев на Королевстве.
Ну и плюс, конечно, Host иногда является той "форточкой", которая позволяет в горячечном бреду хронического неуспевания по конкретному заказу быстро реализовать какую-то фичу :-) С растровой графикой через WinApi, например - пока что в ББ нет платформенно-независимого интерфейса работы с растром.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Четверг, 31 Май, 2007 22:27 

Зарегистрирован: Понедельник, 29 Январь, 2007 19:00
Сообщения: 370
Откуда: Украина, Запорожье
Илья Ермаков писал(а):
К сожалению, в настоящий момент нет надъязыковых средств, которые могли бы разграничить внутренние интерфейсы подсистемы от внешнего ее интерфейса - о полезности создания таких средств много говорил Руслан Богатырев на Королевстве.

А хватит ли надъязыковых средств, что-то сомневаюсь...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Четверг, 31 Май, 2007 22:47 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9165
Откуда: Россия, Орёл
Тонкий вопрос. На Королевстве кое-что обсуждалось месяц назад по этому поводу. Одно ясно - реальные подвижки в этом направлении будут только при конкретной необходимости, и ничего в самом языке не мешает достраивать контроль верхнего уровня за межкомпонентными интерфейсами и т.п.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Четверг, 31 Май, 2007 23:11 

Зарегистрирован: Понедельник, 29 Январь, 2007 19:00
Сообщения: 370
Откуда: Украина, Запорожье
Илья Ермаков писал(а):
... и ничего в самом языке не мешает достраивать контроль верхнего уровня за межкомпонентными интерфейсами и т.п.

И можно запретить импортировать внутренние модули какой-нибудь подсистемы?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Четверг, 31 Май, 2007 23:41 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9165
Откуда: Россия, Орёл
На надъязыковом уровне - а почему нет?
Дополнительные внешние спецификации на границы подсистем + компилятор, умеющий учитывать эти спецификации и на попытку импорта внутреннего модуля какой-то подсистемы говорящий "not found". Или представьте себе, что у каждой подсистемы есть две папки под Sym-файлы: Sym - для внутреннего пользования, а FaceSym, к примеру, - для наружного. И при компиляции некоторого модуля доступны только Face-спецификации других подсистем - и все спецификации его родной подсистемы.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пятница, 01 Июнь, 2007 10:12 

Зарегистрирован: Воскресенье, 28 Май, 2006 22:12
Сообщения: 1450
А не придётся язык модифицировать для соответствующих объявлений видимости?, Типа "**" и "--" ? :о)
Или можно следовать правилу Кернигана "Проблемы с изъяснением? - вводите ещё один уровень косвенности!" :о) В смысле, кроме договорённости про первое слово в объявлении модуля, как имени подсистемы, нужно ещё будет вводить и "модуль доступных объявлений подсистемы" и договрариваться, что его имя будет таким же, как имя подсистемы (например!), типа:

MODULE SubsystemSubsystem;
...
А тут (пере)объявляем чего "за пределами" подсистемы "видно".
...
END SubsystemSubsystem.

Вопщем - тема шаткая. С одной стороны не хочется всё лепить в один модуль, с другой - расширять язык понятиями, аналогичными пространствам имён...


Последний раз редактировалось Wlad Пятница, 01 Июнь, 2007 10:20, всего редактировалось 2 раз(а).

Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пятница, 01 Июнь, 2007 10:18 
Администратор

Зарегистрирован: Вторник, 15 Ноябрь, 2005 01:14
Сообщения: 4367
Откуда: Россия, Орёл
Вы, ребята, чё-то не то замышляете... :D


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пятница, 01 Июнь, 2007 10:22 
Модератор
Аватара пользователя

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пятница, 01 Июнь, 2007 10:26 

Зарегистрирован: Воскресенье, 28 Май, 2006 22:12
Сообщения: 1450
Борис Рюмшин писал(а):
Вы, ребята, чё-то не то замышляете... :D

Дык ведь вопрос поднят! И он, как мне кажется, назрел и правомерен!
Про область видимости в виде "модуля" подумали, а что делать с реализацией отношений на уровне выше - на уровне подсистем?
Ведь и правда, почему не подумали об ограничениях видимости В РАМКАХ СОВОКУПНОСТИ МОДУЛЕЙ (как-то специфицированной и формально объявлённой) ?
Так шо, если мы не хотим уходить за пределы языка ПРИДЁТСЯ вводить соглашение по именованию "модуля выразителя-представителя" подсистемы для клиентов подсистемы...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пятница, 01 Июнь, 2007 10:40 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 18:55
Сообщения: 2272
Откуда: Россия, Нижний Новгород
Просто не распространяйте исходных кодов и символьных файлов приватных модулей своей подсистемы. Тогда их ни кто и не сможет импортировать.

Минимальная модификация компилятора: стирать "избранные" символьные файлы сразу после компиляции подсистемы.


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

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


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

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


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

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