<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jun 23, 2016 at 6:07 AM, Jed Brown <span dir="ltr"><<a href="mailto:jed@jedbrown.org" target="_blank">jed@jedbrown.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">Barry Smith <<a href="mailto:bsmith@mcs.anl.gov">bsmith@mcs.anl.gov</a>> writes:<br>
<br>
>   Hmm, both of these links refer to C99 Standard Library  they do not refer to the C99 standard language. Anywhere that says the language standard?<br>
<br>
</span>To my knowledge, variable length arrays (which are actually quite useful<br>
for numerical work, particularly as VLA-pointers) are not supported by<br>
MSVC and never will be (which is why they were made optional in C11).<br>
Anyway, that alone means that the language implementation is not<br>
complete.  But as far as I know, // comments and for-loop declarations,<br>
for example, should not present a portability issue.<br>
</blockquote></div><div class="gmail_extra"><br></div><div class="gmail_extra">One wonders if it is possible for the PETSc style guide / programmer's manual to permit the subset of C99 that is truly portable at this point in time.  Then, in like 2028, PETSc can move to C11, which has useful features like atomics in the language (which are useful not just for threaded programs, but also MPI+shared-memory, which I know the PETSc team likes).</div><br>I too am a huge fan of VLAs, but VLA for non-POD types are "hard", which is why C++ doesn't support them.</div><div class="gmail_extra"><br></div><div class="gmail_extra">Jeff<br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature">Jeff Hammond<br><a href="mailto:jeff.science@gmail.com" target="_blank">jeff.science@gmail.com</a><br><a href="http://jeffhammond.github.io/" target="_blank">http://jeffhammond.github.io/</a></div>
</div></div>