OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Воскресенье, 25 Август, 2019 11:07

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




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

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4489
Откуда: Россия, Орёл
я клонов не делал.
Иван Денисов писал(а):
...или никто не нашел для себя задачи, которую хотел бы решить, чтобы сделать вклад в перенос?

Есть ли желающие работать вместе над проблемой переноса дальше?
1) А Вы про какие задачи говорите? Как мне кажется, я, например, решаю кое-какие задачи, которые будут вкладом в перенос.
2) Есть.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: commit: 6e3de41c5b37b2f65afaea8b995c3dbc315c5c34
СообщениеДобавлено: Воскресенье, 11 Сентябрь, 2011 22:26 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 2355
Поправил процедуру HostFonts.StringWidth
Сделал, чтобы правильно рисовались шрифты, которые указываются в программе.

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

Пожалуйста, если у кого-то есть идеи по реализации петли не связанной с GUI, которая не будет жрать 100% процессора, то, пожалуйста, высказывайте предложения или еще лучше подключайтесь к редактированию.


Вложения:
Комментарий к файлу: Шрифты теперь читабельны
FontWidthFixed.png
FontWidthFixed.png [ 317.52 КБ | Просмотров: 6176 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: commit: 6e3de41c5b37b2f65afaea8b995c3dbc315c5c34
СообщениеДобавлено: Воскресенье, 11 Сентябрь, 2011 22:50 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8170
Откуда: Троицк, Москва
Иван Денисов писал(а):
... Сделал, чтобы правильно рисовались шрифты, которые указываются в программе.
...
среда уже годится для работы самой в себе.
Ну ваще, нет слов :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: commit 6655c05865380e7556762d626df4f27149f04fc8
СообщениеДобавлено: Воскресенье, 11 Сентябрь, 2011 23:03 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 2355
Поправил обработчик нажатий клавиш, теперь возможно полноценное редактирование. С использованием горячих клавиш.

Проблемы новые:
- буфер обмена работает только в сторону ББ, из него нет...

Старые:
- Самые сложности сейчас с CFrames, надо много править, чтобы работали все контролы а не только кнопки и поля, как сейчас.
- Надо написать HostRegistry.
- Надо поправить обработчик мыши, чтобы заработал скроллер.
- Loop!!!


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

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 2355
Евгений Темиргалеев писал(а):
я клонов не делал.
Иван Денисов писал(а):
...или никто не нашел для себя задачи, которую хотел бы решить, чтобы сделать вклад в перенос?

Есть ли желающие работать вместе над проблемой переноса дальше?
1) А Вы про какие задачи говорите? Как мне кажется, я, например, решаю кое-какие задачи, которые будут вкладом в перенос.
2) Есть.
Хорошо было бы обозначить, какие вещи можно использовать на ваш взгляд или над какой проблемой работаете, раз так. Прочитал форум и покопался в папке с кодом, но понять тяжело было самому. Главное, сейчас есть нормальное ядро ББ, то есть нет необходимости в пускаче. Может объединить усилия, для этого процедуру Init я разбил на две части, одна консольная (запуск ./blackbox console), вторая GUI-Gtk2 (запуск ./blackbox). Можно собрать два разных ядра, одно запускается с Init второе с Initc, например.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: commit: 6e3de41c5b37b2f65afaea8b995c3dbc315c5c34
СообщениеДобавлено: Понедельник, 12 Сентябрь, 2011 00:03 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 2355
Info21 писал(а):
Иван Денисов писал(а):
... Сделал, чтобы правильно рисовались шрифты, которые указываются в программе.
...
среда уже годится для работы самой в себе.
Ну ваще, нет слов :)
Спасибо вам и подбадривающим комментариям!
Проверил как дела с переносимостью, графика нарисованная через Ports переносится хорошо. Замечены проблемы с интерактивом, при перетаскивании легенды графика, он почти сразу срывается, но немного проходит.


