OberonCore
https://forum.oberoncore.ru/

Открытая консольная версия от Oberon Microsystems
https://forum.oberoncore.ru/viewtopic.php?f=133&t=1159
Страница 1 из 3

Автор:  Илья Ермаков [ Суббота, 13 Сентябрь, 2008 19:13 ]
Заголовок сообщения:  Открытая консольная версия от Oberon Microsystems

Про эту версию как-то подзабыли.

http://www.mathstat.helsinki.fi/openbugs/ (http://www.mathstat.helsinki.fi/openbugs/LinBUGS.html) - там сайт глупо сделан, на фреймах.

(испр. 28.10.2011) Подробности ниже.
(испр. 04.11.2012) Lin-Simple-Console снята с публикации. Замена: http://oberoncore.ru/projects/bb16lin-console

Автор:  QWERTYProgrammer [ Воскресенье, 14 Сентябрь, 2008 12:47 ]
Заголовок сообщения:  Re: Открытая консольная версия от Oberon Microsystems

Цитата:
Про эту версию как-то подзабыли.


Что не так уж удивительно: почему про нее можно узнать, только случайно наткнувшись на ссылку на сайте OpenBugs? Почему не на oberon.ch? На OpenBugs сразу предлагается некий patch, в связи с чем возникает вопрос о том насколько стабильной является выложенная версия.

В общем, соотв. раздел на oberoncore wiki был бы очень кстати...

Автор:  Ali [ Четверг, 23 Октябрь, 2008 07:28 ]
Заголовок сообщения:  Re: Открытая консольная версия от Oberon Microsystems

Простите, может я чего не понимаю, может "сайт глупо сделан", но:
Цитата:
If you only have Linux you will need to install WINE to work with these tools.

Цитата:
Instructions for LinBUGS (which may or may not still work):
Errrm, run it through WINE! Getting BUGS to run under Linux has been an interesting experience, and something we still hope to accomplish.
....

Автор:  Борис Рюмшин [ Пятница, 24 Октябрь, 2008 16:24 ]
Заголовок сообщения:  Re: Открытая консольная версия от Oberon Microsystems

У меня возможно есть некоторый склероз, я на OpenBUGS смотрел давно, но он генерирует только консольные приложения. А для того, чтобы воспользоваться графическим интерфейсом требуется Wine (в частности, чтобы собрать это самое консольное приложение).

Автор:  Димыч [ Среда, 10 Декабрь, 2008 21:22 ]
Заголовок сообщения:  Re: Открытая консольная версия от Oberon Microsystems

Намедни думал тут над портированием BB под Линукс.
В свете наличия линуксовой версии ядра (Kernel, HostFiles) и DevLinker из LinBUGS представляется возможным запуск консольного варианта ВВ по Линукс.
Однако, в силу отсутствия времени проверить это не удалось.
Может зайти с другой стороны?
Сначала на Windows отучить BB пользоваться WinAPI и перейти на GTK или Qt полностью, а потом уже переносить ядро на Линукс.
По своему опыту знаю, что GTK можно пользоваться из Оберона/Модулы, есть модули для этого.
Представляется, что для этого надо переписать HostDialogs (как минимум), может еще что.
Другое дело, слабо представляю, как реализован редактор документов, как его переписывать.
С оконной системой и циклом обработки сообщений вроде все более-менее понятно, а вот с редактором нет.

Автор:  Илья Ермаков [ Среда, 10 Декабрь, 2008 22:39 ]
Заголовок сообщения:  Re: Открытая консольная версия от Oberon Microsystems

Никакого редактора переписывать не надо... Весь фреймворк кроссплатформенный.
Перепишите реализацию окон, сообщений и контролов в подсистеме Host - и всё остальное заработает автоматически.

Автор:  Борис Рюмшин [ Среда, 10 Декабрь, 2008 23:23 ]
Заголовок сообщения:  Re: Открытая консольная версия от Oberon Microsystems

Qt слабо подходит, поможет только GTK+.
Сразу говорю - работа такая (по GTK) велась. Не знаю как сейчас успехи у основного разработчика этого дела (он здесь, если захочет признается :)), но мы приостановили пока этот процесс ввиду нецелесообразности для нас (фирмы), т.к. ресурсы у нас всё же ограниченные. Распыляться не можем.

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

Ещё один серьёзный вариант - полностью всё (что касается графики) переписать в некую собственную кроссплатформенную весчь, которую затем связать непосредственно с Win32 и X-сервером.

Автор:  Пётр Кушнир [ Среда, 10 Декабрь, 2008 23:32 ]
Заголовок сообщения:  Re: Открытая консольная версия от Oberon Microsystems

