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

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

Author:  s1n [ Wed May 11, 2016 8:16 pm ]
Post subject:  Re: C-- Sphinx Compiler

Какая внезапная тема. Даже и не ожидал, что до этого момента доживу. Сам в своё время писал Шекеру про исходники.

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

Author:  GerdtR [ Mon May 30, 2016 5:13 am ]
Post subject:  Re: C-- Sphinx Compiler

Версия под КолибриОС. Заставить работать откуда угодно пока не получилось(да и слабо представляю, как это сделать), так что кидать сам CMM и С--.INI в папку с исходниками.

Attachments:
CMM [187.03 KiB]
Downloaded 222 times

Author:  GerdtR [ Mon May 30, 2016 5:23 am ]
Post subject:  Re: C-- Sphinx Compiler

По поводу svn... залить-то можно. Чтоб исходники не исчезли. Думаю всё перекомпилить, да залить вместе с бинарниками (или бинарники в форуме пусть лежат? По моему, лучше в свн).
Чуть не забыл. Правку от lev я добавил, так что ему отдельное спасибо.

Author:  GerdtR [ Mon Jun 13, 2016 5:25 am ]
Post subject:  Re: C-- Sphinx Compiler

Всё, на svn:/kolibrios.org/programs/develop/cmm теперь лежат исходники. Бинарники пока заливать не буду, потому как Колибри-версия вообще исходники искать не хочет.

Author:  GerdtR [ Thu Jun 16, 2016 6:21 pm ]
Post subject:  Re: C-- Sphinx Compiler

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

Attachments:
c--.zip [463.67 KiB]
Downloaded 160 times

Author:  Siemargl [ Mon Jun 20, 2016 12:28 pm ]
Post subject:  Re: C-- Sphinx Compiler

Есть ли документация по компилятору ?

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

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

Author:  punk_joker [ Mon Jun 20, 2016 1:41 pm ]
Post subject:  Re: C-- Sphinx Compiler

Siemargl wrote:
Есть ли документация по компилятору ?
viewtopic.php?f=33&t=495&start=15#p21350


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

Обычный подход аля Си с классами, в основе просто применение структур.

Author:  0CodErr [ Mon Jun 20, 2016 4:30 pm ]
Post subject:  Re: C-- Sphinx Compiler

Siemargl wrote:
Есть ли документация по компилятору ?
Документация есть на сайте http://www.c--sphinx.narod.ru/c--doc.htm

Author:  Siemargl [ Mon Jun 20, 2016 9:02 pm ]
Post subject:  Re: C-- Sphinx Compiler

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

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

Author:  punk_joker [ Mon Jun 20, 2016 10:39 pm ]
Post subject:  Re: C-- Sphinx Compiler

Siemargl wrote:
-какие форматы файлов поддерживаются (ELF, COFF, библиотеки).


В руководстве
12. Типы выходных файлов.

Author:  GerdtR [ Tue Jun 21, 2016 3:37 am ]
Post subject:  Re: C-- Sphinx Compiler

В коде самой компиляции я мало ковырялся, скажу только, что форматов много поддерживает(bin,MZ,COFF,PE). ELF'а нет. Просто запусти компилятор без параметров и увидишь это:
Spoiler: Show
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"

Author:  Siemargl [ Tue Jun 21, 2016 7:56 pm ]
Post subject:  Re: C-- Sphinx Compiler

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. Есть в документации на сфинкс, нестандартное расширение с--

Author:  Siemargl [ Sun Jul 10, 2016 1:37 am ]
Post subject:  Re: C-- Sphinx Compiler

Компилятор не понимает ключи
>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

Attachments:
testcoff.c [1.53 KiB]
Downloaded 68 times
gcccalls.c [957 Bytes]
Downloaded 68 times

Author:  GerdtR [ Mon Jul 11, 2016 8:03 pm ]
Post subject:  Re: C-- Sphinx Compiler

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

Author:  Siemargl [ Mon Jul 11, 2016 9:36 pm ]
Post subject:  Re: C-- Sphinx Compiler

Думаю это вполне можно поправить в разборе командной строки.

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

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

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