-
Notifications
You must be signed in to change notification settings - Fork 235
Handle various conversion warnings #1261
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Oh yeah, you'll also see some warnings handled in other stuff like |
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## develop #1261 +/- ##
=========================================
Coverage 93.90% 93.91%
=========================================
Files 661 661
Lines 54559 54866 +307
=========================================
+ Hits 51233 51526 +293
- Misses 3326 3340 +14
Continue to review full report in Codecov by Sentry.
🚀 New features to boost your workflow:
|
Thanks Chris, other than my couple of comments, this all looks good to me. |
OK so I see some But I'm not quite sure that we have the code annotations exactly right. I looked 3 times but could not find the root cause of inconsistencies. When the I'll track this down in another issue. This is not the proper place to perfect our cover annotations. Cc: @jzmaddock and @mborland |
I haven't really touched on anything in /detail/ yet and I know there's a lot to look at in there. What I'm trying to do is only annotate when:
Which I change to
even though that often makes things harder to read, or else a table:
Where I bracket the whole thing in LCOV_EXCL_START/LCOV_EXCL_STOP annotations Other than that I'm trying to actually find test cases, and/or check to see if it's actually dead code which can be removed and/or converted to an assert. |
Yes John (@jzmaddock), I agree with all that.
Regarding this particular phrase pertaining to Multiprecision, ... I was looking at a few of these. I was wondering what you thought of the idea of making a few selected multiprecision spot values? These could be designed to run quickly, having just a few values each, and still cover some of those Multiprecision-only sequences in specfun. Then they could theoretically get into the coverage report and hopefully not add too much run-time on the cover job. I could start looking into this if you think it's the way to go. Cc: @mborland |
Hi folks,
I'm really happy with this one. After literally years of improvements in our combined work, it is now possible to run parts of Math + Multiprecision unchanged off-the-rack on both PC as well as embedded targets.
The purpose of this PR is to handle a few last warnings found when cross-compiling and running Math + Multiprecision on both PC-based GCC as well as 32-bit embedded ARM(R) bare-metal
gcc-arrm-none-eabi
.The microcontroller compiler found several warnings that seemed quite reasonable to deal with.
I used warnings:
This PR does not cover warnings in all of Math, nor in all of Multiprecision. But quite a bit of specfun and both$101$ decimal digits + Math have been successfully executed on PC and microcontroller and become relatively warning-free.
cpp_bin_float
(which also pulls incpp_int
) as well ascpp_dec_float
atFor
cpp_bin_float
andcpp_dec_float
small amounts of dynamic RAM were needed (primarily forstd::allocator
in thestd::string
template class). So I wrote a tiny one-shot allocator for the globalnew()
function and dispensed with the heap.The Multirpecision benchmark computes the$101$ decimal digit cube root value of
The Math benchmark computes a small series of cylindrical Bessel function values for 64-bit
::boost::float64_t
The FLASH/RAM consumptions and timings for the Multiprecision benchmark are shown below (target ARM(R) Cortex(R) M4F STM32F446 from ST-Microelectronics(R) clocked at$168~MHz$ ). The multiprecision numbers were instantiated with $101$ decimal digits. I also used stubbed functions for some C-language posix primitives such as those pulled in by I/O streaming (needed by Math's exception handling even when exceptions are turned off). I also used RTTI disabled, optimization
-O2
.cpp_bin_float
cpp_dec_float
Cc: @jzmaddock and @mborland