OberonCore
https://forum.oberoncore.ru/

Неизвестный системный флаг?
https://forum.oberoncore.ru/viewtopic.php?f=29&t=1212
Страница 1 из 1

Автор:  igor [ Вторник, 21 Октябрь, 2008 06:44 ]
Заголовок сообщения:  Неизвестный системный флаг?

Вот строчка из модуля HostPrinters, который импортирует модуль SYSTEM:
Код:
PROCEDURE [2] AbortHandler (dc: GDI32.Handle; error: INTEGER): INTEGER;

Есть такое благородное желание: понимать каждую закорючку в коде :)
Для процедур определены только два системных флага: code и ccal. Эти флаги имеют значения 1 и -10, соответственно.
Что означает [2] в заголовке проседуры :?:
Буду признателен за разъяснения

Автор:  Geniepro [ Вторник, 21 Октябрь, 2008 07:19 ]
Заголовок сообщения:  Re: Неизвестный системный флаг?

А как же легендарное 16-страничное описание? Почему там такие вещи не описываются?

Автор:  igor [ Вторник, 21 Октябрь, 2008 07:34 ]
Заголовок сообщения:  Re: Неизвестный системный флаг?

Geniepro писал(а):
А как же легендарное 16-страничное описание? Почему там такие вещи не описываются?

Видимо, потому что:
Цитата:
SYSTEM не считается правильной частью языка Компонентный Паскаль

И всё-таки, не хотелось бы оставлять "белых пятен" в "чёрном ящике" :)
Работать приходится не с каким-то эфемерным языком, а с реальной системой, вместе с её модулем SYSTEM, пусть даже "неправильным".

Автор:  Trurl [ Вторник, 21 Октябрь, 2008 08:04 ]
Заголовок сообщения:  Re: Неизвестный системный флаг?

Игорь Лоскутов писал(а):
Для процедур определены только два системных флага: code и ccal. Эти флаги имеют значения 1 и -10, соответственно.
Что означает [2] в заголовке проседуры :?:

Для процедур есть флаги code = 1, callback = 2, guarded = 8, noframe = 16, ccall = -10 и еще несколько неиспользуемых.
Флаг callback должен означать stdcall, но смысла в нем нет, поскольку и так все процедуры используют это соглашение.

Автор:  igor [ Вторник, 21 Октябрь, 2008 08:14 ]
Заголовок сообщения:  Re: Неизвестный системный флаг?

Trurl писал(а):
Для процедур есть флаги code = 1, callback = 2, guarded = 8, noframe = 16, ccall = -10 и еще несколько неиспользуемых.
Вот с этого места, пожалуйста, поподробнее :) . Интересует источник сведений.

Автор:  Евгений Темиргалеев [ Вторник, 21 Октябрь, 2008 08:29 ]
Заголовок сообщения:  Re: Неизвестный системный флаг?

Исходники компилятора, например. Дайте поиск по исходникам (Info->Search In Sources).

Автор:  igor [ Вторник, 21 Октябрь, 2008 08:37 ]
Заголовок сообщения:  Re: Неизвестный системный флаг?

Евгений Темиргалеев писал(а):
Исходники компилятора, например.
Я это подозревал :wink: . Ну что ж, лучшая инфа по программе - это её исходники. OpenSource рулит :!:
Всем спасибо!

Автор:  Илья Ермаков [ Вторник, 21 Октябрь, 2008 09:58 ]
Заголовок сообщения:  Re: Неизвестный системный флаг?

Просто некоторые модули среды писались ещё до того, как были введены "культурные" названия флагов. И задолго до того, как были открыты исходники среды.

Автор:  igor [ Вторник, 21 Октябрь, 2008 18:59 ]
Заголовок сообщения:  Re: Неизвестный системный флаг?

Илья Ермаков писал(а):
Просто некоторые модули среды писались ещё до того, как были введены "культурные" названия флагов. И задолго до того, как были открыты исходники среды.
Да, в исходниках присутствует некоторый "бардачок". Для начала я решил избавиться от устаревших интерфейсных модулей, которые к тому же не представлены своими исходниками. На сегодняшний день осталось только исключить KERNEL32.osf. Может сегодня успею. Но изменений очень много, поэтому логи не веду.

Автор:  igor [ Вторник, 21 Октябрь, 2008 19:07 ]
Заголовок сообщения:  Re: Неизвестный системный флаг?

Кстати, почему при сборке стандартного BB (по Docu DevLinker) размер икзешнега получается около 1,3 МБ, а не 85КБ у файла из дистибутива :?: ASPack'ом так не сожмёшь.

Автор:  Илья Ермаков [ Вторник, 21 Октябрь, 2008 19:18 ]
Заголовок сообщения:  Re: Неизвестный системный флаг?

Про KERNEL32 - они убраны в 1.6.

Про сжатие: так в DevLinker приведена строка линковки полностью статического случая.
А обычный ББ собран всего из 3 модулей: Kernel, HostFiles и StdLoader (в локализованной версии перед Kernel ставится ещё National). Всё остальное грузится динамически - это видно в Info->Loaded Modules...

Автор:  igor [ Вторник, 21 Октябрь, 2008 19:28 ]
Заголовок сообщения:  Re: Неизвестный системный флаг?

Илья Ермаков писал(а):
Про KERNEL32 - они убраны в 1.6.
Пусть, зато хоть исходники почитаю :) Делаю эту работу с учебной целью
Илья Ермаков писал(а):
Про сжатие: так в DevLinker приведена строка линковки полностью статического случая.
А обычный ББ собран всего из 3 модулей ... Всё остальное грузится динамически - это видно в Info->Loaded Modules...
Об этом я как-то не подумал. спасибо.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/