Димыч писал(а):
Намедни думал тут над портированием BB под Линукс.
В свете наличия линуксовой версии ядра (Kernel, HostFiles) и DevLinker из LinBUGS представляется возможным запуск консольного варианта ВВ по Линукс.
Однако, в силу отсутствия времени проверить это не удалось.
Может зайти с другой стороны?
Сначала на Windows отучить BB пользоваться WinAPI и перейти на GTK или Qt полностью, а потом уже переносить ядро на Линукс.
По своему опыту знаю, что GTK можно пользоваться из Оберона/Модулы, есть модули для этого.
Представляется, что для этого надо переписать HostDialogs (как минимум), может еще что.

Мы с Иваном Кузьмицким имеем в мыслях ровно то же самое, перетащить оконную систему ББ на что-нибудь эдакое(wxWidgets например, ну или Qt с GTK), а потом на линукс(и ещё в кпк :)). В идеале, лучше бы на всё сразу, или ни на что, например, сделать как в WinAOS, полностью рисованый интерфейс, можно даже аппаратно ускоренный и прогрессивный(это из области предельных мечт :))

ЗЫ: а объясните, плиз, как из OpenBugs сделать что-то толковое? А то я лично не понял, что там к чему.

Автор:  Борис Рюмшин [ Среда, 10 Декабрь, 2008 23:42 ]
Заголовок сообщения:  Re: Открытая консольная версия от Oberon Microsystems

Пётр. Если речь серьёзно зашла об этом, то имеет смысл чётко отделить в BlackBox "отображающую" часть. Вот это нужно сделать в первую очередь. Host написан хоть и правильно, но очень туманно. Там чётко нужно отделить мух от котлет. Тогда станет очевидно, что именно нужно сделать для портирования и как.

Если делать как WinAOS (это уже тоже продумывалось), то нужно всё отрисовывать самостоятельно. Полностью. Это красиво и хорошо с многих сторон, но вызовет обильные выделения у любителей "стандартных промышленных" сред. Это перспективно, если тем более, задействовать Antigrain.

В любом случае, главная мысль, как я уже сказал, такова: нужно отделить именно "визуальную", отображающую часть от самого ББ. Узкий и чёткий интерфейс.

Автор:  Пётр Кушнир [ Четверг, 11 Декабрь, 2008 08:15 ]
Заголовок сообщения:  Re: Открытая консольная версия от Oberon Microsystems

Борис Рюмшин писал(а):
Пётр. Если речь серьёзно зашла об этом, то имеет смысл чётко отделить в BlackBox "отображающую" часть.

Серьёзно, конечно.
Борис Рюмшин писал(а):
Если делать как WinAOS (это уже тоже продумывалось), то нужно всё отрисовывать самостоятельно. Полностью. Это красиво и хорошо с многих сторон, но вызовет обильные выделения у любителей "стандартных промышленных" сред. Это перспективно, если тем более, задействовать Antigrain.

В любом случае, главная мысль, как я уже сказал, такова: нужно отделить именно "визуальную", отображающую часть от самого ББ. Узкий и чёткий интерфейс.

ну то есть, в том виде, в котором есть сейчас - оно не очень подходит для переноса и портирования?

Автор:  Иван Кузьмицкий [ Четверг, 11 Декабрь, 2008 08:25 ]
Заголовок сообщения:  Re: Открытая консольная версия от Oberon Microsystems

Борис Рюмшин писал(а):
И вот ещё что. Публикация этого дела придерживается пока Ominc, и нарушать договорённости мы не будем. Однако обсудить - всегда пожалуйста.
Правильно ли я понимаю, что Ominc хотя и не торопится раскрывать линукс-ББ, но возражать против сторонних движений переноса ББ на линукс не будет?

Ибо уже назрело.

У нас тут только что поднят ещё один проект, в ярославском институте развития образования (чуть позже подробности отпишу на вики). Рабочие места все под виндами, но начался перевод компутеров на линукс. В связи со всем этим, хочется и линуксового ББ, и улучшенной "оконности" в ББ.

На этом пути, конечно, возникает масса вопросов. Может, имеет смысл как-то сорганизоваться, дабы прикинуть масштабы проблем, имеющиеся ресурсы и заглянуть в перспективку?

Автор:  Борис Рюмшин [ Четверг, 11 Декабрь, 2008 23:05 ]
Заголовок сообщения:  Re: Открытая консольная версия от Oberon Microsystems

Иван Кузьмицкий писал(а):
Правильно ли я понимаю, что Ominc хотя и не торопится раскрывать линукс-ББ, но возражать против сторонних движений переноса ББ на линукс не будет?

Конечно же нет. Как они могут возражать, если исходники открыты? :) Мы просто не имеем права передавать то, что передавали нам. Но общаться никто не запретит. :)
Цитата:
На этом пути, конечно, возникает масса вопросов. Может, имеет смысл как-то сорганизоваться, дабы прикинуть масштабы проблем, имеющиеся ресурсы и заглянуть в перспективку?

