|From:||Paulo Henrique Torrens|
|Subject:||Re: [Tinycc-devel] Extension to C language|
|Date:||Wed, 30 May 2012 05:53:04 +0000|
> I don't think it would necessarily need to be completely separate from
> TCC, nor a complete fork. I think that having a "Extended C" directory
> + a few patches for individual TCC-proper files is all that would
> actually be needed
This could be added as an extra flag to the ./configure script...
> Overloading requires decorated names, it's a both/neither type of
No, they don't. C11's _Generic can be used... :)
> Incidentally, if you actually go for the objects, I would argue
> against strict C++ style (even if a reduced subset). Better that you
> do something that can be duplicated in pure C and doesn't have as much
> mess, especially since then interfacing to it from C++ would just
> involve wrappers (regardless of C++ compiler).
Let me suggest something.
I don't know what you guys think, but in my compiler project, I've made the C and C++ frontends separately, instead of mixing it as GCC/CLang does. In the C compiler, I've added a compiler flag -fsugar, to enable "syntactic sugar extensions", including my tracked variable thing. This flag is needed to use the feature, which can be implemented in a pure C compiler, as it was just a syntactic sugar thing, the compiler generates some function calls (mostly inlined). I didn't use anything that couldn't be made in an ANSI/ISO C environment, as static constructors in C++. This was made in the spirit that Vala makes its code.
There is a runtime library which ships with the compiler that contain those functions, if anyone has to mix compilers.
TCC has some GNU extensions, but I think you all would agree that it is already mature and "famous" enough to contain some of it's own extensions... again, I am not "asking" for it, it makes no difference for me at all, but as it seems that there are some people interested, here are my suggestions.
A good start would be, as TCC already accepts __attribute__, to port the __attribute__((__cleanup__)) syntax from GCC, and extending it to types. On GCC, you can use it to set cleanup code for local variables, but it is a variable attribute... using it as a type attribute, it could help whoever might need such facility.
> And that's assuming that Grishka/Thomas/etc. want such a thing
> definitively outside of the main TCC project. Grishka/Thomas, what
> expectations do you guys have on that front?
Yes, it would be nice to get your opinion on that... also on the reference/tracked types issue (which was the start of this topic), because I already have the patches.
I remembered something now. I have implemented the decimal floating point types (_Decimal32, _Decimal64, _Decimal128, http://en.wikipedia.org/wiki/IEEE_754-2008, http://gcc.gnu.org/onlinedocs/gcc-4.2.4/gcc/Decimal-Float.html) and the fixed point types (_Accum and _Fract, http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1169.pdf, http://gcc.gnu.org/wiki/FixedPointArithmetic) on my C compiler (although they are an ISO extension and of the embedded C standard)... since I plan on encouraging the use of TCC for bootstrap, I volunteer to implement those on TCC if Grishka/Thomas/etc think it would be useful. :)
|[Prev in Thread]||Current Thread||[Next in Thread]|