OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Четверг, 28 Март, 2024 23:05

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




Начать новую тему Ответить на тему  [ Сообщений: 120 ]  На страницу Пред.  1, 2, 3, 4, 5, 6  След.
Автор Сообщение
 Заголовок сообщения: Re: DIA: BlackBox Component Builder 1.6rc6 + GTK2
СообщениеДобавлено: Четверг, 13 Сентябрь, 2012 12:18 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3774
Обновил репозиторий, теперь ядро от OpenBUGS 3.2.2 с теми правками от Александра.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DIA: BlackBox Component Builder 1.6rc6 + GTK2
СообщениеДобавлено: Четверг, 13 Сентябрь, 2012 12:31 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 02:12
Сообщения: 473
Откуда: KZ
Ок.

Теперь надо исправить опечатки:
  • System/Mod/Kernel.odc: "kernal" -> "kernel"
  • readme: "заного" -> "заново"
:)

Ещё:
  • вместо "#!/usr/bin/python" правильно писать "#! /usr/bin/env python", т. к. python не у всех в /usr/bin
  • вместо "#!/bin/bash" правильно писать "#!/bin/sh", т. к. bash есть не у всех
(setup_script.py, start, stop)

stop: используй pkill вместо kill `ps ...`


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DIA: BlackBox Component Builder 1.6rc6 + GTK2
СообщениеДобавлено: Четверг, 13 Сентябрь, 2012 13:36 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3774
Alexander Shiryaev писал(а):
Ок.

Теперь надо исправить ...
Все поправил, реп. обновил.

Если вы захотите что-то заливать сами, то права на запись в этот реп. у вас есть. Хотя мне такая форма больше нравится — учусь.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DIA: BlackBox Component Builder 1.6rc6 + GTK2
СообщениеДобавлено: Четверг, 13 Сентябрь, 2012 23:04 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 02:12
Сообщения: 473
Откуда: KZ
Не.. вместо
Код:
kill `ps -ef | grep blackbox | grep -v grep | awk '{ print $2 }'

надо было написать
Код:
pkill -x blackbox

http://ru.wikipedia.org/wiki/Pkill


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DIA: BlackBox Component Builder 1.6rc6 + GTK2
СообщениеДобавлено: Суббота, 15 Сентябрь, 2012 12:59 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3774
Alexander Shiryaev писал(а):
Не.. вместо
Код:
kill `ps -ef | grep blackbox | grep -v grep | awk '{ print $2 }'

надо было написать
Код:
pkill -x blackbox

http://ru.wikipedia.org/wiki/Pkill
Сделал, проверял на GUI версии, интерфейс остается висеть. А вот серверная версия убивается хорошо. Скрипт собственно для нее, поэтому все ОК.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DIA: BlackBox Component Builder 1.6rc6 + GTK2
СообщениеДобавлено: Суббота, 15 Сентябрь, 2012 14:48 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 02:12
Сообщения: 473
Откуда: KZ
Вообще надо будет правильно реализовать обработку сигнала SIGTERM.

Сейчас просто срабатывает TRAP, а надо:
  • для консольной несерверной версии: можно так и оставить;
  • для консольной серверной версии: чтобы завершался цикл процедуры Loop, запущенной процедурой Kernel.Start;
  • для GUI-версии (серверной): эквивалентно File->Exit (нажатию на кнопку закрытия главного окна).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DIA: BlackBox Component Builder 1.6rc6 + GTK2
СообщениеДобавлено: Суббота, 15 Сентябрь, 2012 18:39 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3774
Alexander Shiryaev писал(а):
Вообще надо будет правильно реализовать обработку сигнала SIGTERM.

Сейчас просто срабатывает TRAP, а надо:
  • для консольной несерверной версии: можно так и оставить;
  • для консольной серверной версии: чтобы завершался цикл процедуры Loop, запущенной процедурой Kernel.Start;
  • для GUI-версии (серверной): эквивалентно File->Exit (нажатию на кнопку закрытия главного окна).