Конечно же имеет. Давайте думать. Только наверно для этого отдельную ветку выделить надо, чтобы по теме было...

Автор:  Евгений Темиргалеев [ Пятница, 28 Октябрь, 2011 20:30 ]
Заголовок сообщения:  Re: Открытая консольная версия от Oberon Microsystems

Товарищи, в первом сообщении выложена простенькая сборка для консольных приложений. См. (Lin/Docu)Console-Quick-Start
Вложение:
1.png
1.png [ 49.25 КБ | Просмотров: 10998 ]
Помимо http://oberoncore.ru/blackbox/environment требует (для удобной работы):
http://oberoncore.ru/bbcc/subs/i21sys/calls
http://oberoncore.ru/bbcc/subs/omc/cmdline
http://oberoncore.ru/bbcc/subs/ert0dev/

Автор:  Евгений Темиргалеев [ Четверг, 10 Ноябрь, 2011 15:04 ]
Заголовок сообщения:  Re: Открытая консольная версия от Oberon Microsystems

Спасибо Кубанычу, отметил некорректность: Init д. б. [ccall].

Хотя stdcall/ccall без параметров не различаются и всё работает, но ожидание по-умолчанию stdcall = ориентирование на platform-specific issues, которое в исходнике нужно обозначить явным импортом SYSTEM (и, тогда уж, поставить [ccall]).

Второй способ (мне кажется более верным минимизировать IMPORT SYSTEM) --- учесть platfotm-specific в пускаче:
Код:
typedef void (*Procedure) (void) __attribute ((stdcall));
Вроде для gcc так (http://gcc.gnu.org/onlinedocs/gcc-4.4.6 ... Attributes).?

Архив обновил.

Автор:  Роман М. [ Четверг, 10 Ноябрь, 2011 15:41 ]
Заголовок сообщения:  Re: Открытая консольная версия от Oberon Microsystems

Нельзя ли предоставить изменения в виде патча или последовательности команд для изменения исходного кода?

Автор:  Евгений Темиргалеев [ Четверг, 10 Ноябрь, 2011 16:05 ]
Заголовок сообщения:  Re: Открытая консольная версия от Oberon Microsystems

Роман М. писал(а):
Нельзя ли предоставить изменения в виде патча или последовательности команд для изменения исходного кода?
Изменения идут в хранилище. Патчи оформляются. Когда будет готово, всё появится.

Автор:  Евгений Темиргалеев [ Пятница, 23 Декабрь, 2011 15:36 ]
Заголовок сообщения:  Re: Открытая консольная версия от Oberon Microsystems

Обновление
Цитата:
3.1 Специфика загрузки динамической бибилиотеки .so
При инициализации so-библиотеки используется другой стек (видимо, служебного потока ОС). В результате Kernel.baseStack, запомненный в Kernel.Init, оказывается не верен после возврата управления в сишный пускач и вызова "главной" процедуры Init. Некорректное значение Kernel.baseStack приводит к сбою работы сборщика мусора.

Суть проблемы и вариант решения были зафиксированы 18.10.2009 Ермаковым И. Е.. Здесь используется более общее решение:
- вместе с Kernel в динамическую библиотеку должен линковаться интерфейсный модуль Kernel_so_init;
- ПО (в данном случае — пускач), использующее библиотеку, должно выставлять корректное значение дна стека вызовом SetKernelBaseStack.

Автор:  Kubanych [ Суббота, 24 Декабрь, 2011 06:23 ]
Заголовок сообщения:  Re: Открытая консольная версия от Oberon Microsystems

Все заработало, спасибо.
Надо чтобы больше людей использовало эту подсистему. Тогда будут находится и исправляться ошибки, о которых мы еще не знаем.

Автор:  Kubanych [ Воскресенье, 22 Январь, 2012 12:34 ]
Заголовок сообщения:  Re: Открытая консольная версия от Oberon Microsystems

Log выводит в stdout после запуска LinSimpleLog.Open.
А как читать данные из stdin через эту подсистему?

Автор:  Евгений Темиргалеев [ Воскресенье, 22 Январь, 2012 18:06 ]
Заголовок сообщения:  Re: Открытая консольная версия от Oberon Microsystems

Не совсем понятно, как Вы хотите читать. Например, можно через LinLibc. :)

Если Вы имеете ввиду реализацию модуля In, то её нет. Можете попробовать переделать реализацию In для консоли отсюда: http://oberoncore.ru/bbcc/subs/console/ Если не ошибаюсь, достаточно:
* взять копию ConsoleIn -> LinIn
* добавить в неё процедуру PROCEDURE StdRead (OUT c: CHAR), читающую символ при помощи LinLibc из stdin
* заменить вызовы Std.read на StdRead

Если получится, передайте как-нибудь результат, добавлю в пакет.

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