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

Tiny C Compiler
http://board.kolibrios.org/viewtopic.php?f=45&t=565
Page 2 of 16

Author:  rabid rabbit [ Mon Aug 21, 2006 7:31 pm ]
Post subject:  Re: Tiny C Compiler

halyavin wrote:
Выкладываю адаптацию этого компилятора для KolibriOS: http://shade.msu.ru/~msu-se/metcc.zip (работает под windows).


Если он работает под виндой, то нафига изобретать велосипед, если есть, например, MS VC++?

Author:  andrew_programmer [ Mon Aug 21, 2006 11:04 pm ]
Post subject: 

В последствии он будет портирован в Колибри.А вот портировать майкрософтовский компилятор нереально(он платный и его код майкрософт не откроет).

Author:  Serge [ Tue Aug 22, 2006 11:37 pm ]
Post subject: 

А как из программы получить доступ к командной строке и пути ?

Author:  Ghost [ Wed Aug 23, 2006 2:05 pm ]
Post subject: 

Какието нелады с новой либой :
C Code:
_msys_write_text(6 - offs, 8, fcolor | FONT0, header, strlen(header));

Disassembled (old library):

seg000:000002F1 mov eax, 6
seg000:000002F6 mov ecx, ds:offs
seg000:000002FC sub eax, ecx
seg000:000002FE mov ecx, offset header
seg000:00000303 push ecx
seg000:00000304 mov [ebp+var_C], eax
seg000:00000307 call strlen
seg000:0000030C add esp, 4
seg000:0000030F push eax
seg000:00000310 mov eax, offset header
seg000:00000315 push eax
seg000:00000316 mov eax, ds:dword_C4E
seg000:0000031C push eax
seg000:0000031D mov eax, 8
seg000:00000322 push eax
seg000:00000323 mov eax, [ebp+var_C]
seg000:00000326 push eax
seg000:00000327 call _msys_write_text


Disassembled (new library):

seg000:000002F1 mov eax, 6
seg000:000002F6 mov ecx, ds:offs
seg000:000002FC sub eax, ecx
seg000:000002FE mov ecx, offset header
seg000:00000303 push ecx
seg000:00000304 mov [ebp+var_C], eax
seg000:00000307 loc_307:
seg000:00000307 call near ptr loc_307+1

seg000:0000030C add esp, 4
seg000:0000030F push eax
seg000:00000310 mov eax, offset header
seg000:00000315 push eax
seg000:00000316 mov eax, ds:dword_BE2
seg000:0000031C push eax
seg000:0000031D mov eax, 8
seg000:00000322 push eax
seg000:00000323 mov eax, [ebp-0Ch]
seg000:00000326 push eax
seg000:00000327 call _msys_write_text

Author:  Serge [ Wed Aug 23, 2006 6:41 pm ]
Post subject: 

Ghost
Значит при компоновке strlen не найдена. Я сталкивался с подобной фигней. Если функция объявлена но её нет в библиотеке или в коде программы, компилятор не выводит никаких сообщений (unresolved externals) а записывает call с неправильным смещением.

Author:  halyavin [ Wed Aug 23, 2006 8:50 pm ]
Post subject: 

Ghost
Размер melibc.a равен 50510? string.h подключен? Если все равно вставляет call $+1, не находя фунцию, то пошли прогу на мыло (http://shade.msu.ru/~msu-se/0ptlmcol6e.gif).

Author:  Ghost [ Thu Aug 24, 2006 9:22 pm ]
Post subject: 

halyavin
Либу брал из обновлённого metcc.zip, скачал metccfix1.zip - всё Ok.

Author:  vectoroc [ Fri Aug 25, 2006 10:58 am ]
Post subject: 

попытался добавить поддержку argc argv в main-е...
параметры парсятся по-пробельно. Просьба всем кому интересно потестить
http://victor.kolibrios.org/download/metcc/bin.rar - бинарник компилера и загрузчика
http://victor.kolibrios.org/download/metcc/source.rar - исходные файлы, которые я правил

Author:  vectoroc [ Sat Aug 26, 2006 1:06 pm ]
Post subject: 

Немного улучшил распознование параметров. Теперь если параметр начинается с двойных кавычек, пробелы игнорируются, и оканчивается этот параметр первой встречной кавычкой. Лишние пробельные символы между параметрами игнорируются.
Ссылки те же

Author:  vectoroc [ Sat Aug 26, 2006 7:01 pm ]
Post subject: 

По совсем непонятным мне причинам при длинном передаваемом параметре некоторые отладочные сообщения в начале не выводятся (например сообщение о старте программы сразу после mf_init). Переполнения выделенного буффера вроде не происходит, хотя я не уверен ,что проверка проходит вообще(она сразу после первого отладочного сообщения). Может это ядрышко борохлит?

Author:  halyavin [ Sun Aug 27, 2006 8:22 am ]
Post subject: 

Victor
Учти, что буфер для отладочных сообщений имеет ограниченный размер (4096 байт по-моему). Приеду из Петрозаводска 1 сентября - включу твои изменения (если ты не решишь залить все на SVN раньше).

Author:  vectoroc [ Sun Aug 27, 2006 7:57 pm ]
Post subject: 

с свн я только читать могу... так что самому придётся :-Р

Author:  diamond [ Mon Aug 28, 2006 4:55 pm ]
Post subject: 

http://diamondz.land.ru/klbr_doc/63.htm
Quote:
Длина буфера - 512 байт. При переполнении буфера все полученные данные теряются и заполнение начинается снова с нуля.

Author:  O01eg [ Tue Aug 29, 2006 7:10 pm ]
Post subject: 

Люди, а как писать статистические либы на нём, вроде бы можно, но я не знаю как.

Author:  O01eg [ Thu Aug 31, 2006 7:42 pm ]
Post subject: 

Кстати, ковырялся я с ним:
stderr и stdout перенаправить в отладку
выложить размеры и знаки данных в tcc (а то libogg тебует)
определить NULL
скомпилировать melibc.a в metcc

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