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

Твердыня модульных языков
Текущее время: 20 июн 2019, 09:25

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




Начать новую тему Ответить на тему  [ Сообщений: 48 ]  На страницу Пред.  1, 2, 3, 4, 5  След.
Автор Сообщение
 Заголовок сообщения: Re: Oberon-07/16
СообщениеДобавлено: 25 дек 2018, 09:58 
Не в сети

Сообщения: 25
Командная строка точно такая (dll вместо console)?

Compiler32.exe test.ob07 test.dll dll -pic
или
Compiler32.exe test.ob07 test.dll dll -reloc

И какой просмотрщик?


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Oberon-07/16
СообщениеДобавлено: 25 дек 2018, 15:41 
Не в сети
Администратор
Аватара пользователя

Сообщения: 86
Всё по инструкции делаю, всё правильно собирается, это просмотрщик тупит. Скрипт на питоне правильно обращается и отрабатывает. Правда, толку пока никакого.
10 миллионов итераций показали, что внутри питон работает быстрее ровно в 2 раза, чем лазить в стороннюю библиотеку с дикой конвертацией параметров. Если математика тяжёлая будет -- тогда да. Сейчас 85% смысла потерялось.

_________________
Действия профессионала предсказуемы. Но в мире полно любителей!


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Oberon-07/16
СообщениеДобавлено: 25 дек 2018, 20:48 
Не в сети
Администратор
Аватара пользователя

Сообщения: 86
За Обероном всё ещё остаётся строгая статическая типизация. Как я сегодня костыли для питона изобретал -- это надо видеть. Метод выдавливания багов из питонячьего кода -- подражать Оберону. Тупо и беспощадно. Но даже мой оберон-стайл в питоне -- не поможет, пока исполнение не дойдёт до этого куска. И это просто всё.
Что касается моего результата по времени, сегодня -- для себя сделал вывод, что чтобы внешний вызов себя оправдал -- необходимо в DLL выполнить как минимум 8-10 операций. А лучше -- больше. По потреблению памяти, безусловно -- Оберон делает питон просто на ровном месте. Есть у меня куски, где тут Оберон можно прекрасно притулить. В общем, пока я из графика выбиваюсь, отстаю, придётся кряхтеть на выходные. Сегодня уже завёл сервер в облаке и начальство смотрит на меня с вопросом "ну что там у нас?". А у нас просто говнокод)))

_________________
Действия профессионала предсказуемы. Но в мире полно любителей!


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Oberon-07/16
СообщениеДобавлено: 29 дек 2018, 18:13 
Не в сети

Сообщения: 25
Устранены практически все недоработки (кроме ассемблера). Соглашение вызовов win64 поддерживается, но работает недостаточно эффективно, поэтому пока [win64] используется только для связи с внешним миром, а внутри применяется собственный формат вызова на основе stdcall. Я протестировал прямые вызовы на системных функциях Windows64, обратные -- с использованием компилятора Patchouli -- всё работает. Поддерживается генерация DLL. Почти исключен сопроцессор x87 (используется только для редких операций PACK/UNPK). Улучшена обработка длинных констант.

prospero78su
Я всё же вернул обратно свой старый код (хотя я принял некоторые предложенные тобой улучшения), потому что всё это было несвоевременно. Пока рано приводить имена в порядок -- там всё еще очень нестабильно. И делать это надо согласованно и не так быстро. К тому же, у меня нет гарантии, что ты это доведешь до конца.


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Oberon-07/16
СообщениеДобавлено: 31 дек 2018, 13:04 
Не в сети
Администратор
Аватара пользователя

Сообщения: 86
Да, без проблем. Ты главное, пили старательней)))

_________________
Действия профессионала предсказуемы. Но в мире полно любителей!


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Oberon-07/16
СообщениеДобавлено: 24 фев 2019, 22:11 
Не в сети

Сообщения: 25
Итак, настало время подвести промежуточные итоги и сделать длительный перерыв в разработке.

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

32-битный бэк-энд по качеству не очень много уступает Блэкбоксу (на тестовых задачах 80-90% от производительности ББ).
64-битный -- мало отличается от Patchouli, но всё же пока чуть хуже.

