Comments (6)
Be sure to compile with WIDE_INTEGER_HAS_COVERAGE
which (even though intended for coverage runs) drastically reduces the number and scope of test cases. This makes a slow valgrind
run feasible on GHA pipelines.
The first local valgrind
run was very satisfying. See report below.
==4353==
==4353== HEAP SUMMARY:
==4353== in use at exit: 0 bytes in 0 blocks
==4353== total heap usage: 15,124,969 allocs, 15,124,969 frees, 7,127,874,355 bytes allocated
==4353==
==4353== All heap blocks were freed -- no leaks are possible
==4353==
==4353== For lists of detected and suppressed errors, rerun with: -s
==4353== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
from wide-integer.
TBD: Add valgrind
run to CI and check (via, for instance, grep
) for:
ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
from wide-integer.
from wide-integer.
Hi John (@johnmcfarlane) it is good to hear from you.
Locally, I get 0 bytes missing in any way on valgrind
. And I also see no problems whatsoever with ASAN
(i.e., address sanitize runs). So these are consistent.
However, uggghhhh. I am struggling at the moment as well on the runners. I did get one successful valgrind
run on the pipeline but now I get a very curious core dump.
So I'm not sure yet if valgrind
actually adds any value.
from wide-integer.
Hi John (@johnmcfarlane) I was curious about this valgrind
. I think remember it came out after I had finished heavy numerics in grad school on FORTRAN in the 80s. Then when I was long out of numerics, I heard some chatter about it. Now it looks like it's supported so I thought I'd investigate it.
I'll keep you posted. I also ran across a POSIX sync checker calld helgrind
. I do not know if that adds anything beyod TSAN
?
from wide-integer.
found ASan generally a lot easier to work with
Yes John (@johnmcfarlane) I just empirically stumbled across a problem running valgrind
on GHA Ubuntu runners. It seems like valgrind
consistently core dumps on certain code sequences compiled with -march=native
and/or -mtune= native
. So I worked around this with the more vanilla tuning -m64
.
I think I will, in fact, retain the valgrind
run. Although it does not seem to really find anything that ASAN
didn't find, I think I'll keep it going for a while on the nightly, but I'll freeze in on something like GCC-12.
But I'm watchful of it. If valgrind
ever causes big problems, I'll eliminate it's use on the pipelines.
from wide-integer.
Related Issues (20)
- equivalent to mp::import_bits, mp::export_bits? HOT 5
- Upgrade docs to use Markdown's own LaTeX interpreter
- Handle Ubuntu 18.04 Deprecation on GHA
- about import_bits/export_bits HOT 9
- Replace (soon to be deprectated) LGTM with GitHub's CodeQL
- Cannot use integers in template parameters due to private data members. HOT 6
- Support signed/unsigned floored division (like Python // operator or divmod) HOT 3
- Adapt for GCC 13 HOT 2
- Halt early in a n_by_n multiplication loop if numbers are small enough HOT 16
- Repair GCD reduction which is broken for certain small values
- Refactoring has lead to slight performance drop and needs repair HOT 2
- Add cygwin run in CI HOT 2
- Update and modernize CI HOT 2
- Client request C++14 constexpr-ness HOT 1
- Construction from Constexpr StringView HOT 11
- Clean up constexpr-ness HOT 1
- Coverity scan for `uintwide_t`, example and test software HOT 1
- Repair cygwin in CI and upgrade all CI HOT 1
- wide_integer.h header erroneously uses std::lexicographical compare
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from wide-integer.