Вложения:
Комментарий к файлу: Проверка переносимости приложений
Снимок.png
Снимок.png [ 220.44 КБ | Просмотров: 6169 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DIA: BlackBox Component Builder 1.6rc6 + GTK2
СообщениеДобавлено: Понедельник, 12 Сентябрь, 2011 09:27 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4489
Откуда: Россия, Орёл
Иван Денисов писал(а):
Евгений Темиргалеев писал(а):
Как мне кажется, я, например, решаю кое-какие задачи, которые будут вкладом в перенос.
Хорошо было бы обозначить, какие вещи можно использовать на ваш взгляд или над какой проблемой работаете, раз так. Прочитал форум и покопался в папке с кодом, но понять тяжело было самому. Главное, сейчас есть нормальное ядро ББ, то есть нет необходимости в пускаче. Может объединить усилия, для этого процедуру Init я разбил на две части, одна консольная (запуск ./blackbox console), вторая GUI-Gtk2 (запуск ./blackbox). Можно собрать два разных ядра, одно запускается с Init второе с Initc, например.
Над чем работаю: viewtopic.php?p=64744#p64744. Дальше --- будет видно.

Остальное прокомментировать не могу, не в теме; копать код для выявления выявления чего там и как, уже нету сил.

P.S. Мне кажется, помимо кода Вам стоит задуматься о проектной документации. Хотя бы на форуме выделять ветки по задачам и проблемам, обсуждение которых Вы начинаете. viewtopic.php?p=64663#p64663
Цитата:
В. Предложения по организации КОЛЛЕКТИВНОЙ работы

1) Планирование работ:
- долгосрочное — с прицелом на перспективу.
- краткосрочное на базе долгосрочного с учётом командного режима и особенностей коллектива.
- при краткосрочном планировании выделяется набор задач, который решается членами коллектива по выбору.
...
2) Оформление хода работ с учётом особенностей коллектива.

Цель: любой участник должен иметь возможность естественным образом вливаться в работу в произвольный момент времени. Для этого он должен иметь возможность без какого-либо напряга понять, что было сделано до него, что делается на данный момент и планируется на будущее.
...


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

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 2355
Про проектную документацию от части вы правы, немного сделано в это направлении. Как появится команда, уделю больше времени документации. Что сделано, и какие сейчас проблемы для решения обозначаю в каждом втором сообщении, что сделано также пишу в секции DONE и выделяю синим цветом.

К тому же, от предыдущих редакторов осталось много полезных замечаний в коде. Изредка эти замечания полезны.

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


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

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 2355
Сейчас пока над версией GTK работу не веду. Вернусь к этому, если будет команда, хоть она созрела и копошиться в открытой части форума, решение за Info21.
Работаю только над серверной версией для своих задач по распределенным вычислениям. Основная проблема, как и раньше с Loop.


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

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8170
Откуда: Троицк, Москва
Иван Денисов писал(а):
Сейчас пока над версией GTK работу не веду. Вернусь к этому, если будет команда, хоть она созрела и копошиться в открытой части форума, решение за Info21.
Мне трудно уследить за тем, чем сам конкретно не занимаюсь.
Пож., дайте детали -- имена-явки :)
Хочу въехать, что от меня требуется.

Цитата:
Работаю только над серверной версией для своих задач по распределенным вычислениям. Основная проблема, как и раньше с Loop.


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

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 2355
Попытался сделать главную петлю в HostMenus как в моей серверной версии, где этот номер прошел:
Код:
IMPORT SYSTEM, Kernel, LinLog, TcpServer, Services, Gtk2GLib;
   
   CONST
      gc = 1000;
   
   VAR
      c: INTEGER;
   
   PROCEDURE [ccall] Timer (data: INTEGER): INTEGER;
   BEGIN
      Services.actionHook.Step;
      IF c <= 0 THEN
         Kernel.Collect;
         c := gc
      END;
      DEC(c);
      RETURN 1
   END Timer;
   
   PROCEDURE Init;
   VAR
      res: INTEGER;
   BEGIN
      LinLog.Open;
      TcpServer.Start;
      c := gc;
      res := Gtk2GLib.g_timeout_add(20, Timer, 0);
      Gtk2GLib.g_main_loop_run(Gtk2GLib.g_main_loop_new(NIL, 0));
      Kernel.Quit(0)   
   END Init;
   
