OberonCore https://forum.oberoncore.ru/ |
|
Ofront+: транслятор Оберон-языков в Си для ARM, x64 и x86 https://forum.oberoncore.ru/viewtopic.php?f=30&t=6344 |
Страница 1 из 17 |
Автор: | Oleg N. Cher [ Среда, 23 Январь, 2019 20:58 ] |
Заголовок сообщения: | Ofront+: транслятор Оберон-языков в Си для ARM, x64 и x86 |
Видимо, пора уже создать такую тему. Итак, встречайте: Ofront+. Форк транслятора Йозефа Темпла Ofront на базе портабельного компилятора OP2 (ETH Oberon). Текущий статус проекта: стабильный, фичи допиливаются по мере необходимости. В планах есть много задумок: добавить, кроме Оберона и Оберона-2, ещё Компонентный Паскаль, Оберон-07 и экспериментальный диалект Оберон-3. Также я думал про совместимость с языковыми расширениями GPCP. Кое-что из задуманного уже реализовано. Если возьмёте транслятор в работу, будем активно развивать его вместе с вашими потребностями. Я на это очень надеюсь. Мне несколько обидно, что неразвивающийся Vishap/voc котируется по рейтингам выше, чем более прогрессивный и мощный Ofront+. Давайте менять эту ситуацию! Отличия Ofront+ от Ofront/voc:
Я начал этот проект чтобы иметь настоящий инструмент, а не игрушку. И сейчас это довольно хороший способ получить решение для архитектур ARM/x64 на Обероне-2 или Компонентном Паскале, хотя и подмножестве. Меня Ofront+ уже более чем устраивает в том виде, в котором он есть, но также я оказываю поддержку своим пользователям при решении возникающих проблем. Так что буду рад сотрудничеству. Ссылки: |
Автор: | Борис Рюмшин [ Среда, 23 Январь, 2019 23:47 ] |
Заголовок сообщения: | Re: Ofront+: транслятор Оберон-языков в Си для ARM, x64 и x8 |
А CPFront вы не смотрели? |
Автор: | Oleg N. Cher [ Четверг, 24 Январь, 2019 00:31 ] |
Заголовок сообщения: | Re: Ofront+: транслятор Оберон-языков в Си для ARM, x64 и x8 |
Смотрели. Об этом было в моём докладе на Дне Оберона-2018. Он не готов для 64 бит и ядра нет. Но конструктивно он близок к Ofront, так что я хочу их срастить по мере сил, со временем. |
Автор: | Trurl [ Четверг, 24 Январь, 2019 17:11 ] |
Заголовок сообщения: | Re: Ofront+: транслятор Оберон-языков в Си для ARM, x64 и x8 |
А описание Oberon-3 есть? |
Автор: | Борис Рюмшин [ Четверг, 24 Январь, 2019 17:14 ] |
Заголовок сообщения: | Re: Ofront+: транслятор Оберон-языков в Си для ARM, x64 и x8 |
Oleg N. Cher писал(а): Он не готов для 64 бит и ядра нет. Но конструктивно он близок к Ofront, так что я хочу их срастить по мере сил, со временем. А что подразумевается под готовностью для 64 бит? Конструктивно то понятно, это Ofront какой-то промежуточной версии переделанный под КП. |
Автор: | Trurl [ Четверг, 24 Январь, 2019 18:21 ] |
Заголовок сообщения: | Re: Ofront+: транслятор Оберон-языков в Си для ARM, x64 и x8 |
Да, как им пользоваться-то? |
Автор: | Oleg N. Cher [ Четверг, 24 Январь, 2019 18:33 ] |
Заголовок сообщения: | Re: Ofront+: транслятор Оберон-языков в Си для ARM, x64 и x8 |
Trurl писал(а): А описание Oberon-3 есть? Готовится.Борис Рюмшин писал(а): А что подразумевается под готовностью для 64 бит? Как минимум, неиспользование везде, где можно, INTEGER в качестве адреса. А в идеале - наличие адресного системного типа. Да, те модули, которые являются CPfront'ом, можно переделать под 64 бита, но поскольку всё увязано на BlackBox, то кто будет переделывать фронт-энд? Потом нужно будет ввести несколько наборов символьных файлов для разных разрядностей. Не всё так тривиально, как Вы думаете, Борис.Trurl писал(а): Да, как им пользоваться-то? Там есть QuickStart.txt и примеры программ со скриптами их для сборки. Если что-то конкретно непонятно, дайте знать)
|
Автор: | Trurl [ Четверг, 24 Январь, 2019 18:59 ] |
Заголовок сообщения: | Re: Ofront+: транслятор Оберон-языков в Си для ARM, x64 и x8 |
Как скомпилировать хелловорд? Он не находит символьных файлов, да их и нету. Как сделать, чтобы были? |
Автор: | Oleg N. Cher [ Четверг, 24 Январь, 2019 19:25 ] |
Заголовок сообщения: | Re: Ofront+: транслятор Оберон-языков в Си для ARM, x64 и x8 |
Есть они. Цитирую QuickStart.txt: Цитата: 1. Если работа происходит в нескольких папках, то важно чтобы транслятор мог найти символьные файлы *.sym, необходимые для трансляции, т.к. в них хранится информация об интерфейсах импортируемых модулей. Поэтому задайте переменную OBERON, содержащую пути для поиска: UNIX / Linux 32: export OBERON=.:../Lib/Sym:../Sym UNIX / Linux 64: export OBERON=.:../Lib/Sym64:../Sym64 Windows 32: SET OBERON=%CD%;%CD%\..\Lib\Sym;%CD%\..\Sym Windows 64: SET OBERON=%CD%;%CD%\..\Lib\Sym64;%CD%\..\Sym64 Переменная окружения OBERON задаёт список путей, по которым будет вестись поиск рабочих файлов. Пути могут быть и абсолютными, и относительными. Без этой переменной транслятор будет искать файлы только в текущем каталоге. То есть, процесс трансляции выглядит как-то так: Код: @ECHO OFF
SET PATH=..\Bin;%PATH% SET OBERON=%CD%;%CD%\..\Lib\Sym ofront+ -mC -48 BlitBmp.Mod IF errorlevel 1 PAUSE |
Автор: | Trurl [ Четверг, 24 Январь, 2019 20:45 ] |
Заголовок сообщения: | Re: Ofront+: транслятор Оберон-языков в Си для ARM, x64 и x8 |
Поиск по "*.sym" не дает результатов. Может они и есть, но где? |
Автор: | Oleg N. Cher [ Четверг, 24 Январь, 2019 21:14 ] |
Заголовок сообщения: | Re: Ofront+: транслятор Оберон-языков в Си для ARM, x64 и x8 |
А-а, я понял отчего у Вас нет *.sym, Trurl! Раньше они присутствовали в репозитории, но потом Иван Денисов заметил, что нет смысла хранить там файлы, которые легко сгенерировать. Я подумал — что-то в этом есть. И убрал. Просто запустите Lib/Bin/o2c для 32-битной системы и Lib/Bin/o2c64 для 64-битной. |
Автор: | Trurl [ Четверг, 24 Январь, 2019 22:16 ] |
Заголовок сообщения: | Re: Ofront+: транслятор Оберон-языков в Си для ARM, x64 и x8 |
Ура! Заработало! (^◔ᴥ◔^) |
Автор: | Борис Рюмшин [ Пятница, 25 Январь, 2019 08:23 ] |
Заголовок сообщения: | Re: Ofront+: транслятор Оберон-языков в Си для ARM, x64 и x8 |
Oleg N. Cher писал(а): Не всё так тривиально, как Вы думаете, Борис. А я и не думаю, что всё тривиально. |
Автор: | Comdiv [ Суббота, 26 Январь, 2019 22:36 ] |
Заголовок сообщения: | Re: Ofront+: транслятор Оберон-языков в Си для ARM, x64 и x8 |
Планируется ли добавить автоматическую сборку исполняемых файлов помимо генерации кода на C? |
Автор: | Oleg N. Cher [ Пятница, 08 Февраль, 2019 20:14 ] |
Заголовок сообщения: | Re: Ofront+: транслятор Оберон-языков в Си для ARM, x64 и x8 |
В Ofront+ добавлены арифметические операции DIV0 и REM0. Благодарю ComDiv'а за помощь. Подробнее здесь: https://github.com/Oleg-N-Cher/OfrontPlus/issues/55 Comdiv писал(а): Планируется ли добавить автоматическую сборку исполняемых файлов помимо генерации кода на C? Я думал о чём-то подобном. Такая прослойка между транслятором Оберона и компилятором Си, которая будет переводить свои опции командной строки в gcc'шные. Серьёзно? Кому-то такое ещё надо? В voc проделана эта работа, и поэтому voc хорош? Не очень понятно, зачем изобретать свои опции и транслировать одни опции в другие. К тому же, это жёсткая завязка на определённый компилятор Си. Плюс понадобится привязка к структуре проекта, расположению библиотек и т.д. (что мне не нравится в voc).Вопрос к пользователям Ofront+. Чего больше всего не хватает в трансляторе? На какое направление его развития нужно сделать упор в первую очередь? |
Автор: | SovietPony [ Воскресенье, 10 Февраль, 2019 11:56 ] |
Заголовок сообщения: | Re: Ofront+: транслятор Оберон-языков в Си для ARM, x64 и x8 |
Я уже много раз об этом говорил: хотелось бы готовые *.c для жму/пинусов вместо бинарей. Не обязательно их ложить в репы, пусть транслируется автоматически и выкладываются куда-нибдь на фтп или в релизы на шитхабе (это наверняка делается как-нибдь автоматизировано) вместе со свежими бинарями. |
Автор: | Oleg N. Cher [ Понедельник, 11 Февраль, 2019 03:09 ] |
Заголовок сообщения: | Re: Ofront+: транслятор Оберон-языков в Си для ARM, x64 и x8 |
Навёл порядок с шестнадцатеричными литералами в разных Оберон-диалектах. SovietPony писал(а): хотелось бы готовые *.c для жму/пинусов вместо бинарей. Ну хорошо. Мне это не упёрлось, но раз человек просит, почему бы нет.Здесь кто-нибудь мог бы мне помочь с настройкой Travis CI или AppVeyor? |
Автор: | Oleg N. Cher [ Вторник, 12 Февраль, 2019 15:22 ] |
Заголовок сообщения: | Re: Ofront+: транслятор Оберон-языков в Си для ARM, x64 и x8 |
Улучшена поддержка Oberon-07 (опция -7): добавлены встроенные функции FLOOR и FLT. |
Автор: | GameHunter [ Среда, 13 Февраль, 2019 19:08 ] |
Заголовок сообщения: | Re: Ofront+: транслятор Оберон-языков в Си для ARM, x64 и x8 |
Кто-нибудь использовал Ofront+ для компиляции в DLL? Я линкую модкли в DLL (mingw-w64), в принципе работает, но почему-то не запускается секция инициализации модулей. А финализации модулей в Ofront+ нет? |
Автор: | Oleg N. Cher [ Четверг, 14 Февраль, 2019 01:21 ] |
Заголовок сообщения: | Re: Ofront+: транслятор Оберон-языков в Си для ARM, x64 и x8 |
GameHunter писал(а): Кто-нибудь использовал Ofront+ для компиляции в DLL? Я использовал.GameHunter писал(а): Я линкую модкли в DLL (mingw-w64), в принципе работает, но почему-то не запускается секция инициализации модулей. При загрузке DLL и не должно само инициализироваться. Механизма типа DllMain там не предусмотрено. Инициализацию делает вызов Module__init() через макрос __IMPORT(Module__init). Ключик -d при создании DLL юзаете?GameHunter писал(а): А финализации модулей в Ofront+ нет? Пока нет. Сделаем CLOSE как в КП.
|
Страница 1 из 17 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |