Page 1 of 1

Участие в разработке

Posted: Sun Dec 16, 2018 9:41 pm
by plastictown
Доброго времени суток! Я недавно узнал о проекте, очень заинтересовался и хотел бы принять участие в разработке/портировании ПО. Администратор группы ВК сказал
с моей точки зрения не хватает удобного текстового редактора с подсветкой кода
Я хочу сделать что-то (хотя у меня и другое видение о программах первой необходимости), но очень трудно начать, потому что не совсем понятно как организовать процесс разработки, т.е. мне интересно кто как работает в плане работает ли на живом железе/виртуальной машине, где разрабатывает - на целевой ос или вне ее, если так, то как переносить код/бинарники туда-сюда. Попробовал FTP-клиент (гуишный), он крашится при подключении, сеть отваливается постоянно на VirtualBox, утилитой настройки сети не восстанавливается, лечится только перезагрузкой. Хочется получить рекомендации "как начать" и м/б получить ссылки на конкретный код, который необходимо дорабатывать. Планирую писать на си (какой бы он ни был:-). Нахожусь в СПб, буду рад лично встретиться с другими участниками проекта. Спасибо!

Re: Участие в разработке

Posted: Mon Dec 17, 2018 12:05 pm
by IgorA
Добрый день.
plastictown wrote:Планирую писать на си (какой бы он ни был:-)
На сколько я знаю для Колибри компилируются программы с помощью C-- и Borland C++ 5.5.1.
На C-- пишутся многие программы и он вроде-бы работает в самой Колибри. Администратор группы ВК (если имеется ввиду Leency, Кирилл) пишет программы на C--, думаю у него можно узнать более детальную информацию по работе с этим компилятором.
На Borland C++ есть пример компиляции программы life2. Этот компилятор не портирован в Колибри и наверное потому широкого распространения не получил. Хотя там очень интересный подход используется при компиляции. Сначала программа компилируется в ассемблерный код для TASM. Потом этот код преобразуется в код для fasm. Далее с помощью fasm компилируется исполняемый файл. Т.е. через Borland сначала получается ассемблерный код.

Re: Участие в разработке

Posted: Tue Dec 18, 2018 3:05 am
by plastictown
Да, я пытаюсь использовать tcc, могу собрать пока только пустой main(), потому что просто не могу понять, как собрать api целиком в виде заголовочников и библиотек, если таковой существует. Как-то все в виде отдельных ссылок на форуме. А Borland.. не хотелось бы кросс-компилить, очень неудобно перемещать бинарники, тем более, что на моей машине ОС нормально не запустилась, только на виртуалбоксе. Обидно просидеть до трех часов и не сделать вообще ничего полезного:)

Re: Участие в разработке

Posted: Tue Dec 18, 2018 3:11 am
by Siemargl
работает в бесплатном vmware player, переношу через .flp (подключается в VMW) с помощью winimage 4.0
еще можно через USB-флешку

неудобно - нужно переподключать образ после изменений

С сейчас живой в 3х вариантах - gcc5.4+newlib, gcc + djgpp lib, tcc (единственный нативный-но примитивный)
1й и 3й вариант имеют АПИ в виде kos32sys?.h

C-- это другой диалект (ниже уровнем чем С), но на нем написано больше всего

все есть на форуме

Re: Участие в разработке

Posted: Wed Dec 19, 2018 2:32 am
by plastictown
Siemargl wrote: еще можно через USB-флешку
Сделал загрузку с флешки в виртуалбоксе - в принципе нормально, не страшнее кросс-компиляции каким-нибудь linaro.
Siemargl wrote: C-- это другой диалект (ниже уровнем чем С), но на нем написано больше всего
Мне leency, я полагаю, дал сегодня вектор в этом направлении, после прочтения доки по C-- остался один вопрос: там как-то хитро написано, что можно вроде бы собирать файлы obj, но использовать их нельзя, но можно использовать библиотеки, собранные на других языках. Правильно ли я понял?
Siemargl wrote: все есть на форуме
Жуткая фраза:) Тем не менее, я собрал программку, которая даже запускается:) А нормально ли, что консольная программа после завершения не закрывается? я ее взял из примеров.

Re: Участие в разработке

Posted: Wed Dec 19, 2018 11:39 am
by Siemargl
можно загружать .obj COFF формата со спец.заголовком сисфункцией

чтобы закрыть консольное окно,нужно в конце программы вызвать функцию консоли con_exit как то так (удобно, если при ошибке окно с сообщением осталось)

Re: Участие в разработке

Posted: Wed Dec 19, 2018 11:30 pm
by plastictown
Siemargl wrote: чтобы закрыть консольное окно,нужно в конце программы вызвать функцию консоли con_exit как то так (удобно, если при ошибке окно с сообщением осталось)
В примере так и сделано.

Code: Select all

