OberonCore
https://forum.oberoncore.ru/

x64 компилятор - проект Гершель
https://forum.oberoncore.ru/viewtopic.php?f=127&t=6640
Страница 3 из 4

Автор:  Дмитрий Дагаев [ Вторник, 21 Июль, 2020 18:58 ]
Заголовок сообщения:  Re: x64 компилятор - проект Гершель

Хочется закончить пока на мажорной ноте. Навязывать свое мнение или убеждать кого-то и тем более подрезать крылья я не хочу, это нормально иметь свое мнение и ходить своим путем, пусть и конкурирующим с моим. Мне, помнится, все Гуткнехт в последний день все говорил про "Competition in everything".

Автор:  Дмитрий Дагаев [ Вторник, 21 Июль, 2020 19:14 ]
Заголовок сообщения:  Re: x64 компилятор - проект Гершель

Иван Денисов писал(а):
Дмитрий Викрович, уточню на всякий случай, вы готовы принять участие в разработке Omb-64? Вы ведь ясно выразились, что хотите продолжить доработку своих начинаний по LLVM. Это вполне правильно и рационально. Поэтому тут никакого негативного оттенка. Я бы даже удивился, если вы вдруг занялись нативным компилятором.

Давайте продолжим в русле конструктивной дискуссии и обмена опытом.

Иван Андреевич, я не занимаюсь BlackBox1.8. Я занимаюсь МультиОбероном. Мультиоберон включает в себя 3 бэкенда: Omb нативный, Omf на базе OFront, Oml на базе LLVM. А еще рантаймы, загрузчики, средства разработки. Каждая новая версия включает в себя Omb, Omf, Oml. Это везде написано, а Вы как-то трактуете по своему. И когда мы обсуждали, я говорил об этом, что можно брать инфраструктуру МультиОберона для написания других бэкендов. И даже Вам конкретно предлагал выше по тексту. Так что, если хотите делать Omb64 и есть пассионарность, полный вперед. Я помогу.

А Вы и Антон мне предлагали какую-то конкурирующую разработку, мимо МультиОберона. Естественно, в ней я участвовать не буду.

Автор:  Иван Денисов [ Вторник, 21 Июль, 2020 19:21 ]
Заголовок сообщения:  Re: x64 компилятор - проект Гершель

Давайте не будем делать поспешных выводов про конкуренцию. Вижу, что есть недопонимание какое-то. Антон ведь вам чётко выше написал, что его символьная таблица может быть странслирована на вход мультиоберону в перспективе и наоборот. И вы тоже на встрече сказали, что какие-то хорошие наработки можете включить в МультиОберон. Считаю, что эти два проекта объединятся в лучшем виде. Но это потом, когда будет всё отлажено и согласовано. Нужно время. Я просто даже не могу нормально сесть и разобраться с вашими наработками пока.

Автор:  Дмитрий Дагаев [ Вторник, 21 Июль, 2020 19:57 ]
Заголовок сообщения:  Re: x64 компилятор - проект Гершель

Вот теперь правильные слова. Успехов!

Автор:  Trurl [ Среда, 22 Июль, 2020 07:53 ]
Заголовок сообщения:  Re: x64 компилятор - проект Гершель

Дмитрий Дагаев писал(а):
Еще раз упомяну, что в МультиОбероне 3 бэкенда: нативный Omb, Omf на базе ofront'a, Oml на базе LLVM. И, понятно дело, нативный компилится быстро, а оптимизирующие медленнее. И понятно, что оптимизирующие будут быстрее по скоростным параметрам.

Но пока Oml не быстрее Omb. А мне кажется, некоторые ожидают, что LLVM автоматически даст прирост производительности.

Автор:  Иван Денисов [ Среда, 22 Июль, 2020 17:32 ]
Заголовок сообщения:  Re: x64 компилятор - проект Гершель

Оберон всегда тяготел к железу. Хочется сохранить эту приверженность традиции.

Благодарим первого крупного спонсора — компанию Mobatec! Сегодня они сделали первый благотворительный взнос 250 евро на развитие Гершеля.
https://mobatec.nl
Мобатек разрабатывают и продают программное обеспечение для моделирования производственных процессов и обучения персонала.

Автор:  Иван Денисов [ Вторник, 28 Июль, 2020 08:24 ]
Заголовок сообщения:  Re: x64 компилятор - проект Гершель

Опубликована длинная заметка с обоснованием проводимых изменений в части фронтенда
https://vk.com/@herschelcompiler-zachem ... i-simvolov

Автор:  Info21 [ Суббота, 12 Сентябрь, 2020 22:10 ]
Заголовок сообщения:  Re: x64 компилятор - проект Гершель

