5027Fermer5029
UtherLe 26/08/2023 à 18:40
Même en compilant, on ne peut pas lier n'importe quel binaire avec n’importe quel autre : il faut qu'ils aient une ABI commune et Rust ne garantit pas, par défaut, la stabilité de l'ABI. On peut certes, comme en C++, utiliser ponctuellement l'ABI stable du C, mais c'est normalement juste pour permettre de s'interfacer avec d'autre langages car on limite les fonctionnalités comme les types génériques.

Pour faire fonctionner son système d’édition, Rust nécessite en effet que le compilateur sache traiter les deux dialectes, mais ça n'a rien d'insurmontable. Les deux édition ne sont différenciées qu'au niveau de l'analyse syntaxique et lexicale. Pour le reste de l'analyse et de la génération du binaire, le compilateur utilise diverses formes intermédiaires du code à compiler, communes à toutes les éditions. Rien n’empêche un interpréteur de faire de même. Les interpréteurs un minimum performant utilisent généralement déjà une ou plusieurs représentations intermédiaires.