10 research outputs found

    Increasing Automation in the Backporting of Linux Drivers Using Coccinelle

    Get PDF
    International audienceSoftware is continually evolving, to fix bugs and add new features. Industry users, however, often value stability, and thus may not be able to update their code base to the latest versions. This raises the need to selectively backport new features to older software versions. Traditionally, backporting has been done by cluttering the backported code with preprocessor directives, to replace behaviors that are unsupported in an earlier version by appropriate workarounds. This approach however involves writing a lot of error-prone backporting code, and results in implementations that are hard to read and maintain. We consider this issue in the context of the Linux kernel, for which older versions are in wide use. We present a new backporting strategy that relies on the use of a backporting compatability library and on code that is automatically generated using the program transformation tool Coccinelle. This approach reduces the amount of code that must be manually written, and thus can help the Linux kernel backporting effort scale while maintaining the dependability of the backporting process

    Prequel: A Patch-Like Query Language for Commit History Search

    Get PDF
    The commit history of a code base such as the Linux kernel is a gold mineof information on how evolutions should be made, how bugs should be fixed,etc. Nevertheless, the high volume of commits available and therudimentary filtering tools provided mean that it is often necessary towade through a lot of irrelevant information before finding example commitsthat can help with a specific software development problem. To addressthis issue, we propose Prequel (Patch Query Language), which brings thedescriptive power of code matching to the problem of querying a commithistory. We show in particular how Prequel can be used in understandinghow to eliminate uses of deprecated functions.L'histoire des commits dans une base de code comme le noyau Linux est unemine d'or d'informations décrivant comment les évolutions doivent êtrefaites, comment les bugs doivent être corrigés, etc. En revanche, le grandvolume de commits disponibles et la disponibilité d'outils de filtragerudimentaires impliquent qu'il est nécessaire de dépouiller de nombreusesinformations irrelevantes avant de trouver les exemples qui peuvent aider àrésoudre un problème spécifique de développement logiciel. Dans ce rapport,nous proposons le langage Prequel (Patch Query Language), qui offre lapuissance descriptive de la reconnaissance de code au problème del'interrogation d'une base de commit. Nous montrons en particulier quePrequel peut être utilisé pour éliminer et remplacer les utilisations defonctions dépréciées

    On the Origins of Coccinelle

    Get PDF

    Recommending Code Changes for Automatic Backporting of Linux Device Drivers

    Get PDF
    International audienceDevice drivers are essential components of any operating system (OS). They specify the communication protocol that allows the OS to interact with a device. However, drivers for new devices are usually created for a specific OS version. These drivers often need to be backported to the older versions to allow use of the new device. Backporting is often done manually, and is tedious and error prone. To alleviate this burden on developers, we propose an automatic recommendation system to guide the selection of backporting changes. Our approach analyzes the version history for cues to recommend candidate changes. We have performed an experiment on 100 Linux driver files and have shown that we can give a recommendation containing the correct backport for 68 of the drivers. For these 68 cases, 73.5%, 85.3%, and 88.2% of the correct recommendations are located in the Top-1, Top-2, and Top-5 positions of the recommendation lists respectively. The successful cases cover various kinds of changes including change of record access, deletion of function argument, change of a function name, change of constant, and change of if condition. Manual investigation of failed cases highlights limitations of our approach, including inability to infer complex changes, and unavailability of relevant cues in version history

    Recommending APIs for software evolution

    Get PDF

    Actes des Sixièmes journées nationales du Groupement De Recherche CNRS du Génie de la Programmation et du Logiciel

    Get PDF
    National audienceCe document contient les actes des Sixièmes journées nationales du Groupement De Recherche CNRS du Génie de la Programmation et du Logiciel (GDR GPL) s'étant déroulées au CNAM à Paris du 11 au 13 juin 2014. Les contributions présentées dans ce document ont été sélectionnées par les différents groupes de travail du GDR. Il s'agit de résumés, de nouvelles versions, de posters et de démonstrations qui correspondent à des travaux qui ont déjà été validés par les comités de programmes d'autres conférences et revues et dont les droits appartiennent exclusivement à leurs auteurs
    corecore