Progettazione di un sistema di categorizzazione delle regressioni per il compilatore Rust

Pasini, Giacomo (2020) Progettazione di un sistema di categorizzazione delle regressioni per il compilatore Rust. [Laurea], Università di Bologna, Corso di Studio in Ingegneria e scienze informatiche [L-DM270] - Cesena
Documenti full-text disponibili:
[thumbnail of Thesis] Documento PDF (Thesis)
Disponibile con Licenza: Creative Commons: Attribuzione - Condividi allo stesso modo 4.0 (CC BY-SA 4.0)

Download (1MB)

Abstract

Il linguaggio di programmazione Rust ha subito una crescita costante negli ultimi tempi e da cinque anni è votato come il linguaggio più amato dagli utenti nell'annuale sondaggio di StackOverflow. Parte fondamentale del linguaggio è il compilatore, che in questo caso si occupa anche di tutti quei controlli aggiuntivi che distinguono Rust da altri linguaggi come C/C++ e che ne garantiscono la sicurezza. Il ciclo di vita del compilatore prevede il rilascio di una nuova versione ogni 6 settimane, un intervallo di tempo molto piccolo se confrontato con altri progetti come GCC, che rilascia una nuova versione ogni anno. Un tempo così ridotto rende più difficile verificare la correttezza della modifiche introdotte e quasi del tutto inutilizzato per tale motivo è il testing da parte degli utilizzatori del linguaggio, che avrebbero a disposizione una finestra molto ristretta per testare manualmente le nuove funzionalità. Per permettere un rilascio così frequente con la confidenza di non introdurre bug o regressioni viene utilizzato Crater. Crater, prima di una nuova release, testa automaticamente tutto il codice Rust ottenibile online su GitHub e su crates.io, il registry pubblico ufficiale. I risultati ottenuti sono poi presentati ai team di rilascio e del compilatore per sistemare eventuali criticità trovate. Il progetto di questa tesi si inserisce in tale contesto per migliorare l'analisi dei dati ottenuti e automatizzare il lavoro di categorizzazione degli errori. In tale modo si semplificano le operazioni di triage delle problematiche individuate e si alleggerisce il carico sugli sviluppatori. In particolare, si suddividono gli errori in base al codice riportato e si analizzano le relazioni di dipendenza tra di essi.

Abstract
Tipologia del documento
Tesi di laurea (Laurea)
Autore della tesi
Pasini, Giacomo
Relatore della tesi
Correlatore della tesi
Scuola
Corso di studio
Ordinamento Cds
DM270
Parole chiave
rust,crater,testing,open source,gestione dei rilasci
Data di discussione della Tesi
16 Luglio 2020
URI

Altri metadati

Statistica sui download

Gestione del documento: Visualizza il documento

^