OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Среда, 23 Сентябрь, 2020 17:10

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




Начать новую тему Ответить на тему  [ Сообщений: 54 ]  На страницу 1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: x64 компилятор - проект Гершель
СообщениеДобавлено: Пятница, 17 Июль, 2020 11:39 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 2826
Объявляем о запуске проекта по разработке нативного x64 компилятора для Компонентного Паскаля в Блэкбоксе.

Опорный сайт для международной аудитории:
http://herschel.oberon.org

А также паблик вконтакте:
https://vk.com/HerschelCompiler


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: x64 компилятор - проект Гершель
СообщениеДобавлено: Пятница, 17 Июль, 2020 23:25 

Зарегистрирован: Вторник, 01 Март, 2011 09:34
Сообщения: 483
Откуда: Москва
На сайте есть ссылка на обсуждение со мной. Я предлагал Ивану перенести BlackBox под уже разработанный оптимизирующий компилятор для 64-бит llvm MultiOberon, а Антону - написать бэкенд под WebAssembly для MultiOberon.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: x64 компилятор - проект Гершель
СообщениеДобавлено: Суббота, 18 Июль, 2020 05:29 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 2826
Моя задумка была в том, чтобы, по возможности, использовать наработки MultiOberon для разработки нативного компилятора. Дмитрий Викторович, вы ведь не раз на встречах говорили, что несколько изменили компилятор, переименовали некоторые переменные и константы для понятности, а также сделали сменный бэкенд. Также хотелось узнать, интересно ли будет вам участвовать в проекте нативного компилятора.

Хотя какой-то обмен опытом возможен. Будет здорово, если найдете возможность участвовать в обсуждениях. Сейчас процесс выглядит так, что компилятор для проекта Гершель претерпевает большие изменения в части фронтенда, они отражены в файле HrT.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: x64 компилятор - проект Гершель
СообщениеДобавлено: Суббота, 18 Июль, 2020 05:57 

Зарегистрирован: Среда, 31 Январь, 2018 19:54
Сообщения: 228
Дмитрий Дагаев писал(а):
На сайте есть ссылка на обсуждение со мной. Я предлагал Ивану перенести BlackBox под уже разработанный оптимизирующий компилятор для 64-бит llvm MultiOberon, а Антону - написать бэкенд под WebAssembly для MultiOberon.

Здорово!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: x64 компилятор - проект Гершель
СообщениеДобавлено: Суббота, 18 Июль, 2020 06:44 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 2826
arlean1, возможно радость преждевременна. На нашей встрече были высказаны некоторые идеи и предложения, однако проект уже идет другим путём. Это зависит не столько от меня, сколько от желания и амбиций основных разработчиков. Антону интересно делать компилятор иначе. Еще SovietPony активный участник обсуждений — его также заинтересовала разработка прямого компилятора. Буду публиковать новости. Я оказываю информационную, организаторскую и коммуникационную поддержку проекту. Надеюсь скоро оказать и финансовую. Нам ещё Мэтью из Mobatec обещал спонсорскую помощь (но пока ничего не перевел). Возможно Илья также сможет помочь позднее. Ждем поддержки от всех заинтересованных разработчиков и пользователей!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: x64 компилятор - проект Гершель
СообщениеДобавлено: Воскресенье, 19 Июль, 2020 12:51 

Зарегистрирован: Среда, 31 Январь, 2018 19:54
Сообщения: 228
Иван Денисов писал(а):
Моя задумка была в том, чтобы, по возможности, использовать наработки MultiOberon для разработки нативного компилятора...

компромисс переходящий в сотрудничество - более рациональный подход.