Поддержка Windows32/64 реализована полностью, как было задумано: exe, dll, импорт/экспорт процедур.
Поддержка Linux32/64 -- частичная: без dll и без импорта процедур. Последнее, впрочем, не очень критично: все программы импортируют dlopen и dlsym, с помощью которых, можно получить адреса внешних функций. Пока не знаю, буду ли я доделывать поддержку Linux. После перерыва (если не потеряю интерес), скорее всего, буду смотреть в сторону контроллеров. Собственно, для контроллеров, я и начал этот проект. Поддержка x86(64), Windows/Linux мне нужна, главным образом, для самодостаточности компилятора.


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Oberon-07/16
СообщениеДобавлено: 04 мар 2019, 15:04 
Не в сети

Сообщения: 128
Ого, издалека зашли. Хорошо, что начали не с написания ОС.


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Oberon-07/16
СообщениеДобавлено: 05 мар 2019, 07:14 
Не в сети

Сообщения: 204
akron1 писал(а):
После перерыва (если не потеряю интерес), скорее всего, буду смотреть в сторону контроллеров. Собственно, для контроллеров, я и начал этот проект.

А какие контроллеры предполагаются?
Для некоторых типов ARM есть уже неплохой, но платный, Astrobe...


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Oberon-07/16
СообщениеДобавлено: 06 мар 2019, 04:57 
Не в сети

Сообщения: 25
Comdiv писал(а):
Ого, издалека зашли. Хорошо, что начали не с написания ОС.

Издалека. Что ж, бывает, люди делают что-то непрактичное. Практичней было бы взять Ваш транслятор и приспособить под свои нужды. Еще практичней -- вообще забить на Оберон. Кодогенерация для контроллеров -- это конечная цель проекта. Без достижения этой цели, я не буду считать проект завершенным. Но есть и другая, попутная, задача: построение мультитаргетного компилятора с линейным (не AST) промежуточным представлением (я как-то скептически отношусь к синтаксическим деревьям). Есть Оберон-реализации с построением AST, которым это дерево не помогает, а скорее мешает (усложняет добавление нового бэк-энда). Ну, мне так кажется... А поскольку никаких сроков мне установлено, я могу подходить к решению задачи сколь угодно издалека, как мне будет удобно.

geniepro писал(а):
akron1 писал(а):
После перерыва (если не потеряю интерес), скорее всего, буду смотреть в сторону контроллеров. Собственно, для контроллеров, я и начал этот проект.

А какие контроллеры предполагаются?
Для некоторых типов ARM есть уже неплохой, но платный, Astrobe...

Пока не выбрал. Окончательно решу непосредственно перед имплементацией. Если есть какие-либо предложения, советы по выбору типа контроллера, можете высказать, нет -- я сам выберу. Пока можно сказать, что это должен быть достаточно распространенный контроллер (чтобы не было сложностей с покупкой) и он должен быть 32-битный. Наличие уже готовых компиляторов меня не смущает. Astrobe -- коммерческий и (кажется) только для Windows. Компилятор Ширяева привязан к Блэкбоксу и имеет неясности с лицензией. Я же, предполагаю сделать инструмент пусть хуже по качеству кодогенерации, но полностью свободный и не привязаный к определеной ОС/среде.


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Oberon-07/16
СообщениеДобавлено: 06 мар 2019, 06:27 
Не в сети

Сообщения: 204
akron1 писал(а):
(я как-то скептически отношусь к синтаксическим деревьям).
Синтаксические деревья теоретически позволяют проводить весьма сложные оптимизации, правда, для реализации этих оптимизаций лучше использовать более высокоуровневые языки, чем оберон...

geniepro писал(а):
Если есть какие-либо предложения, советы по выбору типа контроллера, можете высказать, нет -- я сам выберу. Пока можно сказать, что это должен быть достаточно распространенный контроллер (чтобы не было сложностей с покупкой) и он должен быть 32-битный.
Самые распространённые микроконтроллеры -- это 8-битные типа MCS51 или AVR, или 16-битные PIC (есть, правда, 32-битные PIC, но там ядро MIPS).
32-битные системы уже трудно назвать микроконтроллерами, в голову лишь Cortex-M приходят, а там уже конкуренция с Астробом. Ну и эти MIPS-овые PIC'и...

Кстати, рассматривалось ли использование сторонних бекэндов типа LLVM или QBE ( http://c9x.me/compile/ )?


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

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


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

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


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

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