Отлично, разобрался, что в ядре за обработку всех прерываний отвечает TrapHandler добвил в CASE sig OF вариант | LinLibc.SIGTERM Quit(1); и трап больше не выдается. Также, добавил Quit(1) на SIGINT, чтобы ББ закрывался при нажатии Ctrl+C в консоли, это очень облегчит отладку. Уф. Реп. обновил.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Итерация 2
СообщениеДобавлено: Среда, 19 Сентябрь, 2012 12:13 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3774
Alexander Shiryaev писал(а):
Иван Денисов писал(а):
Каким образом делали эти хедеры Gtk2? Вопрос автоматической хедерогенерации открыт.

По поводу автоматической кодогенерации интерфейсных модулей.
См.:
${PREFIX}/share/pygobject/2.0/defs
${PREFIX}/share/pygtk/2.0/defs
из py-gtk2
На основе этой информации, по-моему, можно генерировать интерфейсные модули для Gtk2.
Парсер для Питона:
${PREFIX}/share/pygobject/2.0/codegen/definitions.py
Для облегчения процесса транслятор можно написать на Питоне.
Попробовал там разобраться, но пока многого не понял в этой системе Питоновской.

Но зато вспомнил про H2O, его получилось адаптировать под КП и транслировать две библиотеки.
viewtopic.php?f=34&t=661&p=74877#p74877
На сколько они пригоды сложно судить, но процесс прошел до конца, типы данных и процедуры совпадают с известными трансляциями Cairo и FreeImage. Пробовал gtk2 транслировать, но это оказалось посложнее лезут ошибки.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DIA: BlackBox Component Builder 1.6rc6 + GTK2
СообщениеДобавлено: Вторник, 25 Сентябрь, 2012 20:02 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3774
Почистил историю репозитория от случайно добвленных pdf и txt документов, а также svn ошметков.
Помогла статья: http://www.ducea.com/2012/02/07/howto-c ... t-history/


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DIA: BlackBox Component Builder 1.6rc6 + GTK2
СообщениеДобавлено: Среда, 26 Сентябрь, 2012 20:23 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3774
Добавил HostFiles, Kernel, LinDl, LinLibc из хранилища Александра, заменил ими версию ядра OpenBUGS322 и Омниковские модули. С новым ядром легче идет отладка компонентов интерфейса, приложение делает корректно аварийную остановку.

Добавил обработку сигналов завершения в версию ядра Александра, что обсуждалось выше.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DIA: BlackBox Component Builder 1.6rc6 + GTK2
СообщениеДобавлено: Среда, 26 Сентябрь, 2012 22:58 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3774
Починил HostGnome и теперь нормально отрабатывается Hook для Kernel.MessageBox ! Оказалась устаревшая функция в libgnomeui

Еще вернул назад ядро OpenBUGS но с правками памяти от Александра. Оказывается аварийная остановка нужна не всегда, если нормально работает ТРАП.

Теперь лог открывается и в нем деже можно что-то напечатать, но затем ББ зависает насмерть.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DIA: BlackBox Component Builder 1.6rc6 + GTK2
СообщениеДобавлено: Четверг, 27 Сентябрь, 2012 19:59 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 02:12
Сообщения: 473
Откуда: KZ
Иван Денисов писал(а):
Еще вернул назад ядро OpenBUGS но с правками памяти от Александра. Оказывается аварийная остановка нужна не всегда, если нормально работает ТРАП.

?

Цитата:
Теперь лог открывается и в нем деже можно что-то напечатать, но затем ББ зависает насмерть.

Попробовал, как работает StdLog (Info -> Open Log) в Linux (Fedora Core 17). У меня почему-то всё нормально работает, не зависает, TRAP не выдаёт. И в OpenBSD тоже.

Что нужно сделать, чтобы BlackBox завис или аварийно завершился?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DIA: BlackBox Component Builder 1.6rc6 + GTK2
СообщениеДобавлено: Четверг, 27 Сентябрь, 2012 20:21 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 02:12
Сообщения: 473
Откуда: KZ
Иван Денисов писал(а):
Починил HostGnome и теперь нормально отрабатывается Hook для Kernel.MessageBox ! Оказалась устаревшая функция в libgnomeui

Кстати DevDebug работает в Linux Fedora Core 17.

В OpenBSD не работает (зависает сразу после TRAP-а) -- буду разбираться.