con_exit stdcall (0);
ExitProcess();
На окне появляется надпись FINISHED и оно остается. Зато я научился создавать файл:)
Хотя там странное дело Написано в доке на сисколл, что функция не работает для CD. Если CD - это текущая директория, то она работает, а если нет, тогда непонятно что такое CD:)
Я подумал, а не имеет ли смысла привести сигнатуры функций для c-- к posix-ным или так специально задумано? Тем более непонятно, что передавать в буфер, если я хочу просто создать пустой файл.
Еще интересно, нет ли документации на функции для c--? Просто по исходникам далеко не все очевидно, хотя бы какие нужно загружыть библиотеки для какой функции.
Я наверное не в ту ветку пишу все это:)

Re: Участие в разработке

Posted: Thu Dec 20, 2018 9:57 am
by Siemargl
plastictown wrote:
Siemargl wrote: чтобы закрыть консольное окно,нужно в конце программы вызвать функцию консоли con_exit как то так (удобно, если при ошибке окно с сообщением осталось)
В примере так и сделано.

Code: Select all

con_exit stdcall (0);
ExitProcess();
На окне появляется надпись FINISHED и оно остается. Зато я научился создавать файл:)
Хотя там странное дело Написано в доке на сисколл, что функция не работает для CD. Если CD - это текущая директория, то она работает, а если нет, тогда непонятно что такое CD:)
Я подумал, а не имеет ли смысла привести сигнатуры функций для c-- к posix-ным или так специально задумано? Тем более непонятно, что передавать в буфер, если я хочу просто создать пустой файл.
Еще интересно, нет ли документации на функции для c--? Просто по исходникам далеко не все очевидно, хотя бы какие нужно загружыть библиотеки для какой функции.
Я наверное не в ту ветку пишу все это:)
чтобы закрылось, надо con_exit (1)
http://websvn.kolibrios.org/filedetails ... ole_en.txt
рядом есть и дока на русском

непонятно про какой сисколл, но CD это компакт-диск, вероятно

Re: Участие в разработке

Posted: Fri Dec 21, 2018 2:23 am
by plastictown
Siemargl wrote: чтобы закрылось, надо con_exit (1)
http://websvn.kolibrios.org/filedetails ... ole_en.txt
рядом есть и дока на русском
непонятно про какой сисколл, но CD это компакт-диск, вероятно
Я имел в виду 70 функцию. Про этот CD даже в голову не пришло. Наверное, скоро их совсем не станет.(
За доки спасибо! Очень удобные.

Дело за малым: придумать, чего же я такого полезного хочу сделать.-)))

Re: Участие в разработке

Posted: Tue Jan 01, 2019 8:31 pm
by theonlymirage
plastictown wrote: Дело за малым: придумать, чего же я такого полезного хочу сделать.-)))
Для примера: ты можешь реализовать конвертер величин (секунды в минуты, минуты в часы, гигабайты в байты, километры в метры и т.д.). На мой взгляд такая программа полезная и не сильно сложная, для начала самая подходящая задача. Это только как пример того, что ты можешь сделать.

P.S. Чтобы полученные навыки работы с файлами зря не пропали, можно сохранять результат в файл или обрабатывать несколько значений из одного файла, сохраняя результат конвертации во второй.

Re: Участие в разработке

Posted: Fri Jan 11, 2019 10:27 pm
by plastictown
theonlymirage wrote: Для примера: ты можешь реализовать конвертер величин (секунды в минуты, минуты в часы, гигабайты в байты, километры в метры и т.д.). На мой взгляд такая программа полезная и не сильно сложная, для начала самая подходящая задача. Это только как пример того, что ты можешь сделать.

P.S. Чтобы полученные навыки работы с файлами зря не пропали, можно сохранять результат в файл или обрабатывать несколько значений из одного файла, сохраняя результат конвертации во второй.
У меня родилась чуть другая идея. Думаю попробовать портировать на cmm libconfig или libjson-c и сделать автогенерацию интерфейса на основе текстового файла. Мне кажется, это хорошая идея.

Re: Участие в разработке

Posted: Sat Jan 12, 2019 9:55 pm
by Pathoswithin
...эге-кхе-кхе...портировать Scintilla...кхе-хе...

Re: Участие в разработке

Posted: Tue Jan 15, 2019 2:54 am
by plastictown
Pathoswithin wrote:...эге-кхе-кхе...портировать Scintilla...кхе-хе...
Не совсем понятно, что имеется в виду. Если это совет, то это слишком сложная работа при таком скудном наборе инструментов и библиотек, а вот генерация окна с элементами управления на основе текстового файла - на мой взгляд, может сильно ускорить разработку диалоговых окошек, хотя и поведение их придется расписывать так же. Плюс к тому - libconfig в принципе очень удобная штука. Юзал ее для генерации дерева элементов в 2D движке на OpenGL. Как минимум удобнее xml и не так громоздко выглядит.

Re: Участие в разработке

Posted: Tue Jan 15, 2019 5:07 pm
by punk_joker
plastictown wrote: У меня родилась чуть другая идея. Думаю попробовать портировать на cmm libconfig или libjson-c и сделать автогенерацию интерфейса на основе текстового файла. Мне кажется, это хорошая идея.
Просто портировать, пусть на Си и остаются.