Hello,

> but having to write for the lowest-common-denominator support of ancient 
> compilers

Yeah, that's the whole point, staying at the C99 landmark is counterproductive, 
just because "Anyone care?".

TCC had a headstart somewhere in the past because it was innovative, fast, 
compact and could compile most of the present code base of the time.

New C standards have been published, compilers implemented them, but not TCC 
that started to lag behind despite coders showing it love and dedication in its 
maintenance.

Yet in order to stay relevant for ALL use cases, not just a few one that TCC 
can chew on (without modifying the source code to allow TCC to compile it) it 
should evolve too.

I used TCC to quick compile Frontier Elite 2 
https://github.com/Kochise/GLFrontier-win32/blob/main/src/Makefile-tcc.bat 
(relative path dependent in my repository tree)

So I know it is capable, while not producing optimized code, at least it works 
on old code bases.

Yet I tried it on more recent code bases (my own operating system written in 
C11/C++) and TCC fails.

So I regularly see the "urge" to release a v1, but what for ? What should be 
into it ?

Current state of "lowest-common-denominator support of ancient compilers" or 
full support of at least one C standard (C99 ? C11 ?)

TCC is only used by a few now, in very specific cases, because its limitations 
made it irrelevant beside prototyping or JIT scripting.

That's why many developers that one considered TCC have moved on to more recent 
and capable compilers.

It's not about restoring TCC's former glory, but to update it to up to date 
capabilities, while keeping its initial "features" (compact and fast).

Regards.


----- Mail d'origine -----
De: Cyan Ogilvie <[email protected]>
À: [email protected]
Envoyé: Mon, 11 Aug 2025 01:14:48 +0200 (CEST)
Objet: Re: [Tinycc-devel]       Re : Re: VERSION Number 1.0 - C11 vs. C99

Since you asked, we use tcc for serious (production) work - as a JIT to
build performance critical parts that aren't appropriate to build in the
scripting language that the rest of tha 300k line codebase is built in, and
it works really nicely for that (using https://github.com/cyanogilvie/jitc).
For that use case (JIT compiled objects) it's really important that
compilation is fast, so TCC ticks that box, and performance even with the
really simple code generation that TCC does captures nearly all of the
boost we would get from aggressively optimizing compilers without the
tooling and boilerplate overhead we would have from maintaining dozens (and
growing) micro libraries.  We also get the scripting language benefits with
compiled code performance, running on the platforms that are relevant to us
(x86_64 and arm64).

C11 (and C23 eventually) are important to me, in the sense that C is
actually a great language for what we're doing with it, but having to write
for the lowest-common-denominator support of ancient compilers, or people
who insist that C should compile in a different language (C++), really
harms the quality and maintainability of the code.  The more recent C
standards have a lot of things that to my eyes amount to design fixes and
real improvements for serious use, and I'm very grateful that tcc supports
as much of them as it does, and hope that coverage increases.

Cyan


On Sun, Aug 10, 2025 at 3:37 PM <[email protected]> wrote:

> Hello,
>
> > what features of C11 are being used in the wild, what may block a tcc v1
> release.
>
> All those permitted by the C11 standard, past, present and future.
>
> Also the "v1" release still requires a clearly designed goal.
>
> Otherwise an official 0.9.28 or 0.9.30 would do just as well.
>
> > Really, underdog? TCC seems tops in small ANSI C compilers.
>
>
> https://www.reddit.com/r/C_Programming/comments/1g0fqgw/am_i_the_only_one_on_this_planet/
>
> Anyone else using TCC for "serious" development ?
>
> I mean instead of using GCC/llvm/clang/vs/...
>
> > What small C compiler is considered better than tcc?
>
> Anything that compile what tcc doesn't (because not supporting this and
> that).
>
> Let's say Pelles C, SDCC, chibicc, cproc, LCC (C89), vbcc (C99), kefir,
> slimcc, ...
>
> If TCC was up to their tasks, they would have used it instead of these
> alternatives.
>
> > Interesting. List of existing codebases tcc cannot compile?
>
> Or can compile but doesn't behave like GCC :
>
>
> https://stackoverflow.com/questions/79219698/why-does-tinycc-fail-to-link-standard-c-runtime-functions-in-32-bit-mode-but-wor
>
>
> https://stackoverflow.com/questions/75739020/c-code-compiles-and-runs-under-tiny-c-compiler-but-it-does-not-run-under-gcc
>
> Well, anything recent and "demanding".
>
> > What micro-controllers does tcc support?
>
> ARM (STM32, etc) ? RISC-V (ESP32, etc) ?
>
> > If the tcc mandate is to fully support the C standard, C11 won't do.
>
> Sure, C23 is and you were "a member of the ISO C Committee from 2023 to
> 2024".
>
> While new and up to date C standard are published, you request to stay on
> a 25+ year old standard.
>
> Because "Anyone care?" of the new standard ? So why making new ones and
> not using them ?
>
> Then stick to C89, always better than K&R.
>
> Regards/.
>
>
> ----- Mail d'origine -----
> De: Robin Rowe <[email protected]>
> À: [email protected]
> Envoyé: Sun, 10 Aug 2025 19:45:58 +0200 (CEST)
> Objet: Re: [Tinycc-devel] VERSION Number 1.0 - C11 vs. C99
>
> On 8/10/2025 11:22 AM, [email protected] wrote:
> >> Anyone care?
> > Never *EVER* make that assumption about a programming language.
>
> Sorry! All I meant to ask is what features of C11 are being used in the
> wild, what may block a tcc v1 release.
>
> > TCC is already regarded as an underdog
> Really, underdog? TCC seems tops in small ANSI C compilers. What small C
> compiler is considered better than tcc?
>
> > due to its incompatibilities and inabilities to compile existing code
> bases.
>
> Interesting. List of existing codebases tcc cannot compile?
>
> >> - alignment specs: Anyone care?
> > Memory alignment sensitive systems like micro controllers.
>
> What micro-controllers does tcc support?
>
>  > Let's keep it professional and support the defined standard, not some
> half assed bake of it based on preconceived ideas.
>
> Respect your vociferous enthusiasm for following C standards!
>
> If the tcc mandate is to fully support the C standard, C11 won't do. The
> current C language standard is C23, formally known as ISO/IEC 9899:2024
> published on 31 October 2024, superseding the previous C17 standard
> ISO/IEC 9899:2018. I was a member of the ISO C Committee from 2023 to 2024.
>
> Robin
>
> _______________________________________________
> Tinycc-devel mailing list
> [email protected]
> https://lists.nongnu.org/mailman/listinfo/tinycc-devel
>
>
> _______________________________________________
> Tinycc-devel mailing list
> [email protected]
> https://lists.nongnu.org/mailman/listinfo/tinycc-devel
>


_______________________________________________
Tinycc-devel mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/tinycc-devel

Reply via email to