Board.KolibriOS.org
http://board.kolibrios.org/

C-- Sphinx Compiler
http://board.kolibrios.org/viewtopic.php?f=45&t=3237
Page 3 of 9

Author:  punk_joker [ Tue Jul 12, 2016 1:18 am ]
Post subject:  Re: C-- Sphinx Compiler

Я правильно понял, из-за проблем с относительными путями, собрать одну из программ на SVN не выйдет? Или же я что-то не так делал?

Author:  Serge [ Tue Jul 12, 2016 10:27 am ]
Post subject:  Re: C-- Sphinx Compiler

GerdtR wrote:
Увы, в КОС текущий каталог устанавливается как /rd/0 и не важно откуда запущена прога. А у прог с newlib текущий каталог ставится как путь, где находится сам кекс, что не многим лучше.
Не так. Все приложения в системе наследуют текущий каталог от родительского процесса. Это свойство ядра. Разработчики файловых менеджеров забывают переключать рабочий каталог при навигации по дереву. Поэтому рекомендую пользоваться SHELL.

Author:  0CodErr [ Tue Jul 12, 2016 4:57 pm ]
Post subject:  Re: C-- Sphinx Compiler

Serge wrote:
Поэтому рекомендую пользоваться SHELL.
Так вроде у Shell тоже "/rd/1". svn6300-img

Это выводит текущую директорию в BOARD:
Spoiler: Show
Code:
ORG 0
BITS 32
; ------------------------------------- ;
STACK_SIZE             equ 256
; ------------------------------------- ;
MENUET01                db 'MENUET01'
version                 dd 1
program.start           dd START
program.end             dd END
program.memory          dd END + STACK_SIZE
program.stack           dd END + STACK_SIZE
program.params          dd 0
program.path            dd 0
; ------------------------------------- ;
CD_BUFFER_SIZE equ 1024
cd_buffer times CD_BUFFER_SIZE db 0
db 0
; ------------------------------------- ;
START:
        mov    eax, 30
        mov    ebx, 2
        mov    ecx, cd_buffer
        mov    edx, CD_BUFFER_SIZE
        int    64
        mov    eax, 63
        mov    ebx, 1
        xor    ecx, ecx
        mov    esi, cd_buffer
.next:
        mov    cl, [esi]
        jcxz   .done
        int    64
        inc    esi
        jmp    .next
.done:
        mov    cl, 13
        int    64
        mov    cl, 10
        int    64
        mov    eax, -1
        int    64
END:
Attachment:
d_print_cd.kex [1.1 KiB]
Downloaded 106 times

Spoiler: Show
Image

Author:  GerdtR [ Tue Jul 12, 2016 7:39 pm ]
Post subject:  Re: C-- Sphinx Compiler

0CodErr, в SHELL сначала cd /tmp0/1, а потом уже свою смотрелку запускать. Тогда да, прога покажет /tmp0/1.
Siemargl, не понял, о каких "несколько printf-ов сообщений об ошибках" ты говоришь. Я заменил все sprintf(STD_OUT,...) на printf из-за появления отсутствующих линков, не помню, чтоб я что-то делал с выводом ошибок.
Siemargl wrote:
Думаю это вполне можно поправить в разборе командной строки.

Опять не понял, каким образом? Как для fasm указывать каталог с исходниками если?
punk_joker, видимо, пока нет, любой инклудник не будет найден.
Вообще, сейчас я несколько нагружен, так что быстро исправлять не могу.

Author:  0CodErr [ Wed Jul 13, 2016 10:43 am ]
Post subject:  Re: C-- Sphinx Compiler

GerdtR wrote:
в SHELL сначала cd /tmp0/1, а потом уже свою смотрелку запускать. Тогда да, прога покажет /tmp0/1.
А, ну так-то да. После cd конечно должно работать :) В shell-ах других ОС, насколько знаю, тоже надо делать сперва cd.
Вот, кстати, должна ли программа для зауска приложений также менять текущую директорию?
Может быть, лучше даже опционально(CheckBox, например). Имею в виду такую программу viewtopic.php?f=9&t=2122

Author:  Serge [ Wed Jul 13, 2016 12:43 pm ]
Post subject:  Re: C-- Sphinx Compiler

0CodErr
Quote:
Вот, кстати, должна ли программа для зауска приложений также менять текущую директорию?

По хорошему дополнительно надо указывать рабочий каталог для запускаемой программы. SHELL я рекомендовал потому, что там cd меняет рабочий каталог. Раньше и этого не было.

