A Language-Based Version Control System for Python (Artifact)

Authors Luís Carvalho , João Costa Seco



PDF
Thumbnail PDF

Artifact Description

DARTS.10.2.3.pdf
  • Filesize: 423 kB
  • 2 pages

Document Identifiers

Author Details

Luís Carvalho
  • NOVA LINCS, NOVA School of Science and Technology, Caparica, Portugal
João Costa Seco
  • NOVA LINCS, NOVA School of Science and Technology, Caparica, Portugal

Cite AsGet BibTex

Luís Carvalho and João Costa Seco. A Language-Based Version Control System for Python (Artifact). In Special Issue of the 38th European Conference on Object-Oriented Programming (ECOOP 2024). Dagstuhl Artifacts Series (DARTS), Volume 10, Issue 2, pp. 3:1-3:2, Schloss Dagstuhl – Leibniz-Zentrum für Informatik (2024)
https://doi.org/10.4230/DARTS.10.2.3

Artifact

Artifact Evaluation Policy

The artifact has been evaluated as described in the ECOOP 2024 Call for Artifacts and the ACM Artifact Review and Badging Policy.

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.

Subject Classification

ACM Subject Classification
  • Theory of computation → Type theory
  • Theory of computation → Program semantics
Keywords
  • Software evolution
  • type theory

Metrics

Questions / Remarks / Feedback
X

Feedback for Dagstuhl Publishing


Thanks for your feedback!

Feedback submitted

Could not send message

Please try again later or send an E-mail