First-Class Undefined Classes for Pharo: From Alternative Designs to a Unified Practical Solution

Abstract : Loading code inside a Pharo image is a daily concern for a Pharo developer. Nevertheless, several problems may arise at loading time that can prevent the code to load or even worse let the system in an inconsistent state. In this paper, we focus on the problem of loading code that references a class that does not exist in the system. We discuss the different flavors of this problem, the limitations of the existing Undeclared mechanism and the heterogeneity of Pharo tools to solve it. Then, we propose an unified solution for Pharo that reifies Undefined Classes. Our model of Undefined Classes is the result of an objective selection among different alternatives. We then validate our solution through two cases studies: migrating old code and loading code with circular dependencies. This paper also presents the integration of this solution into Pharo regarding the needed Meta-Object Protocol for Undefined Classes and the required modifications of existing tools.
Type de document :
Communication dans un congrès
Proceedings of the 12th Edition of the International Workshop on Smalltalk Technologies, Sep 2017, Maribor, Slovenia. ACM, pp.9:1--9:8, 〈10.1145/3139903.3139914〉
Liste complète des métadonnées

Littérature citée [9 références]  Voir  Masquer  Télécharger

https://hal.archives-ouvertes.fr/hal-01585305
Contributeur : Lse Lse <>
Soumis le : lundi 11 septembre 2017 - 14:45:59
Dernière modification le : mercredi 13 décembre 2017 - 15:29:43

Fichier

final.pdf
Fichiers produits par l'(les) auteur(s)

Identifiants

Collections

Citation

Guillermo Polito, Stéphane Ducasse, Luc Fabresse. First-Class Undefined Classes for Pharo: From Alternative Designs to a Unified Practical Solution. Proceedings of the 12th Edition of the International Workshop on Smalltalk Technologies, Sep 2017, Maribor, Slovenia. ACM, pp.9:1--9:8, 〈10.1145/3139903.3139914〉. 〈hal-01585305〉

Partager

Métriques

Consultations de la notice

95

Téléchargements de fichiers

37