Creatore | Fabrice Bellard |
---|---|
Prima versione | 2002 |
Ultima versione | 0.9.27 (13 dicembre 2017) |
Depositare | repo.or.cz/tinycc.git |
Scritto in | C e assemblatore |
Lingue supportate | VS |
Sistema operativo | Linux , Microsoft Windows e Unix |
Ambiente | X86 , architettura ARM e x86_64 |
genere | Compilatore |
Licenza | GNU Lesser General Public License Versione 2.1 ( d ) |
Sito web | bellard.org/tcc |
Piccolo compilatore C (TCC, piccolo compilatore C ) è un completo x86 , x86-64 e ARM C compilatore sviluppata da Fabrice Bellard . Può essere utilizzato su Unix , Linux e Microsoft Windows dalla versione 0.9.26 (da 15 febbraio 2013). È distribuito sotto la GNU Lesser General Public License (GNU LGPL).
ANSI C e il nuovo standard ISO C99 sono particolarmente ben supportati da tcc ; è anche compatibile con molte estensioni GNU C, come l' assembly inline . Tuttavia, rendere tcc completamente conforme potrebbe rallentarlo in modo significativo. In particolare, non fornisce la gestione trigraph , il tipo corretto e il controllo delle espressioni.
La sua licenza consente a tutti di utilizzare, modificare e / o ridistribuire. Può essere utilizzato per sviluppare software open source o proprietario.
tcc ha le sue origini in OTCC ( Obsfucated Tiny C Compiler ), un programma che Bellard ha scritto per vincere il IOCCC ( Internation Obfuscated C Code Contest ) nel 2002. Da allora, ha migliorato e "oscurato" il programma per produrre tcc .
Lo sviluppo di tcc è rallentato perché Fabrice Bellard è impegnato con altri progetti. Tuttavia, esistono versioni modificate, come il ramo di Landley Mercurial , collezione di Dave Dodge di patch non ufficiali TCC , Debian e kFreeBSD patch a valle , e le patch di gcc grischka.
La versione 0.9.23 è soggetta a una vulnerabilità classificata come CVE-2006-0635 o vulnerabilità del database delle vulnerabilità open source 22956 . Il rapporto è che tcc " contiene un difetto che può avere complicazioni di sicurezza per il programma compilato con esso. Il compilatore non può restituire un valore senza segno dell'operatore sizeof , con conseguente potenziale overflow di interi in essi. Oggetti che compila " . falla è stata corretta nella forcella di Rob Landley e poi nella versione ufficiale del tcc per la versione 0.9.24.
La versione 0.9.25 è la prima versione a supportare 64 bit.
TCC ha una mailing list attiva e la versione corrente di Bellard è accessibile da git .
Gli usi più noti di tcc sono: