OberonCore
https://forum.oberoncore.ru/

Поделия SovietPony
https://forum.oberoncore.ru/viewtopic.php?f=47&t=6329
Страница 1 из 1

Автор:  SovietPony [ Суббота, 15 Декабрь, 2018 00:38 ]
Заголовок сообщения:  Поделия SovietPony

Я думаю все уже давно в курсе о моих поделках, но на всякий случай вброшу и сюда, раз зарегистрировался.

Bare Metal BlackBox (bmbb)
Как следует из названия - это попытка портировать BlackBox на голое железо.
На данный момент просто реализуется консолька на базе StdInterpreter и Minixfs. Работы ещё целый вагон, но оно запускается и даже играет музыку на спикере :)
Скриншот / Gitweb

BlackBox Chip8 Emulator (bbchip8)
Изучал как делать вьюшки и случайно сделал эмулятор Chip-8. Ничего интересного, на самом деле.
Скриншот / Тарбол

BlackBox ARM Compiler (bbarm)
Наверно самое интересное моё поделие. Да, я работаю над новым бэкэндом для компилятора из ББ и он уже кое-как работает. Что примечательно, выхлоп тестируется на смартфоне.
Планирую опубликовать где-то около нового года, как раз к тому времени решу большенство проблем.

BlackBox diffutils (bbdiff)
Здесь я делаю аналоги diff/patch/diff3 для ББ и его бинарных докуметов. Бонус в сравнении с уже готовенькими утилитам - это то что учитывается форматирование и наличие вьюшек. Делается оно для того что бы было проще поддерживать форки ББ, да и вообще что бы было удобно вести коллективную разработку на ББ.
Гарантировать 100% надёжность я пока не могу, но оно работает.
Скриншот / Gitweb

Автор:  Борис Рюмшин [ Суббота, 15 Декабрь, 2018 11:18 ]
Заголовок сообщения:  Re: Поделия SovietPony

SovietPony писал(а):
BlackBox ARM Compiler (bbarm)
Наверно самое интересное моё поделие. Да, я работаю над новым бэкэндом для компилятора из ББ и он уже кое-как работает. Что примечательно, выхлоп тестируется на смартфоне.
Планирую опубликовать где-то около нового года, как раз к тому времени решу большенство проблем.

Да, пожалуй это действительно самое интересное.

Автор:  SovietPony [ Понедельник, 17 Декабрь, 2018 00:04 ]
Заголовок сообщения:  Re: Поделия SovietPony

Сделал консольную тулзу на основе DevDiff и даже подключил её к git. Инструкции в README.
Проверял только wine... так что не гарантирую отсутствия проблем. А пинус версия BB от Ивана и ко всё так же не запускается на моём дистрибутиве, так что тоже не тестировал.
Сделано всё наспех, уже больше нет сил и времени на эти диффы, в ближайшее время вернусь к работе над bbarm.

Автор:  Илья Ермаков [ Понедельник, 17 Декабрь, 2018 10:29 ]
Заголовок сообщения:  Re: Поделия SovietPony

Спасибо, круто.

Успехов!

И ждём новостей :)

Автор:  Artyemov [ Понедельник, 17 Декабрь, 2018 18:54 ]
Заголовок сообщения:  Re: Поделия SovietPony

Цитата:
пинус версия BB

латынь? английского мало ;)

bbarm - заинтриговали...
А для "в каком виде" ARM?

Автор:  SovietPony [ Понедельник, 17 Декабрь, 2018 20:16 ]
Заголовок сообщения:  Re: Поделия SovietPony

Всм в каком виде?

Вот уже давно есть модули DevCP{V,C,L}ARM, на выхлопе обычные ocf с кодом для armv7l/armv6t2 (нужно закомментировать буквально несколько строк или поставить условия что бы генерировать для обычного armv6, но я такой целью пока не задавался). Использую модифицированный линковщик Dev2 что бы производить эльфы, выхлоп ассемблера смотрю через модифицированный дизассемблер из linref. Всё тестирую на ведрофоне с установленным в chroot CRUX ARM 3.4. Kernel пока что нету (соответственно остального тоже нету).
Летом даже уже писал helloworld'ы и факториалы с выхлопом в консоль, но я месяц назад всё переписал и утратил поддержку нахаченного сишного abi, так что просто пялюсь как что гоняет значения между регистрами в gdb.

Что нужно ещё сделать: поддержку LONGINT, [SHORT]REAL, операции над строками, починить вызов type-bound процедур, добавить проверки на NIL и границы массивов, вернуть возможность делать биндинги, кое-чего реализовать из SYSTEM. Всё остальное вроде работает.

Вроде ничего не забыл.

Автор:  Artyemov [ Вторник, 18 Декабрь, 2018 22:21 ]
Заголовок сообщения:  Re: Поделия SovietPony

Для расширения кругозора где это посмотреть?

SovietPony писал(а):
Всм в каком виде?

Ну, для какой архитектуры? Это для андроида (тогда v7a или v8a), или для v5 (а может и для v4, а вдруг...)?
Цитата:
...armv7l/armv6t2...

А тут уже я не понял: v7 бывает -a, -r, -m - первые две имеют наборы команд arm32 и thumb2, третья только thumb2.
Вот arm32 очень интересно было-бы.

Автор:  SovietPony [ Вторник, 18 Декабрь, 2018 23:12 ]
Заголовок сообщения:  Re: Поделия SovietPony

Artyemov писал(а):
Для расширения кругозора где это посмотреть?
Пока нигде. Я конечно вбрасывал старую версию где-то в сентябре в беседе вк, но оно уже давно не актуальное и страшное. И нынешний DevCPCARM тоже страшненикий и требует некоторого перепиливания.
Artyemov писал(а):
Ну, для какой архитектуры? Это для андроида (тогда v7a или v8a), или для v5 (а может и для v4, а вдруг...)?
Целюсь в первую очередь на armv7/-A потому что других железок у меня нет. -R тоже сделаю, они незначительно отличаются (хотя тестировать профили тоже нету на чём). Более старые версии arm думаю тоже не проблема сделать. Armv6 точно не проблема.
А armv8 не буду делать. Во-первых, это надо делать отдельный кодогенератор, а во-вторых, BlackBox не адаптирован для 64-битных процессоров ни по части рантайма, ни по части компилятора. Тут очень много работы. Да и опять же тестировать не на чем.
Artyemov писал(а):
А тут уже я не понял: v7 бывает -a, -r, -m - первые две имеют наборы команд arm32 и thumb2, третья только thumb2.
Вот arm32 очень интересно было-бы.
Я использую обычный режим arm. Просто в armv6t2 есть инструкции MOVW/MOVT для загрузки констант. Если не ошибаюсь, то только это и мешает поддержке чистого armv6.

Я похоже немножко обманул со сроками публикации, потому что вернулся к работе над BMBB вместо компилятора. Ну так припёрло.

Автор:  Иван Денисов [ Суббота, 15 Февраль, 2020 21:40 ]
Заголовок сообщения:  Re: Поделия SovietPony

Актуальные ссылки на проекты SovietPony
https://repo.or.cz/bmbb.git
https://repo.or.cz/cpc.git

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