Speaker
Ivan Krylov
(Lomonosov Moscow State University)
Description
Generally, CRAN packages are expected to keep passing their tests, and their updates should not break other packages. Debugging the occasional failure of this process can lead the developer down a very deep rabbit hole: our dependency stacks are very deep, and none of the layers are completely bug-free.
We're going to see how problems from real CRAN packages could be investigated and solved or at least worked around, including such causes as:
- real bugs in the package that surface for surprising reasons
- bugs in the compiler (but only when sanitizer is enabled)
- bugs in the compiler (when link-time optimisation is used)
- C standard arcana that become relevant when using a lot of CPU time
- CPU time spikes due to a dependency's
.onLoad- and how to use the event profiler in Linux to debug excessive CPU use
- bugs in Valgrind, a bug-finding tool
While the symptoms initially looked puzzling, in the end there was an explanation for every one of them.
If you used AI tools or services to support the preparation of this submission, please state the name and reason for using each of them.
No AI tools/services were used.
| Keywords: Please list up to 5 keywords to help us find the right session for your contribution. | debugging |
|---|---|
| Virtual Option | This submission is for pre-recorded virtual presentation only |
| Material License | CC-BY-SA 4.0 |
| Video Recording | Video sharing is fine |
| The author(s) agree(s) to take responsibility and be accountable for the contents of the submission and is/are authorized to present it. | Confirm |
Author
Ivan Krylov
(Lomonosov Moscow State University)