<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Sep 16, 2016 at 1:31 PM, Arnold Reinhold <span dir="ltr"><<a href="mailto:agr@me.com" target="_blank">agr@me.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">In the recent thread on safe erasure in C,  much was made of better languages including Ada and Rust. But there is a vast mount of code already written in C. Converting all of it or even a large fraction seems hopeless</blockquote><div>..... </div><div><br></div><div><br></div><div>Not hopeless,</div><div>The problem is large yet calling convention for the  ABI of existing compilers</div><div>allow incremental  functionality to be coded in a "better language".  To start</div><div>GCC and CLANG use a common calling convention.</div><div><br>If the problem boils down to an ABI problem that can also be addressed.</div><div>We already have a mix of 32 and 64 bit objects on most systems.  With </div><div>good cause adding one or more with today's system memory resources </div><div>could be negotiated.</div><div><br>Example:<br>Those that use MPI (written in C) commonly use FORTRAN</div><div>for their working code.   Fortran well because the compiler</div><div>can optimize a lot of things safely.   The Message Passing Interface code</div><div>and process control is written mostly in C.   Not just fortran but Python</div><div>bindings and more exist.  </div><div><br></div><div>So to start, code modules of interest in a "better" language </div><div>and use a common ABI link to the larger body of system code and libraries.</div><div>Over time one layer at a time replace the dependencies.</div><div><br></div><div>At thes end point C is left behind and the "better" tool chain</div><div>is responsible for the entire program.<br><br>It may take a couple starts to learn what a "better" language</div><div>and tool chain is.    Often the objections and advantages</div><div>are best understood when used for real so start.</div><div><br></div><div>Later,</div><div>mitch</div><div><br></div><div>PS:</div><div>  Yes FORTRAN=Fortran=fortran today.</div><div><br></div></div>-- <br><div class="gmail_signature"><div dir="ltr">  T o m    M i t c h e l l</div></div>
</div></div>