Вложения:
Комментарий к файлу: DevDebug в Linux Fedora Core 17
1.png
1.png [ 40.54 КБ | Просмотров: 8553 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DIA: BlackBox Component Builder 1.6rc6 + GTK2
СообщениеДобавлено: Пятница, 28 Сентябрь, 2012 08:23 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3774
После того как я поправил HostGnome и пересобрал ядро с ним, как описано в Lin/Docu/LinuxPort.odc, заработали KernelMessages и после открытия лога вылетает такое окошко с Undefined real result и с вашей версией ядра ББ закрывается с OpenBUGS версией не закрывается, а через некоторое время зависает. Я сделал гибрид OpenBUGS322 и вашего ядра, перенес исправления по работе с памятью. Этот гибрид вместе с исходными ядрами (OpenBUGS322 и вашим) залил в хранилище.

Чтобы показать поведение ББ в Ubuntu 12.04 записал видео: http://oberon.molpit.ru/podcast/BB_Lin_test.mp4


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DIA: BlackBox Component Builder 1.6rc6 + GTK2
СообщениеДобавлено: Пятница, 28 Сентябрь, 2012 09:20 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 02:12
Сообщения: 473
Откуда: KZ
Ок. Странно что в Fedora Core всё нормально работает.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DIA: BlackBox Component Builder 1.6rc6 + GTK2
СообщениеДобавлено: Суббота, 29 Сентябрь, 2012 18:31 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 02:12
Сообщения: 473
Откуда: KZ
Иван, моё ядро не работало, потому что я забыл исправить Kernel.Start.

Теперь у меня всё нормально работает в OpenBSD и в Fedora Core. И DevDebug тоже работает.

Ищи место, где возникает "Undefined real result".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DIA: BlackBox Component Builder 1.6rc6 + GTK2
СообщениеДобавлено: Понедельник, 01 Октябрь, 2012 22:39 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 02:12
Сообщения: 473
Откуда: KZ
С обработкой исключения при переполнении стека не всё так просто оказалось. Если использовать альтернативный стек для обработки сигналов, то оказывается, что если из обработчика сигнала выйти не по RETURN, а через siglongjmp, то в состоянии процесса сохраняется, что выполнение идёт в альтернативном стеке, и при следующем вызове обработчика сигнала для него уже не происходит переключение на альтернативный стек. Т.е. получается. что в альтернативном стеке обрабатывается только 1-й (по времени) сигнал, а все последующие -- в основном.

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

Может быть проблему можно решить с помощью sigreturn вместо siglongjmp (тогда вместо sigsetjmp надо выполнять setcontext). Уже пробовал, это вообще работает.

Но ещё есть проблемы.

1) быват, что BlackBox зависает при обработке сигнала (или сразу после) при включенном альтернативном стеке;

2) бывает, что BlackBox зависает при обработке SIGSEGV (или сразу после него, даже при выключенном альтернативном стеке) в случае использования просмотрщика TRAP-ов DevDebug вместо Kernel.DefaultTrapViewer.

Разбираюсь.

P.S.: в OpenBSD нет setcontext :) :(


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DIA: BlackBox Component Builder 1.6rc6 + GTK2
СообщениеДобавлено: Воскресенье, 21 Октябрь, 2012 03:42 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 02:12
Сообщения: 473
Откуда: KZ
Иван Денисов писал(а):
Undefined real result


Немного поразбирался. Это проблема где-то в Gtk в Ubuntu. Зависает именно Gtk, а не BlackBox, т.е. сам BlackBox продолжает при этом работать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DIA: BlackBox Component Builder 1.6rc6 + GTK2
СообщениеДобавлено: Понедельник, 22 Октябрь, 2012 07:58 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3774
Сделал ядро Александра сейчас основным после тестов показало себя стабильным, только добавил в него обработку SIGTERM.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DIA: BlackBox Component Builder 1.6rc6 + GTK2
СообщениеДобавлено: Понедельник, 22 Октябрь, 2012 20:09 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3774
Убрал ошибку undefined real result при открытии Log, вызывается в HostWindows.UpdateScrollbar, пометил синим. Вернул назад LinLinker так как теперь среда себя запросто собирает сама. Вызов инструмента для сборки из меню Linux/Tool

Нужно сделать корректное открытие файлов.
Нужно сделать обработку колеса мыши, улучшить выделение слов в текстах.


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

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


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

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


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

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2024, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB