Histoire de ma vie jusqu’à ce jour - Épisode 125 - Février 2004: Je sème la première graine d'un nouveau logiciel que je vais maintenir pendant plus de 12 ans
Adaptation in French of The Story of My Life so Far - Part 125
Ceci est l'histoire de ma vie jusqu’à ce jour.
A lire avant: Histoire Courte de ma Famille en France
L'histoire commence ici.
Épisode précédent: #124
Pendant mes premières années chez AdaCore, j'étais responsable de "gnatmake", un outil que nous appelons le "builder" (constructeur).
Pour construire ou reconstruire une application, on doit compiler tous les fichiers source en "fichiers objets" et "relier" les fichiers objets en un exécutable.
Dans de nombreux cas, ce processus est effectué à l'aide d'un outil commun appelé "make" qui permet d'effectuer les différentes étapes à partir de fichiers texte appelés "Makefiles". Des dispositions sont prises pour éviter la recompilation des sources si leurs fichiers objets sont déjà à jour.
"gnatmake" faisait ce travail de construction pour les applications écrites uniquement en Ada. Pour décrire l’application à gnatmake, nous avions inventé en 2000 ce que nous appelons "GNAT Project Files" (Fichiers de projet GNAT), avec le suffixe ".gpr" dans leurs noms de fichiers.
Dans les fichiers de projet, sont décrits où trouver les sources de l’application, avec quelles options elles doivent être compilées, où le fichier exécutable doit être stocké, etc. Et gnatmake après avoir lu les fichiers de projet d’une application faisait toutes les étapes nécessaires pour: construire l'application.
En 2002 ou 2003, AdaCore, qui jusqu'alors ne prenait en charge que le langage de programmation Ada, souhaitait que ses clients puissent créer des applications multilingues, c'est-à-dire pouvoir utiliser plusieurs langages dans la même application, par exemple Ada et C et/ou C ++.
Pour ce faire, les fichiers de projet ont été améliorés pour indiquer les différentes langues des sources et la manière dont les résultats des différents fichiers objet de leurs compilations doivent être combinés pour créer un exécutable.
Mais AdaCore a estimé qu'il serait trop long de modifier gnatmake pour prendre en charge immédiatement des applications multilingues. Ils ont donc créé un nouvel outil, appelé "gpr2make", qui construisait un fichier Makefile à partir des informations lues à partir des fichiers de projet et appelait "make" pour construire l'application.
Si l'application était écrite partiellement en Ada, "make" invoquait gnatmake pour la partie Ada.
En plus d'invoquer gnatmake, "make" avait parfois besoin d'obtenir plus d'informations à partir des fichiers de projet. Nous avons donc créé un outil auxiliaire appelé par "make", qui lisait lui-même les fichiers de projet et renvoyait les informations nécessaires.
En pensant à tout cela au début de 2004, je pensais que c'était ridicule: pour une application multilingue utilisant les langages de programmation Ada et C, les fichiers de projet étaient lus plusieurs fois: d'abord par gpr2make, puis par gnatmake et éventuellement un ou plusieurs fois par l'outil auxiliaire (dont j'ai oublié le nom).
Je pensais qu'il serait préférable de créer un nouveau "builder" capable de lire les fichiers de projet une fois et de tout faire pour créer l'application, en invoquant directement les compilateurs et l'éditeur de liens.
Le 14 février 2004, j'étais allé voir Gaëlle courir à Seattle. Sur le chemin de retour, j'ai décidé d'envoyer un message à AdaCore pour leur dire que je croyais que gpr2make n'était pas la solution et que nous devions créer un nouveau constructeur multilingue.
Dès que je suis arrivé chez moi le soir, j'ai écrit le message avec ce titre, probablement trop provocateur:
- Should we get rid of gpr2make?
(Devrions-nous nous débarrasser de gpr2make?)
J'ai suggéré que ce nouvel outil de construction s'appelle "gprmake".
Mon message n'a initialement pas du tout été bien reçu.
La suite Épisode 126
Résumé
Épisode 1 - Épisode 2 - Épisode 3 - Épisode 4 - Épisode 5 - Épisode 6
Épisode 7 - Épisode 8 - Épisode 9 - Épisode 10 - Épisode 11 - Épisode 12
Épisode 13 - Épisode 14 - Épisode 15 - Épisode 16 - Épisode 17 - Épisode 18
Épisode 19 - Épisode 20 - Épisode 21 - Épisode 22 - Épisode 23 - Épisode 24
Épisode 25 - Épisode 26 - Épisode 27 - Épisode 28 - Épisode 29 - Épisode 30
Épisode 31 - Épisode 32 - Épisode 33 - Épisode 34 - Épisode 35 - Épisode 36
Épisode 37 - Épisode 38 - Épisode 39 - Épisode 40 - Épisode 41 - Épisode 42
Épisode 43 - Épisode 44 - Épisode 45 - Épisode 46 - Épisode 47 - Épisode 48
Épisode 49 - Épisode 50 - Épisode 51 - Épisode 52 - Épisode 53 - Épisode 54
Épisode 55 - Épisode 56 - Épisode 57 - Épisode 58 - Épisode 59 - Épisode 60
Épisode 61 - Épisode 62 - Épisode 63 - Épisode 64 - Épisode 65 - Épisode 66
Épisode 67 - Épisode 68 - Épisode 69 - Épisode 70 - Épisode 71 - Épisode 72
Épisode 73 - Épisode 74 - Épisode 75 - Épisode 76 - Épisode 77 - Épisode 78
Épisode 79 - Épisode 80 - Épisode 81 - Épisode 82 - Épisode 83 - Épisode 84
Épisode 85 - Épisode 86 - Épisode 87 - Épisode 88 - Épisode 89 - Épisode 90
Épisode 91 - Épisode 92 - Épisode 93 - Épisode 94 - Épisode 95 - Épisode 96
Épisode 97 - Épisode 98 - Épisode 99 - Épisode 100 - Épisode 101
Épisode 102 - Épisode 103 - Épisode 104 - Épisode 105 - Épisode 106
Épisode 107 - Épisode 108 - Épisode 109 - Épisode 110 - Épisode 111
Épisode 112 - Épisode 113 - Épisode 114 - Épisode 115 - Épisode 116
Épisode 117 - Épisode 118 - Épisode 119 - Épisode 120 - Épisode 121
Épisode 122 - Épisode 123 - Épisode 124
Congratulations @vcelier! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :
Click here to view your Board
If you no longer want to receive notifications, reply to this comment with the word
STOP