« Jusqu’ici, l’outil RacerD était disponible en tant que prototype dans la base de code open source de Facebook uniquement à travers une série d'options de portes dérobées », a expliqué Sam Blackshear, co-développeur et chercheur chez Facebook. Désormais, l'outil tournera par défaut dans la plateforme d'analyse statique open source Infer de Facebook pour détecter les bogues de langage. Pour l’instant, RacerD n’est disponible que pour le code Java. Mais l’outil pourrait couvrir plus tard d’autres langages, dont le C++.

L'interférence ou race condition arrive lorsque que des processus imbriqués essayent d'accéder simultanément aux mêmes données, ce qui peut provoquer des conflits dans les logiciels. Ces erreurs peuvent être difficiles à déboguer ou même à reproduire. « Ce problème informatique est difficile à résoudre, et il perdure depuis une cinquantaine d’années environ », a déclaré Peter O'Hearn, chercheur dans l'équipe Infer et co-auteur de RacerD. « Testé en production sur l'application News Feed de Facebook, RacerD a permis de supprimer plus de 1000 bugs de l'application de production », a déclaré Facebook. Et RacerD permet aux développeurs de trouver des milliers de lignes de code pour gérer la concurrence.

Sous licence BSD+Patents

Inspiré par les fondements logiques de la séparation concurrente, une théorie mathématique développée par Peter O'Hearn, RacerD propose de nouvelles techniques algorithmiques pour coder les problèmes et voir les conséquences potentielles dans les systèmes avant leur exécution. Pour résoudre les problèmes de Race Conditions, les développeurs ajoutent généralement des verrous. Accessible depuis Github via le référentiel Infer, Infer est proposé sous licence BSD+Patents. Cette licence avait poussé des organisations comme l’Apache Software Foundation à abandonner la bibliothèque React JavaScript de Facebook en raison des coûts potentiels. En réponse à ces craintes, Facebook a livré le mois dernier React sous la licence plus acceptable du MIT, et le réseau social étudie un éventuel changement de licence pour RacerD.