Иван Денисов писал(а):
Опубликована длинная заметка с обоснованием проводимых изменений в части фронтенда
https://vk.com/@herschelcompiler-zachem ... i-simvolov
Хорошая заметка. Если не ошибаюсь, проходит по рубрике "вылизывание грязи" -- а это полезное дело.

Автор:  Info21 [ Суббота, 12 Сентябрь, 2020 22:11 ]
Заголовок сообщения:  Re: x64 компилятор - проект Гершель

Trurl писал(а):
Дмитрий Дагаев писал(а):
в МультиОбероне 3 бэкенда: нативный Omb, Omf на базе ofront'a, Oml на базе LLVM.
И, понятно дело, нативный компилится быстро, а оптимизирующие медленнее.
И понятно, что оптимизирующие будут быстрее по скоростным параметрам.
Но пока Oml не быстрее Omb. А мне кажется, некоторые ожидают, что LLVM автоматически даст прирост производительности.
Продолжение истории вызывает интерес.

Автор:  Иван Денисов [ Воскресенье, 13 Сентябрь, 2020 03:15 ]
Заголовок сообщения:  Re: x64 компилятор - проект Гершель

По состоянию на 10 сентября:
Цитата:
* Работает адресация глобальных переменных
* Компилируется тело модуля (секция BEGIN)
* Поддерживаются типы переменных: BYTE SHORTINT INTEGER LONGINT CHAR SHORTCHAR BOOLEAN SET
* Работает оператор присваивания вида переменная := литерал/переменная для указанных типов, при условии совпадения типов справа и слева от :=
* Для целочисленных и литерных типов сделаны безопасные (CHR/ORD) и небезопасные (SYSTEM.VAL) приведения типов
* Все вышеперечисленное покрыто тестами
* Два вида испытаний по каждому тесту (тестовому модулю) для синтезатора (генератора кода): тест на синтезированный машинный текст и тест на результат полевых испытаний. Соответственно для каждого вида можно задать стандартный результат.
* Сделан "тестовый полигон" для "полевых испытаний": для запуска синтезированного машкода в 64-битной среде. Полигон сделан в А2, связь с ББ - по HTTP.
* Тестовая база насчитывает порядка 100 тестов

https://vk.com/herschelcompiler?w=wall-196590190_47
http://herschel.oberon.org/2020/09/09/post/
https://twitter.com/HerschelCP64

Автор:  Comdiv [ Воскресенье, 13 Сентябрь, 2020 11:59 ]
Заголовок сообщения:  Re: x64 компилятор - проект Гершель

Иван Денисов писал(а):
* Тестовая база насчитывает порядка 100 тестов

Не нашёл и в репозитории. Их можно хранить вместе с основным кодом.

Автор:  Иван Денисов [ Воскресенье, 13 Сентябрь, 2020 12:41 ]
Заголовок сообщения:  Re: x64 компилятор - проект Гершель

Comdiv писал(а):
Иван Денисов писал(а):
* Тестовая база насчитывает порядка 100 тестов

Не нашёл и в репозитории. Их можно хранить вместе с основным кодом.

Они в файле:
Hr/Rsrc/TesterPanel.odc

Думаю, что мы с Антоном как-нибудь запишем видео-встречу, как этим добром пользоваться. Там он создал некоторую инфраструктуру для тестирования, так что сразу и не "въедешь".

Автор:  Comdiv [ Воскресенье, 13 Сентябрь, 2020 12:44 ]
Заголовок сообщения:  Re: x64 компилятор - проект Гершель

Как насчёт того, чтобы наоборот, делать тесты не завязанными на инфраструктуру? Чтобы их было проще задействовать вне зависимости от проекта?

Автор:  adimetrius [ Понедельник, 14 Сентябрь, 2020 00:53 ]
Заголовок сообщения:  Re: x64 компилятор - проект Гершель

Тесты находятся в документе Hr/Rsrc/TesterPanel, каждый тест - в отдельной складке, пронумерован и снабжен названием. Эталонные результаты следуют за текстом модуля.

+>Test99: Unresolved forward type references<+
->MODULE M;
...
END M.
+>Эталон<+
<-
+>Test97: String selectors<+

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

PS
Тексты ББ мощны, красивы и лёгки;
им где найдешь ты подобных?

Автор:  Иван Денисов [ Воскресенье, 18 Октябрь, 2020 13:15 ]
Заголовок сообщения:  Re: x64 компилятор - проект Гершель

