È stato pubblicato il primo rilascio del progetto elfshaker, che sviluppa un sistema di gestione delle versioni per file binari, ottimizzato per il monitoraggio delle modifiche nei file eseguibili in formato ELF. Il sistema memorizza patch binarie tra i file, consentendo di estrarre la versione desiderata in base a una chiave, il che accelera notevolmente l'esecuzione dell'operazione «git bisect» e riduce significativamente la dimensione dello spazio su disco utilizzato. Il codice del progetto è distribuito con licenza Apache-2.0.
Il programma è notevole per l'alta efficienza nella memorizzazione di modifiche binarie in un gran numero di file binari simili, ad esempio, quelli ottenuti durante il processo di build incrementali di un singolo progetto. In particolare, i risultati di duemila ricompilazioni del compilatore Clang (ogni ricompilazione riflette una modifica dopo ogni commit) possono essere conservati in un file pack di 100 MB, che è 4000 volte più piccolo rispetto a quanto sarebbe necessario per la memorizzazione separata.
L'estrazione di qualsiasi stato da questo file richiede 2-4 secondi (60 volte più veloce dell'operazione «git bisect» sul codice LLVM), il che consente di estrarre rapidamente la versione necessaria dei file eseguibili del progetto senza ricompilarli dai sorgenti o mantenere una copia di ogni versione precedentemente compilata del file eseguibile.
Fonte: opennet.ru
