Page 2 of 10

Re: C-- Sphinx Compiler

Posted: Wed May 11, 2016 8:16 pm
by s1n
Какая внезапная тема. Даже и не ожидал, что до этого момента доживу. Сам в своё время писал Шекеру про исходники.

Друзья, а это чудо будет перекочевывать в svn?

Re: C-- Sphinx Compiler

Posted: Mon May 30, 2016 5:13 am
by GerdtR
Версия под КолибриОС. Заставить работать откуда угодно пока не получилось(да и слабо представляю, как это сделать), так что кидать сам CMM и С--.INI в папку с исходниками.

Re: C-- Sphinx Compiler

Posted: Mon May 30, 2016 5:23 am
by GerdtR
По поводу svn... залить-то можно. Чтоб исходники не исчезли. Думаю всё перекомпилить, да залить вместе с бинарниками (или бинарники в форуме пусть лежат? По моему, лучше в свн).
Чуть не забыл. Правку от lev я добавил, так что ему отдельное спасибо.

Re: C-- Sphinx Compiler

Posted: Mon Jun 13, 2016 5:25 am
by GerdtR
Всё, на svn:/kolibrios.org/programs/develop/cmm теперь лежат исходники. Бинарники пока заливать не буду, потому как Колибри-версия вообще исходники искать не хочет.

Re: C-- Sphinx Compiler

Posted: Thu Jun 16, 2016 6:21 pm
by GerdtR
Вот рабочие бинарики под Винду и Колибри. Под Линукс в теории должно компилиться, если в Makefile поправить _WIN_ на _UNIX_. В Колибри файл c--.ini ищется в таком порядке: папка с cmm, указанные пути в ком. строке, /rd/1/settings. Cmm можно запускать откуда угодно, но тогда указывать абсолютный путь до компилируемого файла. Если хотите указывать относительный путь, то cmm класть в папку с исходником.

Re: C-- Sphinx Compiler

Posted: Mon Jun 20, 2016 12:28 pm
by Siemargl
Есть ли документация по компилятору ?

-какие именно возможности спецификации реализованы ($2.9 спецификации 2.0) ?
-какие форматы файлов поддерживаются (ELF, COFF, библиотеки) ?
-какие фишки поддержки функционального программирования реализованы (also, continuation, cut to, etc) ?
-куда смотреть, что поддержано run-time services ?

Еще я вижу ООП-подобный синтаксис в исходниках еолайта и проч, но сходу не вижу описания такого синтаксиса в спецификации.

Re: C-- Sphinx Compiler

Posted: Mon Jun 20, 2016 1:41 pm
by punk_joker
Siemargl wrote:Есть ли документация по компилятору ?
viewtopic.php?f=33&t=495&start=15#p21350
Siemargl wrote:Еще я вижу ООП-подобный синтаксис в исходниках еолайта и проч, но сходу не вижу описания такого синтаксиса в спецификации.
Обычный подход аля Си с классами, в основе просто применение структур.

Re: C-- Sphinx Compiler

Posted: Mon Jun 20, 2016 4:30 pm
by 0CodErr
Siemargl wrote:Есть ли документация по компилятору ?
Документация есть на сайте http://www.c--sphinx.narod.ru/c--doc.htm

Re: C-- Sphinx Compiler

Posted: Mon Jun 20, 2016 9:02 pm
by Siemargl
0CodErr wrote:
Siemargl wrote:Есть ли документация по компилятору ?
Документация есть на сайте http://www.c--sphinx.narod.ru/c--doc.htm
Там нет ответов на заданные вопросы.

Возможно Линси просветит или Гердт разбирался в потрохах компилятора.

Re: C-- Sphinx Compiler

Posted: Mon Jun 20, 2016 10:39 pm
by punk_joker
Siemargl wrote: -какие форматы файлов поддерживаются (ELF, COFF, библиотеки).
В руководстве
12. Типы выходных файлов.

Re: C-- Sphinx Compiler

Posted: Tue Jun 21, 2016 3:37 am
by GerdtR
В коде самой компиляции я мало ковырялся, скажу только, что форматов много поддерживает(bin,MZ,COFF,PE). ELF'а нет. Просто запусти компилятор без параметров и увидишь это:
Spoiler:OUTPUT FILES",
"/TEXE DOS EXE file (model TINY) /D32 EXE file (32bit code for DOS)",
"/EXE DOS EXE file (model SMALL) /W32 EXE for Windows32 GUI",
"/OBJ OBJ output file /W32C EXE for Windows32 console",
"/SOBJ slave OBJ output file /DLL DLL for Windows32",
"/COFF OBJ COFF output file /DBG create debug information",
"/SYM COM file symbiosis /LST create assembly listing",
"/SYS device (SYS) file /B32 32bit binary files",
"/MEOS executable file for MeOS /MAP create function map file"

Re: C-- Sphinx Compiler

Posted: Tue Jun 21, 2016 7:56 pm
by Siemargl
Siemargl wrote:Есть ли документация по компилятору ?

-какие именно возможности спецификации реализованы ($2.9 спецификации 2.0) ?
-какие форматы файлов поддерживаются (ELF, COFF, библиотеки) ?
-какие фишки поддержки функционального программирования реализованы (also, continuation, cut to, etc) ?
-куда смотреть, что поддержано run-time services ?

Еще я вижу ООП-подобный синтаксис в исходниках еолайта и проч, но сходу не вижу описания такого синтаксиса в спецификации.
Вкратце себе же отвечаю:
1. См. документацию на Сфинкс
2. Как входные - никакие, только исходный текст. Как выходные полезные для KOS: PE DLL, MEOS executable. /COFF не работает адекватно - ниже решение
3. Никакие не реализованы.
4. ХЗ, вероятно только в SVN, часть функций (с плав.точкой) встроено в компилятор - описаны в доке.
5. Есть в документации на сфинкс, нестандартное расширение с--

Re: C-- Sphinx Compiler

Posted: Sun Jul 10, 2016 1:37 am
by Siemargl
Компилятор не понимает ключи
>d:\cmm\cmm.exe /COFF dicty.c

SPHINX C-- Compiler Version 0.239 b26 Jun 16 2016
Compiling Commenced . . .
(0)#1> unable to open file '/COFF.h'.

upd. Понимает опции только через минус, например -COFF
(зачем то закомментировано в main.cpp:268)

Для получения coff объектника надо писать -obj -coff -w32

Интероперабельность с gcc проверена, пример приложил

Заодно нашел английскую версию документации
Sphinx C-- documentation http://barryk.org/goosee/cmm/c--doc.htm

Re: C-- Sphinx Compiler

Posted: Mon Jul 11, 2016 8:03 pm
by GerdtR
Так, я забыл написать. В Колибри путь указывается через '/', а не через '\' как в Винде, потому мне пришлось поправить код. Теперь параметры указывать только через '-'. Зато в КОС теперь можно указывать абсолютный путь. Кому это надо? Тому, кто решил пихнуть компилятор cmm куда нибудь в /hd1/0/prg, а компилить хочет в любой папке. Да, указывать придётся абсолютный путь. Увы, в КОС текущий каталог устанавливается как /rd/0 и не важно откуда запущена прога. А у прог с newlib текущий каталог ставится как путь, где находится сам кекс, что не многим лучше.

Re: C-- Sphinx Compiler

Posted: Mon Jul 11, 2016 9:36 pm
by Siemargl
Думаю это вполне можно поправить в разборе командной строки.

В хелпе и документации указано через слэш, что сбивает.

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