Page 3 of 9

Re: C-- Sphinx Compiler

Posted: Tue Jul 12, 2016 1:18 am
by punk_joker
Я правильно понял, из-за проблем с относительными путями, собрать одну из программ на SVN не выйдет? Или же я что-то не так делал?

Re: C-- Sphinx Compiler

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

Re: C-- Sphinx Compiler

Posted: Tue Jul 12, 2016 4:57 pm
by 0CodErr
Serge wrote:Поэтому рекомендую пользоваться SHELL.
Так вроде у Shell тоже "/rd/1". svn6300-img

Это выводит текущую директорию в BOARD:
Spoiler:

Code: Select all

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:
d_print_cd.kex (1.1 KiB)
Downloaded 277 times
Spoiler:Image

Re: C-- Sphinx Compiler

Posted: Tue Jul 12, 2016 7:39 pm
by GerdtR
0CodErr, в SHELL сначала cd /tmp0/1, а потом уже свою смотрелку запускать. Тогда да, прога покажет /tmp0/1.
Siemargl, не понял, о каких "несколько printf-ов сообщений об ошибках" ты говоришь. Я заменил все sprintf(STD_OUT,...) на printf из-за появления отсутствующих линков, не помню, чтоб я что-то делал с выводом ошибок.
Siemargl wrote:Думаю это вполне можно поправить в разборе командной строки.
Опять не понял, каким образом? Как для fasm указывать каталог с исходниками если?
punk_joker, видимо, пока нет, любой инклудник не будет найден.
Вообще, сейчас я несколько нагружен, так что быстро исправлять не могу.

Re: C-- Sphinx Compiler

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

Re: C-- Sphinx Compiler

Posted: Wed Jul 13, 2016 12:43 pm
by Serge
0CodErr
Вот, кстати, должна ли программа для зауска приложений также менять текущую директорию?
По хорошему дополнительно надо указывать рабочий каталог для запускаемой программы. SHELL я рекомендовал потому, что там cd меняет рабочий каталог. Раньше и этого не было.

Re: C-- Sphinx Compiler

Posted: Fri Oct 07, 2016 10:32 pm
by Leency
GerdtR

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

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

Re: C-- Sphinx Compiler

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

Re: C-- Sphinx Compiler

Posted: Wed Oct 26, 2016 11:11 pm
by Siemargl
Закоммитил микропатчик, чтобы собирался gcc5.4 с libc.dll
Работает, но только если cmm.kex в каталоге с компилируемой программой

Re: C-- Sphinx Compiler

Posted: Thu Nov 10, 2016 2:58 pm
by GerdtR
Так, пока выложу текущий результат. Эта версия компилит в любой папке проекты. То есть кидаем c--.kex на /rd/0 , с--.ini можно один на всех туда же положить, а можно в папку проекта(сначала будет искать в папке с проектом) и всё, с консоли или скриптом можно компилить, не указывая полный путь до c--.kex. Да, избегайте пока папок, имеющих имя длиннее 7 символов.

Re: C-- Sphinx Compiler

Posted: Fri Nov 11, 2016 7:38 pm
by GerdtR
Проблема с относительными путями исправлена. Короче, теперь всё видит.

Re: C-- Sphinx Compiler

Posted: Sat Nov 12, 2016 11:38 am
by Leency
Ну теперь заживем! :)
Спасибо!

Re: C-- Sphinx Compiler

Posted: Sat Nov 12, 2016 5:35 pm
by GerdtR
Ещё есть недочёты, под отладчиком их видно, так что возможны ошибки в работе.

Re: C-- Sphinx Compiler

Posted: Mon Nov 14, 2016 3:47 am
by Leency
GerdtR wrote:Проблема с относительными путями исправлена. Короче, теперь всё видит.
Никаким образом не смог заставить работать.
Упорно отказывается кушать "..", ты точно правильную версию файла прикрепил?

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

Re: C-- Sphinx Compiler

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