LLVM - это стабильность уже на первых шагах.
На сайте очень краткие описания ((( ....

Но как просто пример - Emscripten - компилятор из LLVM байт-кода в JavaScript.
https://habr.com/ru/post/143583/


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: x64 компилятор - проект Гершель
СообщениеДобавлено: Воскресенье, 19 Июль, 2020 13:13 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 2826
arlean1 писал(а):
Иван Денисов писал(а):
Моя задумка была в том, чтобы, по возможности, использовать наработки MultiOberon для разработки нативного компилятора...

компромисс переходящий в сотрудничество - более рациональный подход.

LLVM - это стабильность уже на первых шагах.
На сайте очень краткие описания ((( ....

Но как просто пример - Emscripten - компилятор из LLVM байт-кода в JavaScript.
https://habr.com/ru/post/143583/

LLVM - это очень хорошо, и тут Дмитрий Викторович многое исследовал и это один из важных путей развития мультиплатформенности. Но в сообществе есть большой интерес в нативном компиляторе x64. Мы рассуждали ещё о том, чтобы в МультиОбероне появился четвертый бэкенд в виде транслятора в нативный набор инструкция для x64. Однако у Антона есть рационализаторская задумка, которую он достаточно основательно обосновал. Заключается она в омоложении версии OP2, которая используется в ББ, актуальными языковыми средствами, чтобы компилятор помогал обнаруживать ошибки несовместимости типов при разработке бэкендов. Дмитрий Викторович не исключил, что возможно после наших исследований новых подходов, что-то перенесет и в МультиОберон. Так возможно проекты срастутся и дополнят друг друга интеллектуально.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: x64 компилятор - проект Гершель
СообщениеДобавлено: Воскресенье, 19 Июль, 2020 14:11 

Зарегистрирован: Среда, 31 Январь, 2018 19:54
Сообщения: 228
Иван Денисов писал(а):
...Но в сообществе есть большой интерес в нативном компиляторе x64. ...


Это очень занимательно, красиво и вызывает интерес.
Но если это просто "спортивный" интерес??? Есть ведь и другие мнения о нерациональности подобного пути https://habr.com/ru/post/277717/
... не говоря об экономии ресурсов, времени и отхода от мирового тренда в разработке компиляторов

Цитата:
На сегодняшний день существует только два реалистичных пути разработки компилятора для собственной архитектуры: использование GCC либо использование LLVM. Другие проекты компиляторов с открытым исходным кодом либо не достигли той степени развития, как GCC и LLVM, либо устарели и перестали развиваться, они не обладают развитыми алгоритмами оптимизации, и могут не обеспечивать полной совместимости даже со стандартом языка С, не говоря уже о поддержке других языков программирования. Разработка собственного компилятора “с нуля", это весьма нерациональный путь, т.к. существующие опенсорсные решения уже реализуют фронтенд компилятора с множеством весьма нетривиальных алгоритмов оптимизации, которые, к тому же, хорошо протестированы и используются уже длительное время.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: x64 компилятор - проект Гершель
СообщениеДобавлено: Воскресенье, 19 Июль, 2020 14:23 

Зарегистрирован: Вторник, 01 Март, 2011 09:34
Сообщения: 483
Откуда: Москва
Иван Денисов писал(а):
Мы рассуждали ещё о том, чтобы в МультиОбероне появился четвертый бэкенд в виде транслятора в нативный набор инструкция для x64. Однако у Антона есть рационализаторская задумка, которую он достаточно основательно обосновал. Заключается она в омоложении версии OP2, которая используется в ББ, актуальными языковыми средствами, чтобы компилятор помогал обнаруживать ошибки несовместимости типов при разработке бэкендов. Дмитрий Викторович не исключил, что возможно после наших исследований новых подходов, что-то перенесет и в МультиОберон.

В начале надо как-то изложить концепцию, скажем на дне Оберона.

Кстати, Антон обладает замечательной для программиста способностью очень ясно излагать свои мысли. И при переключении на отличный английский эта способность сохраняется.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: x64 компилятор - проект Гершель
СообщениеДобавлено: Воскресенье, 19 Июль, 2020 18:47 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 2826
Во первых, LLVM транслятор уже Дмитрий Викторович делает, поэтому arlaen1 — можете не переживать на этот счёт. Там есть большие достижения и проблемы тоже обозначены. Про тренды сильно не хочу обсуждать. Есть идеальное решение — нативный компилятор полным с контролем чего получается на выходе. Сейчас можно взять OCF файл и поизучать, что там какая процедура делает в машинных инструкциях. Это очень ценно для надежности, динамической загрузки, обработки исключений, разработки низкоуровневых вещей и т.п. Еще и опыт разработчиков будет.

Во вторых, не обязательно общаться только на днях Оберона. Очень понравился формат онлайн-семинаров. Я думаю, что какие-то встречи разумно устраивать по тематике. И даже полезнее будет, так как возможно обстоятельнее показать, позадавать вопросы и т.п.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: x64 компилятор - проект Гершель
СообщениеДобавлено: Понедельник, 20 Июль, 2020 08:17 

Зарегистрирован: Среда, 31 Январь, 2018 19:54
Сообщения: 228
Иван Денисов писал(а):
Во первых, LLVM транслятор уже Дмитрий Викторович делает, поэтому arlaen1 — можете не переживать на этот счёт. Там есть большие достижения и проблемы тоже обозначены.

но делает его один?
Иван Денисов писал(а):
Есть идеальное решение — нативный компилятор полным с контролем чего получается на выходе.

это кажется, что идеальное решение - под какой процессор идеальное? Может быть это как раз тупиковый путь?

LLVM позволит использовать опыт бОльшего сообщества и на разных платформах.
повторю мысль, к которой пришло это значительно бОльшее сообщество:
arlean1 писал(а):
Есть ведь и другие мнения о нерациональности подобного пути https://habr.com/ru/post/277717/
... не говоря об экономии ресурсов, времени и отхода от мирового тренда в разработке компиляторов
Цитата:
На сегодняшний день существует только два реалистичных пути разработки компилятора для собственной архитектуры: использование GCC либо использование LLVM. Другие проекты компиляторов с открытым исходным кодом либо не достигли той степени развития, как GCC и LLVM, либо устарели и перестали развиваться, они не обладают развитыми алгоритмами оптимизации, и могут не обеспечивать полной совместимости даже со стандартом языка С, не говоря уже о поддержке других языков программирования. Разработка собственного компилятора “с нуля", это весьма нерациональный путь, т.к. существующие опенсорсные решения уже реализуют фронтенд компилятора с множеством весьма нетривиальных алгоритмов оптимизации, которые, к тому же, хорошо протестированы и используются уже длительное время.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: x64 компилятор - проект Гершель
СообщениеДобавлено: Понедельник, 20 Июль, 2020 10:25 

Зарегистрирован: Суббота, 04 Май, 2019 10:21
Сообщения: 20
I'd like to focus on llvm,
according to my skills, the first step is 32bit-x86 compiler on windows,
After getting familiar with llvm, then to next step...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: x64 компилятор - проект Гершель
СообщениеДобавлено: Понедельник, 20 Июль, 2020 13:38 
Аватара пользователя

Зарегистрирован: Суббота, 16 Февраль, 2008 02:47
Сообщения: 307
arlean1, вероятно, вам стоит присоединиться к Д.В. Дагаеву в его разработке? и вот Luowy тоже может подключится. Всё сообщество только выиграет от этого.

Далее - не чтобы кого-то переубедить, а раскрыть мой ход мыслей.
Про GCC и тренды - ну, лично я вспоминаю Вирта; когда надо было начать курс по операционным системам, он жеж мог обратить внимание на тренды. Было из чего выбрать: дос, виндофс, ос/2, юникс; можно было и полюбившуюся ему в пало-альто систему выбрать. Но он отмел их из-за сложности и необозримости: необозримости в том смысле, что 1 человек не может охватить всю систему.

Допускаю, что GCC прекрасен; убежден, что с 5 млн строк кода он необозрим. Это откликается у меня апатией и потерей интереса. А вот с СР2, на базе которого мы строим Гершель - за полтора месяца я перелопатил (почти) весь фронт-энд, чтобы перевести его на новый формат таблицы символов. Еще за две недели - сделал тестовую инфраструктуру. Это обозримо, это посильно. Это откликается задором, интересом, энергией. (Впрочем, чего там: я изменил всего 3 модуля, каждый всего по полторы тыщи операторов). Полагаю, сделать ФЭ с нуля мне бы не удалось за это время.

Про оптимизирующие компиляторы. Помню рассказы Д.В.Дагаева о том, как он запускал make и уходил "покурить" - оптимальность gcc вызывает у меня сомнения. За время перекомпиляции и сборки ВСЕГО ББ я даже в носу ковырнуть не успею.
Открываю ББ, в нем - полтора десятка текстов-модулей по 30-80КБ. Смотрю на память: использовано ~3МБ. Открываю хром, в нем - Google Keep с полутора десятками моих записок, каждая не более 1000 симв. Смотрю память: вкладка использует 250МБ.
Вывод для меня такой: оптимальность результата ТОЧНО зависит не от оптимизирующего компилятора.
Поэтому, да, оптимизирующий прямой компилятор вряд ли (быстро) получится; и вряд ли это скажется на общей производительности ББ.
Полагаю, нужно оптимизировать мозги; но это не точно.

ПС
Дмитрий Викторович - Thank you for your kind words )


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: x64 компилятор - проект Гершель
СообщениеДобавлено: Понедельник, 20 Июль, 2020 17:28 

Зарегистрирован: Понедельник, 11 Сентябрь, 2017 13:23
Сообщения: 954
Антон, мои аплодисменты! С (прикушенного) языка снял.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: x64 компилятор - проект Гершель
СообщениеДобавлено: Понедельник, 20 Июль, 2020 18:31 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 2826
luowy писал(а):
I'd like to focus on llvm,
according to my skills, the first step is 32bit-x86 compiler on windows,
After getting familiar with llvm, then to next step...

There are good achievements on LLVM for slightly modified Kernel in MultiOberon project.
viewtopic.php?f=157&t=6426
The structure of project is cumbersome. Please ask questions, if have troubles.
However it works already with dynamic loading of modules!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: x64 компилятор - проект Гершель
СообщениеДобавлено: Понедельник, 20 Июль, 2020 19:29 

Зарегистрирован: Среда, 31 Январь, 2018 19:54
Сообщения: 228
adimetrius писал(а):
Про оптимизирующие компиляторы. Помню рассказы Д.В.Дагаева о том, как он запускал make и уходил "покурить" - оптимальность gcc вызывает у меня сомнения.

Это не моя ссыла, но что-то можно возразить ))) - https://forum.oberoncore.ru/viewtopic.php?f=157&t=6426
Это как бы тянет уже начинать LLVM заниматься "по-взрослому" для BB:

Цитата:
На бенчмарк это не тянет. Я просто собрал транслятор Восток в единый файл с биткодом размером ~1.5 Мб, и пробовал его запускать разными способами.
В режиме по умолчанию(-O2) LLVM lli запускал транслятор 20 секунд, с флагом -O0 - 8 сек, в режиме интерпретатора я не смог его запустить из-за ошибок поиска функций стандартной библиотеки Си. Через Sulong lli транслятор запустился за 0.08 сек, с флагом --jvm - за 0.8 сек.
Странность заключается в том, что сбор транслятора с помощью clang из Си занимает 3.5 секунды. Это заставило меня всё перепроверить - выяснилось, что в дело вмешалась устаревшая версия lii-5.0, собранная в отладочном режиме. Боевой lli-6.0 запустил программу за 1.8 сек. в режиме по умолчанию, и за 0.8 сек с опцией -O0, в режиме интерпретатора(--force-interpreter) - за 0.08 сек.
Итого, в режиме JIT разрыв всего лишь 10 кратный. Время работы самой прогаммы пока не удалось нормально замерить


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: x64 компилятор - проект Гершель
СообщениеДобавлено: Понедельник, 20 Июль, 2020 19:39 

Зарегистрирован: Среда, 31 Январь, 2018 19:54
Сообщения: 228
adimetrius писал(а):
Про GCC и тренды - ну, лично я вспоминаю Вирта; когда надо было начать курс по операционным системам, он жеж мог обратить внимание на тренды. Было из чего выбрать: дос, виндофс, ос/2, юникс; можно было и полюбившуюся ему в пало-альто систему выбрать. Но он отмел их из-за сложности и необозримости: необозримости в том смысле, что 1 человек не может охватить всю систему.

Да, до сих пор это было возможно охватить 1 человеку, но в этом ли главная задача?
Если удасться продолжить с оптимизацией на LLVM, то это может перейти на взрослый уровень промышленной эксплуатации и возможно без многих проблем с сертификацией. Или в перспективе заменить на рынке RUST - т.е. сделать привлекательным переход от сложного в изучении RUST на ВВ.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: x64 компилятор - проект Гершель
СообщениеДобавлено: Понедельник, 20 Июль, 2020 19:44 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 2826
arlean1, прошу считать тему про LLVM закрытой, ответ Антона считать ответом на ваши вопросы про LLVM (хоть там и про gcc, суть одна). Дальнейшие сообщения будут считаться оффтопом. Заведите отдельную тему для LLVM, если хотите.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: x64 компилятор - проект Гершель
СообщениеДобавлено: Понедельник, 20 Июль, 2020 20:04 

Зарегистрирован: Вторник, 01 Март, 2011 09:34
Сообщения: 483
Откуда: Москва
adimetrius писал(а):
Про оптимизирующие компиляторы. Помню рассказы Д.В.Дагаева о том, как он запускал make и уходил "покурить" - оптимальность gcc вызывает у меня сомнения. За время перекомпиляции и сборки ВСЕГО ББ я даже в носу ковырнуть не успею.

Если Вы меня цитируете, то цитируйте точно. Историю я рассказывал про один мой проект на работе на С++ 17 с шаблонами и проч. Он собирается более часа. К Оберонам отношения не имеет. Компилятор gcc для языка С собирает файлы, сгенеренные Omf на базе Ofront'a гораздо быстрее.

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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: x64 компилятор - проект Гершель
СообщениеДобавлено: Понедельник, 20 Июль, 2020 20:15 

Зарегистрирован: Вторник, 01 Март, 2011 09:34
Сообщения: 483
Откуда: Москва
Позволю еще вопрос задать, для какого BlackBox планируется делать компилятор в данном проекте?
1. Для 32-битного варианта;
2. Для 64-битного варианта, включая переделку Kernel, Meta, ..., Host* ну и, сами понимаете...


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

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


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

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


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

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