Please use this identifier to cite or link to this item: http://hdl.handle.net/10362/180231
Title: A Language-Based Version Control System for Python
Author: Carvalho, Luís
Seco, João Costa
Keywords: Software evolution
type theory
Software
Issue Date: Sep-2024
Publisher: Schloss Dagstuhl- Leibniz-Zentrum fur Informatik GmbH, Dagstuhl Publishing
Abstract: We extend prior work on a language-based approach to versioned software development to support versioned programs with mutable state and evolving method interfaces. Unlike the traditional approach of mainstream version control systems, where a textual diff represents each evolution step, we treat versions as programming elements. Each evolution step, merge operation, and version relationship is represented explicitly in a multifaceted code representation. This provides static guarantees for safe code reuse from previous versions and forward and backwards compatibility between versions, allowing clients to use newly introduced code without needing to refactor their program manually. By lifting versioning to the language level, we pave the way for tools that interact with software repositories to have more insight into a system’s behavior evolution. We instantiate our work in the Python programming language and demonstrate its applicability regarding common evolution and refactoring patterns found in different versions of popular Python packages.
Description: This work is supported by EU Horizon Europe under Grant, Agreement no. 101093006 (TaRDIS). Publisher Copyright: © Luís Carvalho and João Costa Seco.
Peer review: yes
URI: http://hdl.handle.net/10362/180231
DOI: https://doi.org/10.4230/LIPIcs.ECOOP.2024.9
ISBN: 9783959773416
ISSN: 1868-8969
Appears in Collections:Home collection (FCT)

Files in This Item:
File Description SizeFormat 
LIPIcs.ECOOP.2024.9.pdf911,68 kBAdobe PDFView/Open


FacebookTwitterDeliciousLinkedInDiggGoogle BookmarksMySpace
Formato BibTex MendeleyEndnote 

Items in Repository are protected by copyright, with all rights reserved, unless otherwise indicated.