BEGIN
   Init
END Init.


Но в версии ГУИ версии петля выполняется очень медленно, если не двигать по ГУЮ мышью. Может есть идеи, почему так может быть?
Код:
 
   PROCEDURE [ccall] Timer (data: INTEGER): INTEGER;
      VAR res: INTEGER;
   BEGIN
      Services.actionHook.Step;
      INC(n);
      IF (n > num) OR (Gtk.gtk_events_pending() = FALSE) THEN
         Windows.dir.Update(NIL); n := 0
      ELSE
         res := Gtk.gtk_main_iteration()
      END;
      IF gc <= 0 THEN
         Kernel.Collect;
         gc := gcCycle
      END;
      IF quit THEN
         RETURN 0
      ELSE
         RETURN 1
      END
   END Timer;
   
   PROCEDURE Loop;
      VAR res, i: INTEGER; temp: ARRAY 20 OF CHAR; temp2: ARRAY 20 OF SHORTCHAR;
   BEGIN
      HostWindows.ShowMain;
      quit := FALSE;
      gc := gcCycle;
      n := 0;
      
      res := Gtk2GLib.g_timeout_add(10, Timer, 0);
      Gtk2GLib.g_main_loop_run(Gtk2GLib.g_main_loop_new(NIL, 0));
      Kernel.Quit(0)
   END Loop;


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

Зарегистрирован: Суббота, 26 Ноябрь, 2005 02:12
Сообщения: 438
Откуда: Егорьевск
Иван Денисов писал(а):
Каким образом делали эти хедеры Gtk2? Вопрос автоматической хедерогенерации открыт.

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


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

Зарегистрирован: Суббота, 26 Ноябрь, 2005 02:12
Сообщения: 438
Откуда: Егорьевск
По поводу петли: см. g_idle_add, может быть можно как-то использовать.

Если вообще без Gtk и glib, то см. poll или select.


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

Зарегистрирован: Суббота, 26 Ноябрь, 2005 02:12
Сообщения: 438
Откуда: Егорьевск
Запустил твою версию в OpenBSD :)

Для этого пришлось изменить:
  • LinDl, LinLibc, Kernel, HostFiles, HostDates, LinConsole;
  • Lin/Rsrc/blackbox.c, Lin/Rsrc/Makefile, Lin/Rsrc/exe.img


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

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

Для этого пришлось изменить:
  • LinDl, LinLibc, Kernel, HostFiles, HostDates, LinConsole;
  • Lin/Rsrc/blackbox.c, Lin/Rsrc/Makefile, Lin/Rsrc/exe.img

Здорово! Интересно посмотреть изменения будет. Предлагаю сделать отдельную ветку в репозитории пока.


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

Зарегистрирован: Суббота, 26 Ноябрь, 2005 02:12
Сообщения: 438
Откуда: Егорьевск
Список изменений:

Libc:
  • в OpenBSD другие константы;
  • есть различия в структурах данных (в частности, в sigcontext);
  • в OpenBSD в libc нет stdin, stdout, stderr; вместо них есть __sF: ARRAY [untagged] OF FILE;
    stdin = SYSTEM.ADR(__sF[0]), stdout = SYSTEM.ADR(__sF[1]), stderr = SYSTEM.ADR(__sF[2]);
  • в OpenBSD в libc нет __xstat, вместо неё stat (stat(...) = __xstat(3, ...));
  • в OpenBSD в libc __errno вместо __errno_location;
  • в OpenBSD в libc sigsetjmp вместо __sigsetjmp;
  • в OpenBSD в libc нет timezone (вместо неё tmDesc.tm_gmtoff);
  • добавил mprotect (используется в Kernel и в загрузчике LinLinker для OpenBSD).

