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

Твердыня модульных языков
Текущее время: 23 май 2018, 08:49

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




Начать новую тему Ответить на тему  [ Сообщений: 36 ]  На страницу Пред.  1, 2, 3, 4
Автор Сообщение
 Заголовок сообщения: Re: ADR и сборщик мусора
СообщениеДобавлено: 18 фев 2018, 10:36 
Не в сети
Администратор
Аватара пользователя

Сообщения: 55
budden писал(а):
А где-нибудь описан формат объектов BBCB? Это я к вопросу о консервативности. И сразу ещё один вопрос. Сейчас integer 32-битный. Если вдруг он станет 31-битным, а 32-й бит, равный нулю, будет тегом типа integer, станет ли это катастрофой?


Спецификации лежат в папке Dev/Spec.

Там четыре файла
ObjFile.odc
PackedFiles.odc
StoresFileFormat.odc
SymFile.odc


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

Сообщения: 164
Файлы пока не открывал, но я имел в виду формат объектов в памяти, а не в файле. Т.е. как выглядит, к примеру, запись, если рассматривать её в битах, каковы теги типов и т.п.


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

Сообщения: 55
budden писал(а):
Файлы пока не открывал, но я имел в виду формат объектов в памяти, а не в файле. Т.е. как выглядит, к примеру, запись, если рассматривать её в битах, каковы теги типов и т.п.

А, этого я не знаю, не разбирался. Илья Ермаков может знать, он эти тэги даже как-то под свои задачи менял.


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

Сообщения: 17
Запись выглядит так же, как в си, паскале и т.п. Если она в куче, то перед ней находится указатель на дескриптор типа. Никаких тегов типов нет.


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

Сообщения: 8
В Kernel есть.
Код: "OBERON"
  1. Type* = POINTER TO RECORD [untagged];
  2. (* record: ptr to method n at offset - 4 * (n+1) *)
  3. size-: INTEGER; (* record: size, array: #elem, dyn array: 0, proc: sigfp *)
  4. mod-: Module;
  5. id-: INTEGER; (* name idx * 256 + lev * 16 + attr * 4 + form *)
  6. base-: ARRAY 16 OF Type; (* signature if form = ProcTyp *)
  7. fields-: Directory; (* new fields (declaration order) *)
  8. ptroffs-: ARRAY any OF INTEGER (* array of any length *)
  9. END;
  10.  
  11. Object* = POINTER TO ObjDesc;
  12.  
  13. ObjDesc* = RECORD [untagged];
  14. fprint-: INTEGER;
  15. offs-: INTEGER; (* pvfprint for record types *)
  16. id-: INTEGER; (* name idx * 256 + vis * 16 + mode *)
  17. struct-: Type (* id of basic type or pointer to typedesc/signature *)
  18. END;
  19.  
  20. Directory* = POINTER TO RECORD [untagged];
  21. num-: INTEGER; (* number of entries *)
  22. obj-: ARRAY any OF ObjDesc (* array of any length *)
  23. END;
  24.  


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

Сообщения: 17
Общее описание можно найти в Templ. "Metaprogramming in Oberon", Steindl, Mössenböck. "Metaprogramming Facilities in Oberon for Windows and Power Macintosh". А вот детали придется выковыривать из исходников.


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

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


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

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


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

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Тех.поддержка phpBB