We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

Semantically meaningful S-expression diff

Formale Metadaten

Titel
Semantically meaningful S-expression diff
Untertitel
Tree-diff for lisp source code
Serientitel
Anzahl der Teile
637
Autor
Mitwirkende
Et al.
Lizenz
CC-Namensnennung 2.0 Belgien:
Sie dürfen das Werk bzw. den Inhalt zu jedem legalen Zweck nutzen, verändern und in unveränderter oder veränderter Form vervielfältigen, verbreiten und öffentlich zugänglich machen, sofern Sie den Namen des Autors/Rechteinhabers in der von ihm festgelegten Weise nennen.
Identifikatoren
Herausgeber
Erscheinungsjahr
Sprache

Inhaltliche Metadaten

Fachgebiet
Genre
Abstract
Lisp has a wonderful minimal syntax that almost directly expresses the abstract syntax tree. Yet, diff and other tooling operate on the unix newline ending model. When lisp prides itself for its minimal syntax---code is data---that is easy to parse, why can't we do better? Traditional diff implementations, such as GNU Diff, treat files as a flat list of lines. A tree-diff algorithm that can produce minimal and semantically meaningful output is a surprisingly more difficult and complex problem. In fact, for unordered trees, the problem is NP-hard. In this talk, I will demonstrate a very early working prototype of an S-expression diff program. The program can operate on two versions of some lisp source code and extract a meaningful tree-diff. The program aims to replace 'git diff' and related tools for lisp projects.