Kernel:
  • т. к. структуры sigcontext и siginfo другие, то нужно было немного изменить TrapHandler;
  • InitModule: требуется вызов mprotect(m.code, m.csize, PROT_EXEC + PROT_READ + PROT_WRITE) перед вызовом body(), т. к. страницы памяти данных не могут исполняться по умолчанию, в отличие, например, от Linux и FreeBSD;
  • на сигнал SIGTHR тоже не нужно устанавливать обработчик, иначе будет ошибка, если исполняемый файл загрузчика был собран с опцией компилятора -pthread, которая нужна, чтобы заработала диамическая загрузка библиотек, использующих libpthread (Gtk, например);
  • изменение в процедуре Time, связанное с тем, что в OpenBSD CLOCKS_PER_SEC = 100.

HostFiles:
  • __xstat -> stat;
  • размер поля Libc.stat_t.st_size в OpenBSD -- 8 Б;

LinConsole:
  • stdin -> SYSTEM.ADR(__sF[0])

LibDl:
  • в OpenBSD нет libdl; функции dl* находятся в ld.so; но эту библиотеку можно только использовать в случае динамической загрузки libBB.so, иначе нужно использовать функции dl* из libc, которых на самом деле там нет, там как-то хитро сделано зачем-то; для унификации доступа к функциям dl* написал библиотеку-обёртку libdlobsdwrap.so

HostDates:
  • LIbc.timezone -> tmDesc.tm_gmtoff (см. выше);

Lin/Rsrc/BlackBox.c:
  • так же, как и в Kernel, необходимо выполнить mprotect перед запуском body()

Lin/Rsrc/Makefile:
  • собирать exe.img необходимо с опцией компилятора -pthread (см. выше, почему);
  • компоновщику необходимо указать -ldlobsdwrap (см. выше).


Последний раз редактировалось Alexander Shiryaev Понедельник, 10 Сентябрь, 2012 16:52, всего редактировалось 1 раз.

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

Зарегистрирован: Суббота, 26 Ноябрь, 2005 02:12
Сообщения: 438
Откуда: Егорьевск
Предлагаю внести изменённые файлы в отдельный каталог репозитория (наподобие bb16rc16win).
После того, как будет решена проблема с унификацией Kernel, описанная в соседнем треде.


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

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 2355
Alexander Shiryaev писал(а):
Предлагаю внести изменённые файлы в отдельный каталог репозитория (наподобие bb16rc16win).
После того, как будет решена проблема с унификацией Kernel, описанная в соседнем треде.

хорошая идея. я за.


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

Зарегистрирован: Суббота, 26 Ноябрь, 2005 02:12
Сообщения: 438
Откуда: Егорьевск
Иван, для унификации ядер включи вместо твоего ядра ядро OpenBUGS, но с единственным изменением в Kernel.INIT:

Код:
static := init IN modList.opts;
inDll := dll IN modList.opts;

вместо
Код:
SetOpts;

Тогда метод запуска на основе LinLinker заработает с ядром OpenBUGS.

Ядро OpenBUGS можно скачать с сайта http://www.openbugs.info/ (здесь)

Кстати:
  • реализация ThisCommand в твоём ядре не соответствет BlackBox 1.6-rc6;
  • в твоём ядре в InstallSignals: ... & (i # 32) & (i # 33) ... -- так писать не надо.


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

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 2355
В System я не приводил в соответствие версии BlackBox 1.6-rc6, мои правки ограничены синим цветом (но местами синим не мои, а старый синий). Такое ядро досталось от версии Info21. Ядро OpenBUGS таки нашел тогда и пробовал, но безуспешно. Сейчас попробую с вашими инструкциями. Если все запустится обновлю репозиторий.


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

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


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

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


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

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