Pinboard (jm)
https://pinboard.in/u:jm/public/
recent bookmarks from jmOpen-sourcing RacerD: Fast static race detection at scale | Engineering Blog | Facebook Code2017-10-19T16:17:27+00:00
https://code.facebook.com/posts/293371094514305
jmAt Facebook we have been working on automated reasoning about concurrency in our work with the Infer static analyzer. RacerD, our new open source race detector, searches for data races — unsynchronized memory accesses, where one is a write — in Java programs, and it does this without running the program it is analyzing. RacerD employs symbolic reasoning to cover many paths through an app, quickly.
This sounds extremely interesting...
]]>racerd race-conditions data-races thread-safety static-code-analysis coding testing facebook open-source inferhttps://pinboard.in/https://pinboard.in/u:jm/b:35a19486dd4e/thyrlian/jooi2016-07-23T09:05:18+00:00
https://github.com/thyrlian/jooi
jmjunit infer jenkins ui testinghttps://pinboard.in/https://pinboard.in/u:jm/b:a83bba454073/uber-common/infer-plugin2016-05-17T13:11:47+00:00
https://github.com/uber-common/infer-plugin
jminfer java static-analysis bugs coding nullhttps://pinboard.in/https://pinboard.in/u:jm/b:445c127fd3da/Argon2 code audits - part one - Infer2016-02-23T17:24:29+00:00
https://www.lolware.net/2016/02/12/argon2-code-review.html
jminfer facebook java clang errors static-analysis lint dataflow dockerhttps://pinboard.in/https://pinboard.in/u:jm/b:5e2f76232714/Facebook Infer2015-06-11T16:17:52+00:00
https://code.facebook.com/posts/1648953042007882/open-sourcing-facebook-infer-identify-bugs-before-you-ship/
jmFacebook Infer uses logic to do reasoning about a program's execution, but reasoning at this scale — for large applications built from millions of lines of source code — is hard. Theoretically, the number of possibilities that need to be checked is more than the number of estimated atoms in the observable universe. Furthermore, at Facebook our code is not a fixed artifact but an evolving system, updated frequently and concurrently by many developers. It is not unusual to see more than a thousand modifications to our mobile code submitted for review in a given day. The requirements on the program analyzer then become even more challenging because we expect a tool to report quickly on these code modifications — in the region of 10 minutes — to fit in with developers' workflow. Coping with this scale and velocity requires advanced mathematical techniques. Facebook Infer uses two such techniques: separation logic and bi-abduction.
Separation logic is a theory that allows Facebook Infer's analysis to reason about small, independent parts of the application storage, rather than having to consider the entirety of the memory potentially at every step. That would be a daunting task on modern processors with their large addressable virtual memories.
Bi-abduction is a logical inference technique that allows Facebook Infer to discover properties about the behavior of independent parts of the application code. By storing these properties between runs, Facebook Infer needs to analyze only the parts of the software that have changed, reusing the results of its previous analysis where it can.
By combining these approaches, our analyzer is able to find complex problems in modifications to an application built from millions of lines of code, in minutes.
(via Bryan O'Sullivan)]]>via:bos infer facebook static-analysis lint code java ios android coding bugshttps://pinboard.in/https://pinboard.in/u:jm/b:f2df52efe4e6/