Re: [PATCH, fortran] PR93727 Implement new EX format specifier
Jerry D <[email protected]>
| Newsgroups | gmane.comp.gcc.patches,gmane.comp.gcc.fortran |
|---|---|
| Message-ID | <[email protected]> |
On 5/12/26 12:14 PM, Harald Anlauf wrote: > Hi Jerry, > > Am 11.05.26 um 8:24 PM schrieb Jerry D: >> Hi all, >> >> This took me a lot longer than I wanted, but finally got it done. >> >> See the attached patch. Since my last submittal here I started over on using >> the example demo Harald gave in Comment 18 of the PR using available higher >> level C functions, fabs, signbit, scalbn, isnan frexp, etc to extract the >> needed components. Then, using the %H specifier to build the hexadecimal float >> string in get_float_hex_string(). I added checks for zero, inf, nan, and the >> sign. >> >> Once I had this working for kind=8, I repeated the pattern for kind=8, 10, and >> 16. I used defines around the kind=10 and 16 to avoid where not supported. >> >> I also created defines for the C functions needed following the examples later >> in the file. I dont have some of those platforms readily available here so a >> web searched for those various function, ie not tested yet. I will call it an >> EWAG. Engineering Wild Assumption and Guess. >> >> I apologize for the whitespace cleanups. I had them in my worktree from >> earlier attempts. >> >> I updated the two test cases added. I probably need to specify targets on >> those. We can add additional testcases as deemed appropriate. >> >> Regression tested here on X86_64. Testing by others encouraged. >> >> OK for mainline. I do not plan any backport and less others think its worth it. > > this is already in a quite good shape. However, I have two > preliminary comments: > > - rounding is not yet correct. Example: > > real(4) :: r4 > r4 = 128. > write(*,"(*(4x,EX0.2))") r4, abs (nearest(r4,-1.0)) > > prints > > 0X8.00P+4 0XF.FFP+3 > > but should print > > 0X8.00P+4 0X8.00P+4 > > - real(10) and real(16) are not available everywhere. > Please have a look at gfortran.dg/ieee/ieee_11.F90 > for one way to solve this. > > Best, > Harald > >> Best regards, >> >> Jerry >> >> PS I will be on travel the next 7 day however I can monitor email. > I will add the checks for real(10) and real(16) to the test case. I would like to commit this now and handle the rounding in a new PR or leave this one open and identify this as patch 1 of 2. Is this OK? Jerry