Two suggestions for gcc C compiler to extend C language (by WD Smith)
Christian Groessler
chris@groessler.org
Tue Jul 26 19:22:00 GMT 2016
Ok, I'm not affiliated with gcc, nor a committer, I just
happen to work on a port to a local architecture.
Your first posts were funny to read, and you ignored the answers,
and now it's getting old.
Not talking for the gcc community, I suggest that you go
away and come back when you have code to implement what
you propose. Then we can continue that discussion.
regards,
chris
On 07/26/16 21:06, Warren D Smith wrote:
> OK, you just said you've used packed nybble arrays a couple of times.
> Multiplying you by 100,000 that proves if you put it in GCC,
> you'd save 200,000 programmer hours, which is equivalent to saving
> over 2 lives.
>
> You just said you've written your own double-length multiply.
> Same proof.
>
> Thank you for proving my point.
>
> How many deaths does it take before it is worth putting into GCC?
> And it isn't like I'm suggesting something hard, or which would be
> unattractive to users.
>
> And thanks for the tip on how to do add-with-carry.
> That's nice. Now I have to ask, now you've helpfully demonstrated
> how nice it can be, why not put that niceness inside GCC? I mean, if
> GCC already is going to
> provide div(a,b) -- it was not me who asked for that, it was GCC that
> decided to provide it --
> which I could have just got in plain C using q=a/b; r=a%b; and depended on
> optimizer, zero thought required -- then how can just justify GCC
> *not* providing addc(a,b) when it is trickier for the programmer, so
> you are clearly providing something more helpful since was more
> tricky?
>
> Why am I bothering? You prove my point then act as though you proved opposite.
>
> Concrete examples? Hell, I suggested stdint.h years and years before
> it came along, and I was told I was an idiot. I suggested making a
> lot of library functions be builtins, told I was an idiot, and now lo
> and behold, years and years later, gcc makes many library functions be
> builtins. I complained the stdio library was a disaster waiting to
> happen with
> buffer overflows, told I was an idiot, and lo and behold, years and
> years later people keep trying to work around that, with at least two
> people having written nonstandard replacement libraries to try for
> safety, and huge billions of dollars estimated to be lost due to this
> bad design.
>
> Concerning suggestions I've made that never were adopted, I would like
> C to have array-bounds checking available as a compiler option.
> Also profiling.
> I'd like elsif. I'd like more sophisticated compile time stuff, like right now
> they have #if, #elsif, #endif. Ok, why not #for? That way we could unroll
> loops by "doing the loop at compile time" not runtime. (Need to make
> a language subset intentionally weakened to not be turing complete, i.e. we
> want to know for sure the compile always will terminate, but still
> precompiler language could be a good deal more powerful than now.) I
> could discuss that.
> I'd like a compile-time language giving you a fair amount of power, but
> below turing-power, and
> acting as though it were sensibly designed in from start with similar syntax
> (within reason) to the actual runtime language -- not intentionally
> different syntax for no reason aside from trying to annoy people, and
> not an obvious crude add-on.
> I'd like different parts of my program to be optimized for space, or
> for speed -- I get to say for which parts I want which using pragmas.
> I'd like addons to support
> multiple entry points for routines easy, so I can make coroutines and
> "iterators."
> (This can be done with present C, but it seems a much bigger pain than
> it needs to be.)
>
> Pointer arithmetic is a well known disaster-waiting-to-happen in C,
> but of course there are compensating performance benefits... but
> you could get the best of both worlds with ability to declare "safe"
> pointers e.g. with bounds checking of them added by compiler and the bounds
> created when the pointer is. Such safety could be turned off with a
> compiler option for more speed. Point is, C arrays and pointers are
> very unsafe for a few reasons, but by
> adding some compiler options and/or language extensions to allow
> adding safe versions
> of that stuff, GCC could make it a lot easier on programmers to get a
> lot safer with
> near zero effort.
>
> But hey, nearly all those ideas actually require work, meanwhile I
> think uint4_t is
> nearly trivial by comparison.
>
>
>
>
More information about the Gcc
mailing list