OberonCore
https://forum.oberoncore.ru/

Что с oo2c?
https://forum.oberoncore.ru/viewtopic.php?f=30&t=1951
Страница 5 из 6

Автор:  Роман М. [ Вторник, 05 Апрель, 2016 16:52 ]
Заголовок сообщения:  Re: Что с oo2c?

Импортировал oo2c в проект по адресу https://github.com/Spirit-of-Oberon/oo2c со всей историей CVS с самого начала и также добавил описание проекта в разметке Markdown.
Добавлены также фиксации Ильина и Ширяева посредством git cherry-pick.
Поэтому предлагаю использовать это хранилище как основное для внесения изменений Оберон-сообществом.

Необходимо также обновить информацию в README.md, в частности, секции Miscellaneous, Download Servers и также о том как принимать участие в проекте.
Дополнительно можно добавить файл конфигурации .travis.yml для Travis CI: https://docs.travis-ci.com/user/languages/c , http://stackoverflow.com/a/24325309/2840001

Автор:  Александр Ильин [ Вторник, 05 Апрель, 2016 18:05 ]
Заголовок сообщения:  Re: Что с oo2c?

Роман М. писал(а):
Поэтому предлагаю использовать это хранилище как основное для внесения изменений Оберон-сообществом.
Согласен.

Автор:  Иван Денисов [ Суббота, 23 Апрель, 2016 22:36 ]
Заголовок сообщения:  Re: Что с oo2c?

Сделал инструкцию как в два прохода компилировать последний oo2c.
http://wiki.blackboxframework.org/index ... =H2O#Linux

Автор:  GameHunter [ Суббота, 30 Апрель, 2016 15:27 ]
Заголовок сообщения:  Re: Что с oo2c?

oo2c либо voc (vishap oberon compiler, правильно я понял?) включают в себя IDE и отладчик?

Автор:  kekc_leader [ Четверг, 05 Май, 2016 14:25 ]
Заголовок сообщения:  Re: Что с oo2c?

GameHunter писал(а):
oo2c либо voc (vishap oberon compiler, правильно я понял?) включают в себя IDE и отладчик?
Нет. Во-первых, это два разных проекта. Оба транслируют код на Обероне в Си. Основное отличие в том, что OO2C активно оптимизирует код и использует Си больше как ассемблер (в выходном коде активно используются goto и обращение к регистрам через Си), а VOC переводит код на Обероне в удобочитаемый, удоборедактируемый код на Си (почти совсем без оптимизации). VOC - это ответвление от Ofront, а Ofront - это давнишний проект одного из Западных институтов.
Интегрированной среды разработки, а также отладчика нет ни в одной из этих систем.

Автор:  GameHunter [ Пятница, 19 Октябрь, 2018 13:25 ]
Заголовок сообщения:  Re: Что с oo2c?

Каково на данный момент состояние oo2c?
Он работает под Windows?
Он может транслировать программу, которую потом можно скомпилировать для Windows - 64 bit?
Автоматический сборщик мусора совместим с многопоточностью?

Автор:  Oleg N. Cher [ Пятница, 19 Октябрь, 2018 15:10 ]
Заголовок сообщения:  Re: Что с oo2c?

Stewart Greenhill когда-то делал сборку OO2C для MinGW. Я посмотрел. Все ссылки мёртвые, всё позаброшено и заросло паутиной и пылью. Запрашивал в своё время OO2C, собранный для Windows, у Кубанычбека. Тоже безрезультатно. Готовых ответов нет. Может быть, получится собрать под Windows из репозитория Александра Ильина, пробуйте.

Может Вам лучше в сторону FPC посмотреть? Будет многопоточность и 64 бита из коробки. У Оберонов инструментарий куцый, увы. Чем богаты.

P.S. Кстати, в OO2C есть известные и неисправленные ошибки. И нет людей, обладающих квалификацией и мотивацией их исправить.

Автор:  Rifat [ Пятница, 19 Октябрь, 2018 16:41 ]
Заголовок сообщения:  Re: Что с oo2c?

Oleg N. Cher писал(а):
P.S. Кстати, в OO2C есть известные и неисправленные ошибки. И нет людей, обладающих квалификацией и мотивацией их исправить.

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

Автор:  Kemet [ Суббота, 20 Октябрь, 2018 16:27 ]
Заголовок сообщения:  Re: Что с oo2c?

GameHunter писал(а):
Каково на данный момент состояние oo2c?
Он работает под Windows?
Он может транслировать программу, которую потом можно скомпилировать для Windows - 64 bit?
Автоматический сборщик мусора совместим с многопоточностью?
Достаточно бегло просмотреть Сишный код из stage, чтобы понять - ни в каком состоянии. Если он так же и код на Си генерирует, каа там написано, то вообще швах.
Вообще мы его когда-то использовали, но это был сильно правленый проект. Увы, исходников не сохранилось.

Автор:  Kemet [ Суббота, 20 Октябрь, 2018 16:28 ]
Заголовок сообщения:  Re: Что с oo2c?

Rifat писал(а):
Oleg N. Cher писал(а):
P.S. Кстати, в OO2C есть известные и неисправленные ошибки. И нет людей, обладающих квалификацией и мотивацией их исправить.

Мне кажется, что проблема в отсутствии хорошей документации. Если бы была хорошая документация, по ней можно было бы что-нибудь сделать. А без документации иногда проще заново переписать, чем разобраться как старое работает.
Да там и без документации всё понятно, а по SSA нужно вне компилятора тему прорабатывать.
Как и сказали - нет стимула.