По состоянию на 16-е октября Антоном реализовано:
Цитата:
На сегодня реализовано:
* компиляция тела глобальной процедуры
* вызов процедуры (по имени; процедурные переменные еще не реализованы)
* локальные переменные всех ранее реализованных типов, в т.ч. структурных
* все режимы передачи параметров: параметры-значения, параметры-переменные IN, VAR, OUT
* все ранее реализованные типы для параметров, в т.ч. структурные
* параметры открытых и фиксированных массивных типов

https://vk.com/herschelcompiler?w=wall-196590190_112

Автор:  Info21 [ Воскресенье, 18 Октябрь, 2020 18:26 ]
Заголовок сообщения:  Re: x64 компилятор - проект Гершель

Путь к славе.

Автор:  adimetrius [ Среда, 21 Октябрь, 2020 12:30 ]
Заголовок сообщения:  Re: x64 компилятор - проект Гершель

Info21 писал(а):
Путь к славе.


Может, и так ). Но напомню себе, что
Цитата:
Как нехорошо есть много меду, так домогаться славы не есть слава


Коллеги, я подошел к вопросу, куда и как выводить артефакты компиляции - машкод, литералы, метаданные, поправки и проч. Вроде бы естественный путь, к которому я склоняюсь - сохранять в формат OCF; кажется, что разрядность кода этому не помешает. С другой стороны, есть ли необходимость в этом - не ясно, поскольку на него завязано три программы: компилятор, перемещающий загрузчик/компоновщик и ядро (в части метаданных), а их все придется ревизировать при переходе к АМД64.

И еще вопрос: есть ли где-то описание формата OCF? Понятно, что сам компилятор и загрузчик являются его исчерпывающими описаниями; но уж больно больно вникать в такие описания ).

Автор:  Илья Ермаков [ Среда, 21 Октябрь, 2020 13:38 ]
Заголовок сообщения:  Re: x64 компилятор - проект Гершель

adimetrius писал(а):

И еще вопрос: есть ли где-то описание формата OCF? Понятно, что сам компилятор и загрузчик являются его исчерпывающими описаниями; но уж больно больно вникать в такие описания ).


Так в каталоге Dev/Spec!

Автор:  adimetrius [ Среда, 21 Октябрь, 2020 14:06 ]
Заголовок сообщения:  Re: x64 компилятор - проект Гершель

Илья Ермаков писал(а):
Так в каталоге Dev/Spec!

Великолепно! Благодарю!

Автор:  kekc_leader [ Понедельник, 26 Октябрь, 2020 02:04 ]
Заголовок сообщения:  Re: x64 компилятор - проект Гершель

Иван Денисов писал(а):
Опубликована длинная заметка с обоснованием проводимых изменений в части фронтенда
https://vk.com/@herschelcompiler-zachem ... i-simvolov


Из заметки:
Цитата:
Моя догадка — в том, что структура ТС была разработана еще для Модулы, в которой нет расширения типов. Т.е. Сам Вирт заложил ее основы, и потом ее развил г-н Крелье в компиляторе OP2, и до нас она дошла в виде СР2.


Вирт пишет в книге «Построение компиляторов», что он не использует расширение типов потому, что это усложняет код, и в данном месте это не нужно. Т. е. чтобы не умничать. Но в Oberon-07 всё как-то проще сделано, без всяких intval'ов. Там есть поля с названиями вида «a», «r» и есть маленькая табличка, где написано, что что означает. Я делал также, лично у меня особых трудностей не возникло. Может быть, из-за других, менее значащих (и поэтому не столь сбивающих с толку) названий полей и типов.

Например, в ББ записи, которые обозначают типы, называются почему-то структурами. Хотя структурой можно назвать записевый тип, ну и, например, массив... ну и процедурный тип, допустим. А INTEGER, BOOLEAN и прочее? Зачем там слово «структура»? Оно действительно сбивает с толку. В Обероне-07 это называется просто Type. То есть есть Object (всё, что в компилируемой программе имеет имя: константа, переменная, (пред-)объявленный тип, процедура или модуль), а есть Type (не имеет имени, обозначает форму типа, включая и базовые типы, и записи, и массивы, и процедуры). А в генераторе есть ещё Item, который представляет собой вещь, которую компилятор «держит в руках» непосредственно в процессе компиляции тел процедур. То есть при объявлении переменных и т. п. у нас есть только Object'ы и Type'ы, они помещаются в так называемую таблицу символов. А при собственно компиляции, когда вот-вот придёт время уже выдавать действительный машинный код и в процессе такой выдачи, появляются Item'ы, ссылающиеся на эти Object'ы. Причём Object'ы и Type'ы — переменные динамические, а Item статические, т. к. имеют смысл только в пределах соответствующих запущенных в данный момент процедур компиляции.

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