Author:  Leency [ Fri Oct 07, 2016 10:32 pm ]
Post subject:  Re: C-- Sphinx Compiler

GerdtR

Проверил С-- под Колибри. Уже купил ноутбук специально для программирования под ней.
Некоторые программы собирает, но не все.

1. cmm/aelia не собирается под Колибри, собирается под Windows
2. warning'и пишутся на доску отладки, хотя они должны писаться в файл *.ERR, на доску должны выводиться только ошибки и результат сборки

Author:  GerdtR [ Wed Oct 26, 2016 10:03 pm ]
Post subject:  Re: C-- Sphinx Compiler

Всем привет. На сегодняшний день такое положение вещей.
1. Текущий каталог в cmm устанавливается как каталог до самого cmm.kex, и не важно, какой каталог был установлен. Скриншот проблемы прилагаю. Впрочем возможно проблема исчезнет, когда у меня получится слинковать с новым libc(ругается на отсутствующие функции abort и atexit, в какой библиотеке они - не знаю, но в последнем sdk их нет).
2. Warning'и пишутся на доску отладки, потому как в файле errors.cpp функции warningprint закоментирон sprintf, а вместо него просто printf. Короче, пофиксить - секундная работа. Правда, закономерный вопрос... как бы обычно компиляторы всё в консоль пишут(в нашем случае доска отладки). Не стандартно, по-моему. Или в файл удобнее?

Attachments:
screen.PNG
screen.PNG [ 47.03 KiB | Viewed 4754 times ]

Author:  Siemargl [ Wed Oct 26, 2016 11:11 pm ]
Post subject:  Re: C-- Sphinx Compiler

Закоммитил микропатчик, чтобы собирался gcc5.4 с libc.dll
Работает, но только если cmm.kex в каталоге с компилируемой программой

Author:  GerdtR [ Thu Nov 10, 2016 2:58 pm ]
Post subject:  Re: C-- Sphinx Compiler

Так, пока выложу текущий результат. Эта версия компилит в любой папке проекты. То есть кидаем c--.kex на /rd/0 , с--.ini можно один на всех туда же положить, а можно в папку проекта(сначала будет искать в папке с проектом) и всё, с консоли или скриптом можно компилить, не указывая полный путь до c--.kex. Да, избегайте пока папок, имеющих имя длиннее 7 символов.

Attachments:
c--.kex [219.5 KiB]
Downloaded 87 times

Author:  GerdtR [ Fri Nov 11, 2016 7:38 pm ]
Post subject:  Re: C-- Sphinx Compiler

Проблема с относительными путями исправлена. Короче, теперь всё видит.

Attachments:
cmm [219.47 KiB]
Downloaded 101 times

Author:  Leency [ Sat Nov 12, 2016 11:38 am ]
Post subject:  Re: C-- Sphinx Compiler

Ну теперь заживем! :)
Спасибо!

Author:  GerdtR [ Sat Nov 12, 2016 5:35 pm ]
Post subject:  Re: C-- Sphinx Compiler

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

Author:  Leency [ Mon Nov 14, 2016 3:47 am ]
Post subject:  Re: C-- Sphinx Compiler

GerdtR wrote:
Проблема с относительными путями исправлена. Короче, теперь всё видит.

Никаким образом не смог заставить работать.
Упорно отказывается кушать "..", ты точно правильную версию файла прикрепил?

P.S. Вывод в консоль шикарен.

Attachments:
1.png
1.png [ 120.39 KiB | Viewed 4571 times ]

Author:  GerdtR [ Mon Nov 14, 2016 8:13 pm ]
Post subject:  Re: C-- Sphinx Compiler

Хм... во-первых, поправь "\" на "/" , у нас КОС такой не поддерживает, а дополнительной обработки в коде нет.
Во-вторых, по непонятной мне причине, В argv[0] перед путём к экзешнику ставится символ сердечко. Ещё проверю, что да как, может мой косяк.
И да, есть костыль :) В пути в инклуде пиши вместо ../lib что-нибудь вроде fold/../../lib. Да, не красиво, но если ".." в середине, то обрабатывается. Только папка fold нужна в каталоге с исходником.
Сделал поправку, теперь прога в пути для поиска добавляется путь с комптлируемым файлом(думал, что он добавляется, но оказалось, что нет)
PS: пока весь этот вывод в консоли пусть будет, мне удобней с ним. Когда с путями разберусь уже, то уберу.

Attachments:
cmm [219.37 KiB]
Downloaded 94 times

Page 3 of 9 All times are UTC+03:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/