Автор:  Kemet [ Суббота, 20 Октябрь, 2018 17:09 ]
Заголовок сообщения:  Re: Что с oo2c?

GameHunter писал(а):
64 bit?

с 64-бит там всё очень плохо.
Но я так и не понял, что тебе нужно от Оберона, почему именно Оберон, что должно получится, почему именно так и чем АО не устроил. Может, Модула-3 подойдёт?

Автор:  kekc_leader [ Воскресенье, 21 Октябрь, 2018 00:47 ]
Заголовок сообщения:  Re: Что с oo2c?

В OO2C спагетти-код просто.

Автор:  Oleg N. Cher [ Воскресенье, 21 Октябрь, 2018 02:03 ]
Заголовок сообщения:  Re: Что с oo2c?

Да и сам он порождает спагетти-код нечитаемый.

Зато есть намётки на нативные кодогенераторы. Правда, неизвестно в какой степени готовности.

Автор:  Kemet [ Воскресенье, 21 Октябрь, 2018 08:24 ]
Заголовок сообщения:  Re: Что с oo2c?

kekc_leader писал(а):
В OO2C спагетти-код просто.
Дело не в спагетти-коде, а в ошибках. Я не удивлюсь, если они там сознательные, ну мало ли что в голове у разработчиков, отдающих код. Не раз на это наталкивался - у них всё работает, а в паблике совсем другой код, и он не так работоспособен, как хотелось бы.

Автор:  kemiisto [ Воскресенье, 21 Октябрь, 2018 15:12 ]
Заголовок сообщения:  Re: Что с oo2c?

Oleg N. Cher писал(а):
Stewart Greenhill когда-то делал сборку OO2C для MinGW. Я посмотрел. Все ссылки мёртвые, всё позаброшено и заросло паутиной и пылью. Запрашивал в своё время OO2C, собранный для Windows, у Кубанычбека. Тоже безрезультатно. Готовых ответов нет. Может быть, получится собрать под Windows из репозитория Александра Ильина, пробуйте.

Собрать под MinGW не такая уж и большая проблема. Я пару лет назад как раз активно "ковырял" OO2C на предмет сборки под MinGW, вот сейчас поднял свои архивы по этому вопросу и собрал на скорую руку 64-битный OO2C актуальным GCC 8.2. Кому не лень попробовать на предмет работоспособности:
  • Распакуйте в любую папку (за пробелы, кириллицу и т.п. не ручаюсь).
  • Затем поправьте пути в файле mingw64\lib\oo2c\oo2crc.xml: замените c:/dev/gcc-8/ на путь распаковки.
  • Теперь, чтобы воспользоваться компилятором достаточно в командной строке установить следующие переменные:
    Код:
    SET PATH=ПУТЬ_РАСПАКОВКИ\mingw64\bin;%PATH%
    SET OO2CRC=ПУТЬ_РАСПАКОВКИ\mingw64\lib\oo2c\oo2crc.xml

Автор:  GameHunter [ Вторник, 23 Октябрь, 2018 15:13 ]
Заголовок сообщения:  Re: Что с oo2c?

Спасибо.

kemiisto, вы не знаете, в oo2c сборщик мусора совместим с многопоточностью?
Может, там Boehm garbage collector интегрирован?

Автор:  Rifat [ Вторник, 23 Октябрь, 2018 16:25 ]
Заголовок сообщения:  Re: Что с oo2c?

Оберона сами по себе пока слабо приспособлены к многопоточности.

Автор:  kemiisto [ Среда, 24 Октябрь, 2018 00:28 ]
Заголовок сообщения:  Re: Что с oo2c?

GameHunter писал(а):
kemiisto, вы не знаете, в oo2c сборщик мусора совместим с многопоточностью?

Вообще, в документации есть упоминание, что OO2C совместим с POSIX threads, но надо и GC, и OO2C собрать с поддержкой этих самих POSIX threads. Могу завтра поковырять.

GameHunter писал(а):
Может, там Boehm garbage collector интегрирован?

OO2C использует как раз этот GC и в сборке выше GC есть. Но без поддержки POSIX threads.

Автор:  kemiisto [ Среда, 24 Октябрь, 2018 13:00 ]
Заголовок сообщения:  Re: Что с oo2c?

Так-с... Ну, вот, что сказано про поддержку POSIX threads:
Цитата:
Starting with oo2c-2.0.11, there is an interface for POSIX threads.
For this to work, both the garbage collector and oo2c must be build
with `--enable-threads=pthreads'. You can check that threading works
by running the program src/TestThread.Mod. If it completes without
crashing or failed assertions you can be fairly sure that
synchronization, exceptions, and heap management work as expected.
See lib/src/liboo2c.Mod for some caveats regarding threading and other
library modules. Threads have been tested with Debian 3.0 (Linux 2.4,
glibc 2.3.1, gc6.0+ and gc6.2) and Solaris 2.6 (gc6.2).

Собрать-то, вроде, получилось, но не могу скомпилировать указанный пример, чтобы проверить работоспособность.
Цитата:
TestThread.Mod:5:35: Cannot locate module `Thread:Semaphore'

Может, кто чего подскажет?

Автор:  GameHunter [ Четверг, 25 Октябрь, 2018 22:04 ]
Заголовок сообщения:  Re: Что с oo2c?

В oo2c, скачанном отсюда
https://github.com/AlexIljin/oo2c,
есть такие файлы:

lib\src\Thread\Semaphore.c
lib\src\Thread\Semaphore.Mod.

Может, это и есть нужный модуль?

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