<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">David Olsen raised the question of whether automatic promotions should be extended so that narrower (or no-wider) binary interchange types are promoted to double. This could allow printf arguments of types _Float16, _Float32, and _Float64, without adding width modifiers. Below is an email discussion between David Olsen and myself. We’ll discuss this at the June CFP meeting.<div class=""><br class=""></div><div class="">- Jim Thomas<br class=""><div><br class=""><blockquote type="cite" class=""><div class="">Begin forwarded message:</div><br class="Apple-interchange-newline"><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px;" class=""><span style="font-family: -webkit-system-font, Helvetica Neue, Helvetica, sans-serif; color:rgba(0, 0, 0, 1.0);" class=""><b class="">From: </b></span><span style="font-family: -webkit-system-font, Helvetica Neue, Helvetica, sans-serif;" class="">David Olsen <<a href="mailto:dolsen@nvidia.com" class="">dolsen@nvidia.com</a>><br class=""></span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px;" class=""><span style="font-family: -webkit-system-font, Helvetica Neue, Helvetica, sans-serif; color:rgba(0, 0, 0, 1.0);" class=""><b class="">Subject: </b></span><span style="font-family: -webkit-system-font, Helvetica Neue, Helvetica, sans-serif;" class=""><b class="">RE: [Cfp-interest 1597] TS3 annex review</b><br class=""></span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px;" class=""><span style="font-family: -webkit-system-font, Helvetica Neue, Helvetica, sans-serif; color:rgba(0, 0, 0, 1.0);" class=""><b class="">Date: </b></span><span style="font-family: -webkit-system-font, Helvetica Neue, Helvetica, sans-serif;" class="">May 27, 2020 at 5:38:41 PM PDT<br class=""></span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px;" class=""><span style="font-family: -webkit-system-font, Helvetica Neue, Helvetica, sans-serif; color:rgba(0, 0, 0, 1.0);" class=""><b class="">To: </b></span><span style="font-family: -webkit-system-font, Helvetica Neue, Helvetica, sans-serif;" class="">Jim Thomas <<a href="mailto:jaswthomas@sbcglobal.net" class="">jaswthomas@sbcglobal.net</a>><br class=""></span></div><br class=""><div class=""><div class="WordSection1" style="page: WordSection1; caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;"><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">Forwarding my messages to the CFP group is fine.  Thank you for adding it to the agenda.<o:p class=""></o:p></div><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><o:p class=""> </o:p></div><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">I assumed that the promotion of float to double and char/short to int is a hold-over from the K&R days when there were no function prototypes.  Doing the default promotions (both at the call site and in the function definitions) decreased the chance of a type mismatch between the argument and the parameter by converting things to the common int or double.  I would be surprised if it was a hardware accommodation.  With the near universality of function prototypes these days, this reasoning doesn’t apply any more, and the promotion rules are only used for the ellipsis part of variadic functions.<o:p class=""></o:p></div><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><o:p class=""> </o:p></div><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">I don’t have a list of pros or cons for whether or not to do these automatic promotions.  The only real pro is that you can pass the smaller binary floating-point types to printf (but not scanf).  I can’t think of any cons.<o:p class=""></o:p></div><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><o:p class=""> </o:p></div><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">I don’t care about format specifiers for printf for the new floating-point types.  I am not proposing any for C++.  I asked only because what I was seeing didn’t match my memory of what I had seen before.  I must have seen the format specifiers for the decimal types, and then misremembered that as format specifiers for the binary interchange formats as well.<o:p class=""></o:p></div><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><o:p class=""> </o:p></div><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><o:p class=""> </o:p></div><div class=""><div style="border-style: solid none none; border-top-width: 1pt; border-top-color: rgb(225, 225, 225); padding: 3pt 0in 0in;" class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><b class="">From:</b><span class="Apple-converted-space"> </span>Jim Thomas <<a href="mailto:jaswthomas@sbcglobal.net" style="color: blue; text-decoration: underline;" class="">jaswthomas@sbcglobal.net</a>><span class="Apple-converted-space"> </span><br class=""><b class="">Sent:</b><span class="Apple-converted-space"> </span>Wednesday, May 27, 2020 11:17 AM<br class=""><b class="">To:</b><span class="Apple-converted-space"> </span>David Olsen <<a href="mailto:dolsen@nvidia.com" style="color: blue; text-decoration: underline;" class="">dolsen@nvidia.com</a>><br class=""><b class="">Subject:</b><span class="Apple-converted-space"> </span>Re: [Cfp-interest 1597] TS3 annex review<o:p class=""></o:p></div></div></div><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><o:p class=""> </o:p></div><table class="MsoNormalTable" border="1" cellpadding="0" style="background-color: rgb(255, 235, 156); background-position: initial initial; background-repeat: initial initial;"><tbody class=""><tr class=""><td style="padding: 0.75pt;" class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><b class=""><span style="font-size: 7.5pt; font-family: Verdana, sans-serif;" class="">External email: Use caution opening links or attachments</span></b><span style="font-size: 7.5pt; font-family: Verdana, sans-serif;" class=""></span><o:p class=""></o:p></div></td></tr></tbody></table><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><o:p class=""> </o:p></div><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">I agree having C and C ++ be compatible on printf is desirable. I suspect the rationale for promoting float to double was to accommodate hardware that doesn't exist anymore. On the other hand it’s what C does and  promoting extension types in the manner you suggest might be ok. What are the pros and cons of these automatic promotions?<o:p class=""></o:p></div><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><o:p class=""> </o:p></div></div><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">The three decimal floating types from TS2 (which is in the main body of the draft C standard now) have length modifiers for printf. The new types in TS3 (proposed for an annex) do not. The printf conversions for the TS3 types can be done with a %s applied to the result of a strfrom function with the desired formatting. We might could say _Float32 and _Float64 behave like float and double for varargs (they are already required to have the same representations and alignments). Then with automatic promotions as you suggest, _Float16, _Float32, and _Float64 could be used directly with printf. <o:p class=""></o:p></div></div><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><o:p class=""> </o:p></div></div><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">If it’s ok with you, I’ll forward our email discussion to the CFP group and say that this topic will be on the June agenda.<o:p class=""></o:p></div></div><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><o:p class=""> </o:p></div></div><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">- Jim<o:p class=""></o:p></div><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><br class=""><br class=""><o:p class=""></o:p></div><blockquote style="margin-top: 5pt; margin-bottom: 5pt;" class=""><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">On May 26, 2020, at 12:00 PM, David Olsen <<a href="mailto:dolsen@nvidia.com" style="color: blue; text-decoration: underline;" class="">dolsen@nvidia.com</a>> wrote:<o:p class=""></o:p></div></div><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><o:p class=""> </o:p></div><div class=""><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">I have tentatively made the opposite decision for C++.  In P1467, any floating-point type whose set of values is a subset of the values of double is promoted to double when passed to the ellipsis part of a varargs functions.  That seemed like the right thing to do, like it was the intent behind the specific rule of promoting float to double.  I don’t feel strongly about that decision, and it hasn’t come up in any C++ committee discussions yet.<o:p class=""></o:p></div></div><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""> <o:p class=""></o:p></div></div><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">I would be willing to let C and C++ diverge in this area because it is an obscure corner of the language and almost no C++ programmers write varargs functions any more. Except for one thing: printf.  That function is still used in C++, and most C++ implementations use the printf directly from the C library.  So C++ really needs to match C’s behavior for printf, and therefore should match C for all varargs functions.<o:p class=""></o:p></div></div><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""> <o:p class=""></o:p></div></div><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">Are printf/scanf format specifiers being proposed for the interchange floating types?  I thought I remembered seeing format specifiers in some other document, but I can’t find them in the document you posted yesterday.  (If all smaller floating-point types are promoted to double, then users can pass _Float16 and _Float32 values to printf without needing to define a format specifier for those types.)<o:p class=""></o:p></div></div><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""> <o:p class=""></o:p></div></div><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">I would like the CFP group to discuss the issue of interchange floating types and varargs functions.  I don’t really care what decision is made, whether to promote or not.  I just want it to be an informed decision and not an oversight.  Then I will probably just do the same on the C++ side.<o:p class=""></o:p></div></div><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""> <o:p class=""></o:p></div></div><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""> <o:p class=""></o:p></div></div><div class=""><div style="border-style: solid none none; border-top-width: 1pt; border-top-color: rgb(225, 225, 225); padding: 3pt 0in 0in;" class=""><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><b class="">From:</b><span class="apple-converted-space"> </span>Jim Thomas <<a href="mailto:jaswthomas@sbcglobal.net" style="color: blue; text-decoration: underline;" class="">jaswthomas@sbcglobal.net</a>><span class="apple-converted-space"> </span><br class=""><b class="">Sent:</b><span class="apple-converted-space"> </span>Tuesday, May 26, 2020 8:24 AM<br class=""><b class="">To:</b><span class="apple-converted-space"> </span>David Olsen <<a href="mailto:dolsen@nvidia.com" style="color: blue; text-decoration: underline;" class="">dolsen@nvidia.com</a>><br class=""><b class="">Subject:</b><span class="apple-converted-space"> </span>Re: [Cfp-interest 1597] TS3 annex review<o:p class=""></o:p></div></div></div></div><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""> <o:p class=""></o:p></div></div><table class="MsoNormalTable" border="1" cellpadding="0" style="background-color: rgb(255, 235, 156); background-position: initial initial; background-repeat: initial initial;"><tbody class=""><tr class=""><td style="padding: 0.75pt;" class=""><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><b class=""><span style="font-size: 7.5pt; font-family: Verdana, sans-serif;" class="">External email:<span class="Apple-converted-space"> </span><span style="" class="">Use caution opening links or attachments</span></span></b><o:p class=""></o:p></div></div></td></tr></tbody></table><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""> <o:p class=""></o:p></div></div><div class=""><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">Thanks, David. I’ll forward this to the review team. My first thought is that the float to double promotion is legacy from K&R C and double-based floating-point hardware and there wasn’t seen a technical reason for extending it to the extension types.<span class="apple-converted-space"> </span><o:p class=""></o:p></div></div><div class=""><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""> <o:p class=""></o:p></div></div></div><div class=""><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">- Jim<o:p class=""></o:p></div></div><div class=""><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><br class=""><br class=""><br class=""><o:p class=""></o:p></div></div><blockquote style="margin-top: 5pt; margin-bottom: 5pt;" class=""><div class=""><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">On May 25, 2020, at 10:26 PM, David Olsen <<a href="mailto:dolsen@nvidia.com" style="color: blue; text-decoration: underline;" class="">dolsen@nvidia.com</a>> wrote:<o:p class=""></o:p></div></div></div><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""> <o:p class=""></o:p></div></div><div class=""><div class=""><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">Something just occurred to me while glancing over the TS3 annex:<o:p class=""></o:p></div></div></div><div class=""><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""> <o:p class=""></o:p></div></div></div><div class=""><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">Should the default argument promotion rules (6.5.2.2/p6) be adjusted to cover binary floating types?  In other words, should _Float16 and _Float32 function arguments be promoted to double when passed to the varargs part of a varargs function, the same way that float arguments are?<o:p class=""></o:p></div></div></div><div class=""><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""> <o:p class=""></o:p></div></div></div><div class=""><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-family: "Courier New";" class="">void vfunc(int a, ...);</span><o:p class=""></o:p></div></div></div><div class=""><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-family: "Courier New";" class="">void testing() {</span><o:p class=""></o:p></div></div></div><div class=""><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-family: "Courier New";" class="">  float f = 1.0;</span><o:p class=""></o:p></div></div></div><div class=""><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-family: "Courier New";" class="">  _Float16 f16 = 2.0;</span><o:p class=""></o:p></div></div></div><div class=""><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-family: "Courier New";" class="">  _Float32 f32 = 3.0;</span><o:p class=""></o:p></div></div></div><div class=""><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-family: "Courier New";" class="">  vfunc(1, f); /* “f” is promoted to double */</span><o:p class=""></o:p></div></div></div><div class=""><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-family: "Courier New";" class="">  vfunc(2, f16); /* should “f16” be promoted to double? */</span><o:p class=""></o:p></div></div></div><div class=""><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-family: "Courier New";" class="">  vfunc(3, f32); /* should “f32” be promoted to double? */</span><o:p class=""></o:p></div></div></div><div class=""><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-family: "Courier New";" class="">}</span><o:p class=""></o:p></div></div></div><div class=""><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""> <o:p class=""></o:p></div></div></div><div class=""><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""> <o:p class=""></o:p></div></div></div><div class=""><div style="border-style: solid none none; border-top-width: 1pt; border-top-color: rgb(225, 225, 225); padding: 3pt 0in 0in;" class=""><div class=""><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><b class="">From:</b><span class="apple-converted-space"> </span>Cfp-interest <<a href="mailto:cfp-interest-bounces@oakapple.net" style="color: blue; text-decoration: underline;" class="">cfp-interest-bounces@oakapple.net</a>><span class="apple-converted-space"> </span><b class="">On Behalf Of<span class="apple-converted-space"> </span></b>Jim Thomas<br class=""><b class="">Sent:</b><span class="apple-converted-space"> </span>Monday, May 25, 2020 8:52 PM<br class=""><b class="">To:</b><span class="apple-converted-space"> </span>CFP <<a href="mailto:cfp-interest@ucbtest.org" style="color: blue; text-decoration: underline;" class="">cfp-interest@ucbtest.org</a>><br class=""><b class="">Subject:</b><span class="apple-converted-space"> </span>[Cfp-interest 1597] Re: TS3 annex review<o:p class=""></o:p></div></div></div></div></div><div class=""><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""> <o:p class=""></o:p></div></div></div><table class="MsoNormalTable" border="1" cellpadding="0" style="background-color: rgb(255, 235, 156); background-position: initial initial; background-repeat: initial initial;"><tbody class=""><tr class=""><td style="padding: 0.75pt;" class=""><div class=""><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><b class=""><span style="font-size: 7.5pt; font-family: Verdana, sans-serif;" class="">External email: Use caution opening links or attachment<span style="" class="">s</span></span></b><o:p class=""></o:p></div></div></div></td></tr></tbody></table><div class=""><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""> <o:p class=""></o:p></div></div></div><div class=""><div class=""><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">The message below was intended for the review team, not the entire CFP list. <o:p class=""></o:p></div></div></div><div class=""><div class=""><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""> <o:p class=""></o:p></div></div></div></div><div class=""><div class=""><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">However, comments from anyone are welcome. If you’re not on the review team, please send any comments you have to me and I’ll forward them to the review team.<o:p class=""></o:p></div></div></div></div><div class=""><div class=""><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""> <o:p class=""></o:p></div></div></div></div><div class=""><div class=""><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">Jim Thomas<o:p class=""></o:p></div></div></div><div class=""><div class=""><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><br class=""><br class=""><br class=""><br class=""><o:p class=""></o:p></div></div></div><blockquote style="margin-top: 5pt; margin-bottom: 5pt;" class=""><div class=""><div class=""><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">On May 25, 2020, at 5:15 PM, Jim Thomas <<a href="mailto:jaswthomas@sbcglobal.net" style="color: blue; text-decoration: underline;" class="">jaswthomas@sbcglobal.net</a>> wrote:<o:p class=""></o:p></div></div></div></div><div class=""><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""> <o:p class=""></o:p></div></div></div><div class=""><div class=""><div class=""><div class=""><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">Review team,<o:p class=""></o:p></div></div></div></div><div class=""><div class=""><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""> <o:p class=""></o:p></div></div></div></div><div class=""><div class=""><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">Thank you for volunteering to help with the review of our updated proposed TS3 annex. <span style="font-size: 12pt; font-family: Arial, sans-serif;" class="">We’re reviewing the document in preparation for submittal to WG 14. If WG 14 affirms is earlier decision, the TS3 annex will be added to the C2X draft. If not, we plan to include it in an updated TS3. Either way, your review is a valuable service to everyone who will be completing, publishing, implementing, or using the specification in the future.</span><o:p class=""></o:p></div></div></div></div><div class=""><div class=""><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""> <o:p class=""></o:p></div></div></div></div><div class=""><div class=""><div class=""><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 10pt; font-family: Arial, sans-serif;" class="">Look for all sorts of errors, technical and editorial. </span><span style="font-size: 12pt; font-family: Arial, sans-serif;" class="">Send comments to me and cc the review team. I’m proposing you complete your review and send comments by<span class="apple-converted-space"> </span><b class="">Monday, June 8</b>.</span><o:p class=""></o:p></div></div></div></div></div><div class=""><div class=""><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""> <o:p class=""></o:p></div></div></div></div><div class=""><div class=""><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">Here are the assignments (from our meeting minutes):<o:p class=""></o:p></div></div></div></div><div class=""><div class=""><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""> <o:p class=""></o:p></div></div></div></div><div class=""><div class=""><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 10pt; font-family: Arial, sans-serif;" class="">        X.2 Types - <br class="">        X.3 Characteristics in <float.h> - <br class="">        X.4 Conversions - David H.<br class="">        X.5-X.8 Lexical elements, Expressions, Declarations, Identifiers in standard headers - Rajan<br class="">        X.9, X.10 Complex, Floating-point environment - Damian<br class="">        X.11 (X.11.1, X.11.2) Math Macros and Function prototypes - Fred<br class="">        X.11.3, X.12 Encoding conversion functions, Numeric conversions functions in stdlib.h - David H.<br class="">        X.13 Type-generic math - Fred</span><o:p class=""></o:p></div></div></div></div><div class=""><div class=""><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""> <o:p class=""></o:p></div></div></div></div><div class=""><div class=""><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 10pt; font-family: Arial, sans-serif;" class="">Here are links to PDF and DOCX representations of the document for review (use whichever you prefer):</span><o:p class=""></o:p></div></div></div></div><div class=""><div class=""><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""> <o:p class=""></o:p></div></div></div></div><div class=""><div class=""><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><a href="http://wiki.edg.com/pub/CFP/WebHome/cfp3-annex-20200525.pdf" style="color: blue; text-decoration: underline;" class="">http://wiki.edg.com/pub/CFP/WebHome/cfp3-annex-20200525.pdf</a><o:p class=""></o:p></div></div></div></div><div class=""><div class=""><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""> <o:p class=""></o:p></div></div></div></div><div class=""><div class=""><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><a href="http://wiki.edg.com/pub/CFP/WebHome/cfp3-annex-20200525.d" style="color: blue; text-decoration: underline;" class="">http://wiki.edg.com/pub/CFP/WebHome/cfp3-annex-20200525.d</a>ocx<o:p class=""></o:p></div></div></div></div><div class=""><div class=""><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""> <o:p class=""></o:p></div></div></div></div><div class=""><div class=""><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 10pt; font-family: Arial, sans-serif;" class="">The references in the document to the C standard are to the C2X draft: </span><o:p class=""></o:p></div></div></div></div><div class=""><div class=""><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""> <o:p class=""></o:p></div></div></div></div><div class=""><div class=""><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="font-size: 10pt; font-family: Arial, sans-serif;" class=""><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2478.pdf" style="color: blue; text-decoration: underline;" class="">http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2478.pdf</a></span><o:p class=""></o:p></div></div></div></div><div class=""><div class=""><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""> <o:p class=""></o:p></div></div></div></div><div class=""><div class=""><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""> <o:p class=""></o:p></div></div></div></div><div class=""><div class=""><div class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">- Jim Thomas</div></div></div></div></div></div></blockquote></div></div></div></div></blockquote></div></div></div></div></blockquote></div></div></div></div></div></blockquote></div><br class=""></div></body></html>