SLIDE 67 Aftermath
◮ Java community fixed the bug by increasing stack size (based
- n pen-and-paper worst case analysis)
◮ Android community provided their own fix (which we proved
as well)
◮ Python community adopted our formally proven fix ◮ Bug affected
◮ Java, Android, Python ◮ Apache: Lucene, Hadoop, Spark++ ◮ Go, D, Haskell
Language
- Min. array length req. to trigger error
Android 65.536 (216) Java 67.108.864 (226) Python 562.949.953.421.312 (249)
◮ Formal verification works for ”real” languages! ◮ Hundreds of thousands page views, top news on ycombinator,
reddit, Hacker News etc. W e l l , w
l d y
l
a t t h a t . K e Y i s a c
u a l l y u s e d f
s
e t h i n g u s e f u l . I t h
g h t t h e y j u s t t
t u r e d u s w i t h i t f
f u n a t u n i
e r s i t y . U n k n
n s t u d e n t v i a r e d d i t Some researchers found an error in the logic of merge collapse, explained here, and with corrected code shown in . . . It should be fixed anyway, and their sug- gested fix looks good to me. Tim Peters via Python-Bugtracker Congratulations to Stijn de Gouw et al. for finding and fixing a bug in TimSort using formal methods! Joshua Bloch via Twitter